Documentação da API HappyHorse

Guia completo para integrar a API de geração de vídeo HappyHorse 1.0 aos seus aplicativos.

API v1.0 Base URL: https://happyhorse.app

Início rápido

bash
curl -X POST 'https://happyhorse.app/api/generate' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "happyhorse-1.0/video",
    "prompt": "A cinematic shot of mountains at sunrise",
    "mode": "pro",
    "duration": 5,
    "aspect_ratio": "16:9"
  }'

Autenticação

Todas as requisições exigem um token Bearer no cabeçalho Authorization.

Obter sua chave de API: Você pode obter sua chave na página API Keys do painel. → Obter sua chave de API

http
Authorization: Bearer YOUR_API_KEY

Modelos disponíveis

HappyHorse 1.0

HappyHorse 1.0

Geração de vídeo com IA de alta qualidade com HappyHorse

TipoDescriçãoDuraçãoCréditos
pro (text-to-video)Texto para vídeo em qualidade Pro3-15s54/s (no audio) · 80/s (with audio)
pro (image-to-video)Imagem para vídeo em qualidade Pro3-15s54/s (no audio) · 80/s (with audio)
std (text-to-video)Texto para vídeo em qualidade padrão3-15s40/s (no audio) · 60/s (with audio)
std (image-to-video)Imagem para vídeo em qualidade padrão3-15s40/s (no audio) · 60/s (with audio)

Endpoints da API

Cria uma nova tarefa de geração de vídeo. O campo model deve ser 'happyhorse-1.0/video'.

Corpo da requisição

Parâmetros do corpoJSON
model:string

Nome do modelo; deve ser 'happyhorse-1.0/video'

prompt:optional string

Descrição em texto do vídeo (máx. 2500 caracteres). Não obrigatório se multi_shots for true.

mode:optional string

Modo de qualidade: 'pro' ou 'std' (padrão: std) Defaults to std.

duration:optional number

Duração em segundos (3–15, padrão: 5) Defaults to 5.

aspect_ratio:optional string

Proporção de saída (16:9, 9:16, 1:1) Defaults to 16:9.

image_urls:optional string[]

Array de URLs de imagem para imagem para vídeo

sound:optional boolean

Ativar áudio nativo (padrão: true) Defaults to true.

cfg_scale:optional number

Aderência ao prompt (0-1, padrão: 0.5). Valores maiores seguem o prompt mais fielmente. Defaults to 0.5.

multi_shots:optional boolean

Modo multi-shot com vários prompts Defaults to false.

multi_prompt:optional array

Array de objetos 'prompt, duration' para multi-shot

happyhorse_elements:optional array

Array de objetos de elemento. No prompt, escreva @ seguido do valor de name (ex.: name 'element_dog' → @element_dog). Cada elemento: name, description, element_input_urls (2-4 URLs de imagem). Max 3 por tarefa.

Texto para vídeo

json
{
  "model": "happyhorse-1.0/video",
  "prompt": "A majestic eagle soaring through clouds at sunset",
  "mode": "pro",
  "duration": 5,
  "aspect_ratio": "16:9",
  "sound": true
}

Imagem para vídeo

json
{
  "model": "happyhorse-1.0/video",
  "prompt": "The character slowly turns and smiles",
  "mode": "pro",
  "image_urls": ["https://example.com/my-image.jpg"],
  "duration": 5
}

Vídeo multi-shot

json
{
  "model": "happyhorse-1.0/video",
  "mode": "pro",
  "multi_shots": true,
  "multi_prompt": [
    { "prompt": "A woman walks into a coffee shop", "duration": 3 },
    { "prompt": "She orders a latte and sits by the window", "duration": 4 },
    { "prompt": "She looks outside and smiles", "duration": 3 }
  ],
  "aspect_ratio": "16:9"
}

Respostas

Task created successfully

{
  "code": 200,
  "message": "success",
  "data": {
    "task_id": "n92abc123hh10",
    "status": "IN_PROGRESS"
  }
}

Verifica o status da geração usando o task_id retornado pelo endpoint generate.

Parâmetros de consulta

Parâmetros de consulta
task_id:string

ID único retornado por generate (prefixo n92)

Exemplo de requisição

bash
curl -X GET 'https://happyhorse.app/api/status?task_id=n92abc123hh10' \
  -H 'Authorization: Bearer YOUR_API_KEY'

Dica: O campo response contém o array resultUrls. Use data.response.resultUrls[0] para a URL do vídeo.

javascript
// Extract video URL from response
const videoUrl = data.response.resultUrls[0];

Respostas

{
  "code": 200,
  "message": "success",
  "data": {
    "task_id": "n92abc123hh10",
    "status": "SUCCESS",
    "consumed_credits": 400,
    "created_at": "2026-04-08T10:30:00Z",
    "type": "text-to-video",
    "request": {
      "model": "happyhorse-1.0/video",
      "prompt": "A majestic eagle soaring through clouds at sunset",
      "mode": "pro",
      "duration": 5,
      "aspect_ratio": "16:9"
    },
    "response": {
      "resultUrls": [
        "https://cdn.example.com/videos/abc123.mp4"
      ]
    },
    "error_message": null
  }
}

Playground da API

Teste a API direto no navegador. Substitua YOUR_API_KEY pela sua chave real.

Playground da APIPOST

Códigos de erro

Status HTTPCódigoDescrição
400 Requisição inválidaINVALID_PROMPTO prompt é inválido ou está vazio
400 Requisição inválidaINVALID_DURATIONDuração fora do intervalo suportado (3–15 s)
400 Requisição inválidaINVALID_MODELO modelo deve ser 'happyhorse-1.0/video'
401 Não autorizadoINVALID_API_KEYChave de API ausente ou inválida
402 Pagamento necessárioINSUFFICIENT_CREDITSCréditos insuficientes para esta operação
429 Muitas requisiçõesRATE_LIMITEDMuitas requisições; reduza a frequência
500 Erro interno do servidorINTERNAL_ERRORErro no servidor; tente novamente mais tarde