api.horny.studio
Référence API
Queue, fichiers, webhook et codes d'erreur. Les appels vont à https://api.horny.studio/v1. Le catalogue et les prix sont ouverts sur la page API.
Catalogue et prixapi.horny.studio/v1Début rapide
Première demande
URL de base: https://api.horny.studio/v1
curl -X POST https://api.horny.studio/v1/queue/bytedance/seedance-2.5/text-to-video \
-H "Authorization: Key ch_live_…" \
-H "Content-Type: application/json" \
-d '{"prompt":"a quiet street at dusk, handheld","duration_seconds":8,"resolution":"1080p","generate_audio":true}'- La réponse 202 contient request id, status url, response url et annula url.
- Statut url du sondage toutes les 2-5 secondes ou passez webhook url.
- Sur COMPLETED récupérer le résultat de response url. Les liens de fichier sont valides pendant 24 heures.
Pour les agents d'IA
Sources lisibles par machine
Référence
Méthodes
| GET | /models | Catalogue modèle, unités et prix |
| POST | /estimate | Coût exact de la demande avant le lancement |
| POST | /chat/completions | Modèle texte : messages et max tokens, réponse directe ou flux |
| POST | /queue/{model_id} | Demander une génération, 202 réponses avec request id |
| GET | /requests/{id}/status | Statut: IN QUEUE, IN PROGRESS, COMPLET, FAIBLE |
| GET | /requests/{id}/response | Résultat avec liens de fichiers signés |
| PUT | /requests/{id}/cancel | Annuler une requête en attente |
| POST | /files | Télécharger un fichier d'entrée, retourne file id |
| GET | /requests/{id} | Demande de carte: état, devis, frais réels |
Boucliers Web
Avis d'achèvement
Passez webhook url dans la requête ou le corps. Traitez la notification comme un signal pour récupérer le résultat : confirmez-le via response url avec votre clé.
POST https://api.horny.studio/v1/queue/bytedance/seedance-2.5/text-to-video?webhook_url=https://example.com/hooks/imhorny
// после завершения на webhook_url придёт POST
{
"request_id": "req_9f2c…",
"status": "COMPLETED",
"response_url": "https://api.horny.studio/v1/requests/req_9f2c…/response"
}Fichiers
Fichiers d'entrée
POST /v1/ fichiers avec les octets et un Type de Contenu. La réponse contient un fichier id comme chfile ..., qui va dans n'importe quel champ URL de l'entrée.
- Les liens https publics vers les fichiers d'entrée sont également acceptés
- Les résultats ne sont pas archivés : un lien signé vit 24 heures, puis 410
- Un en-tête Idempotency-Key protège contre les duplicata soumis
Erreurs
Codes de réponse
| 401 | unauthorized | Clé manquante, révoquée ou invalide |
| 402 | insufficient_balance | Le solde partagé USDT ne peut pas couvrir la soute. En haut du compte studio. Il n'y a pas de portefeuille séparé |
| 402 | key_limit_reached | La limite mensuelle de la clé est atteinte |
| 400 | unknown_model · unpriceable | Modèle non dans le catalogue ou les entrées ne permettent pas de prix |
| 409 | idempotency_conflict | Même clé d'Idempotency avec un corps différent |
| 409 | request_not_ready | Résultat demandé avant achèvement |
| 429 | rate_limited | Chiffres clés ou limite de concordance dépassés |
| 503 | capacity_unavailable | Capacité temporairement indisponible — réessayer plus tard, rien n'a été facturé |
| 410 | expired | Le lien signé (24 heures) a expiré |