api.horny.studio
API Referenz
Queue, Dateien, webhook und Fehler codes. Calls go zu https://api.horny.studio/v1. Die catalog und prices sind öffnen auf die API page.
Catalog und pricesapi.horny.studio/v1Schnellstart
Erste Anfrage
Basis-URL: 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}'- Die 202 response contains request_id, status_url, response_url und cancel_url.
- Poll status_url every 2–5 Sekunden oder pass webhook_url.
- On COMPLETED fetch das Ergebnis aus response_url. Datei links sind valid für 24 Stunden.
Für KI-Agenten
Maschinenlesbare Quellen
Referenz
Methoden
| GET | /models | Modell catalog, units und prices |
| POST | /estimate | Exact request Kosten before launch |
| POST | /chat/completions | Text Modell: messages und max_tokens, ein direct reply oder ein stream |
| POST | /queue/{model_id} | Queue ein Generierung, 202 response mit request_id |
| GET | /requests/{id}/status | Zustand: IN_QUEUE, IN_PROGRESS, COMPLETED, FAILED |
| GET | /requests/{id}/response | Result mit signed Datei links |
| PUT | /requests/{id}/cancel | Abbrechen ein queued request |
| POST | /files | Laden Sie ein input Datei, returns file_id |
| GET | /requests/{id} | Anfragekarte: Status, Schätzung, tatsächliche Belastung |
Webhook-Endpunkte
Benachrichtigung bei Abschluss
Pass webhook_url in die query oder body. Treat die notification as ein signal zu fetch das Ergebnis: confirm it via response_url mit your key.
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"
}Dateien
Input Dateien
POST /v1/Dateien mit die bytes und ein Content-Type. Die response holds ein file_id like chfile_…, which goes into any URL field von die input.
- Public https links zu input Dateien sind accepted as well
- Results sind nicht archived: ein signed link lives 24 Stunden, then 410
- Ein Idempotency-Key header protects against duplicate submits
Fehler
Antwortcodes
| 401 | unauthorized | Key missing, revoked oder invalid |
| 402 | insufficient_balance | Die shared USDT Guthaben cannot cover die hold. Top up in die Studio Konto. There ist kein separate Wallet |
| 402 | key_limit_reached | Die key's monthly limit ist reached |
| 400 | unknown_model · unpriceable | Modell nicht in die catalog oder inputs do nicht allow pricing |
| 409 | idempotency_conflict | Same Idempotency-Key mit ein different body |
| 409 | request_not_ready | Ergebnis vor Abschluss angefordert |
| 429 | rate_limited | Key RPM oder concurrency limit exceeded |
| 503 | capacity_unavailable | Capacity temporarily unavailable — erneut versuchen later, nothing wurde charged |
| 410 | expired | Die signed link (24 Stunden) has expired |