Studio API Endpoints
Complete reference for all 35 REST endpoints, 4 GraphQL queries, and 3 WebSocket events in the Studio API.
Quick Navigation
Image Generation7 Endpoints
Generate AI images from text prompts using providers like DALL-E 3, Midjourney, Flux, or Ideogram. Supports multiple variants, aspect ratios, and quality levels.
Parameters
| Name | Type | Description |
|---|---|---|
| prompt* | string | Text description of the image to generate (max 1000 chars) |
| width | integer | Image width in pixels (default: 1024) |
| height | integer | Image height in pixels (default: 1024) |
| quality | string | Quality level: standard (10 credits), high (25 credits), ultra (50 credits) |
| variants | integer | Number of image variations (1-4, default: 1) |
| provider | string | AI provider: ideogram, dalle3, midjourney, flux (auto-selected if omitted) |
| stylePreset | string | Style preset: realistic, artistic, anime, 3d-render, etc. |
Response
{
"data": {
"jobId": "job_abc123xyz",
"status": "queued",
"creditsReserved": 10,
"estimatedCompletionTime": "2026-01-29T12:35:00Z"
},
"meta": {
"requestId": "req_xyz789"
}
}Transform existing images with style transfer, filters, or AI-powered edits. Upload an image URL or base64 data.
Parameters
| Name | Type | Description |
|---|---|---|
| imageUrl* | string | Source image URL or base64 data URI |
| transformation* | string | Transformation type: style-transfer, filter, enhance, colorize |
| styleReference | string | Style reference image URL (for style-transfer) |
| strength | number | Transformation strength (0.0-1.0, default: 0.7) |
Response
{
"data": {
"jobId": "job_def456uvw",
"status": "queued",
"creditsReserved": 25
}
}Remove background from images using AI. Returns transparent PNG with subject isolated.
Parameters
| Name | Type | Description |
|---|---|---|
| imageUrl* | string | Source image URL |
| outputFormat | string | Output format: png (default), webp |
Response
{
"data": {
"jobId": "job_ghi789rst",
"status": "queued",
"creditsReserved": 10
}
}Upscale images to 4x resolution with AI enhancement. Improves quality without losing details.
Parameters
| Name | Type | Description |
|---|---|---|
| imageUrl* | string | Source image URL |
| scale | integer | Scale factor: 2, 4 (default: 4) |
| enhanceDetails | boolean | Apply AI detail enhancement (default: true) |
Response
{
"data": {
"jobId": "job_jkl012mno",
"status": "queued",
"creditsReserved": 50
}
}Video Generation7 Endpoints
Generate AI videos from text prompts or images. Supports multiple providers and video styles.
Parameters
| Name | Type | Description |
|---|---|---|
| prompt* | string | Text description of the video scene |
| duration | integer | Video duration in seconds (5-60, tier-dependent) |
| quality | string | Quality: standard (100 credits/10s), high, ultra |
| provider | string | Provider: runway, pika, kling, luma |
| fps | integer | Frames per second: 24, 30, 60 (default: 30) |
| aspectRatio | string | Aspect ratio: 16:9, 9:16, 1:1 (default: 16:9) |
Response
{
"data": {
"jobId": "job_video123",
"status": "queued",
"creditsReserved": 500,
"estimatedCompletionTime": "2026-01-29T12:40:00Z"
}
}Convert long videos to short-form clips optimized for social media. AI identifies best moments.
Parameters
| Name | Type | Description |
|---|---|---|
| videoUrl* | string | Source video URL |
| targetDuration* | integer | Target clip duration (15-60 seconds) |
| platform | string | Target platform: instagram, tiktok, youtube-shorts |
| numberOfClips | integer | Number of clips to generate (1-5, default: 1) |
Response
{
"data": {
"jobId": "job_clip456",
"status": "queued",
"creditsReserved": 250
}
}Auto-generate and burn subtitles into videos. Supports 50+ languages with customizable styling.
Parameters
| Name | Type | Description |
|---|---|---|
| videoUrl* | string | Source video URL |
| language | string | Subtitle language (auto-detect if omitted) |
| style | object | Subtitle styling: fontFamily, fontSize, color, backgroundColor |
| position | string | Position: bottom, top, center (default: bottom) |
Response
{
"data": {
"jobId": "job_sub789",
"status": "queued",
"creditsReserved": 100
}
}Audio Generation8 Endpoints
Text-to-speech with 100+ AI voices. Supports multiple languages, emotions, and speaking styles.
Parameters
| Name | Type | Description |
|---|---|---|
| text* | string | Text to convert to speech (max 5000 chars) |
| voiceId | string | Voice ID from voice library (default: auto) |
| language | string | Language code (en-US, es-ES, etc.) |
| speed | number | Speaking speed (0.5-2.0, default: 1.0) |
| emotion | string | Emotion: neutral, happy, sad, angry, excited |
Response
{
"data": {
"jobId": "job_tts123",
"status": "queued",
"creditsReserved": 5,
"estimatedCompletionTime": "2026-01-29T12:32:00Z"
}
}Train a custom voice model from audio samples. Requires 1-10 minutes of clean audio.
Parameters
| Name | Type | Description |
|---|---|---|
| name* | string | Voice model name |
| audioSamples* | array | Array of audio sample URLs (1-10 files) |
| language* | string | Primary language of voice samples |
| quality | string | Training quality: standard (200 credits), high, ultra |
Response
{
"data": {
"jobId": "job_clone456",
"status": "queued",
"creditsReserved": 500,
"estimatedCompletionTime": "2026-01-29T13:00:00Z"
}
}Generate speech using a custom cloned voice. Requires voice model from clone-voice endpoint.
Parameters
| Name | Type | Description |
|---|---|---|
| text* | string | Text to synthesize |
| voiceModelId* | string | Custom voice model ID |
| speed | number | Speaking speed (0.5-2.0) |
Response
{
"data": {
"jobId": "job_speech789",
"status": "queued",
"creditsReserved": 15
}
}Music Generation3 Endpoints
Generate royalty-free background music from text descriptions. Perfect for event videos and presentations.
Parameters
| Name | Type | Description |
|---|---|---|
| prompt* | string | Music description (genre, mood, instruments) |
| duration* | integer | Music duration in seconds (15-300) |
| genre | string | Genre: electronic, orchestral, ambient, rock, jazz, etc. |
| mood | string | Mood: energetic, calm, dramatic, uplifting, etc. |
| tempo | string | Tempo: slow, medium, fast |
Response
{
"data": {
"jobId": "job_music123",
"status": "queued",
"creditsReserved": 100,
"estimatedCompletionTime": "2026-01-29T12:45:00Z"
}
}Avatar Generation4 Endpoints
Create AI avatars from photos or text descriptions. Returns 3D-ready avatar model.
Parameters
| Name | Type | Description |
|---|---|---|
| sourceType* | string | Source type: photo, description |
| sourceData* | string | Photo URL or text description |
| style | string | Avatar style: realistic, cartoon, anime, 3d |
| quality | string | Quality: standard (150 credits), high, ultra |
Response
{
"data": {
"jobId": "job_avatar123",
"status": "queued",
"creditsReserved": 400,
"estimatedCompletionTime": "2026-01-29T12:50:00Z"
}
}Animate avatars with speech and lip-sync. Create talking avatar videos.
Parameters
| Name | Type | Description |
|---|---|---|
| avatarModelId* | string | Avatar model ID from generate endpoint |
| audioUrl* | string | Speech audio URL for lip-sync |
| duration | integer | Video duration in seconds (5-60) |
| backgroundType | string | Background: transparent, solid-color, image |
Response
{
"data": {
"jobId": "job_animate456",
"status": "queued",
"creditsReserved": 1000
}
}Enterprise Features14 Endpoints
Templates
Browse template catalog with filters. Public endpoint - no auth required.
Parameters
| Name | Type | Description |
|---|---|---|
| category | string | Filter by category: event-posters, social-media, presentations |
| limit | integer | Results per page (1-100, default: 20) |
| cursor | string | Pagination cursor |
Response
{
"data": [
{
"id": "tmpl_123",
"name": "Tech Conference Poster",
"category": "event-posters",
"previewImageUrl": "https://cdn.eventzr.com/...",
"price": 0,
"isFeatured": true
}
],
"page": {
"nextCursor": "cursor_abc",
"hasMore": true
}
}Render template with custom data. Supports dynamic text, images, and colors.
Parameters
| Name | Type | Description |
|---|---|---|
| data* | object | Template data (title, date, images, colors, etc.) |
| outputFormat | string | Output format: png, jpg, pdf (default: png) |
Response
{
"data": {
"jobId": "job_render123",
"status": "queued",
"creditsReserved": 5
}
}Social Media
Generate platform-specific variants (Instagram, TikTok, Twitter, etc.) from a single asset.
Parameters
| Name | Type | Description |
|---|---|---|
| sourceUrl* | string | Source image or video URL |
| platforms* | array | Target platforms: instagram, tiktok, twitter, linkedin |
| includeText | boolean | Add text overlays (default: false) |
Response
{
"data": {
"jobId": "job_social123",
"status": "queued",
"creditsReserved": 100
}
}NFT Minting
Mint generated asset as NFT on blockchain. Requires ProMax+ tier.
Parameters
| Name | Type | Description |
|---|---|---|
| assetUrl* | string | Asset URL from completed job |
| blockchain | string | Blockchain: ethereum, polygon (default) |
| metadata* | object | NFT metadata (name, description, attributes) |
Response
{
"data": {
"jobId": "job_nft123",
"status": "queued",
"creditsReserved": 100
}
}Job Management
Poll job status. Idempotent - safe to call repeatedly.
Response
{
"data": {
"id": "job_abc123",
"status": "completed",
"type": "image-generation",
"progress": 100,
"outputs": [
{
"url": "https://cdn.eventzr.com/...",
"width": 1024,
"height": 1792
}
],
"creditsCharged": 10,
"completedAt": "2026-01-29T12:35:00Z"
}
}List user's job history with pagination and filters.
Parameters
| Name | Type | Description |
|---|---|---|
| status | string | Filter: queued, processing, completed, failed, cancelled |
| type | string | Filter by job type |
| limit | integer | Results per page (default: 20) |
Response
{
"data": [
{
"id": "job_abc123",
"type": "image-generation",
"status": "completed",
"createdAt": "2026-01-29T12:30:00Z"
}
],
"page": {
"nextCursor": "cursor_xyz",
"hasMore": true
}
}Cancel queued or processing job. Credits are refunded automatically.
Response
{
"data": {
"id": "job_abc123",
"status": "cancelled",
"creditsRefunded": 10
}
}Retry failed job. Credits are re-reserved from wallet.
Response
{
"data": {
"id": "job_abc123",
"status": "queued",
"creditsReserved": 10
}
}Common Error Codes
| Code | Description | HTTP Status |
|---|---|---|
| ERR_INSUFFICIENT_CREDITS | Wallet balance too low for operation | 402 |
| ERR_QUOTA_EXCEEDED | Monthly render quota reached | 429 |
| ERR_INVALID_PROMPT | Prompt violates content policy | 400 |
| ERR_TIER_REQUIRED | Feature requires higher subscription tier | 403 |
| ERR_JOB_TIMEOUT | Job exceeded SLA latency target | 504 |
| ERR_PROVIDER_ERROR | AI provider returned error (auto-retry with fallback) | 502 |