Introduction
Apiframe API — generate images, videos, and music with a single unified API.
Apiframe provides a unified REST API for AI-powered media generation. Submit a prompt and get back images, videos, or music — powered by leading AI models like Midjourney, Kling, and Suno.
Base URL
All API requests are made to:
https://api-v2.apiframe.ai/v2How it works
- Authenticate with your API key via the
X-API-Keyheader - Submit a generation request to the appropriate endpoint (images, videos, or music)
- Poll the job or receive a webhook when the result is ready
- Download the result from the CDN URL in the job response
Available models
| Category | Model | Endpoint |
|---|---|---|
| Image | Midjourney | POST /v2/images/generate |
| Image | Nano Banana | POST /v2/images/generate |
| Video | Grok Imagine Video | POST /v2/videos/generate |
| Video | Hailuo 02 | POST /v2/videos/generate |
| Video | Hailuo 2.3 | POST /v2/videos/generate |
| Video | Hailuo 2.3 Fast | POST /v2/videos/generate |
| Video | Luma Ray 2 | POST /v2/videos/generate |
| Video | Luma Ray Flash 2 | POST /v2/videos/generate |
| Video | Kling | POST /v2/videos/generate |
| Video | Midjourney Video | POST /v2/videos/generate |
| Video | Seedance | POST /v2/videos/generate |
| Video | Sora | POST /v2/videos/generate |
| Video | Veo 2 | POST /v2/videos/generate |
| Video | Veo 3 | POST /v2/videos/generate |
| Video | Veo 3 Fast | POST /v2/videos/generate |
| Video | Veo 3.1 | POST /v2/videos/generate |
| Video | Veo 3.1 Fast | POST /v2/videos/generate |
| Music | Suno | POST /v2/music/generate |
| Editing | Topaz Image / Clarity Upscaler | POST /v2/images/upscale |
| Editing | Bria / 851-labs Background Remove | POST /v2/images/background-remove |
| Editing | Flux Fill Pro (inpaint / outpaint) | POST /v2/images/edit |
| Editing | Topaz Video Upscale | POST /v2/videos/upscale |
Rate limits
- Authenticated requests: 500 requests per minute per user
- Account info (
GET /v2/me): 60 requests per minute per user
Exceeding the rate limit returns a 429 Too Many Requests response.
Error format
All error responses follow a consistent format:
{
"error": "Human-readable error message",
"details": {}
}| Status | Meaning |
|---|---|
400 | Validation failed — check details for field-level errors |
401 | Missing or invalid API key / token |
402 | Insufficient credits |
403 | Forbidden — admin role required or API key inactive |
404 | Resource not found |
429 | Rate limit exceeded |
503 | Service temporarily unavailable |