Skip zu content

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/v1

Schnellstart

Erste Anfrage

Basis-URL: https://api.horny.studio/v1

curl
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}'
  1. Die 202 response contains request_id, status_url, response_url und cancel_url.
  2. Poll status_url every 2–5 Sekunden oder pass webhook_url.
  3. 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/modelsModell catalog, units und prices
POST/estimateExact request Kosten before launch
POST/chat/completionsText 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}/statusZustand: IN_QUEUE, IN_PROGRESS, COMPLETED, FAILED
GET/requests/{id}/responseResult mit signed Datei links
PUT/requests/{id}/cancelAbbrechen ein queued request
POST/filesLaden 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.

http
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

401unauthorizedKey missing, revoked oder invalid
402insufficient_balanceDie shared USDT Guthaben cannot cover die hold. Top up in die Studio Konto. There ist kein separate Wallet
402key_limit_reachedDie key's monthly limit ist reached
400unknown_model · unpriceableModell nicht in die catalog oder inputs do nicht allow pricing
409idempotency_conflictSame Idempotency-Key mit ein different body
409request_not_readyErgebnis vor Abschluss angefordert
429rate_limitedKey RPM oder concurrency limit exceeded
503capacity_unavailableCapacity temporarily unavailable — erneut versuchen later, nothing wurde charged
410expiredDie signed link (24 Stunden) has expired