api.horny.studio
Usar como referência
Queue, arquivos, webhook e erro codes. Calls go para https://api.horny.studio/v1. catalog e prices são abrir em API page.
Catálogo e pricesapi.horny.studio/v1Quick iniciar
Primera solicitud
URL de la 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}'- 202 response contains request_id, status_url, response_url e cancel_url.
- Poll status_url every 2–5 segundos ou pass webhook_url.
- Em Concluído fetch result de response_url. Arquivo links são valid para 24 hours.
Para AI agents
Fuentes legibles por máquina
Referência
Métodos
| GET | /models | Modelo catalog, units e prices |
| POST | /estimate | Costo exacto de la solicitud antes del lanzamiento |
| POST | /chat/completions | Texto modelo: messages e max_tokens, um direct reply ou um stream |
| POST | /queue/{model_id} | Queue um geração, 202 response com request_id |
| GET | /requests/{id}/status | Status: IN_QUEUE, IN_PROGRESS, Concluído, Falhou |
| GET | /requests/{id}/response | Result com signed arquivo links |
| PUT | /requests/{id}/cancel | Cancelar um na fila request |
| POST | /files | Envie input file, returns file_id |
| GET | /requests/{id} | Request cartão: status, quote, actual charge |
Hooks web
Notificação de finalização
Pass webhook_url entrar query ou body. Treat notification as um signal para fetch result: confirm it via response_url com seu 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"
}Arquivos
Input arquivos
POST /v1/arquivos com bytes e um Content-Type. response holds um file_id like chfile_…, which goes into any URL field of input.
- Public https links para input arquivos são accepted as well
- Results são não archived: um signed link lives 24 hours, then 410
- Um Idempotency-Key header protects against duplicate submits
Erro
Códigos de respuesta
| 401 | unauthorized | Key missing, revoked ou invalid |
| 402 | insufficient_balance | shared USDT saldo cannot cover hold. Recarga entrar studio conta. There é no separate wallet |
| 402 | key_limit_reached | key's monthly limit é reached |
| 400 | unknown_model · unpriceable | Modelo não entrar catalog ou inputs do não allow pricing |
| 409 | idempotency_conflict | Same Idempotency-Key com um different body |
| 409 | request_not_ready | Resultado solicitado antes de su finalização |
| 429 | rate_limited | Key RPM ou concurrency limit exceeded |
| 503 | capacity_unavailable | Capacity temporarily unavailable — retry later, nothing foi charged |
| 410 | expired | signed link (24 hours) has expirou |