HappyHorse API ドキュメント
HappyHorse 1.0 動画生成 API をアプリに組み込むための完全ガイド。
クイックスタート
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"
}'認証
すべての API リクエストは Authorization ヘッダーに Bearer トークンを付与する必要があります。
API キーを取得: ダッシュボードの API Keys ページで API キーを取得できます。 → API キーを取得
Authorization: Bearer YOUR_API_KEY利用可能なモデル
HappyHorse 1.0
HappyHorse による高品質な AI 動画生成
| 種類 | 説明 | 長さ | クレジット |
|---|---|---|---|
pro (text-to-video) | Pro 品質のテキストから動画 | 3-15s | 54/s (no audio) · 80/s (with audio) |
pro (image-to-video) | Pro 品質の画像から動画 | 3-15s | 54/s (no audio) · 80/s (with audio) |
std (text-to-video) | 標準品質のテキストから動画 | 3-15s | 40/s (no audio) · 60/s (with audio) |
std (image-to-video) | 標準品質の画像から動画 | 3-15s | 40/s (no audio) · 60/s (with audio) |
API エンドポイント
新しい動画生成タスクを作成します。model は 'happyhorse-1.0/video' に設定してください。
リクエストボディ
モデル名。'happyhorse-1.0/video' である必要があります
生成する動画のテキスト説明(最大 2500 文字)。multi_shots が true の場合は不要。
品質モード:'pro' または 'std'(既定:std) Defaults to std.
動画の長さ(秒)、3〜15、既定は 5 Defaults to 5.
出力アスペクト比(16:9、9:16、1:1) Defaults to 16:9.
画像から動画へ用の画像 URL の配列
ネイティブ音声生成を有効化(既定:true) Defaults to true.
プロンプト忠実度(0-1、既定: 0.5)。値が高いほどプロンプトに忠実に従います。 Defaults to 0.5.
複数プロンプトによるマルチショットモード Defaults to false.
マルチショット用の 'prompt, duration' オブジェクトの配列
要素オブジェクトの配列。プロンプトでは各要素の name の前に @ を付けて参照(例:name が element_dog なら @element_dog と書く)。各要素: name、description、element_input_urls(2-4 画像URL)。1タスク最大3要素。
テキストから動画
{
"model": "happyhorse-1.0/video",
"prompt": "A majestic eagle soaring through clouds at sunset",
"mode": "pro",
"duration": 5,
"aspect_ratio": "16:9",
"sound": true
}画像から動画
{
"model": "happyhorse-1.0/video",
"prompt": "The character slowly turns and smiles",
"mode": "pro",
"image_urls": ["https://example.com/my-image.jpg"],
"duration": 5
}マルチショット動画
{
"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"
}レスポンス
Task created successfully
{
"code": 200,
"message": "success",
"data": {
"task_id": "n92abc123hh10",
"status": "IN_PROGRESS"
}
}generate が返した task_id で動画生成タスクの状態を確認します。
クエリパラメータ
generate が返す一意のタスク ID(n92 接頭辞)
リクエスト例
curl -X GET 'https://happyhorse.app/api/status?task_id=n92abc123hh10' \
-H 'Authorization: Bearer YOUR_API_KEY'ヒント: response に resultUrls 配列が含まれます。動画 URL は data.response.resultUrls[0] で取得できます。
// Extract video URL from response
const videoUrl = data.response.resultUrls[0];レスポンス
{
"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
}
}API プレイグラウンド
ブラウザから直接 API を試せます。YOUR_API_KEY を実際のキーに置き換えてください。
エラーコード
| HTTP ステータス | コード | 説明 |
|---|---|---|
| 400 不正なリクエスト | INVALID_PROMPT | プロンプトが無効または空です |
| 400 不正なリクエスト | INVALID_DURATION | 長さが対応範囲外です(3〜15 秒) |
| 400 不正なリクエスト | INVALID_MODEL | モデルは 'happyhorse-1.0/video' である必要があります |
| 401 未認証 | INVALID_API_KEY | API キーがないか無効です |
| 402 支払いが必要 | INSUFFICIENT_CREDITS | この操作に十分なクレジットがありません |
| 429 リクエストが多すぎます | RATE_LIMITED | リクエストが多すぎます。間隔を空けてください |
| 500 内部サーバーエラー | INTERNAL_ERROR | サーバーエラーです。しばらくしてから再試行してください |