HappyHorse
HappyHorse models are called through one unified, asynchronous job API. Start a task with POST /api/generate, then poll GET /api/generate/{taskId} until it finishes. This family exposes 7 endpoints.
Overview
Every endpoint shares the same envelope — only model and the input fields change. Run any from the Models Market playground.
Authentication
Create an API key at /api-keys, then send it as a Bearer token. Requests from the browser while logged in also work via the session cookie.
Authorization: Bearer <YOUR_API_KEY>Create Task
POST https://97ai.97claude.com/api/generateBody: { "model": "<slug>", "input": { … } }
Response: { "taskId": "<id>", "state": "waiting" }
Query Result
GET https://97ai.97claude.com/api/generate/<taskId>Response: { "taskId", "state": "waiting" | "success" | "fail", "resultUrls": [ … ], "creditsConsumed", "failMsg", "balance" }
state becomes success or fail. Failed tasks are not billed.Endpoints
| Model | Task | model slug |
|---|---|---|
| HappyHorse | Text to Video | happyhorse/text-to-video |
| HappyHorse | Image to Video | happyhorse/image-to-video |
| HappyHorse | Video to Video | happyhorse/reference-to-video |
| HappyHorse | Video Editing | happyhorse/video-edit |
| HappyHorse 1.1 | Image to Video | happyhorse-1-1/image-to-video |
| HappyHorse 1.1 | Text to Video | happyhorse-1-1/text-to-video |
| HappyHorse 1.1 | Video to Video | happyhorse-1-1/reference-to-video |
HappyHorse · Text to Video
happyhorse/text-to-videopromptstringrequiredText prompt describing the desired output.
curl -X POST https://97ai.97claude.com/api/generate \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "happyhorse/text-to-video",
"input": { "prompt": "a red panda surfing" }
}'HappyHorse · Image to Video
happyhorse/image-to-videopromptstringrequiredText prompt describing the desired output.
image_urlsstring[]requiredOne or more source image URLs to condition on.
curl -X POST https://97ai.97claude.com/api/generate \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "happyhorse/image-to-video",
"input": { "prompt": "a red panda", "image_urls": ["https://example.com/in.jpg"] }
}'HappyHorse · Video to Video
happyhorse/reference-to-videopromptstringrequiredText prompt describing the desired output.
video_urlstringrequiredSource video URL to transform.
curl -X POST https://97ai.97claude.com/api/generate \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "happyhorse/reference-to-video",
"input": { "prompt": "make it snow", "video_url": "https://example.com/in.mp4" }
}'HappyHorse · Video Editing
happyhorse/video-editpromptstringrequiredText prompt describing the desired output.
video_urlstringrequiredSource video URL to transform.
curl -X POST https://97ai.97claude.com/api/generate \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "happyhorse/video-edit",
"input": { "prompt": "make it snow", "video_url": "https://example.com/in.mp4" }
}'HappyHorse 1.1 · Image to Video
happyhorse-1-1/image-to-videopromptstringrequiredText prompt describing the desired output.
image_urlsstring[]requiredOne or more source image URLs to condition on.
curl -X POST https://97ai.97claude.com/api/generate \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "happyhorse-1-1/image-to-video",
"input": { "prompt": "a red panda", "image_urls": ["https://example.com/in.jpg"] }
}'HappyHorse 1.1 · Text to Video
happyhorse-1-1/text-to-videopromptstringrequiredText prompt describing the desired output.
curl -X POST https://97ai.97claude.com/api/generate \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "happyhorse-1-1/text-to-video",
"input": { "prompt": "a red panda surfing" }
}'HappyHorse 1.1 · Video to Video
happyhorse-1-1/reference-to-videopromptstringrequiredText prompt describing the desired output.
video_urlstringrequiredSource video URL to transform.
curl -X POST https://97ai.97claude.com/api/generate \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "happyhorse-1-1/reference-to-video",
"input": { "prompt": "make it snow", "video_url": "https://example.com/in.mp4" }
}'