# Hunyuan Motion Source: https://docs.artificialstudio.ai/3d/hunyuan-motion POST https://api.artificialstudio.ai/api/run Generate 3D human motions from text by Tencent. | | | | ----------- | --------------- | | **Credits** | 16 credits | | **Output** | FBX (3D motion) | | **Tool** | `motion-3d` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ---------------- | ------ | -------- | ----------------------------------------------------------- | | `tool` | string | Yes | `motion-3d` | | `input.model` | string | Yes | `hunyuan-motion` | | `input.prompt` | string | Yes | Description of the motion to generate (max 1024 characters) | | `input.duration` | number | No | Motion duration in seconds (0.5 - 12, default `5`) | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "motion-3d", "input": { "model": "hunyuan-motion", "prompt": "A person doing a backflip", "duration": 5 } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'motion-3d', input: { model: 'hunyuan-motion', prompt: 'A person doing a backflip', duration: 5 } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'motion-3d', 'input': { 'model': 'hunyuan-motion', 'prompt': 'A person doing a backflip', 'duration': 5 } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "motion-3d", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Hunyuan 3D v2.1 Source: https://docs.artificialstudio.ai/3d/hunyuan3d-v21 POST https://api.artificialstudio.ai/api/run Create high-quality 3D models from images using Hunyuan 3D v2.1. | | | | ----------- | -------------------- | | **Credits** | 60 credits | | **Output** | GLB (3D model) | | **Tool** | `image-to-3d-object` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ----------------- | ------ | -------- | --------------------------------- | | `tool` | string | Yes | `image-to-3d-object` | | `input.model` | string | Yes | `hunyuan3d-v21` | | `input.image_url` | string | Yes | URL of the image to convert to 3D | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "image-to-3d-object", "input": { "model": "hunyuan3d-v21", "image_url": "https://example.com/my-object.jpg" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'image-to-3d-object', input: { model: 'hunyuan3d-v21', image_url: 'https://example.com/my-object.jpg' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'image-to-3d-object', 'input': { 'model': 'hunyuan3d-v21', 'image_url': 'https://example.com/my-object.jpg' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "image-to-3d-object", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Hunyuan 3D v3 Source: https://docs.artificialstudio.ai/3d/hunyuan3d-v3 POST https://api.artificialstudio.ai/api/run High-quality textured 3D models by Tencent. | | | | ----------- | -------------- | | **Credits** | 75 credits | | **Output** | GLB (3D model) | | **Tool** | `text-to-3d` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | -------------- | ------ | -------- | -------------------------------------------------------------- | | `tool` | string | Yes | `text-to-3d` | | `input.model` | string | Yes | `hunyuan3d-v3` | | `input.prompt` | string | Yes | Description of the 3D object to generate (max 1024 characters) | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "text-to-3d", "input": { "model": "hunyuan3d-v3", "prompt": "A medieval castle on a cliff" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'text-to-3d', input: { model: 'hunyuan3d-v3', prompt: 'A medieval castle on a cliff' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'text-to-3d', 'input': { 'model': 'hunyuan3d-v3', 'prompt': 'A medieval castle on a cliff' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "text-to-3d", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # InstantMesh Source: https://docs.artificialstudio.ai/3d/instantmesh POST https://api.artificialstudio.ai/api/run Create a 3D model from an image using InstantMesh. | | | | ----------- | -------------------- | | **Credits** | 7 credits | | **Output** | 3D model | | **Tool** | `image-to-3d-object` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ----------------- | ------ | -------- | --------------------------------- | | `tool` | string | Yes | `image-to-3d-object` | | `input.model` | string | Yes | `instantmesh` | | `input.image_url` | string | Yes | URL of the image to convert to 3D | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "image-to-3d-object", "input": { "model": "instantmesh", "image_url": "https://example.com/my-object.jpg" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'image-to-3d-object', input: { model: 'instantmesh', image_url: 'https://example.com/my-object.jpg' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'image-to-3d-object', 'input': { 'model': 'instantmesh', 'image_url': 'https://example.com/my-object.jpg' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "image-to-3d-object", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Meshy 6 Source: https://docs.artificialstudio.ai/3d/meshy-v6 POST https://api.artificialstudio.ai/api/run Realistic and production-ready 3D models by Meshy. | | | | ----------- | -------------- | | **Credits** | 160 credits | | **Output** | GLB (3D model) | | **Tool** | `text-to-3d` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | -------------- | ------ | -------- | ------------------------------------------------------------- | | `tool` | string | Yes | `text-to-3d` | | `input.model` | string | Yes | `meshy-v6` | | `input.prompt` | string | Yes | Description of the 3D object to generate (max 600 characters) | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "text-to-3d", "input": { "model": "meshy-v6", "prompt": "A stylized low-poly tree" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'text-to-3d', input: { model: 'meshy-v6', prompt: 'A stylized low-poly tree' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'text-to-3d', 'input': { 'model': 'meshy-v6', 'prompt': 'A stylized low-poly tree' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "text-to-3d", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Trellis 2 Source: https://docs.artificialstudio.ai/3d/trellis-2 POST https://api.artificialstudio.ai/api/run State-of-the-art 3D model generation with high-quality geometry and textures. | | | | ----------- | -------------- | | **Credits** | 60 credits | | **Output** | GLB (3D model) | | **Tool** | `text-to-3d` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body Despite the `text-to-3d` tool slug, Trellis 2 generates 3D models from an input image. Provide `image_url` instead of a prompt. | Parameter | Type | Required | Description | | ----------------- | ------ | -------- | --------------------------------- | | `tool` | string | Yes | `text-to-3d` | | `input.model` | string | Yes | `trellis-2` | | `input.image_url` | string | Yes | URL of the image to convert to 3D | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "text-to-3d", "input": { "model": "trellis-2", "image_url": "https://example.com/my-object.jpg" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'text-to-3d', input: { model: 'trellis-2', image_url: 'https://example.com/my-object.jpg' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'text-to-3d', 'input': { 'model': 'trellis-2', 'image_url': 'https://example.com/my-object.jpg' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "text-to-3d", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # TripoSR Source: https://docs.artificialstudio.ai/3d/triposr POST https://api.artificialstudio.ai/api/run Create a 3D model from an image using TripoSR. | | | | ----------- | -------------------- | | **Credits** | 4 credits | | **Output** | GLB (3D model) | | **Tool** | `image-to-3d-object` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ----------------- | ------ | -------- | --------------------------------- | | `tool` | string | Yes | `image-to-3d-object` | | `input.model` | string | Yes | `triposr` | | `input.image_url` | string | Yes | URL of the image to convert to 3D | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "image-to-3d-object", "input": { "model": "triposr", "image_url": "https://example.com/my-object.jpg" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'image-to-3d-object', input: { model: 'triposr', image_url: 'https://example.com/my-object.jpg' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'image-to-3d-object', 'input': { 'model': 'triposr', 'image_url': 'https://example.com/my-object.jpg' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "image-to-3d-object", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Get Account Source: https://docs.artificialstudio.ai/api/account GET https://api.artificialstudio.ai/api/account Retrieve your account details, including credits balance and current plan. Retrieve your account details, including credits balance and plan. ### Response Fields | Field | Type | Description | | ----------- | ------ | ----------------------------- | | `id` | string | User ID | | `email` | string | Account email | | `credits` | number | Available credits | | `plan` | string | Current plan: `free` or `pro` | | `createdAt` | string | Account creation date | ```bash bash theme={null} curl https://api.artificialstudio.ai/api/account \ -H "Authorization: YOUR_API_KEY" ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/account', { headers: { 'Authorization': 'YOUR_API_KEY' } }); const account = await response.json(); console.log(`Credits: ${account.credits}`); ``` ```python Python theme={null} import requests response = requests.get( 'https://api.artificialstudio.ai/api/account', headers={'Authorization': 'YOUR_API_KEY'} ) account = response.json() print(f"Credits: {account['credits']}") ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "email": "user@example.com", "credits": 1500, "plan": "pro", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Errors Source: https://docs.artificialstudio.ai/api/errors HTTP status codes, error response format, and how to handle API errors. The API uses standard HTTP status codes and returns errors in a consistent JSON format. ## Error format All errors return a JSON body with a `message` field: ```json theme={null} { "message": "Error message describing what went wrong" } ``` Validation errors include additional detail: ```json theme={null} { "message": "Validation failed", "errors": [ { "field": "tool", "message": "Required", "code": "invalid_type" } ] } ``` ## Status codes ### Client errors (4xx) | Status | Name | When it happens | | ------ | ----------------- | ------------------------------------------------------------ | | 400 | Bad Request | Invalid JSON, missing fields, invalid values, unknown fields | | 401 | Unauthorized | Missing or invalid API key | | 402 | Payment Required | Not enough credits | | 403 | Forbidden | Trying to access another user's resource | | 404 | Not Found | Invalid endpoint, tool, model, or generation ID | | 429 | Too Many Requests | Rate limit exceeded | ### Server errors (5xx) | Status | Name | What to do | | ------ | --------------------- | ---------------------------------------- | | 500 | Internal Server Error | Retry after a few seconds | | 502 | Bad Gateway | Retry after a few seconds | | 503 | Service Unavailable | Service is temporarily down, retry later | ## Handling errors ```javascript JavaScript theme={null} const generate = async (tool, input) => { const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool, input }) }); if (!response.ok) { const error = await response.json(); switch (response.status) { case 401: throw new Error('Invalid API key'); case 402: throw new Error('Insufficient credits'); case 429: throw new Error('Rate limit exceeded. Retry later.'); default: throw new Error(error.message || 'Request failed'); } } return response.json(); }; ``` ```python Python theme={null} import requests def generate(tool, input): response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={'tool': tool, 'input': input} ) if response.status_code == 401: raise Exception('Invalid API key') elif response.status_code == 402: raise Exception('Insufficient credits') elif response.status_code == 429: raise Exception('Rate limit exceeded. Retry later.') elif not response.ok: error = response.json() raise Exception(error.get('message', 'Request failed')) return response.json() ``` ## Common errors and solutions ### Invalid API key (401) ```json theme={null} { "message": "Authorization header is required" } ``` Check that your API key is correct and included in the `Authorization` header. Do not use the `Bearer` prefix. ### Insufficient credits (402) ```json theme={null} { "message": "You do not have enough credits to perform this action" } ``` Add credits at [Account Settings](https://app.artificialstudio.ai/account/settings). ### Tool not found (404) ```json theme={null} { "message": "Tool not found" } ``` Verify the tool slug. Use [`GET /api/tools`](/api/tools) to list available tools. ### Rate limit exceeded (429) ```json theme={null} { "message": "Too many API requests, please try again later" } ``` Wait before retrying. See [rate limits](/getting-started/authentication#rate-limits) for details on your plan's limits. ### Validation error (400) ```json theme={null} { "message": "Validation failed", "errors": [ { "field": "tool", "message": "Required", "code": "invalid_type" } ] } ``` Check the required parameters for your tool. The API rejects unknown fields — only send documented parameters. # Get Generation Source: https://docs.artificialstudio.ai/api/generation GET https://api.artificialstudio.ai/api/generations/{id} Check the status and retrieve the result of an AI generation, including the output URL. Get the current status and result of a generation. ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------ | | `Authorization` | string | Yes | Your API key | ### Path Parameters | Parameter | Type | Description | | --------- | ------ | ----------------- | | `id` | string | The generation ID | ### Response Fields | Field | Type | Description | | ----------- | -------------- | -------------------------------------------------------- | | `id` | string | Generation ID | | `status` | string | `pending`, `processing`, `uploading`, `success`, `error` | | `tool` | string | Tool used | | `output` | string \| null | URL to generated media | | `thumbnail` | string \| null | URL to thumbnail | | `error` | string \| null | Error message if failed | | `type` | string | Media type: `image`, `video`, `audio`, `text`, `object` | | `payload` | object | Original request parameters | | `createdAt` | string | Creation timestamp | ### Status Values | Status | Description | | ------------ | -------------------------- | | `pending` | Queued for processing | | `processing` | Generation in progress | | `uploading` | Uploading to storage | | `success` | Completed successfully | | `error` | Failed (see `error` field) | ```bash bash theme={null} curl https://api.artificialstudio.ai/api/generations/507f1f77bcf86cd799439011 \ -H "Authorization: YOUR_API_KEY" ``` ```javascript JavaScript theme={null} const response = await fetch( 'https://api.artificialstudio.ai/api/generations/507f1f77bcf86cd799439011', { headers: { 'Authorization': 'YOUR_API_KEY' } } ); const generation = await response.json(); ``` ```python Python theme={null} import requests response = requests.get( 'https://api.artificialstudio.ai/api/generations/507f1f77bcf86cd799439011', headers={'Authorization': 'YOUR_API_KEY'} ) generation = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "success", "tool": "create-image", "output": "https://files.artificialstudio.ai/generations/abc123.png", "thumbnail": "https://files.artificialstudio.ai/thumbnails/abc123.jpg", "error": null, "type": "image", "payload": { "model": "nano-banana", "prompt": "A serene mountain landscape" }, "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 404 theme={null} { "message": "Generation not found" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # List Generations Source: https://docs.artificialstudio.ai/api/generations GET https://api.artificialstudio.ai/api/generations Retrieve a paginated list of your AI generations with filtering by status. Retrieve a paginated list of your generations. ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------ | | `Authorization` | string | Yes | Your API key | ### Query Parameters | Parameter | Type | Default | Description | | --------- | ------ | ------- | -------------------------------------------------------------------------- | | `limit` | number | 20 | Results per page (max 100) | | `offset` | number | 0 | Number of results to skip | | `status` | string | - | Filter by status: `pending`, `processing`, `uploading`, `success`, `error` | ### Response Fields | Field | Type | Description | | -------------------- | -------------- | -------------------------------------------------------- | | `data` | array | List of generations | | `data[].id` | string | Generation ID | | `data[].status` | string | `pending`, `processing`, `uploading`, `success`, `error` | | `data[].tool` | string | Tool used | | `data[].output` | string \| null | URL to generated media | | `data[].thumbnail` | string \| null | URL to thumbnail | | `data[].error` | string \| null | Error message if failed | | `data[].type` | string | Media type: `image`, `video`, `audio`, `text`, `object` | | `data[].createdAt` | string | Creation timestamp | | `pagination.total` | number | Total number of generations | | `pagination.limit` | number | Current page size | | `pagination.offset` | number | Current offset | | `pagination.hasMore` | boolean | Whether more results exist | ```bash bash theme={null} curl "https://api.artificialstudio.ai/api/generations?limit=10" \ -H "Authorization: YOUR_API_KEY" ``` ```javascript JavaScript theme={null} const response = await fetch( 'https://api.artificialstudio.ai/api/generations?limit=10', { headers: { 'Authorization': 'YOUR_API_KEY' } } ); const { data, pagination } = await response.json(); ``` ```python Python theme={null} import requests response = requests.get( 'https://api.artificialstudio.ai/api/generations', headers={'Authorization': 'YOUR_API_KEY'}, params={'limit': 10} ) result = response.json() generations = result['data'] ``` ```json 200 theme={null} { "data": [ { "id": "507f1f77bcf86cd799439011", "status": "success", "tool": "create-image", "output": "https://files.artificialstudio.ai/...", "thumbnail": "https://files.artificialstudio.ai/...", "error": null, "type": "image", "createdAt": "2024-01-15T10:30:00.000Z" } ], "pagination": { "total": 150, "limit": 10, "offset": 0, "hasMore": true } } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Create Generation Source: https://docs.artificialstudio.ai/api/run POST https://api.artificialstudio.ai/api/run Generate images, videos, audio, or 3D models by sending a request to the Artificial Studio API. Create a new generation by specifying a tool and input parameters. Returns immediately with a generation ID while processing happens asynchronously. ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | -------------------------- | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | Must be `application/json` | ### Body | Parameter | Type | Required | Description | | -------------- | ------ | -------- | ---------------------------------------------------------------------------------------------------- | | `tool` | string | Yes | Tool identifier (e.g., `create-image`, `create-video`). Use `GET /api/tools` to list available tools | | `input` | object | Yes | Tool-specific parameters | | `input.model` | string | No | Model to use. Defaults to the tool's primary model | | `input.prompt` | string | Varies | Text prompt for generation | | `webhook` | string | No | HTTPS URL to receive completion notifications | The request body is validated strictly — unknown fields will be rejected with a `400` error. ### Response Fields | Field | Type | Description | | ----------- | ------ | ----------------------------- | | `id` | string | Unique generation identifier | | `status` | string | Initial status (`processing`) | | `tool` | string | Tool used for this generation | | `createdAt` | string | ISO 8601 timestamp | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "create-image", "input": { "prompt": "A serene Japanese garden with cherry blossoms" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'create-image', input: { prompt: 'A serene Japanese garden with cherry blossoms' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'create-image', 'input': { 'prompt': 'A serene Japanese garden with cherry blossoms' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "create-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 404 theme={null} { "message": "Tool not found" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Get Tool Details Source: https://docs.artificialstudio.ai/api/tool GET https://api.artificialstudio.ai/api/tools/{slug} Get information about a specific AI tool, including its available models and parameters. Get information about a tool, including its available models. ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------ | | `Authorization` | string | Yes | Your API key | ### Path Parameters | Parameter | Type | Description | | --------- | ------ | ------------------- | | `slug` | string | The tool identifier | ### Response Fields | Field | Type | Description | | --------------- | ------ | --------------------------------------- | | `slug` | string | Tool identifier | | `name` | string | Display name | | `description` | string | Tool description | | `type` | string | Tool category | | `outputType` | string | Output media type | | `thumbnail` | string | Tool thumbnail URL | | `models` | array | Available models | | `models[].slug` | string | Model identifier (use in `input.model`) | | `models[].name` | string | Model display name | ```bash bash theme={null} curl https://api.artificialstudio.ai/api/tools/create-image \ -H "Authorization: YOUR_API_KEY" ``` ```javascript JavaScript theme={null} const response = await fetch( 'https://api.artificialstudio.ai/api/tools/create-image', { headers: { 'Authorization': 'YOUR_API_KEY' } } ); const tool = await response.json(); ``` ```python Python theme={null} import requests response = requests.get( 'https://api.artificialstudio.ai/api/tools/create-image', headers={'Authorization': 'YOUR_API_KEY'} ) tool = response.json() ``` ```json 200 theme={null} { "slug": "create-image", "name": "Create Image", "description": "Generate images from text prompts", "type": "image", "outputType": "image", "thumbnail": "https://...", "models": [ { "slug": "nano-banana", "name": "Nano Banana" }, { "slug": "flux-2-flex", "name": "FLUX 2 Flex" } ] } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 404 theme={null} { "message": "Tool not found" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # List Tools Source: https://docs.artificialstudio.ai/api/tools GET https://api.artificialstudio.ai/api/tools Retrieve all available AI tools for image, video, audio, and 3D generation. Retrieve a list of all available AI tools. ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------ | | `Authorization` | string | Yes | Your API key | ### Response Fields | Field | Type | Description | | -------------------- | ------ | -------------------------------------------------------------- | | `data` | array | List of tools | | `data[].slug` | string | Tool identifier (use in `/api/run`) | | `data[].name` | string | Display name | | `data[].description` | string | Tool description | | `data[].type` | string | Tool category | | `data[].outputType` | string | Output media type: `image`, `video`, `audio`, `text`, `object` | | `data[].thumbnail` | string | Tool thumbnail URL | ```bash bash theme={null} curl https://api.artificialstudio.ai/api/tools \ -H "Authorization: YOUR_API_KEY" ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/tools', { headers: { 'Authorization': 'YOUR_API_KEY' } }); const { data } = await response.json(); ``` ```python Python theme={null} import requests response = requests.get( 'https://api.artificialstudio.ai/api/tools', headers={'Authorization': 'YOUR_API_KEY'} ) tools = response.json()['data'] ``` ```json 200 theme={null} { "data": [ { "slug": "create-image", "name": "Create Image", "description": "Generate images from text prompts", "type": "image", "outputType": "image", "thumbnail": "https://..." }, { "slug": "create-video", "name": "Create Video", "description": "Create videos from text or images", "type": "video", "outputType": "video", "thumbnail": "https://..." } ] } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Webhooks Source: https://docs.artificialstudio.ai/api/webhook Receive real-time notifications when generations complete instead of polling. Webhooks deliver generation results to your server in real-time. Instead of polling `GET /api/generations/:id` repeatedly, you receive a single `POST` request when the generation is done. ## Polling vs. webhooks | | Polling | Webhooks | | -------------- | ---------------------------- | -------------------------------- | | **Setup** | No setup needed | Requires a public HTTPS endpoint | | **Latency** | Depends on poll interval | Near-instant notification | | **Efficiency** | Many requests per generation | One request per generation | | **Best for** | Quick scripts, testing | Production applications | ## How to use webhooks Add a `webhook` URL to your `/api/run` request: ```bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "create-image", "input": { "prompt": "A mountain landscape at dawn" }, "webhook": "https://your-server.com/webhook" }' ``` Webhook URLs must use HTTPS. Private or internal URLs (localhost, private IPs) are rejected for security. ## Webhook payload When a generation completes successfully, we send a `POST` request to your URL with these headers and body: ### Headers | Header | Value | | ------------------ | ------------------- | | `Content-Type` | `application/json` | | `X-Webhook-Source` | `artificial-studio` | | `X-Media-Id` | The generation ID | ### Body ```json theme={null} { "id": "507f1f77bcf86cd799439011", "status": "success", "tool": "create-image", "type": "image", "output": "https://files.artificialstudio.ai/generations/abc123.png", "thumbnail": "https://files.artificialstudio.ai/thumbnails/abc123.jpg", "createdAt": "2024-01-15T10:30:00.000Z" } ``` | Field | Type | Description | | ----------- | -------------- | ---------------------------------------------------- | | `id` | string | Generation identifier | | `status` | string | Always `success` (webhooks are only sent on success) | | `tool` | string | Tool used | | `type` | string | `image`, `video`, `audio`, `text`, or `object` | | `output` | string | URL to the generated media | | `thumbnail` | string \| null | Thumbnail URL (null for audio) | | `createdAt` | string | ISO 8601 timestamp | ## Example handlers ```javascript Express theme={null} app.post('/webhook', express.json(), (req, res) => { const { id, output, tool, type } = req.body; console.log(`Generation ${id} completed: ${output}`); // Save to database, notify user, etc. res.status(200).send('OK'); }); ``` ```python Flask theme={null} from flask import Flask, request app = Flask(__name__) @app.route('/webhook', methods=['POST']) def webhook(): data = request.json print(f"Generation {data['id']} completed: {data['output']}") # Save to database, notify user, etc. return 'OK', 200 ``` ```javascript Next.js theme={null} export async function POST(request) { const data = await request.json(); console.log(`Generation ${data.id} completed: ${data.output}`); // Save to database, notify user, etc. return new Response('OK', { status: 200 }); } ``` ## Retries If your endpoint does not return a `200` status, we retry with exponential backoff: | Retry | Delay | | ----- | ---------- | | 1 | 5 seconds | | 2 | 15 seconds | | 3 | 1 minute | | 4 | 5 minutes | | 5 | 15 minutes | | 6 | 1 hour | | 7 | 6 hours | | 8 | 12 hours | | 9 | 24 hours | After 9 failed retries, the webhook is marked as failed. ## Best practices **Return a 200 quickly.** Your endpoint should respond within 5 seconds. Process the webhook data asynchronously if needed. * **Handle duplicates** — Retries may deliver the same webhook twice. Use the `id` field to deduplicate. * **Validate the payload** — Check that the data matches expected formats before processing. * **Log everything** — Keep logs of received webhooks for debugging. ## Requirements Your webhook endpoint must: * Be **publicly accessible** (no localhost or private IPs) * Use **HTTPS** * Accept **POST** requests with a JSON body * Return **200** to acknowledge receipt # AudioGen Source: https://docs.artificialstudio.ai/audio/audiogen POST https://api.artificialstudio.ai/api/run Create sound effects from text descriptions using Meta's AudioGen. | | | | ----------- | --------------- | | **Credits** | 2 credits | | **Tool** | `sound-effects` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | -------------- | ------ | -------- | -------------------------------------------------------- | | `tool` | string | Yes | `sound-effects` | | `input.model` | string | Yes | `audiogen` | | `input.prompt` | string | Yes | Description of the sound effect to generate (in English) | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "sound-effects", "input": { "model": "audiogen", "prompt": "Thunder rolling over distant hills" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'sound-effects', input: { model: 'audiogen', prompt: 'Thunder rolling over distant hills' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'sound-effects', 'input': { 'model': 'audiogen', 'prompt': 'Thunder rolling over distant hills' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "sound-effects", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Demucs Source: https://docs.artificialstudio.ai/audio/demucs POST https://api.artificialstudio.ai/api/run Separate instruments from songs using Meta's Demucs. | | | | ----------- | --------------- | | **Credits** | 3 credits | | **Tool** | `song-splitter` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ------------------ | ------ | -------- | ------------------------------------------------------------------------------------------ | | `tool` | string | Yes | `song-splitter` | | `input.model` | string | Yes | `demucs` | | `input.file` | string | Yes | URL of the audio file to process | | `input.instrument` | string | No | Instrument to extract. Options: `drums`, `other` (instrumental, default), `vocals`, `bass` | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "song-splitter", "input": { "model": "demucs", "file": "https://example.com/my-song.mp3", "instrument": "vocals" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'song-splitter', input: { model: 'demucs', file: 'https://example.com/my-song.mp3', instrument: 'vocals' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'song-splitter', 'input': { 'model': 'demucs', 'file': 'https://example.com/my-song.mp3', 'instrument': 'vocals' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "song-splitter", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # DrumGen Source: https://docs.artificialstudio.ai/audio/drumgen POST https://api.artificialstudio.ai/api/run Create random drum beats using AI. | | | | ----------- | ---------------- | | **Credits** | Free | | **Tool** | `drum-generator` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ------------- | ------ | -------- | -------------------------------------------------------------- | | `tool` | string | Yes | `drum-generator` | | `input.model` | string | Yes | `drumgen` | | `input.seed` | number | No | Random seed for reproducibility. Use `-1` for random (default) | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "drum-generator", "input": { "model": "drumgen" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'drum-generator', input: { model: 'drumgen' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'drum-generator', 'input': { 'model': 'drumgen' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "drum-generator", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # ElevenLabs Dubbing Source: https://docs.artificialstudio.ai/audio/elevenlabs-dubbing POST https://api.artificialstudio.ai/api/run Translate audio to another language while preserving the original voice. | | | | ----------- | ------------------- | | **Credits** | 1 credit per second | | **Tool** | `translate-audio` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ------------------- | ------ | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `tool` | string | Yes | `translate-audio` | | `input.model` | string | Yes | `elevenlabs-dubbing` | | `input.audio_url` | string | Yes | URL of the audio file to translate | | `input.target_lang` | string | No | Target language code (default: `es`). Options: `en`, `es`, `fr`, `de`, `it`, `pt`, `zh`, `ja`, `ko`, `ru`, `ar`, `hi`, `nl`, `pl`, `tr`, `sv`, `da`, `fi`, `el`, `cs`, `ro`, `id`, `fil`, `uk`, `bg`, `ms`, `sk`, `hr`, `ta`, `vi`, `th` | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "translate-audio", "input": { "model": "elevenlabs-dubbing", "audio_url": "https://example.com/my-audio.mp3", "target_lang": "es" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'translate-audio', input: { model: 'elevenlabs-dubbing', audio_url: 'https://example.com/my-audio.mp3', target_lang: 'es' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'translate-audio', 'input': { 'model': 'elevenlabs-dubbing', 'audio_url': 'https://example.com/my-audio.mp3', 'target_lang': 'es' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "translate-audio", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # ElevenLabs Music Source: https://docs.artificialstudio.ai/audio/elevenlabs-music POST https://api.artificialstudio.ai/api/run Generate music from text descriptions using ElevenLabs. | | | | ----------- | ------------------- | | **Credits** | 1 credit per second | | **Tool** | `create-music` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ---------------- | ------ | -------- | ------------------------------------------------------------------------------------------------------- | | `tool` | string | Yes | `create-music` | | `input.model` | string | Yes | `elevenlabs-music` | | `input.prompt` | string | Yes | Description of the music to generate | | `input.duration` | number | No | Duration in seconds. Options: `3`, `5`, `10`, `15`, `20`, `30`, `45`, `60`, `90`, `120` (default: `30`) | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "create-music", "input": { "model": "elevenlabs-music", "prompt": "An upbeat electronic track with a catchy melody", "duration": 30 } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'create-music', input: { model: 'elevenlabs-music', prompt: 'An upbeat electronic track with a catchy melody', duration: 30 } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'create-music', 'input': { 'model': 'elevenlabs-music', 'prompt': 'An upbeat electronic track with a catchy melody', 'duration': 30 } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "create-music", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # ElevenLabs Sound Effects Source: https://docs.artificialstudio.ai/audio/elevenlabs-sound-effects POST https://api.artificialstudio.ai/api/run Generate sound effects from text descriptions using ElevenLabs. | | | | ----------- | ------------------- | | **Credits** | 1 credit per second | | **Tool** | `sound-effects` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ------------------------ | ------ | -------- | -------------------------------------------------------------------------------------- | | `tool` | string | Yes | `sound-effects` | | `input.model` | string | Yes | `elevenlabs-sound-effects` | | `input.prompt` | string | Yes | Description of the sound effect | | `input.duration` | string | No | Options: `auto`, `1`, `2`, `3`, `5`, `10`, `15`, `20`, `30` (default: `auto`) | | `input.prompt_influence` | number | No | Prompt influence strength. Options: `0.1`, `0.3`, `0.5`, `0.7`, `0.9` (default: `0.3`) | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "sound-effects", "input": { "model": "elevenlabs-sound-effects", "prompt": "Thunder rumbling in the distance", "duration": 5 } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'sound-effects', input: { model: 'elevenlabs-sound-effects', prompt: 'Thunder rumbling in the distance', duration: 5 } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'sound-effects', 'input': { 'model': 'elevenlabs-sound-effects', 'prompt': 'Thunder rumbling in the distance', 'duration': 5 } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "sound-effects", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # ElevenLabs TTS Source: https://docs.artificialstudio.ai/audio/elevenlabs-tts POST https://api.artificialstudio.ai/api/run Transform text into natural-sounding speech using ElevenLabs. | | | | ----------- | -------------------------- | | **Credits** | 1 credit per 10 characters | | **Tool** | `text-to-speech` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | -------------- | ------ | -------- | ---------------------------------------------------------- | | `tool` | string | Yes | `text-to-speech` | | `input.model` | string | Yes | `elevenlabs-tts` | | `input.prompt` | string | Yes | Text to convert to speech (max 3000 characters) | | `input.voice` | string | No | Voice to use (default: `Adam`). See available voices below | ### Available Voices Adam, Alice, Antoni, Aria, Bill, Brian, Callum, Charlotte, Chris, Daniel, Eric, Matilda, Jessica, Laura, Liam, Lily, River, Roger, Sarah, Will. ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "text-to-speech", "input": { "model": "elevenlabs-tts", "prompt": "Hello, welcome to Artificial Studio!", "voice": "Aria" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'text-to-speech', input: { model: 'elevenlabs-tts', prompt: 'Hello, welcome to Artificial Studio!', voice: 'Aria' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'text-to-speech', 'input': { 'model': 'elevenlabs-tts', 'prompt': 'Hello, welcome to Artificial Studio!', 'voice': 'Aria' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "text-to-speech", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # ElevenLabs Voice Isolator Source: https://docs.artificialstudio.ai/audio/elevenlabs-voice-isolator POST https://api.artificialstudio.ai/api/run Remove background noise and isolate voices from audio. | | | | ----------- | ------------------- | | **Credits** | 1 credit per second | | **Tool** | `voice-isolator` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ----------------- | ------ | -------- | ------------------------------ | | `tool` | string | Yes | `voice-isolator` | | `input.model` | string | Yes | `elevenlabs-voice-isolator` | | `input.audio_url` | string | Yes | URL of the audio file to clean | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "voice-isolator", "input": { "model": "elevenlabs-voice-isolator", "audio_url": "https://example.com/noisy-audio.mp3" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'voice-isolator', input: { model: 'elevenlabs-voice-isolator', audio_url: 'https://example.com/noisy-audio.mp3' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'voice-isolator', 'input': { 'model': 'elevenlabs-voice-isolator', 'audio_url': 'https://example.com/noisy-audio.mp3' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "voice-isolator", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # MusicGen Source: https://docs.artificialstudio.ai/audio/musicgen POST https://api.artificialstudio.ai/api/run Create music from a simple text description using Meta's MusicGen. | | | | ----------- | -------------- | | **Credits** | 3 credits | | **Tool** | `create-music` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | -------------- | ------ | -------- | ------------------------------------ | | `tool` | string | Yes | `create-music` | | `input.model` | string | Yes | `musicgen` | | `input.prompt` | string | Yes | Description of the music to generate | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "create-music", "input": { "model": "musicgen", "prompt": "Upbeat electronic music with a catchy melody" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'create-music', input: { model: 'musicgen', prompt: 'Upbeat electronic music with a catchy melody' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'create-music', 'input': { 'model': 'musicgen', 'prompt': 'Upbeat electronic music with a catchy melody' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "create-music", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # OpenAI TTS Source: https://docs.artificialstudio.ai/audio/openai-tts POST https://api.artificialstudio.ai/api/run Transform text into high-quality speech using OpenAI's TTS. | | | | ----------- | --------------------------- | | **Credits** | 1 credit per 100 characters | | **Tool** | `text-to-speech` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | -------------- | ------ | -------- | ------------------------------------------------------------------------------------ | | `tool` | string | Yes | `text-to-speech` | | `input.model` | string | Yes | `openai-tts` | | `input.prompt` | string | Yes | Text to convert to speech (max 3000 characters) | | `input.voice` | string | No | Voice to use. Options: `alloy` (default), `echo`, `fable`, `onyx`, `nova`, `shimmer` | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "text-to-speech", "input": { "model": "openai-tts", "prompt": "Hello, welcome to Artificial Studio!", "voice": "nova" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'text-to-speech', input: { model: 'openai-tts', prompt: 'Hello, welcome to Artificial Studio!', voice: 'nova' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'text-to-speech', 'input': { 'model': 'openai-tts', 'prompt': 'Hello, welcome to Artificial Studio!', 'voice': 'nova' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "text-to-speech", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Authentication Source: https://docs.artificialstudio.ai/getting-started/authentication Get your API key and authenticate requests to the Artificial Studio API. All API requests require an API key passed in the `Authorization` header. ## Get your API key Go to [Artificial Studio](https://app.artificialstudio.ai) and sign in to your account. Navigate to [API Keys](https://app.artificialstudio.ai/account/api-keys) and click **Create API Key**. Copy and save your key. It is only shown once. Your API key is only displayed once. Store it in an environment variable or secrets manager — not in your source code. ## Using your API key Include the key in the `Authorization` header of every request: ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Authorization: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"tool": "create-image", "input": {"prompt": "Hello world"}}' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Authorization': process.env.ARTIFICIAL_STUDIO_API_KEY, 'Content-Type': 'application/json' }, body: JSON.stringify({ tool: 'create-image', input: { prompt: 'Hello world' } }) }); ``` ```python Python theme={null} import requests import os response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Authorization': os.environ['ARTIFICIAL_STUDIO_API_KEY'], 'Content-Type': 'application/json' }, json={ 'tool': 'create-image', 'input': {'prompt': 'Hello world'} } ) ``` Pass your API key directly in the `Authorization` header. Do **not** use the `Bearer` prefix. ## Security best practices * **Never expose your API key** in client-side code or public repositories * **Use environment variables** to store your key * **Rotate keys regularly** if you suspect they have been compromised * **Use separate keys** for development and production ## Rate limits | Endpoint | Free | Pro | | --------------- | ---------- | ----------- | | `POST /api/run` | 20 req/min | 60 req/min | | `GET` endpoints | 60 req/min | 200 req/min | When you exceed the rate limit, the API returns `429 Too Many Requests`. Wait before retrying. ## Credits Each generation consumes credits. The cost depends on the tool and model — check each model's documentation page for pricing. * View your balance at [Account Settings](https://app.artificialstudio.ai/account/settings) * Running out of credits returns `402 Payment Required` # Introduction Source: https://docs.artificialstudio.ai/getting-started/introduction Generate images, videos, audio, and 3D models with the Artificial Studio API. Artificial Studio provides a single API to generate images, videos, audio, and 3D models using state-of-the-art AI models. Send a request, get a result — it's that simple. ## Base URL All API requests use the following base URL: ``` https://api.artificialstudio.ai ``` ## How it works Every generation follows the same three-step pattern: Call `POST /api/run` with a tool, model, and input parameters. You get back a generation ID immediately. Poll `GET /api/generations/:id` or use [webhooks](/api/webhook) to get notified when the generation is ready. The completed generation includes an `output` URL pointing to your generated media. ## Quick example ```bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "create-image", "input": { "prompt": "A serene mountain landscape at sunset" } }' ``` ```json theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "create-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ## Available tools | Tool | Description | Example models | | ------------------- | --------------------------------- | ---------------------------------------- | | `create-image` | Generate images from text prompts | Nano Banana, Flux 2 Flex, Google Image 4 | | `create-video` | Create videos from text or images | Wan v2.2, Kling O3, Runway Gen4 | | `text-to-speech` | Convert text to natural speech | OpenAI TTS, ElevenLabs TTS | | `create-music` | Generate music from text prompts | MusicGen | | `sound-effects` | Generate sound effects | AudioGen | | `edit-image` | Edit images with AI | Nano Banana Edit, Seedream 4.0 Edit | | `upscale-image` | Enhance image resolution | Clarity Upscaler | | `remove-background` | Remove backgrounds from images | Background Remover | | `animate-image` | Animate a still image into video | Wan v2.2 Image to Video | | `image-to-3d` | Convert images to 3D models | TripoSR, InstantMesh | Use `GET /api/tools` to see the full list of available tools and models. ## Next steps Create an API key and authenticate your requests. Generate your first image in under a minute. See the full API reference for creating generations. Explore available models and their parameters. # Quick Start Source: https://docs.artificialstudio.ai/getting-started/quick-start Generate your first AI image in under a minute. This guide walks you through making your first API request. You will generate an image, poll for the result, and get the output URL. ## Prerequisites You need an [API key](/getting-started/authentication). If you do not have one, create it now — it takes 30 seconds. ## 1. Create a generation Send a `POST` request to `/api/run` with a tool and prompt: ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "create-image", "input": { "prompt": "A futuristic city at sunset, cyberpunk style, neon lights" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'create-image', input: { prompt: 'A futuristic city at sunset, cyberpunk style, neon lights' } }) }); const data = await response.json(); console.log(data.id); // Save this to check status ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'create-image', 'input': { 'prompt': 'A futuristic city at sunset, cyberpunk style, neon lights' } } ) data = response.json() print(data['id']) # Save this to check status ``` The API returns immediately with a generation ID: ```json theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "create-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ## 2. Poll for the result Check the generation status every few seconds until it completes: ```bash bash theme={null} curl https://api.artificialstudio.ai/api/generations/507f1f77bcf86cd799439011 \ -H "Authorization: YOUR_API_KEY" ``` ```javascript JavaScript theme={null} const poll = async (id) => { while (true) { const res = await fetch( `https://api.artificialstudio.ai/api/generations/${id}`, { headers: { 'Authorization': 'YOUR_API_KEY' } } ); const gen = await res.json(); if (gen.status === 'success') return gen; if (gen.status === 'error') throw new Error(gen.error); await new Promise(r => setTimeout(r, 2000)); } }; const result = await poll(data.id); console.log(result.output); // URL to your image ``` ```python Python theme={null} import time def poll(generation_id): while True: res = requests.get( f'https://api.artificialstudio.ai/api/generations/{generation_id}', headers={'Authorization': 'YOUR_API_KEY'} ) gen = res.json() if gen['status'] == 'success': return gen if gen['status'] == 'error': raise Exception(gen['error']) time.sleep(2) result = poll(data['id']) print(result['output']) # URL to your image ``` When the generation completes, you get the output URL: ```json theme={null} { "id": "507f1f77bcf86cd799439011", "status": "success", "output": "https://files.artificialstudio.ai/generations/abc123.png", "thumbnail": "https://files.artificialstudio.ai/thumbnails/abc123.jpg", "tool": "create-image", "type": "image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ## 3. Use webhooks instead (recommended) Polling works, but webhooks are better for production. Add a `webhook` URL to your request and the API will `POST` the result to your server when the generation finishes: ```bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "create-image", "input": { "prompt": "A futuristic city at sunset" }, "webhook": "https://your-server.com/webhook" }' ``` See [Webhooks](/api/webhook) for setup details and best practices. ## Next steps Full details on the `/api/run` endpoint. See all available models and their parameters. Set up real-time notifications for completed generations. Discover all available tools and capabilities. # Account settings Source: https://docs.artificialstudio.ai/guide/account-settings Manage your Artificial Studio account, API keys, and subscription. Your account settings let you manage your profile, subscription, API keys, and more. ## Account pages | Page | What you can do | | ------------ | ------------------------------------------------------ | | **Settings** | Manage your account and subscription | | **Usage** | View credit balance, transaction history, and spending | | **API Keys** | Create and manage API keys for programmatic access | Access these pages by clicking your profile icon and navigating to the **Account** section. ## API keys API keys let you use Artificial Studio programmatically through the API. You can create multiple keys for different projects or environments. Navigate to [app.artificialstudio.ai/account/api-keys](https://app.artificialstudio.ai/account/api-keys). Click **Create API Key**. Your new key is displayed once — copy it immediately. Save the key in an environment variable or secrets manager. Do not share it or commit it to source code. For full API documentation, see the [API Reference](/getting-started/introduction). ## Change your plan To upgrade or downgrade your subscription: 1. Go to **Account > Settings** 2. Click **Manage Subscription** 3. Choose your new plan When upgrading, you get immediate access to the new plan's benefits. When downgrading, the change takes effect at the start of your next billing cycle. ## Delete your account Deleting your account is permanent and irreversible. All your creations, API keys, credits, and data will be permanently deleted. To delete your account: 1. Go to **Account > Settings** 2. Scroll to the **Danger Zone** section 3. Type `DELETE` to confirm 4. Click **Delete Account** ## Get help If you need support, contact us at [hi@artificialstudio.ai](mailto:hi@artificialstudio.ai). You can also reach us through the **Support** link in the documentation header. # Create your account Source: https://docs.artificialstudio.ai/guide/create-account Sign up for Artificial Studio and start creating with AI in seconds. Creating an account is free and takes less than a minute. No credit card required. Open [app.artificialstudio.ai](https://app.artificialstudio.ai) in your browser. Choose one of the available sign-in methods: | Method | How it works | | -------------- | ------------------------------------------------------ | | **Magic link** | Enter your email and click the link sent to your inbox | | **Google** | One-click sign-in with your Google account | | **GitHub** | Sign in with your GitHub account | | **Discord** | Sign in with your Discord account | If you are new, your account is created automatically on first sign-in. After signing in, you land on the **Tools** page where you can browse all available AI tools and start generating. New users receive free credits to try the platform. You can start creating right away without a subscription. ## Next steps Generate your first AI image step by step. Learn how credits work and choose a plan. # Credits and pricing Source: https://docs.artificialstudio.ai/guide/credits-and-pricing Understand how credits work, choose a plan, and manage your billing on Artificial Studio. Credits are the currency of Artificial Studio. Every generation costs credits, and the cost depends on the tool and model you use. ## How credits work * Each tool displays its credit cost **before** you generate, so you always know the price upfront. * Credits are deducted when you start a generation. * If a generation fails, your credits are **refunded automatically**. * Credits **never expire** and roll over month to month. New users receive free credits when they sign up, so you can try the platform before committing to a plan. ## Plans Artificial Studio offers four subscription plans. All plans include access to every tool and model on the platform. | Plan | Best for | | -------------- | ---------------------------------------- | | **Starter** | Casual users exploring AI generation | | **Creator** | Regular creators who generate frequently | | **Pro** | Power users and professionals | | **Enterprise** | Large teams with custom needs | Visit [app.artificialstudio.ai/pricing](https://app.artificialstudio.ai/pricing) for current plan prices and credit amounts. ### What all plans include * Access to **45+ AI models** * **Commercial usage rights** — you own what you create * **API access** for programmatic use * Credits that **never expire** * Credits that **roll over** month to month * **Priority support** ### Additional plan features | Feature | Starter | Creator | Pro | Enterprise | | ----------------------------- | ------- | ------- | --- | ---------- | | Priority processing | | Yes | Yes | Yes | | Priority access to new models | | | Yes | Yes | ## Buy extra credits Already on a plan but need more? You can purchase additional credit packs anytime. Extra credits stack on top of your monthly allowance and never expire. Go to [app.artificialstudio.ai/pricing](https://app.artificialstudio.ai/pricing) while signed in to see available credit packs. ## Check your balance and usage Click your profile icon and navigate to **Account > Usage**. Your current credit balance is displayed at the top of the page. Scroll down to see a detailed log of every transaction — generations, purchases, and refunds — with amounts and dates. ## Frequently asked questions **What happens when I run out of credits?** You will not be able to generate until you add more credits, either by purchasing a credit pack or upgrading your plan. **Can I cancel my subscription?** Yes, you can cancel anytime. You keep your plan benefits until the end of the billing period, and your remaining credits stay in your account. **What happens to unused credits?** They roll over. If you have 500 credits left at the end of the month, they are added to your next month's allocation. **Can I get a refund?** There is a satisfaction guarantee within the first 7 days. After that, refunds are handled case by case. See the [Refund Policy](https://app.artificialstudio.ai/legal/refund-policy) for details. **What payment methods are accepted?** All major credit cards (Visa, MasterCard, American Express) through Stripe. Your card information is never stored on Artificial Studio servers. **Can I use my creations commercially?** Yes. All plans include full commercial usage rights. You own the content you create and can use it for personal projects, client work, marketing, products, and more. ## Next steps Manage your account and API keys. Get started with your first generation. # Edit and enhance images Source: https://docs.artificialstudio.ai/guide/edit-images Edit, upscale, remove backgrounds, and transform images with AI tools on Artificial Studio. Beyond generating new images, you can edit and enhance existing ones. Upload an image and use AI to modify it, increase its resolution, remove its background, or apply artistic styles. ## Editing tools | Tool | What it does | Cost | | ------------------------ | -------------------------------- | ---------- | | **Nano Banana Edit** | Fast AI image editing | 8 credits | | **Nano Banana Pro Edit** | High-quality AI editing | 30 credits | | **Seedream 4 Edit** | Creative image editing | 6 credits | | **Qwen Edit** | Versatile image editing | 6 credits | | **Bagel Edit** | Detailed image editing | 24 credits | | **Clarity Upscaler** | Enhance image resolution | 3 credits | | **Luma Reframe** | Change aspect ratio with AI fill | 4 credits | | **Background Remover** | Remove backgrounds from images | Free | | **Style Transfer** | Apply artistic styles | 5 credits | | **Depth Map** | Generate depth maps | 1 credit | | **Image to SVG** | Convert images to vector SVG | 1 credit | ## Edit an image with AI Go to **Tools** and select one of the image editing tools (for example, **Seedream 4 Edit**). Drag and drop an image or click to upload. You can also paste an image URL. Select the editing model you want to use. Write a prompt describing what you want to change. For example: "change the background to a tropical beach" or "make the person wear a red hat". Click **Generate** to apply the edit. Be specific about what you want to change. The more precise your description, the better the result. Reference specific elements in the image. ## Upscale an image Use **Clarity Upscaler** to increase the resolution of any image while preserving detail. Go to **Tools** and select **Upscale Image**. Upload the image you want to enhance. Click **Generate**. The upscaled image will have higher resolution and sharper details. ## Remove a background **Background Remover** automatically detects and removes the background from any image, leaving just the subject with a transparent background. This tool is free to use. ## Apply a style transfer **Style Transfer** takes your image and applies the visual style of a reference image. Upload both images, and the AI will blend them together. ## Next steps Create new images from text prompts. Find and manage all your creations. # Explore the gallery Source: https://docs.artificialstudio.ai/guide/explore Browse creations by the Artificial Studio community for inspiration and remixing. The **Explore** page is a public gallery of creations made on Artificial Studio. Browse what others have created to find inspiration and discover new ways to use the platform. ## Browse creations Go to **Explore** from the navigation menu. The gallery displays creations in a masonry grid layout, with new content loading as you scroll. Use the filter tabs to browse by type: * **All** — Everything * **Images** — AI-generated images * **Videos** — AI-generated videos * **Audio** — Speech, music, and sound effects * **3D** — 3D models ## Get inspired Click on any creation to see the details, including the tool and model used. This is a great way to discover prompts and techniques that produce good results. ## Remix a creation When you click on a creation in Explore, you can open it in the tool that was used to create it. The tool playground loads with the same inputs pre-filled, so you can use it as a starting point and modify the prompt or settings to create your own version. Explore is a great way to learn what different models can do. Try browsing before you generate to see examples of what each tool produces. # Make your first creation Source: https://docs.artificialstudio.ai/guide/first-creation Generate your first AI image in under a minute using the Artificial Studio web platform. This guide walks you through generating your first image. The process is the same for videos, audio, and 3D — pick a tool, set your inputs, and click **Generate**. Go to the **Tools** page. You will see a grid of all available AI tools. Use the category tabs at the top to filter by **Image**, **Video**, **Audio**, or **3D**. Click on a tool card — for example, **Create Image**. This opens the tool's playground where you can configure your generation. Use the model selector to pick an AI model. Each model has a different style, speed, and credit cost. The cost is displayed next to the model name. Type a description of what you want to create in the prompt field. Be specific — include details about style, lighting, colors, or mood. Click the **Generate** button. Your request is sent to the AI model and you will see a loading state while it processes. When the generation is complete, the output appears in the playground. Click it to view the full-size result. Your creation is automatically saved to your [Library](/guide/library). ## Tips for better results * **Be descriptive** — Instead of "a cat", try "a fluffy orange cat sitting on a windowsill, soft morning light, watercolor style". * **Mention style and medium** — Include terms like "photograph", "oil painting", "3D render", or "pencil sketch". * **Experiment with models** — Different models excel at different styles. Try the same prompt across models to see what works best. * **Iterate** — Use your first result as a starting point and refine your prompt based on what you see. Each generation costs credits. The credit cost is always displayed on the tool page before you generate, so there are no surprises. ## Next steps Explore all image tools and models. Create videos from text or images. Create speech, music, and sound effects. Find and manage your creations. # Generate audio Source: https://docs.artificialstudio.ai/guide/generate-audio Create speech, music, sound effects, and drum patterns with AI on Artificial Studio. Artificial Studio offers tools for generating different types of audio: natural-sounding speech, music tracks, sound effects, and drum patterns. You can also separate existing audio into individual stems. ## Audio tools | Tool | What it does | Cost | | ------------------------------- | ----------------------------------------------------- | --------------------------- | | **Text to Speech** (OpenAI) | Convert text to natural speech | 1 credit per 100 characters | | **Text to Speech** (ElevenLabs) | High-quality voice synthesis | 1 credit per 10 characters | | **Create Music** | Generate music from text descriptions | 3 credits | | **Sound Effects** | Generate sound effects from text | 2 credits | | **Create Drums** | Generate drum patterns | Free | | **Separate Audio** | Split audio into vocals, drums, bass, and other stems | 3 credits | ## Text to speech Go to **Tools** and select **Text to Speech**. Select **OpenAI TTS** for affordable, natural speech, or **ElevenLabs TTS** for premium voice quality with more voice options. Pick a voice from the available options. Each provider offers different voice styles. Type or paste the text you want to convert to speech. Click **Generate** to create your audio file. **OpenAI TTS** costs 1 credit per 100 characters and is great for most use cases. **ElevenLabs TTS** costs 1 credit per 10 characters but offers higher quality and more expressive voices. ## Create music Go to **Tools** and select **Create Music**. Write a prompt describing the genre, mood, instruments, and tempo. For example: "upbeat electronic music with synth pads, 120 BPM, energetic". Click **Generate**. The music track will be ready in a few seconds. ## Sound effects Use **Sound Effects** to generate any sound from a text description — footsteps, rain, explosions, animal sounds, ambient noise, and more. ## Audio separation **Separate Audio** splits an existing audio file into individual stems: vocals, drums, bass, and other instruments. Upload your audio file and the AI will separate the tracks automatically. This is useful for remixing, karaoke, or isolating specific parts of a song. ## Next steps Create videos and add audio to them. Find and manage your audio creations. # Generate images Source: https://docs.artificialstudio.ai/guide/generate-images Create AI-generated images from text prompts using models like Nano Banana, Google Image 4, and Seedream. Artificial Studio offers multiple image generation models, each with different strengths, speeds, and costs. You can generate images from scratch using text prompts, or use editing tools to modify existing images. ## Image tools | Tool | What it does | Cost | | --------------------- | --------------------------------- | -------------- | | **Create Image** | Generate images from text prompts | From 6 credits | | **Edit Image** | Modify existing images with AI | From 6 credits | | **Upscale Image** | Enhance image resolution | 3 credits | | **Remove Background** | Remove backgrounds from images | Free | | **Reframe** | Change aspect ratio with AI fill | 4 credits | | **Style Transfer** | Apply artistic styles to images | 5 credits | | **SVG Creator** | Generate SVG vector graphics | 16 credits | | **Depth Map** | Generate depth maps from images | 1 credit | | **Image to SVG** | Convert raster images to SVG | 1 credit | ## How to generate an image Go to **Tools** and select **Create Image**. Pick a model from the dropdown. See the comparison table below to choose the right one for your needs. Describe what you want to create. Be specific about the subject, style, colors, and mood. Click **Generate**. Your image will be ready in a few seconds. ## Choosing the right model | Model | Best for | Speed | Cost | | ------------------- | ----------------------------- | ------ | ---------- | | **Nano Banana** | Fast drafts, quick iterations | Fast | 8 credits | | **Seedream 4** | Creative and artistic images | Medium | 6 credits | | **Google Image 4** | Photorealism and detail | Medium | 10 credits | | **Flux 2 Flex** | Versatile, all-purpose | Medium | 6 credits | | **Nano Banana Pro** | Maximum quality | Slower | 30 credits | Start with **Nano Banana** or **Seedream 4** for quick experiments, then switch to **Google Image 4** or **Nano Banana Pro** when you need higher quality. ## Prompt writing tips Good prompts are specific and descriptive. Here are some examples: | Weak prompt | Better prompt | | ----------- | --------------------------------------------------------------------------------------------------------- | | A dog | A golden retriever running on a beach at sunset, waves in the background, warm cinematic lighting | | A city | An aerial view of Tokyo at night, neon lights reflecting on wet streets, cyberpunk atmosphere | | A portrait | A close-up portrait of an elderly woman with kind eyes, soft studio lighting, black and white photography | **Key elements to include in your prompts:** * **Subject** — What is in the image * **Style** — Photography, illustration, oil painting, 3D render * **Lighting** — Natural light, studio lighting, golden hour, dramatic shadows * **Mood** — Peaceful, energetic, mysterious, warm * **Composition** — Close-up, wide angle, aerial view, top-down ## Next steps Edit, upscale, and transform your images. Create videos from text or animate your images. # Generate videos Source: https://docs.artificialstudio.ai/guide/generate-videos Create AI-generated videos from text prompts or images using models like Wan v2.2, Kling O3, and Runway Gen4. You can create videos from text prompts or animate still images into video clips. The platform also offers tools to upscale, extend, translate, and add audio to videos. ## Video tools | Tool | What it does | Cost | | ------------------- | ------------------------------------ | ------------------- | | **Create Video** | Generate video from a text prompt | From 6 credits/sec | | **Animate Image** | Turn a still image into a video | From 10 credits/sec | | **Upscale Video** | Enhance video quality and resolution | 3 credits/sec | | **Extend Video** | Continue an existing video | 10 credits/sec | | **Translate Video** | Translate a speaker's language | 8 credits/sec | | **Add Audio** | Synchronize audio to a video | 1 credit/sec | ## Create a video from text Go to **Tools** and select **Create Video**. Pick a video model from the dropdown. See the comparison table below. Describe the scene, action, and camera movement you want. Be specific about motion and transitions. Click **Generate**. Video generation takes longer than images — typically 30 seconds to a few minutes depending on the model. ## Animate a still image You can turn any image into a short video clip: Go to **Tools** and select **Animate Image**. Upload the image you want to animate, or use an image URL. Write a prompt describing how you want the image to move — for example, "camera slowly zooms in, hair blowing in the wind". Click **Generate** and wait for the video to process. ## Choosing a video model | Model | Best for | Cost | Duration | | --------------- | ----------------------------- | -------------- | -------- | | **Wan v2.2** | General purpose, good quality | 10 credits/sec | 3-5 sec | | **Kling O3** | High quality, detailed motion | 44 credits/sec | 5-10 sec | | **Runway Gen4** | Cinematic, smooth motion | 6 credits/sec | 5-10 sec | Video generation takes longer than images. Most videos take 30 seconds to a few minutes to process. You can close the page and check your [Library](/guide/library) later — the video will be there when it is ready. ## Tips for better videos * **Describe motion** — Include camera movements like "panning left", "zooming in", or "tracking shot". * **Keep it simple** — AI video models work best with clear, focused scenes rather than complex multi-action sequences. * **Start with images** — If you have a specific visual in mind, generate an image first, then animate it for more control. ## Next steps Add speech, music, or sound effects to your videos. Create images to use as video starting frames. # Your library Source: https://docs.artificialstudio.ai/guide/library View, organize, search, and manage all your AI-generated creations in one place. Every creation you make on Artificial Studio is automatically saved to your library. You can access it anytime to view, download, organize, and manage your work. ## Browse your creations Go to **Library** from the navigation menu. Your creations are displayed in a grid, grouped by date, with the most recent at the top. ### Filter by type Use the tabs at the top to filter your creations: * **All** — Everything you have created * **Images** — Only images * **Videos** — Only videos * **Audio** — Only audio files ### Filter by tool Use the **Tools** dropdown to show creations from a specific tool — for example, only results from **Create Image** or **Text to Speech**. ### Search Type in the search bar to find creations by the prompt you used. This is useful when you have many creations and want to find a specific one. ## View a creation Click on any creation to open a detailed view. From here you can: * See the full-size output * View the prompt and settings used * Download the file * Add it to your favorites * Delete it ## Favorites To save a creation for quick access, click the **heart icon** on it. Access all your favorites from **Library > Favorites**. Favorites are useful for bookmarking your best results so you can find them easily later. ## Uploads You can upload your own files to use as inputs for editing tools (like image editing, animation, or audio separation). Access your uploads from **Library > Uploads**. You can upload files by dragging and dropping or clicking the upload button. ## Download Click the **download button** on any creation to save it to your device. The file downloads in its original format and quality. Your creations are stored in your account and accessible from any device. Sign in from anywhere to access your library. ## Next steps Browse creations by the community for inspiration. Understand how credits work. # Welcome to Artificial Studio Source: https://docs.artificialstudio.ai/guide/overview Learn how to use Artificial Studio to generate images, videos, audio, and 3D models with AI. Artificial Studio gives you access to 45+ AI models to create images, videos, audio, and 3D models — all from a single platform, no coding required. This guide covers everything you need to get started, from creating your account to generating your first creation. ## What you can create * **Images** — Generate photos, illustrations, and art from text prompts. Edit, upscale, and transform existing images. * **Videos** — Create videos from text or animate still images. Upscale, extend, translate, and add audio to videos. * **Audio** — Generate natural speech, music, sound effects, and drum patterns. Separate audio tracks into stems. * **3D models** — Convert images into 3D objects. ## Get started Sign up and start creating in seconds. Generate your first AI image step by step. Explore image models and learn prompting tips. Create videos from text or animate images. ## More resources Edit, upscale, remove backgrounds, and more. Manage and organize all your creations. Understand how credits work and choose a plan. Manage your account, API keys, and subscription. Looking for the API? See the [API Reference](/getting-started/introduction) to integrate Artificial Studio into your applications. # Background Remover Source: https://docs.artificialstudio.ai/image/background-remover POST https://api.artificialstudio.ai/api/run Fast and accurate background removal. | | | | ----------- | -------------------------- | | **Credits** | Free | | **Tool** | `image-background-remover` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ----------------- | ------ | -------- | -------------------------- | | `tool` | string | Yes | `image-background-remover` | | `input.model` | string | Yes | `background-remover` | | `input.image_url` | string | Yes | URL of the image | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "image-background-remover", "input": { "model": "background-remover", "image_url": "https://example.com/my-photo.jpg" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'image-background-remover', input: { model: 'background-remover', image_url: 'https://example.com/my-photo.jpg' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'image-background-remover', 'input': { 'model': 'background-remover', 'image_url': 'https://example.com/my-photo.jpg' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "image-background-remover", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Bagel Source: https://docs.artificialstudio.ai/image/bagel-edit POST https://api.artificialstudio.ai/api/run The best image editing model with superior quality results. | | | | ----------- | ------------ | | **Credits** | 24 credits | | **Tool** | `edit-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ------------------ | --------- | -------- | -------------------------------- | | `tool` | string | Yes | `edit-image` | | `input.model` | string | Yes | `bagel-edit` | | `input.prompt` | string | Yes | Description of the edit to apply | | `input.image_urls` | string\[] | Yes | Array of image URLs to edit | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "edit-image", "input": { "model": "bagel-edit", "prompt": "Remove the person from the background", "image_urls": ["https://example.com/my-photo.jpg"] } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'edit-image', input: { model: 'bagel-edit', prompt: 'Remove the person from the background', image_urls: ['https://example.com/my-photo.jpg'] } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'edit-image', 'input': { 'model': 'bagel-edit', 'prompt': 'Remove the person from the background', 'image_urls': ['https://example.com/my-photo.jpg'] } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "edit-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Clarity Upscaler Source: https://docs.artificialstudio.ai/image/clarity-upscaler POST https://api.artificialstudio.ai/api/run High-quality image upscaling with enhanced details. | | | | ----------- | ---------------- | | **Credits** | 3 credits | | **Tool** | `image-upscaler` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ----------------- | ------ | -------- | --------------------------- | | `tool` | string | Yes | `image-upscaler` | | `input.model` | string | Yes | `clarity-upscaler` | | `input.image_url` | string | Yes | URL of the image to upscale | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "image-upscaler", "input": { "model": "clarity-upscaler", "image_url": "https://example.com/low-res-image.jpg" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'image-upscaler', input: { model: 'clarity-upscaler', image_url: 'https://example.com/low-res-image.jpg' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'image-upscaler', 'input': { 'model': 'clarity-upscaler', 'image_url': 'https://example.com/low-res-image.jpg' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "image-upscaler", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Fashn v1.0 Source: https://docs.artificialstudio.ai/image/fashn-v1-0 POST https://api.artificialstudio.ai/api/run Virtual clothing try-on powered by Fashn v1.0. | | | | ----------- | ------------- | | **Credits** | 4 credits | | **Tool** | `try-clothes` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | --------------------------- | ------ | -------- | ---------------------------------------------------------------------------------------- | | `tool` | string | Yes | `try-clothes` | | `input.model` | string | Yes | `fashn-v1-0` | | `input.person_image` | string | Yes | URL of the person photo | | `input.garment_image` | string | Yes | URL of the garment photo | | `input.garment_description` | string | No | Description of the garment | | `input.category` | string | No | Garment category. Options: `upper_body`, `lower_body`, `dresses` (default: `upper_body`) | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "try-clothes", "input": { "model": "fashn-v1-0", "person_image": "https://example.com/person.jpg", "garment_image": "https://example.com/garment.jpg" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'try-clothes', input: { model: 'fashn-v1-0', person_image: 'https://example.com/person.jpg', garment_image: 'https://example.com/garment.jpg' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'try-clothes', 'input': { 'model': 'fashn-v1-0', 'person_image': 'https://example.com/person.jpg', 'garment_image': 'https://example.com/garment.jpg' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "try-clothes", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Fashn v1.5 Source: https://docs.artificialstudio.ai/image/fashn-v1-5 POST https://api.artificialstudio.ai/api/run Virtual clothing try-on powered by Fashn v1.5. | | | | ----------- | ------------- | | **Credits** | 15 credits | | **Tool** | `try-clothes` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | --------------------- | ------ | -------- | ------------------------ | | `tool` | string | Yes | `try-clothes` | | `input.model` | string | Yes | `fashn-v1-5` | | `input.person_image` | string | Yes | URL of the person photo | | `input.garment_image` | string | Yes | URL of the garment photo | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "try-clothes", "input": { "model": "fashn-v1-5", "person_image": "https://example.com/person.jpg", "garment_image": "https://example.com/garment.jpg" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'try-clothes', input: { model: 'fashn-v1-5', person_image: 'https://example.com/person.jpg', garment_image: 'https://example.com/garment.jpg' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'try-clothes', 'input': { 'model': 'fashn-v1-5', 'person_image': 'https://example.com/person.jpg', 'garment_image': 'https://example.com/garment.jpg' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "try-clothes", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Fashn v1.6 Source: https://docs.artificialstudio.ai/image/fashn-v1-6 POST https://api.artificialstudio.ai/api/run Virtual clothing try-on powered by Fashn v1.6. | | | | ----------- | ------------- | | **Credits** | 15 credits | | **Tool** | `try-clothes` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | --------------------- | ------ | -------- | ------------------------ | | `tool` | string | Yes | `try-clothes` | | `input.model` | string | Yes | `fashn-v1-6` | | `input.person_image` | string | Yes | URL of the person photo | | `input.garment_image` | string | Yes | URL of the garment photo | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "try-clothes", "input": { "model": "fashn-v1-6", "person_image": "https://example.com/person.jpg", "garment_image": "https://example.com/garment.jpg" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'try-clothes', input: { model: 'fashn-v1-6', person_image: 'https://example.com/person.jpg', garment_image: 'https://example.com/garment.jpg' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'try-clothes', 'input': { 'model': 'fashn-v1-6', 'person_image': 'https://example.com/person.jpg', 'garment_image': 'https://example.com/garment.jpg' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "try-clothes", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Flux 2 Source: https://docs.artificialstudio.ai/image/flux-2 POST https://api.artificialstudio.ai/api/run Enhanced realism, crisper text generation from Black Forest Labs. | | | | ----------- | -------------- | | **Credits** | 6 credits | | **Tool** | `create-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ------------------ | ------ | -------- | ---------------------------------------------------------------------------------------------------------------------------------------- | | `tool` | string | Yes | `create-image` | | `input.model` | string | Yes | `flux-2` | | `input.prompt` | string | Yes | Text prompt for image generation | | `input.image_size` | string | No | Aspect ratio. One of `square_hd`, `square`, `portrait_4_3`, `portrait_16_9`, `landscape_4_3`, `landscape_16_9`. Defaults to `square_hd`. | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "create-image", "input": { "model": "flux-2", "prompt": "A bustling Tokyo street at night with neon signs reflecting on wet pavement" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'create-image', input: { model: 'flux-2', prompt: 'A bustling Tokyo street at night with neon signs reflecting on wet pavement' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'create-image', 'input': { 'model': 'flux-2', 'prompt': 'A bustling Tokyo street at night with neon signs reflecting on wet pavement' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "create-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Flux 2 Flex Source: https://docs.artificialstudio.ai/image/flux-2-flex POST https://api.artificialstudio.ai/api/run High-quality image generation with excellent prompt following. | | | | ----------- | -------------- | | **Credits** | 6 credits | | **Tool** | `create-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | -------------- | ------ | -------- | -------------------------------- | | `tool` | string | Yes | `create-image` | | `input.model` | string | Yes | `flux-2-flex` | | `input.prompt` | string | Yes | Text prompt for image generation | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "create-image", "input": { "model": "flux-2-flex", "prompt": "An oil painting of a sunflower field in Van Gogh style" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'create-image', input: { model: 'flux-2-flex', prompt: 'An oil painting of a sunflower field in Van Gogh style' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'create-image', 'input': { 'model': 'flux-2-flex', 'prompt': 'An oil painting of a sunflower field in Van Gogh style' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "create-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Flux 2 Max Source: https://docs.artificialstudio.ai/image/flux-2-max POST https://api.artificialstudio.ai/api/run State-of-the-art image generation with exceptional realism and precision. | | | | ----------- | -------------- | | **Credits** | 8 credits | | **Tool** | `create-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ------------------ | ------ | -------- | ---------------------------------------------------------------------------------------------------------------------------------------- | | `tool` | string | Yes | `create-image` | | `input.model` | string | Yes | `flux-2-max` | | `input.prompt` | string | Yes | Text prompt for image generation | | `input.image_size` | string | No | Aspect ratio. One of `square_hd`, `square`, `portrait_4_3`, `portrait_16_9`, `landscape_4_3`, `landscape_16_9`. Defaults to `square_hd`. | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "create-image", "input": { "model": "flux-2-max", "prompt": "A hyperrealistic portrait of an elderly fisherman with weathered skin, cinematic lighting" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'create-image', input: { model: 'flux-2-max', prompt: 'A hyperrealistic portrait of an elderly fisherman with weathered skin, cinematic lighting' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'create-image', 'input': { 'model': 'flux-2-max', 'prompt': 'A hyperrealistic portrait of an elderly fisherman with weathered skin, cinematic lighting' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "create-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # FLUX.2 Klein 4B Source: https://docs.artificialstudio.ai/image/flux-klein-4b POST https://api.artificialstudio.ai/api/run Compact and fast FLUX.2 model with enhanced realism and crisper text generation. | | | | ----------- | -------------- | | **Credits** | 2 credits | | **Tool** | `create-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ------------------ | ------ | -------- | -------------------------------------------------------------------------------------------------------------------------------------------- | | `tool` | string | Yes | `create-image` | | `input.model` | string | Yes | `flux-klein-4b` | | `input.prompt` | string | Yes | Text prompt for image generation | | `input.image_size` | string | No | Aspect ratio. One of `square_hd`, `square`, `portrait_4_3`, `portrait_16_9`, `landscape_4_3`, `landscape_16_9`. Defaults to `landscape_4_3`. | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "create-image", "input": { "model": "flux-klein-4b", "prompt": "A cozy wooden cabin surrounded by pine trees under a starry sky" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'create-image', input: { model: 'flux-klein-4b', prompt: 'A cozy wooden cabin surrounded by pine trees under a starry sky' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'create-image', 'input': { 'model': 'flux-klein-4b', 'prompt': 'A cozy wooden cabin surrounded by pine trees under a starry sky' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "create-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # FLUX.2 Klein 9B Edit Source: https://docs.artificialstudio.ai/image/flux-klein-9b-edit POST https://api.artificialstudio.ai/api/run Image editing with FLUX.2 Klein 9B. Precise modifications using natural language descriptions. | | | | ----------- | ------------ | | **Credits** | 4 credits | | **Tool** | `edit-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ------------------ | --------- | -------- | ------------------------------------- | | `tool` | string | Yes | `edit-image` | | `input.model` | string | Yes | `flux-klein-9b-edit` | | `input.prompt` | string | Yes | Description of the edits to apply | | `input.image_urls` | string\[] | Yes | Array with a single image URL to edit | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "edit-image", "input": { "model": "flux-klein-9b-edit", "prompt": "Change the sky to sunset colors", "image_urls": ["https://example.com/photo.jpg"] } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'edit-image', input: { model: 'flux-klein-9b-edit', prompt: 'Change the sky to sunset colors', image_urls: ['https://example.com/photo.jpg'] } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'edit-image', 'input': { 'model': 'flux-klein-9b-edit', 'prompt': 'Change the sky to sunset colors', 'image_urls': ['https://example.com/photo.jpg'] } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "edit-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Flux Kontext Source: https://docs.artificialstudio.ai/image/flux-kontext POST https://api.artificialstudio.ai/api/run Edit images with contextual understanding using Flux. | | | | ----------- | ------------ | | **Credits** | 8 credits | | **Tool** | `edit-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ------------------ | --------- | -------- | ------------------------------------------ | | `tool` | string | Yes | `edit-image` | | `input.model` | string | Yes | `flux-kontext` | | `input.prompt` | string | Yes | Description of the edit to apply | | `input.image_urls` | string\[] | Yes | Array with the image URL to edit (1 image) | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "edit-image", "input": { "model": "flux-kontext", "prompt": "Change the background to a tropical beach", "image_urls": ["https://example.com/my-photo.jpg"] } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'edit-image', input: { model: 'flux-kontext', prompt: 'Change the background to a tropical beach', image_urls: ['https://example.com/my-photo.jpg'] } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'edit-image', 'input': { 'model': 'flux-kontext', 'prompt': 'Change the background to a tropical beach', 'image_urls': ['https://example.com/my-photo.jpg'] } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "edit-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # FLUX.1 Schnell Source: https://docs.artificialstudio.ai/image/flux-schnell POST https://api.artificialstudio.ai/api/run Ultra fast image generation in 1-4 steps. Great quality at lightning speed. | | | | ----------- | -------------- | | **Credits** | 1 credit | | **Tool** | `create-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ------------------ | ------ | -------- | -------------------------------------------------------------------------------------------------------------------------------------------- | | `tool` | string | Yes | `create-image` | | `input.model` | string | Yes | `flux-schnell` | | `input.prompt` | string | Yes | Text prompt for image generation | | `input.image_size` | string | No | Aspect ratio. One of `square_hd`, `square`, `portrait_4_3`, `portrait_16_9`, `landscape_4_3`, `landscape_16_9`. Defaults to `landscape_4_3`. | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "create-image", "input": { "model": "flux-schnell", "prompt": "A golden retriever puppy in a field of sunflowers" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'create-image', input: { model: 'flux-schnell', prompt: 'A golden retriever puppy in a field of sunflowers' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'create-image', 'input': { 'model': 'flux-schnell', 'prompt': 'A golden retriever puppy in a field of sunflowers' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "create-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Google Image 4 Source: https://docs.artificialstudio.ai/image/google-image-4 POST https://api.artificialstudio.ai/api/run Google's latest AI model with exceptional photorealism and text rendering. | | | | ----------- | -------------- | | **Credits** | 10 credits | | **Tool** | `create-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | -------------- | ------ | -------- | -------------------------------- | | `tool` | string | Yes | `create-image` | | `input.model` | string | Yes | `google-image-4` | | `input.prompt` | string | Yes | Text prompt for image generation | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "create-image", "input": { "model": "google-image-4", "prompt": "A product photo of a luxury watch on marble" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'create-image', input: { model: 'google-image-4', prompt: 'A product photo of a luxury watch on marble' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'create-image', 'input': { 'model': 'google-image-4', 'prompt': 'A product photo of a luxury watch on marble' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "create-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # GPT Image 1 Edit Source: https://docs.artificialstudio.ai/image/gpt-image-1-edit POST https://api.artificialstudio.ai/api/run Edit images using OpenAI's GPT Image model at medium quality. | | | | ----------- | ------------ | | **Credits** | 5 credits | | **Tool** | `edit-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ------------------ | --------- | -------- | ------------------------------------------ | | `tool` | string | Yes | `edit-image` | | `input.model` | string | Yes | `gpt-image-1-edit` | | `input.prompt` | string | Yes | Description of the edit to apply | | `input.image_urls` | string\[] | Yes | Array with the image URL to edit (1 image) | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "edit-image", "input": { "model": "gpt-image-1-edit", "prompt": "Change the background to a tropical beach", "image_urls": ["https://example.com/my-photo.jpg"] } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'edit-image', input: { model: 'gpt-image-1-edit', prompt: 'Change the background to a tropical beach', image_urls: ['https://example.com/my-photo.jpg'] } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'edit-image', 'input': { 'model': 'gpt-image-1-edit', 'prompt': 'Change the background to a tropical beach', 'image_urls': ['https://example.com/my-photo.jpg'] } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "edit-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # GPT Image 1 High Source: https://docs.artificialstudio.ai/image/gpt-image-1-high POST https://api.artificialstudio.ai/api/run Generate images using OpenAI's GPT Image model at high quality. | | | | ----------- | -------------- | | **Credits** | 35 credits | | **Tool** | `create-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ------------------ | ------ | -------- | ------------------------------------------------------------------------------------------ | | `tool` | string | Yes | `create-image` | | `input.model` | string | Yes | `gpt-image-1-high` | | `input.prompt` | string | Yes | Text prompt for image generation | | `input.image_size` | string | No | Output size. Options: `1024x1024`, `1024x1536`, `1536x1024`, `auto` (default: `1024x1024`) | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "create-image", "input": { "model": "gpt-image-1-high", "prompt": "A serene mountain landscape at golden hour" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'create-image', input: { model: 'gpt-image-1-high', prompt: 'A serene mountain landscape at golden hour' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'create-image', 'input': { 'model': 'gpt-image-1-high', 'prompt': 'A serene mountain landscape at golden hour' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "create-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # GPT Image 1 High Edit Source: https://docs.artificialstudio.ai/image/gpt-image-1-high-edit POST https://api.artificialstudio.ai/api/run Edit images using OpenAI's GPT Image model at high quality. | | | | ----------- | ------------ | | **Credits** | 35 credits | | **Tool** | `edit-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ------------------ | --------- | -------- | ------------------------------------------ | | `tool` | string | Yes | `edit-image` | | `input.model` | string | Yes | `gpt-image-1-high-edit` | | `input.prompt` | string | Yes | Description of the edit to apply | | `input.image_urls` | string\[] | Yes | Array with the image URL to edit (1 image) | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "edit-image", "input": { "model": "gpt-image-1-high-edit", "prompt": "Change the background to a tropical beach", "image_urls": ["https://example.com/my-photo.jpg"] } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'edit-image', input: { model: 'gpt-image-1-high-edit', prompt: 'Change the background to a tropical beach', image_urls: ['https://example.com/my-photo.jpg'] } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'edit-image', 'input': { 'model': 'gpt-image-1-high-edit', 'prompt': 'Change the background to a tropical beach', 'image_urls': ['https://example.com/my-photo.jpg'] } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "edit-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # GPT Image 1 Medium Source: https://docs.artificialstudio.ai/image/gpt-image-1-medium POST https://api.artificialstudio.ai/api/run Generate images using OpenAI's GPT Image model at medium quality. | | | | ----------- | -------------- | | **Credits** | 5 credits | | **Tool** | `create-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ------------------ | ------ | -------- | ------------------------------------------------------------------------------------------ | | `tool` | string | Yes | `create-image` | | `input.model` | string | Yes | `gpt-image-1-medium` | | `input.prompt` | string | Yes | Text prompt for image generation | | `input.image_size` | string | No | Output size. Options: `1024x1024`, `1024x1536`, `1536x1024`, `auto` (default: `1024x1024`) | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "create-image", "input": { "model": "gpt-image-1-medium", "prompt": "A serene mountain landscape at golden hour" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'create-image', input: { model: 'gpt-image-1-medium', prompt: 'A serene mountain landscape at golden hour' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'create-image', 'input': { 'model': 'gpt-image-1-medium', 'prompt': 'A serene mountain landscape at golden hour' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "create-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Grok Imagine Source: https://docs.artificialstudio.ai/image/grok-imagine POST https://api.artificialstudio.ai/api/run Highly aesthetic image generation by xAI. | | | | ----------- | -------------- | | **Credits** | 4 credits | | **Tool** | `create-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | -------------------- | ------ | -------- | -------------------------------------------------------------------------------------------------------- | | `tool` | string | Yes | `create-image` | | `input.model` | string | Yes | `grok-imagine` | | `input.prompt` | string | Yes | Text prompt for image generation | | `input.aspect_ratio` | string | No | Aspect ratio. One of `1:1`, `16:9`, `9:16`, `4:3`, `3:4`, `3:2`, `2:3`, `2:1`, `1:2`. Defaults to `1:1`. | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "create-image", "input": { "model": "grok-imagine", "prompt": "A futuristic astronaut relaxing on the surface of Mars, cinematic style" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'create-image', input: { model: 'grok-imagine', prompt: 'A futuristic astronaut relaxing on the surface of Mars, cinematic style' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'create-image', 'input': { 'model': 'grok-imagine', 'prompt': 'A futuristic astronaut relaxing on the surface of Mars, cinematic style' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "create-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Grok Imagine Edit Source: https://docs.artificialstudio.ai/image/grok-imagine-edit POST https://api.artificialstudio.ai/api/run Edit images using Grok's imagination capabilities. | | | | ----------- | ------------ | | **Credits** | 6 credits | | **Tool** | `edit-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ------------------ | --------- | -------- | -------------------------------- | | `tool` | string | Yes | `edit-image` | | `input.model` | string | Yes | `grok-imagine-edit` | | `input.prompt` | string | Yes | Description of the edit to apply | | `input.image_urls` | string\[] | Yes | Array of image URLs to edit | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "edit-image", "input": { "model": "grok-imagine-edit", "prompt": "Change the background to a tropical beach", "image_urls": ["https://example.com/my-photo.jpg"] } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'edit-image', input: { model: 'grok-imagine-edit', prompt: 'Change the background to a tropical beach', image_urls: ['https://example.com/my-photo.jpg'] } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'edit-image', 'input': { 'model': 'grok-imagine-edit', 'prompt': 'Change the background to a tropical beach', 'image_urls': ['https://example.com/my-photo.jpg'] } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "edit-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Ideogram V3 Source: https://docs.artificialstudio.ai/image/ideogram-v3 POST https://api.artificialstudio.ai/api/run Exceptional typography and realistic outputs by Ideogram. | | | | ----------- | -------------- | | **Credits** | 12 credits | | **Tool** | `create-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ------------------ | ------ | -------- | ---------------------------------------------------------------------------------------------------------------------------------------- | | `tool` | string | Yes | `create-image` | | `input.model` | string | Yes | `ideogram-v3` | | `input.prompt` | string | Yes | Text prompt for image generation | | `input.image_size` | string | No | Aspect ratio. One of `square_hd`, `square`, `portrait_4_3`, `portrait_16_9`, `landscape_4_3`, `landscape_16_9`. Defaults to `square_hd`. | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "create-image", "input": { "model": "ideogram-v3", "prompt": "A retro poster design with the text Summer Vibes in bold typography" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'create-image', input: { model: 'ideogram-v3', prompt: 'A retro poster design with the text Summer Vibes in bold typography' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'create-image', 'input': { 'model': 'ideogram-v3', 'prompt': 'A retro poster design with the text Summer Vibes in bold typography' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "create-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Image Depth Map Source: https://docs.artificialstudio.ai/image/image-depth-map POST https://api.artificialstudio.ai/api/run Create depth map from an image for 3D effects and visual analysis. | | | | ----------- | --------------------------- | | **Credits** | 1 credit | | **Tool** | `image-depth-map-generator` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ------------- | ------ | -------- | --------------------------- | | `tool` | string | Yes | `image-depth-map-generator` | | `input.model` | string | Yes | `image-depth-map` | | `input.image` | string | Yes | URL of the image | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "image-depth-map-generator", "input": { "model": "image-depth-map", "image": "https://example.com/my-photo.jpg" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'image-depth-map-generator', input: { model: 'image-depth-map', image: 'https://example.com/my-photo.jpg' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'image-depth-map-generator', 'input': { 'model': 'image-depth-map', 'image': 'https://example.com/my-photo.jpg' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "image-depth-map-generator", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Image to SVG Source: https://docs.artificialstudio.ai/image/image-to-svg POST https://api.artificialstudio.ai/api/run Convert images into scalable vector graphics (SVG). | | | | ----------- | -------------- | | **Credits** | 1 credit | | **Tool** | `image-to-svg` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ------------- | ------ | -------- | --------------------------- | | `tool` | string | Yes | `image-to-svg` | | `input.model` | string | Yes | `image-to-svg` | | `input.file` | string | Yes | URL of the image to convert | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "image-to-svg", "input": { "model": "image-to-svg", "file": "https://example.com/my-logo.png" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'image-to-svg', input: { model: 'image-to-svg', file: 'https://example.com/my-logo.png' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'image-to-svg', 'input': { 'model': 'image-to-svg', 'file': 'https://example.com/my-logo.png' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "image-to-svg", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Kolors Source: https://docs.artificialstudio.ai/image/kolors POST https://api.artificialstudio.ai/api/run Virtual clothing try-on powered by Kling Kolors. | | | | ----------- | ------------- | | **Credits** | 14 credits | | **Tool** | `try-clothes` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | --------------------- | ------ | -------- | ------------------------ | | `tool` | string | Yes | `try-clothes` | | `input.model` | string | Yes | `kolors` | | `input.person_image` | string | Yes | URL of the person photo | | `input.garment_image` | string | Yes | URL of the garment photo | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "try-clothes", "input": { "model": "kolors", "person_image": "https://example.com/person.jpg", "garment_image": "https://example.com/garment.jpg" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'try-clothes', input: { model: 'kolors', person_image: 'https://example.com/person.jpg', garment_image: 'https://example.com/garment.jpg' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'try-clothes', 'input': { 'model': 'kolors', 'person_image': 'https://example.com/person.jpg', 'garment_image': 'https://example.com/garment.jpg' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "try-clothes", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Leffa Source: https://docs.artificialstudio.ai/image/leffa POST https://api.artificialstudio.ai/api/run Virtual clothing try-on with garment type selection. | | | | ----------- | ------------- | | **Credits** | 20 credits | | **Tool** | `try-clothes` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | --------------------- | ------ | -------- | --------------------------------------------------------------------------------------- | | `tool` | string | Yes | `try-clothes` | | `input.model` | string | Yes | `leffa` | | `input.person_image` | string | Yes | URL of the person photo | | `input.garment_image` | string | Yes | URL of the garment photo | | `input.garment_type` | string | No | Type of garment. Options: `upper_body`, `lower_body`, `dresses` (default: `upper_body`) | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "try-clothes", "input": { "model": "leffa", "person_image": "https://example.com/person.jpg", "garment_image": "https://example.com/garment.jpg" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'try-clothes', input: { model: 'leffa', person_image: 'https://example.com/person.jpg', garment_image: 'https://example.com/garment.jpg' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'try-clothes', 'input': { 'model': 'leffa', 'person_image': 'https://example.com/person.jpg', 'garment_image': 'https://example.com/garment.jpg' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "try-clothes", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Luma Photon Flash Source: https://docs.artificialstudio.ai/image/luma-photon-flash POST https://api.artificialstudio.ai/api/run Creative and intelligent image generation by Luma. Fast and affordable. | | | | ----------- | -------------- | | **Credits** | 1 credit | | **Tool** | `create-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | -------------------- | ------ | -------- | -------------------------------------------------------------------------------------------- | | `tool` | string | Yes | `create-image` | | `input.model` | string | Yes | `luma-photon-flash` | | `input.prompt` | string | Yes | Text prompt for image generation | | `input.aspect_ratio` | string | No | Aspect ratio. One of `1:1`, `4:3`, `3:4`, `16:9`, `9:16`, `21:9`, `9:21`. Defaults to `4:3`. | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "create-image", "input": { "model": "luma-photon-flash", "prompt": "A dreamy watercolor landscape of rolling hills at dawn" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'create-image', input: { model: 'luma-photon-flash', prompt: 'A dreamy watercolor landscape of rolling hills at dawn' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'create-image', 'input': { 'model': 'luma-photon-flash', 'prompt': 'A dreamy watercolor landscape of rolling hills at dawn' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "create-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Luma Reframe Source: https://docs.artificialstudio.ai/image/luma-reframe POST https://api.artificialstudio.ai/api/run Extend and reframe images to different aspect ratios. | | | | ----------- | -------------- | | **Credits** | 4 credits | | **Tool** | `extend-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | -------------------- | ------ | -------- | --------------------------------------------------------------------------------------------------------- | | `tool` | string | Yes | `extend-image` | | `input.model` | string | Yes | `luma-reframe` | | `input.image_url` | string | Yes | URL of the image to extend | | `input.aspect_ratio` | string | No | Target aspect ratio. Options: `21:9`, `16:9` (default), `4:3`, `3:2`, `1:1`, `2:3`, `3:4`, `9:16`, `9:21` | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "extend-image", "input": { "model": "luma-reframe", "image_url": "https://example.com/my-photo.jpg", "aspect_ratio": "16:9" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'extend-image', input: { model: 'luma-reframe', image_url: 'https://example.com/my-photo.jpg', aspect_ratio: '16:9' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'extend-image', 'input': { 'model': 'luma-reframe', 'image_url': 'https://example.com/my-photo.jpg', 'aspect_ratio': '16:9' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "extend-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Nano Banana Source: https://docs.artificialstudio.ai/image/nano-banana POST https://api.artificialstudio.ai/api/run Fast and efficient image generation by Google. | | | | ----------- | -------------- | | **Credits** | 8 credits | | **Tool** | `create-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | -------------- | ------ | -------- | -------------------------------- | | `tool` | string | Yes | `create-image` | | `input.model` | string | Yes | `nano-banana` | | `input.prompt` | string | Yes | Text prompt for image generation | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "create-image", "input": { "model": "nano-banana", "prompt": "A serene mountain landscape at golden hour" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'create-image', input: { model: 'nano-banana', prompt: 'A serene mountain landscape at golden hour' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'create-image', 'input': { 'model': 'nano-banana', 'prompt': 'A serene mountain landscape at golden hour' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "create-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Nano Banana 2 Source: https://docs.artificialstudio.ai/image/nano-banana-2 POST https://api.artificialstudio.ai/api/run Fast and high-quality image generation with enhanced capabilities. | | | | ----------- | -------------- | | **Credits** | 16 credits | | **Tool** | `create-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | -------------------- | ------ | -------- | ---------------------------------------------------------------------------------------------------------- | | `tool` | string | Yes | `create-image` | | `input.model` | string | Yes | `nano-banana-2` | | `input.prompt` | string | Yes | Text prompt for image generation | | `input.aspect_ratio` | string | No | Aspect ratio. Options: `auto`, `1:1`, `16:9`, `9:16`, `4:3`, `3:4`, `3:2`, `2:3`, `21:9` (default: `auto`) | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "create-image", "input": { "model": "nano-banana-2", "prompt": "A serene mountain landscape at golden hour" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'create-image', input: { model: 'nano-banana-2', prompt: 'A serene mountain landscape at golden hour' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'create-image', 'input': { 'model': 'nano-banana-2', 'prompt': 'A serene mountain landscape at golden hour' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "create-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Nano Banana 2 Edit Source: https://docs.artificialstudio.ai/image/nano-banana-2-edit POST https://api.artificialstudio.ai/api/run Edit and transform existing images with enhanced AI capabilities. | | | | ----------- | ------------ | | **Credits** | 16 credits | | **Tool** | `edit-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | -------------------- | --------- | -------- | ---------------------------------------------------------------------------------------------------------- | | `tool` | string | Yes | `edit-image` | | `input.model` | string | Yes | `nano-banana-2-edit` | | `input.prompt` | string | Yes | Description of the edit to apply | | `input.image_urls` | string\[] | Yes | Array of image URLs to edit (1-5 images) | | `input.aspect_ratio` | string | No | Aspect ratio. Options: `auto`, `1:1`, `16:9`, `9:16`, `4:3`, `3:4`, `3:2`, `2:3`, `21:9` (default: `auto`) | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "edit-image", "input": { "model": "nano-banana-2-edit", "prompt": "Change the background to a tropical beach", "image_urls": ["https://example.com/my-photo.jpg"] } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'edit-image', input: { model: 'nano-banana-2-edit', prompt: 'Change the background to a tropical beach', image_urls: ['https://example.com/my-photo.jpg'] } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'edit-image', 'input': { 'model': 'nano-banana-2-edit', 'prompt': 'Change the background to a tropical beach', 'image_urls': ['https://example.com/my-photo.jpg'] } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "edit-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Nano Banana 2 Try-On Source: https://docs.artificialstudio.ai/image/nano-banana-2-tryon POST https://api.artificialstudio.ai/api/run Virtual try-on using Nano Banana 2 model. | | | | ----------- | ------------- | | **Credits** | 16 credits | | **Tool** | `try-clothes` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | --------------------- | ------ | -------- | ------------------------ | | `tool` | string | Yes | `try-clothes` | | `input.model` | string | Yes | `nano-banana-2-tryon` | | `input.person_image` | string | Yes | URL of the person photo | | `input.garment_image` | string | Yes | URL of the garment photo | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "try-clothes", "input": { "model": "nano-banana-2-tryon", "person_image": "https://example.com/person.jpg", "garment_image": "https://example.com/garment.jpg" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'try-clothes', input: { model: 'nano-banana-2-tryon', person_image: 'https://example.com/person.jpg', garment_image: 'https://example.com/garment.jpg' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'try-clothes', 'input': { 'model': 'nano-banana-2-tryon', 'person_image': 'https://example.com/person.jpg', 'garment_image': 'https://example.com/garment.jpg' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "try-clothes", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Nano Banana Edit Source: https://docs.artificialstudio.ai/image/nano-banana-edit POST https://api.artificialstudio.ai/api/run Edit and transform existing images with AI. | | | | ----------- | ------------ | | **Credits** | 8 credits | | **Tool** | `edit-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ------------------ | --------- | -------- | -------------------------------- | | `tool` | string | Yes | `edit-image` | | `input.model` | string | Yes | `nano-banana-edit` | | `input.prompt` | string | Yes | Description of the edit to apply | | `input.image_urls` | string\[] | Yes | Array of image URLs to edit | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "edit-image", "input": { "model": "nano-banana-edit", "prompt": "Change the background to a tropical beach", "image_urls": ["https://example.com/my-photo.jpg"] } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'edit-image', input: { model: 'nano-banana-edit', prompt: 'Change the background to a tropical beach', image_urls: ['https://example.com/my-photo.jpg'] } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'edit-image', 'input': { 'model': 'nano-banana-edit', 'prompt': 'Change the background to a tropical beach', 'image_urls': ['https://example.com/my-photo.jpg'] } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "edit-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Nano Banana Pro Source: https://docs.artificialstudio.ai/image/nano-banana-pro POST https://api.artificialstudio.ai/api/run Google's premium image generation model with superior quality. | | | | ----------- | -------------- | | **Credits** | 30 credits | | **Tool** | `create-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | -------------- | ------ | -------- | -------------------------------- | | `tool` | string | Yes | `create-image` | | `input.model` | string | Yes | `nano-banana-pro` | | `input.prompt` | string | Yes | Text prompt for image generation | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "create-image", "input": { "model": "nano-banana-pro", "prompt": "A photorealistic portrait in studio lighting" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'create-image', input: { model: 'nano-banana-pro', prompt: 'A photorealistic portrait in studio lighting' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'create-image', 'input': { 'model': 'nano-banana-pro', 'prompt': 'A photorealistic portrait in studio lighting' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "create-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Nano Banana Pro Edit Source: https://docs.artificialstudio.ai/image/nano-banana-pro-edit POST https://api.artificialstudio.ai/api/run Premium image editing model with superior quality. | | | | ----------- | ------------ | | **Credits** | 30 credits | | **Tool** | `edit-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ------------------ | --------- | -------- | -------------------------------- | | `tool` | string | Yes | `edit-image` | | `input.model` | string | Yes | `nano-banana-pro-edit` | | `input.prompt` | string | Yes | Description of the edit to apply | | `input.image_urls` | string\[] | Yes | Array of image URLs to edit | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "edit-image", "input": { "model": "nano-banana-pro-edit", "prompt": "Make it look like a watercolor painting", "image_urls": ["https://example.com/my-photo.jpg"] } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'edit-image', input: { model: 'nano-banana-pro-edit', prompt: 'Make it look like a watercolor painting', image_urls: ['https://example.com/my-photo.jpg'] } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'edit-image', 'input': { 'model': 'nano-banana-pro-edit', 'prompt': 'Make it look like a watercolor painting', 'image_urls': ['https://example.com/my-photo.jpg'] } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "edit-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Playground v2 Source: https://docs.artificialstudio.ai/image/playground-v2 POST https://api.artificialstudio.ai/api/run Free high-quality image generation with vibrant colors and sharp details. Perfect for creative projects. | | | | ----------- | -------------- | | **Credits** | 0 credits | | **Tool** | `create-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | -------------- | ------ | -------- | -------------------------------- | | `tool` | string | Yes | `create-image` | | `input.model` | string | Yes | `playground-v2` | | `input.prompt` | string | Yes | Text prompt for image generation | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "create-image", "input": { "model": "playground-v2", "prompt": "A vibrant abstract painting with bold splashes of color" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'create-image', input: { model: 'playground-v2', prompt: 'A vibrant abstract painting with bold splashes of color' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'create-image', 'input': { 'model': 'playground-v2', 'prompt': 'A vibrant abstract painting with bold splashes of color' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "create-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Qwen Source: https://docs.artificialstudio.ai/image/qwen-edit POST https://api.artificialstudio.ai/api/run Superior text editing capabilities with advanced AI understanding. | | | | ----------- | ------------ | | **Credits** | 6 credits | | **Tool** | `edit-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ------------------ | --------- | -------- | -------------------------------- | | `tool` | string | Yes | `edit-image` | | `input.model` | string | Yes | `qwen-edit` | | `input.prompt` | string | Yes | Description of the edit to apply | | `input.image_urls` | string\[] | Yes | Array of image URLs to edit | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "edit-image", "input": { "model": "qwen-edit", "prompt": "Replace the text on the sign with Hello World", "image_urls": ["https://example.com/my-photo.jpg"] } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'edit-image', input: { model: 'qwen-edit', prompt: 'Replace the text on the sign with Hello World', image_urls: ['https://example.com/my-photo.jpg'] } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'edit-image', 'input': { 'model': 'qwen-edit', 'prompt': 'Replace the text on the sign with Hello World', 'image_urls': ['https://example.com/my-photo.jpg'] } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "edit-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Qwen Image 2 Source: https://docs.artificialstudio.ai/image/qwen-image-2 POST https://api.artificialstudio.ai/api/run Next-gen image model with superior text rendering and realistic generation. | | | | ----------- | -------------- | | **Credits** | 7 credits | | **Tool** | `create-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ------------------ | ------ | -------- | ---------------------------------------------------------------------------------------------------------------------------------------- | | `tool` | string | Yes | `create-image` | | `input.model` | string | Yes | `qwen-image-2` | | `input.prompt` | string | Yes | Text prompt for image generation | | `input.image_size` | string | No | Aspect ratio. One of `square_hd`, `square`, `portrait_4_3`, `portrait_16_9`, `landscape_4_3`, `landscape_16_9`. Defaults to `square_hd`. | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "create-image", "input": { "model": "qwen-image-2", "prompt": "A vintage bookstore with a glowing neon sign that reads Open Late" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'create-image', input: { model: 'qwen-image-2', prompt: 'A vintage bookstore with a glowing neon sign that reads Open Late' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'create-image', 'input': { 'model': 'qwen-image-2', 'prompt': 'A vintage bookstore with a glowing neon sign that reads Open Late' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "create-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Qwen Image 2 Edit Source: https://docs.artificialstudio.ai/image/qwen-image-2-edit POST https://api.artificialstudio.ai/api/run Next-gen editing with improved text rendering and realistic results. | | | | ----------- | ------------ | | **Credits** | 7 credits | | **Tool** | `edit-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ------------------ | --------- | -------- | ------------------------------------- | | `tool` | string | Yes | `edit-image` | | `input.model` | string | Yes | `qwen-image-2-edit` | | `input.prompt` | string | Yes | Description of the edits to apply | | `input.image_urls` | string\[] | Yes | Array with a single image URL to edit | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "edit-image", "input": { "model": "qwen-image-2-edit", "prompt": "Replace the background with a sandy beach at sunset", "image_urls": ["https://example.com/photo.jpg"] } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'edit-image', input: { model: 'qwen-image-2-edit', prompt: 'Replace the background with a sandy beach at sunset', image_urls: ['https://example.com/photo.jpg'] } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'edit-image', 'input': { 'model': 'qwen-image-2-edit', 'prompt': 'Replace the background with a sandy beach at sunset', 'image_urls': ['https://example.com/photo.jpg'] } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "edit-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Recraft V3 Source: https://docs.artificialstudio.ai/image/recraft-v3 POST https://api.artificialstudio.ai/api/run High-quality image generation with style control. | | | | ----------- | -------------- | | **Credits** | 8 credits | | **Tool** | `create-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ------------------ | ------ | -------- | -------------------------------------------------------------------------------------------------------------------------------------- | | `tool` | string | Yes | `create-image` | | `input.model` | string | Yes | `recraft-v3` | | `input.prompt` | string | Yes | Text prompt for image generation | | `input.style` | string | No | Image style (default: `realistic_image`) | | `input.image_size` | string | No | Output size. Options: `square_hd`, `square`, `portrait_4_3`, `portrait_16_9`, `landscape_4_3`, `landscape_16_9` (default: `square_hd`) | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "create-image", "input": { "model": "recraft-v3", "prompt": "A serene mountain landscape at golden hour", "style": "realistic_image" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'create-image', input: { model: 'recraft-v3', prompt: 'A serene mountain landscape at golden hour', style: 'realistic_image' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'create-image', 'input': { 'model': 'recraft-v3', 'prompt': 'A serene mountain landscape at golden hour', 'style': 'realistic_image' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "create-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Recraft v4 Source: https://docs.artificialstudio.ai/image/recraft-v4 POST https://api.artificialstudio.ai/api/run Professional design-quality images with refined lighting and materials. | | | | ----------- | -------------- | | **Credits** | 8 credits | | **Tool** | `create-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ------------------ | ------ | -------- | ---------------------------------------------------------------------------------------------------------------------------------------- | | `tool` | string | Yes | `create-image` | | `input.model` | string | Yes | `recraft-v4` | | `input.prompt` | string | Yes | Text prompt for image generation | | `input.style` | string | No | Style preset. One of `any`, `vector_illustration`. Defaults to `any`. | | `input.image_size` | string | No | Aspect ratio. One of `square_hd`, `square`, `portrait_4_3`, `portrait_16_9`, `landscape_4_3`, `landscape_16_9`. Defaults to `square_hd`. | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "create-image", "input": { "model": "recraft-v4", "prompt": "A minimalist illustration of a mountain range", "style": "vector_illustration" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'create-image', input: { model: 'recraft-v4', prompt: 'A minimalist illustration of a mountain range', style: 'vector_illustration' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'create-image', 'input': { 'model': 'recraft-v4', 'prompt': 'A minimalist illustration of a mountain range', 'style': 'vector_illustration' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "create-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Stable Diffusion XL Source: https://docs.artificialstudio.ai/image/sdxl POST https://api.artificialstudio.ai/api/run Classic and reliable model with wide variety of styles. Perfect for creative experimentation. | | | | ----------- | -------------- | | **Credits** | 1 credit | | **Tool** | `create-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | -------------- | ------ | -------- | -------------------------------- | | `tool` | string | Yes | `create-image` | | `input.model` | string | Yes | `sdxl` | | `input.prompt` | string | Yes | Text prompt for image generation | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "create-image", "input": { "model": "sdxl", "prompt": "An oil painting of wildflowers in a vase" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'create-image', input: { model: 'sdxl', prompt: 'An oil painting of wildflowers in a vase' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'create-image', 'input': { 'model': 'sdxl', 'prompt': 'An oil painting of wildflowers in a vase' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "create-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # SDXL Lightning Source: https://docs.artificialstudio.ai/image/sdxl-lightning POST https://api.artificialstudio.ai/api/run Run SDXL at the speed of light. Ultra fast and ultra cheap. | | | | ----------- | -------------- | | **Credits** | 1 credit | | **Tool** | `create-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ------------------ | ------ | -------- | -------------------------------------------------------------------------------------------------------------------------------------------- | | `tool` | string | Yes | `create-image` | | `input.model` | string | Yes | `sdxl-lightning` | | `input.prompt` | string | Yes | Text prompt for image generation | | `input.image_size` | string | No | Aspect ratio. One of `square_hd`, `square`, `portrait_4_3`, `portrait_16_9`, `landscape_4_3`, `landscape_16_9`. Defaults to `landscape_4_3`. | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "create-image", "input": { "model": "sdxl-lightning", "prompt": "A colorful hot air balloon floating over a desert canyon" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'create-image', input: { model: 'sdxl-lightning', prompt: 'A colorful hot air balloon floating over a desert canyon' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'create-image', 'input': { 'model': 'sdxl-lightning', 'prompt': 'A colorful hot air balloon floating over a desert canyon' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "create-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Seedream 4.0 Source: https://docs.artificialstudio.ai/image/seedream-4 POST https://api.artificialstudio.ai/api/run ByteDance's new-generation image creation model with excellent quality. | | | | ----------- | -------------- | | **Credits** | 6 credits | | **Tool** | `create-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ------------------ | ------ | -------- | ------------------------------------------------------------------------------------------------------------------------ | | `tool` | string | Yes | `create-image` | | `input.model` | string | Yes | `seedream-4` | | `input.prompt` | string | Yes | Text prompt for image generation | | `input.image_size` | string | No | Image size. Options: `square_hd` (default), `square`, `portrait_4_3`, `portrait_16_9`, `landscape_4_3`, `landscape_16_9` | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "create-image", "input": { "model": "seedream-4", "prompt": "A cyberpunk cityscape at night with neon lights", "image_size": "landscape_16_9" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'create-image', input: { model: 'seedream-4', prompt: 'A cyberpunk cityscape at night with neon lights', image_size: 'landscape_16_9' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'create-image', 'input': { 'model': 'seedream-4', 'prompt': 'A cyberpunk cityscape at night with neon lights', 'image_size': 'landscape_16_9' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "create-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Seedream 4.5 Source: https://docs.artificialstudio.ai/image/seedream-4-5 POST https://api.artificialstudio.ai/api/run ByteDance's latest image model with improved generation and editing. | | | | ----------- | -------------- | | **Credits** | 8 credits | | **Tool** | `create-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ------------------ | ------ | -------- | ---------------------------------------------------------------------------------------------------------------------------------------- | | `tool` | string | Yes | `create-image` | | `input.model` | string | Yes | `seedream-4.5` | | `input.prompt` | string | Yes | Text prompt for image generation | | `input.image_size` | string | No | Aspect ratio. One of `square_hd`, `square`, `portrait_4_3`, `portrait_16_9`, `landscape_4_3`, `landscape_16_9`. Defaults to `square_hd`. | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "create-image", "input": { "model": "seedream-4.5", "prompt": "A majestic dragon flying over snowy mountain peaks at sunrise" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'create-image', input: { model: 'seedream-4.5', prompt: 'A majestic dragon flying over snowy mountain peaks at sunrise' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'create-image', 'input': { 'model': 'seedream-4.5', 'prompt': 'A majestic dragon flying over snowy mountain peaks at sunrise' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "create-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Seedream 4.5 Edit Source: https://docs.artificialstudio.ai/image/seedream-4-5-edit POST https://api.artificialstudio.ai/api/run ByteDance's latest image editing model with improved quality. | | | | ----------- | ------------ | | **Credits** | 8 credits | | **Tool** | `edit-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ------------------ | --------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | | `tool` | string | Yes | `edit-image` | | `input.model` | string | Yes | `seedream-4.5-edit` | | `input.prompt` | string | Yes | Description of the edits to apply | | `input.image_urls` | string\[] | Yes | Array of 1 to 10 image URLs to edit | | `input.image_size` | string | No | Output aspect ratio. One of `square_hd`, `square`, `portrait_4_3`, `portrait_16_9`, `landscape_4_3`, `landscape_16_9`. Defaults to `square_hd`. | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "edit-image", "input": { "model": "seedream-4.5-edit", "prompt": "Change the sky to sunset colors", "image_urls": ["https://example.com/photo.jpg"] } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'edit-image', input: { model: 'seedream-4.5-edit', prompt: 'Change the sky to sunset colors', image_urls: ['https://example.com/photo.jpg'] } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'edit-image', 'input': { 'model': 'seedream-4.5-edit', 'prompt': 'Change the sky to sunset colors', 'image_urls': ['https://example.com/photo.jpg'] } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "edit-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Seedream 4.0 Edit Source: https://docs.artificialstudio.ai/image/seedream-4-edit POST https://api.artificialstudio.ai/api/run ByteDance's image editing model with excellent quality. | | | | ----------- | ------------ | | **Credits** | 6 credits | | **Tool** | `edit-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ------------------ | --------- | -------- | -------------------------------- | | `tool` | string | Yes | `edit-image` | | `input.model` | string | Yes | `seedream-4-edit` | | `input.prompt` | string | Yes | Description of the edit to apply | | `input.image_urls` | string\[] | Yes | Array of image URLs to edit | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "edit-image", "input": { "model": "seedream-4-edit", "prompt": "Add a sunset sky in the background", "image_urls": ["https://example.com/my-photo.jpg"] } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'edit-image', input: { model: 'seedream-4-edit', prompt: 'Add a sunset sky in the background', image_urls: ['https://example.com/my-photo.jpg'] } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'edit-image', 'input': { 'model': 'seedream-4-edit', 'prompt': 'Add a sunset sky in the background', 'image_urls': ['https://example.com/my-photo.jpg'] } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "edit-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Seedream 5.0 Lite Source: https://docs.artificialstudio.ai/image/seedream-5-lite POST https://api.artificialstudio.ai/api/run ByteDance's fastest Seedream model with high quality generation. | | | | ----------- | -------------- | | **Credits** | 7 credits | | **Tool** | `create-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ------------------ | ------ | -------- | ---------------------------------------------------------------------------------------------------------------------------------------- | | `tool` | string | Yes | `create-image` | | `input.model` | string | Yes | `seedream-5-lite` | | `input.prompt` | string | Yes | Text prompt for image generation | | `input.image_size` | string | No | Aspect ratio. One of `square_hd`, `square`, `portrait_4_3`, `portrait_16_9`, `landscape_4_3`, `landscape_16_9`. Defaults to `square_hd`. | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "create-image", "input": { "model": "seedream-5-lite", "prompt": "A cyberpunk alley glowing with neon signs and rain" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'create-image', input: { model: 'seedream-5-lite', prompt: 'A cyberpunk alley glowing with neon signs and rain' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'create-image', 'input': { 'model': 'seedream-5-lite', 'prompt': 'A cyberpunk alley glowing with neon signs and rain' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "create-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Stable Diffusion 3 Source: https://docs.artificialstudio.ai/image/stable-diffusion-3 POST https://api.artificialstudio.ai/api/run Latest Stable Diffusion with improved text handling and better prompt adherence. Affordable quality. | | | | ----------- | -------------- | | **Credits** | 1 credit | | **Tool** | `create-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | -------------- | ------ | -------- | -------------------------------- | | `tool` | string | Yes | `create-image` | | `input.model` | string | Yes | `stable-diffusion-3` | | `input.prompt` | string | Yes | Text prompt for image generation | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "create-image", "input": { "model": "stable-diffusion-3", "prompt": "A pastel illustration of a whale swimming through the clouds" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'create-image', input: { model: 'stable-diffusion-3', prompt: 'A pastel illustration of a whale swimming through the clouds' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'create-image', 'input': { 'model': 'stable-diffusion-3', 'prompt': 'A pastel illustration of a whale swimming through the clouds' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "create-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Style Transfer Source: https://docs.artificialstudio.ai/image/style-transfer POST https://api.artificialstudio.ai/api/run Transfer the style of one image to another using GPT Image 1.5. | | | | ----------- | ---------------- | | **Credits** | 5 credits | | **Tool** | `style-transfer` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ------------------ | ------ | -------- | ----------------------------------------------------------------------------- | | `tool` | string | Yes | `style-transfer` | | `input.model` | string | Yes | `style-transfer` | | `input.content` | string | Yes | URL of the content image to modify | | `input.style` | string | Yes | URL of the style image to apply | | `input.image_size` | string | No | Output size. Options: `auto` (default), `1024x1024`, `1536x1024`, `1024x1536` | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "style-transfer", "input": { "model": "style-transfer", "content": "https://example.com/my-photo.jpg", "style": "https://example.com/art-style.jpg" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'style-transfer', input: { model: 'style-transfer', content: 'https://example.com/my-photo.jpg', style: 'https://example.com/art-style.jpg' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'style-transfer', 'input': { 'model': 'style-transfer', 'content': 'https://example.com/my-photo.jpg', 'style': 'https://example.com/art-style.jpg' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "style-transfer", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # SVG Creator Source: https://docs.artificialstudio.ai/image/svg-creator POST https://api.artificialstudio.ai/api/run Create SVG vector graphics with text using Recraft v3. | | | | ----------- | ------------- | | **Credits** | 16 credits | | **Tool** | `svg-creator` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ------------------ | ------ | -------- | ------------------------------------------------------------------------------------------------------------------------ | | `tool` | string | Yes | `svg-creator` | | `input.model` | string | Yes | `svg-creator` | | `input.prompt` | string | Yes | Description of the SVG to create | | `input.style` | string | No | Art style. Options: `vector_illustration` (default), `engraving`, `line_art`, `line_circuit`, `linocut` | | `input.image_size` | string | No | Image size. Options: `square_hd` (default), `square`, `portrait_4_3`, `portrait_16_9`, `landscape_4_3`, `landscape_16_9` | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "svg-creator", "input": { "model": "svg-creator", "prompt": "A minimalist logo of a mountain with a sun", "style": "vector_illustration", "image_size": "square_hd" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'svg-creator', input: { model: 'svg-creator', prompt: 'A minimalist logo of a mountain with a sun', style: 'vector_illustration', image_size: 'square_hd' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'svg-creator', 'input': { 'model': 'svg-creator', 'prompt': 'A minimalist logo of a mountain with a sun', 'style': 'vector_illustration', 'image_size': 'square_hd' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "svg-creator", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Wan 2.7 Source: https://docs.artificialstudio.ai/image/wan-2-7 POST https://api.artificialstudio.ai/api/run Advanced prompt understanding and detailed outputs by Alibaba. | | | | ----------- | -------------- | | **Credits** | 6 credits | | **Tool** | `create-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ------------------ | ------ | -------- | ---------------------------------------------------------------------------------------------------------------------------------------- | | `tool` | string | Yes | `create-image` | | `input.model` | string | Yes | `wan-2.7` | | `input.prompt` | string | Yes | Text prompt for image generation | | `input.image_size` | string | No | Aspect ratio. One of `square_hd`, `square`, `portrait_4_3`, `portrait_16_9`, `landscape_4_3`, `landscape_16_9`. Defaults to `square_hd`. | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "create-image", "input": { "model": "wan-2.7", "prompt": "A detailed market scene in ancient China, soft morning light" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'create-image', input: { model: 'wan-2.7', prompt: 'A detailed market scene in ancient China, soft morning light' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'create-image', 'input': { 'model': 'wan-2.7', 'prompt': 'A detailed market scene in ancient China, soft morning light' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "create-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Z-Image Turbo Source: https://docs.artificialstudio.ai/image/z-image-turbo POST https://api.artificialstudio.ai/api/run Super fast image generation by Tongyi-MAI. | | | | ----------- | -------------- | | **Credits** | 3 credits | | **Tool** | `create-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ------------------ | ------ | -------- | -------------------------------------------------------------------------------------------------------------------------------------------- | | `tool` | string | Yes | `create-image` | | `input.model` | string | Yes | `z-image-turbo` | | `input.prompt` | string | Yes | Text prompt for image generation | | `input.image_size` | string | No | Aspect ratio. One of `square_hd`, `square`, `portrait_4_3`, `portrait_16_9`, `landscape_4_3`, `landscape_16_9`. Defaults to `landscape_4_3`. | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "create-image", "input": { "model": "z-image-turbo", "prompt": "A tranquil Japanese zen garden with cherry blossoms" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'create-image', input: { model: 'z-image-turbo', prompt: 'A tranquil Japanese zen garden with cherry blossoms' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'create-image', 'input': { 'model': 'z-image-turbo', 'prompt': 'A tranquil Japanese zen garden with cherry blossoms' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "create-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Async & Polling Source: https://docs.artificialstudio.ai/mcp/async-polling How long-running generations work with MCP. Image, video, audio, and 3D generation can take anywhere from 1 second to several minutes. The MCP server is designed around this: **`generate` never blocks waiting for the result.** ## The pattern ``` ┌──────────────┐ ┌──────────────┐ │ AI client │ │ MCP server │ └──────┬───────┘ └──────┬───────┘ │ │ │── generate(tool, input) ─────────────▶│ │ │ enqueue job │◀── { job_id, status: "pending" } ─────│ (returns in ~1s) │ │ │── check_generation(job_id) ──────────▶│ │◀── { status: "processing", done:false} │ │ │ │ ...wait poll_after_seconds... │ │ │ │── check_generation(job_id) ──────────▶│ │◀── { status: "success", output, done:true } │ │ ``` ## Why async? Before this pattern, `generate` blocked the HTTP connection waiting for the job to finish. For long videos (Veo 3.1 with 8s duration → \~2 minutes), connections would drop at Cloudflare's 100s edge timeout or the MCP client's own timeout, and the response would be lost even though the job completed. By splitting into `generate` + `check_generation`, **no individual HTTP request lasts more than a few hundred milliseconds** — timeouts become irrelevant. ## What the server returns Every `generate` response includes hints to drive the polling loop: ```json theme={null} { "job_id": "...", "status": "pending", "eta_seconds": 120, "poll_after_seconds": 10 } ``` * `eta_seconds` — rough estimate; useful to set user expectations. * `poll_after_seconds` — how long your AI should wait before the next `check_generation`. Clamped to 3–10 seconds. `check_generation` returns the same `poll_after_seconds` while `done: false`, and drops it when `done: true`. ## How AI clients implement polling Claude Code, Cursor, and similar clients already know this pattern. When they see `poll_after_seconds` in a tool response, they sleep and re-call. No client-side code required. If you're writing a custom MCP client, the pseudocode is: ```typescript theme={null} const { job_id, poll_after_seconds } = await mcp.call('generate', { tool, input }); let result = { done: false }; let interval = poll_after_seconds; while (!result.done) { await sleep(interval * 1000); result = await mcp.call('check_generation', { generation_id: job_id }); interval = result.poll_after_seconds ?? interval; } if (result.status === 'success') { console.log(result.output); } else { console.error(result.error); } ``` ## Status values | Status | Meaning | Terminal? | | ------------ | ------------------------------- | --------- | | `pending` | Queued, not started yet | no | | `processing` | Running | no | | `success` | Completed, `output` is the URL | yes | | `error` | Failed, `error` has the message | yes | Keep polling while `done: false`. Stop when `done: true`. ## Credits Credits are charged **upfront** in `generate`, before the job is queued. If the job later fails, credits are **automatically refunded** — no action needed. This means: * `generate` can return `insufficient_credits` immediately if you're out. * If `check_generation` eventually returns `status: "error"`, your credits are already back. ## Webhooks vs polling If you're building a backend that uses the REST API, [webhooks](/api/webhook) are better than polling. But MCP clients are interactive: your AI is waiting in the conversation, polling is fine, and there's no webhook endpoint for a laptop. For production backends: use the REST API with webhooks. For chat / editor workflows: use MCP with polling. ## Next steps Exact shapes for every tool response. Example prompts and conversations. # Authentication Source: https://docs.artificialstudio.ai/mcp/authentication How OAuth works with the Artificial Studio MCP server. The MCP server uses **OAuth 2.1 with PKCE** — the same flow Claude Code and Cursor use for all their MCP integrations. You don't need an API key. ## The flow (first use) Your AI client (Claude Code, Cursor, etc.) calls an MCP tool — say, `generate`. Without a valid Bearer token, the server returns `401 Unauthorized` with a `WWW-Authenticate` header pointing to the OAuth metadata. The client starts an OAuth flow: opens `https://app.artificialstudio.ai/connect` in your default browser with a PKCE challenge. You sign in to Artificial Studio (if not already) and click **Authorize**. The browser redirects back to your AI client's localhost callback with an auth code. The client exchanges the code for a Bearer token and stores it locally. From here on, every MCP request includes `Authorization: Bearer `. ## OAuth endpoints The server exposes standard OAuth discovery metadata: | Endpoint | Purpose | | ----------------------------------------- | ----------------------------------------------------------- | | `/.well-known/oauth-protected-resource` | Resource metadata referenced from 401 responses | | `/.well-known/oauth-authorization-server` | Authorization server metadata (endpoints, supported grants) | | `/oauth/authorize` | Authorization endpoint (browser) | | `/oauth/token` | Token endpoint (exchange code, refresh) | | `/oauth/register` | Dynamic client registration (DCR) | Supported grants: * `authorization_code` (with PKCE — required) * `refresh_token` ## Scopes Current scopes granted: * Read your account (credits, plan, profile) * Read your generations * Run generations (charges your credits like the dashboard) ## Token storage Tokens are stored **by the client**, not by Artificial Studio: * **Claude Code**: OS keychain / `~/.claude` * **Cursor**: OS keychain * **Claude Desktop** (via `mcp-remote`): `~/.mcp-auth/` directory Revoking a token from our side is possible via [app.artificialstudio.ai/account](https://app.artificialstudio.ai/account) under **Connected apps** (coming soon). ## Redirect URIs For native clients, the server's redirect URI whitelist accepts: * `http://localhost:/*` * `http://127.0.0.1:/*` This is per [RFC 8252](https://datatracker.ietf.org/doc/html/rfc8252) — AI clients run a tiny local HTTP server during the OAuth dance to receive the code. ## Troubleshooting Some clients (especially in SSH / headless sessions) can't launch a browser. Copy the authorize URL from the client logs and open it manually on a machine where you're logged in — then paste the callback URL back into the client when prompted. Your access token expired and the refresh failed. Remove the stored token and re-authenticate: * **Claude Code**: `claude mcp remove artificial-studio && claude mcp add --transport http artificial-studio https://api.artificialstudio.ai/mcp` * **Cursor**: remove the entry from `mcp.json`, restart, re-add. * **Claude Desktop (mcp-remote)**: `rm -rf ~/.mcp-auth/` and restart. The port your client chose for the OAuth callback isn't accepted. Make sure you're on the latest version of your MCP client — old versions sometimes pick non-localhost URIs. If it persists, open a support ticket with the exact redirect\_uri from the error. Each machine / profile stores one token. To switch accounts, remove the stored token (see above) and re-authenticate with the other account. ## Next steps All 6 tools, their args, and responses. How to handle long-running generations. # Examples Source: https://docs.artificialstudio.ai/mcp/examples Prompts that work well with the Artificial Studio MCP server. Once the MCP server is connected, just talk to your AI normally. Here are example prompts that hit different tools — use them as inspiration. ## Generate an image > *"Generate a photo of a golden retriever puppy in a field of sunflowers using Flux Schnell."* Your AI will: 1. Call `get_tool_detail` with `tool_slug: "create-image"` to see model options. 2. Call `generate` with `tool: "create-image"`, `input: { model: "flux-schnell", prompt: "..." }`. 3. Poll `check_generation` until done. 4. Show you the image URL. ## Let the AI pick the model > *"Make me an image of a cyberpunk city. Use whichever model is cheapest."* The AI will call `get_tool_detail`, compare `cost` across models, and pick the cheapest before calling `generate`. ## Generate a video from an image > *"Animate this image with a gentle breeze and the subject smiling. Make it 4 seconds."* > *\[attaches image]* The AI will: 1. Find `animate-image` via `search_tools`. 2. Upload or reference the image (client-dependent). 3. Call `generate` with `tool: "animate-image"`, `input: { model: "veo3-1-lite-image-to-video", image_url: "...", prompt: "...", duration: 4 }`. 4. Poll every \~10 seconds — videos take 60–180 seconds. For videos, remind the AI the job is async so it doesn't ask every second. Claude Code and Cursor handle this automatically via `poll_after_seconds`. ## Text to speech > *"Read this paragraph aloud in a British female voice. Use ElevenLabs."* AI calls `text-to-speech` tool with the chosen model. Audio is a short job (\~10s) — polling finishes quickly. ## Check your credits before generating > *"How many credits do I have? Then generate 4 variations of 'neon lights at night' with Nano Banana."* AI calls `get_account` first, tells you the balance, then runs `generate` four times. Bonus: it will warn you if the total cost exceeds your balance. ## List recent work > *"What have I generated in the last hour?"* AI calls `list_generations` with `limit: 20` and shows you the results, filtering by time in its response. ## Chain generations > *"Generate an image of a dragon, then animate it into a 4-second video."* AI runs two `generate` + `check_generation` cycles, feeding the image URL from the first into the second. ## Prompts that won't work well * **"Just generate it, don't wait"** — The async pattern doesn't have a "fire and forget" mode for MCP. Your AI will still poll. * **"Make 100 images in parallel"** — MCP clients typically serialize tool calls. Use the [REST API](/api/run) for bulk jobs. * **"Edit my Photoshop file"** — MCP tools return URLs; they don't touch local files unless your AI client has file-write capability. ## Tips for better results 1. **Name the model when you care**: *"Use Nano Banana Pro"* avoids a `get_tool_detail` round-trip and ambiguity. 2. **Be specific about cost limits**: *"Keep it under 50 credits"* lets the AI filter models. 3. **Tell it to wait**: *"This might take 2 minutes, be patient"* — helps with clients that otherwise time out waiting for a tool response. (The server no longer times out; but some clients have their own UX timers.) ## Next steps Full details on every tool. See all models available via MCP too. # MCP Overview Source: https://docs.artificialstudio.ai/mcp/overview Use Artificial Studio from Claude Code, Cursor, and any MCP-compatible AI. The Artificial Studio **MCP server** lets AI editors and assistants generate images, videos, audio, and 3D directly — no code, no API keys, no glue scripts. One URL, OAuth login, done. MCP (Model Context Protocol) is an open standard created by Anthropic that lets AI apps connect to external tools over a common interface. Think of it as "USB-C for AI tools". ## Endpoint ``` https://api.artificialstudio.ai/mcp ``` * **Transport**: HTTP (streamable) * **Auth**: OAuth 2.1 with PKCE — no API keys * **Stateless**: every request authenticates with a Bearer token ## What you can do from your AI Once connected, your AI has access to 6 tools: | Tool | Description | | ------------------ | ------------------------------------------------------------------- | | `search_tools` | Find the right tool for a task ("generate image", "text to speech") | | `get_tool_detail` | Get the input schema and pricing for a specific tool | | `generate` | Submit a generation job (async — returns a `job_id`) | | `check_generation` | Poll a job until it completes | | `list_generations` | List your recent generations | | `get_account` | Check credits remaining and plan info | See the full [tool reference](/mcp/tools) for details. ## Why MCP instead of the API? | | MCP | REST API | | ------------ | ------------------------ | ---------------------------- | | **Use case** | Chat/editor workflows | Programmatic / production | | **Auth** | OAuth (sign in once) | API key | | **Setup** | 1-line install | Write code | | **Best for** | Exploration, quick tasks | Apps, automation, batch jobs | You don't have to choose — the same account, credits, and plan work for both. ## How it works Add the MCP server to Claude Code, Cursor, Claude Desktop, or Windsurf with one command. First request triggers an OAuth flow: a browser opens, you sign in to Artificial Studio, approve access. A token is stored locally. Ask your AI: *"Generate an image of a dog surfing"*. It discovers the right tool, picks a model, runs it, and shows you the result. ## Async generation — important Image and especially video generation can take seconds to several minutes. The MCP server handles this with an **async pattern**: 1. `generate` returns **immediately** with a `job_id` and `status: "pending"`. 2. Your AI client polls `check_generation` with that `job_id` every few seconds. 3. When `status: "success"`, the `output` field contains the result URL. The server sends `poll_after_seconds` as a hint so your AI waits the right amount of time. This prevents HTTP timeouts on long jobs (like Veo 3.1 videos). See [Async & polling](/mcp/async-polling) for details. ## Next steps Install the MCP server in your AI editor — 60 seconds. How OAuth works and how tokens are stored. Complete reference of all 6 MCP tools. How long-running generations work under MCP. # Quickstart Source: https://docs.artificialstudio.ai/mcp/quickstart Install Artificial Studio's MCP server in your AI editor in 60 seconds. Pick your AI client below. All setups use the same endpoint: ``` https://api.artificialstudio.ai/mcp ``` No API key required — authentication happens via OAuth on first use. ## Claude Code One command in your terminal: ```bash theme={null} claude mcp add --transport http artificial-studio https://api.artificialstudio.ai/mcp ``` That's it. Start a new Claude Code session and ask it to generate something. On the first call a browser tab opens for OAuth — sign in to Artificial Studio and approve. ## Cursor Edit `~/.cursor/mcp.json` (create it if it doesn't exist): ```json theme={null} { "mcpServers": { "artificial-studio": { "url": "https://api.artificialstudio.ai/mcp" } } } ``` Restart Cursor. The tools show up under the MCP panel. Trigger any tool for the first time to start the OAuth flow. You can also use the **Add to Cursor** button on [app.artificialstudio.ai/integrations](https://app.artificialstudio.ai/integrations) for a one-click install via deep link. ## Claude Desktop Claude Desktop doesn't support remote HTTP MCP servers natively yet — use [`mcp-remote`](https://www.npmjs.com/package/mcp-remote) as a bridge. Edit your `claude_desktop_config.json`: * **Mac**: `~/Library/Application Support/Claude/claude_desktop_config.json` * **Windows**: `%APPDATA%\Claude\claude_desktop_config.json` ```json theme={null} { "mcpServers": { "artificial-studio": { "command": "npx", "args": ["-y", "mcp-remote", "https://api.artificialstudio.ai/mcp"] } } } ``` Restart Claude Desktop. The OAuth flow runs the first time you use any tool. ## Windsurf Edit `~/.codeium/windsurf/mcp_config.json`: ```json theme={null} { "mcpServers": { "artificial-studio": { "serverUrl": "https://api.artificialstudio.ai/mcp" } } } ``` Restart Windsurf. ## Cline / Continue / other clients Any MCP client that supports **HTTP transport** works. Point it at `https://api.artificialstudio.ai/mcp`. ```json theme={null} { "mcpServers": { "artificial-studio": { "url": "https://api.artificialstudio.ai/mcp" } } } ``` ## Verify it works After installation, ask your AI something like: > *"Generate an image of a cat wearing sunglasses with Flux Schnell."* A healthy flow looks like: 1. AI calls `search_tools` or `get_tool_detail` to find `create-image`. 2. AI calls `generate` — returns a `job_id` in \~1 second. 3. AI polls `check_generation` a few times. 4. AI shows you the image URL. If the browser doesn't open for OAuth, check your client's logs — the Bearer token may already be cached. If authentication fails, see [Authentication](/mcp/authentication#troubleshooting). ## Next steps Example prompts that work well with each tool. All 6 tools, their args, and response shapes. # Tool Reference Source: https://docs.artificialstudio.ai/mcp/tools Every tool exposed by the Artificial Studio MCP server. The MCP server exposes 6 tools. AI clients discover them automatically via `tools/list` — you don't call them directly; your AI does. ## `search_tools` Find the right Artificial Studio tool for a task. **Arguments** | Name | Type | Description | | ------- | ------ | ------------------------------------------------------------------ | | `query` | string | Free-form description, e.g. `"generate image"`, `"text to speech"` | **Returns**: `{ data: Tool[] }` with matching tools, each including input schemas and pricing. **Example prompt** > *"What tools does Artificial Studio have for making music?"* *** ## `get_tool_detail` Get full details for one tool: all models, input schemas, pricing. **Arguments** | Name | Type | Description | | ----------- | ------ | ---------------------------------------------------------------------- | | `tool_slug` | string | Tool slug, e.g. `"create-image"`, `"create-video"`, `"text-to-speech"` | **Returns**: the tool object with `models[]`, each with `slug`, `name`, `cost`, `costUnit`, and `inputSchema`. Call this before `generate` if you want your AI to pick the best/cheapest model, or to show the user options. *** ## `generate` Submit a generation job. **Returns immediately** with a `job_id` — the job runs asynchronously in the background. This tool is async. After calling, poll `check_generation` with the returned `job_id` every few seconds until `status` is `"success"` or `"error"`. Videos and audio can take minutes. **Arguments** | Name | Type | Description | | ------- | ------ | ------------------------------------------------------------------------ | | `tool` | string | Tool slug, e.g. `"create-image"` | | `input` | object | Must include `model` (string) plus fields from the model's `inputSchema` | **Example call** ```json theme={null} { "tool": "create-image", "input": { "model": "flux-schnell", "prompt": "A cute golden retriever wearing sunglasses", "image_size": "square_hd" } } ``` **Response** ```json theme={null} { "job_id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "create-image", "type": "image", "eta_seconds": 15, "poll_after_seconds": 3, "message": "Job submitted. Poll check_generation with job_id=\"507f...\" every ~3s until status is \"success\" or \"error\"." } ``` **Typical ETA hints** | Type | `eta_seconds` | | ------------ | ------------- | | image / text | 15 | | audio | 30 | | 3d | 60 | | video (≤4s) | 60 | | video (8s) | 120 | `poll_after_seconds` is always clamped between **3s and 10s**. *** ## `check_generation` Poll a generation by its `job_id`. Call this until `done: true`. **Arguments** | Name | Type | Description | | --------------- | ------ | ---------------------------- | | `generation_id` | string | The `job_id` from `generate` | **Response — still running** ```json theme={null} { "job_id": "507f...", "status": "processing", "tool": "create-image", "type": "image", "done": false, "poll_after_seconds": 5 } ``` **Response — success** ```json theme={null} { "job_id": "507f...", "status": "success", "tool": "create-image", "type": "image", "output": "https://files.artificialstudio.ai/generations/abc123.png", "thumbnail": "https://files.artificialstudio.ai/thumbnails/abc123.jpg", "done": true } ``` **Response — error** ```json theme={null} { "job_id": "507f...", "status": "error", "tool": "create-image", "type": "image", "error": "Model failed: content policy violation", "done": true } ``` `output` and `thumbnail` are only present on success. `error` is only present on failure. When `done: true`, stop polling. *** ## `list_generations` List recent generations from your account. **Arguments** | Name | Type | Default | Description | | -------- | ------ | ------- | --------------------------------------------------- | | `limit` | number | 20 | Items per page | | `offset` | number | 0 | Pagination offset | | `status` | string | — | Filter: `pending`, `processing`, `success`, `error` | Useful for "show me my last video" style prompts. *** ## `get_account` Returns credits, plan, and basic account info for the authenticated user. **Arguments**: none. **Returns** ```json theme={null} { "credits": 1234, "plan": "pro", "email": "you@example.com" } ``` Your AI can use this to warn you before running expensive jobs. *** ## Error handling Tool calls that fail throw standard MCP errors. Common causes: | Error | Cause | | ---------------------------------- | ---------------------------------------- | | `Tool 'X' not found` | Invalid `tool_slug` or `tool` argument | | `Model 'X' not found for tool 'Y'` | `input.model` is wrong | | `Insufficient credits` | Charged in `generate` before queueing | | `Validation failed` | `input` doesn't match the model's schema | | `Generation not found` | Wrong `job_id` in `check_generation` | Your AI will typically retry or ask you for clarification — behavior depends on the client. ## Next steps Deep dive on the async generation pattern. Example prompts and conversations. # Florence 2 Source: https://docs.artificialstudio.ai/text/florence-caption POST https://api.artificialstudio.ai/api/run Generate detailed image descriptions using Florence 2. | | | | ----------- | --------------- | | **Credits** | 1 credit | | **Tool** | `image-to-text` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ----------------- | ------ | -------- | ---------------------------- | | `tool` | string | Yes | `image-to-text` | | `input.model` | string | Yes | `florence-caption` | | `input.image_url` | string | Yes | URL of the image to describe | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "image-to-text", "input": { "model": "florence-caption", "image_url": "https://example.com/my-photo.jpg" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'image-to-text', input: { model: 'florence-caption', image_url: 'https://example.com/my-photo.jpg' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'image-to-text', 'input': { 'model': 'florence-caption', 'image_url': 'https://example.com/my-photo.jpg' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "image-to-text", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Florence 2 OCR Source: https://docs.artificialstudio.ai/text/florence-ocr POST https://api.artificialstudio.ai/api/run Extract text from images using Florence 2 OCR. | | | | ----------- | ---------------- | | **Credits** | 1 credit | | **Tool** | `text-extractor` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ----------------- | ------ | -------- | ------------------------------------- | | `tool` | string | Yes | `text-extractor` | | `input.model` | string | Yes | `florence-ocr` | | `input.image_url` | string | Yes | URL of the image to extract text from | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "text-extractor", "input": { "model": "florence-ocr", "image_url": "https://example.com/document.jpg" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'text-extractor', input: { model: 'florence-ocr', image_url: 'https://example.com/document.jpg' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'text-extractor', 'input': { 'model': 'florence-ocr', 'image_url': 'https://example.com/document.jpg' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "text-extractor", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # GOT-OCR 2.0 Source: https://docs.artificialstudio.ai/text/got-ocr POST https://api.artificialstudio.ai/api/run Extract text from images and documents using GOT-OCR 2.0. | | | | ----------- | ---------------- | | **Credits** | 1 credit | | **Tool** | `text-extractor` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ----------------- | ------ | -------- | ------------------------------------- | | `tool` | string | Yes | `text-extractor` | | `input.model` | string | Yes | `got-ocr` | | `input.image_url` | string | Yes | URL of the image to extract text from | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "text-extractor", "input": { "model": "got-ocr", "image_url": "https://example.com/document.jpg" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'text-extractor', input: { model: 'got-ocr', image_url: 'https://example.com/document.jpg' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'text-extractor', 'input': { 'model': 'got-ocr', 'image_url': 'https://example.com/document.jpg' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "text-extractor", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Whisper Source: https://docs.artificialstudio.ai/text/whisper POST https://api.artificialstudio.ai/api/run Transcribe audio to text using OpenAI Whisper. | | | | ----------- | ------------------- | | **Credits** | 1 credit per second | | **Tool** | `audio-to-text` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ----------------- | ------ | -------- | ----------------------------------- | | `tool` | string | Yes | `audio-to-text` | | `input.model` | string | Yes | `whisper` | | `input.audio_url` | string | Yes | URL of the audio file to transcribe | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "audio-to-text", "input": { "model": "whisper", "audio_url": "https://example.com/my-audio.mp3" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'audio-to-text', input: { model: 'whisper', audio_url: 'https://example.com/my-audio.mp3' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'audio-to-text', 'input': { 'model': 'whisper', 'audio_url': 'https://example.com/my-audio.mp3' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "audio-to-text", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Whisper Subtitles Source: https://docs.artificialstudio.ai/text/whisper-subtitles POST https://api.artificialstudio.ai/api/run Generate subtitles from audio using OpenAI Whisper. | | | | ----------- | -------------------- | | **Credits** | 1 credit per second | | **Tool** | `audio-to-subtitles` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ----------------- | ------ | -------- | ------------------------------------------------------- | | `tool` | string | Yes | `audio-to-subtitles` | | `input.model` | string | Yes | `whisper-subtitles` | | `input.audio_url` | string | Yes | URL of the audio file | | `input.format` | string | No | Subtitle format. Options: `srt`, `vtt` (default: `srt`) | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "audio-to-subtitles", "input": { "model": "whisper-subtitles", "audio_url": "https://example.com/my-audio.mp3", "format": "srt" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'audio-to-subtitles', input: { model: 'whisper-subtitles', audio_url: 'https://example.com/my-audio.mp3', format: 'srt' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'audio-to-subtitles', 'input': { 'model': 'whisper-subtitles', 'audio_url': 'https://example.com/my-audio.mp3', 'format': 'srt' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "audio-to-subtitles", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # HeyGen Translate Source: https://docs.artificialstudio.ai/video/heygen-translate POST https://api.artificialstudio.ai/api/run Translate videos while preserving the original speaker's voice. | | | | ----------- | -------------------- | | **Credits** | 8 credits per second | | **Tool** | `translate-video` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ----------------------- | ------ | -------- | ------------------------------------------------------------------- | | `tool` | string | Yes | `translate-video` | | `input.model` | string | Yes | `heygen-translate` | | `input.video_url` | string | Yes | URL of the video to translate | | `input.output_language` | string | No | Target language (default: `Spanish`). See supported languages below | ### Supported Languages English, Spanish, French, German, Italian, Portuguese, Chinese, Japanese, Korean, Russian, Arabic, Hindi, Dutch, Polish, Turkish, Swedish, Danish, Finnish, Greek, Czech, Romanian, Indonesian, Filipino, Ukrainian, Bulgarian, Malay, Slovak, Croatian, Tamil, Vietnamese, Thai. ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "translate-video", "input": { "model": "heygen-translate", "video_url": "https://example.com/my-video.mp4", "output_language": "Spanish" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'translate-video', input: { model: 'heygen-translate', video_url: 'https://example.com/my-video.mp4', output_language: 'Spanish' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'translate-video', 'input': { 'model': 'heygen-translate', 'video_url': 'https://example.com/my-video.mp4', 'output_language': 'Spanish' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "translate-video", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Kling 1.6 Pro Image to Video Source: https://docs.artificialstudio.ai/video/kling-1-6-pro-image-to-video POST https://api.artificialstudio.ai/api/run Animate images with Kling 1.6 Pro. | | | | ----------- | --------------------- | | **Credits** | 20 credits per second | | **Tool** | `animate-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ----------------- | ------ | -------- | --------------------------------------- | | `tool` | string | Yes | `animate-image` | | `input.model` | string | Yes | `kling-1-6-pro-image-to-video` | | `input.image_url` | string | Yes | URL of the image to animate | | `input.prompt` | string | No | Description of the desired motion | | `input.duration` | number | No | Duration in seconds. Options: `5`, `10` | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "animate-image", "input": { "model": "kling-1-6-pro-image-to-video", "image_url": "https://example.com/my-image.jpg", "prompt": "Camera slowly zooming in" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'animate-image', input: { model: 'kling-1-6-pro-image-to-video', image_url: 'https://example.com/my-image.jpg', prompt: 'Camera slowly zooming in' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'animate-image', 'input': { 'model': 'kling-1-6-pro-image-to-video', 'image_url': 'https://example.com/my-image.jpg', 'prompt': 'Camera slowly zooming in' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "animate-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Kling 1.6 Pro Source: https://docs.artificialstudio.ai/video/kling-1-6-pro-text-to-video POST https://api.artificialstudio.ai/api/run Generate videos from text using Kling 1.6 Pro. | | | | ----------- | --------------------- | | **Credits** | 20 credits per second | | **Tool** | `create-video` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ---------------- | ------ | -------- | ----------------------------------------- | | `tool` | string | Yes | `create-video` | | `input.model` | string | Yes | `kling-1-6-pro-text-to-video` | | `input.prompt` | string | Yes | Text description of the video to generate | | `input.duration` | number | No | Duration in seconds. Options: `5`, `10` | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "create-video", "input": { "model": "kling-1-6-pro-text-to-video", "prompt": "A drone shot flying over a tropical island" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'create-video', input: { model: 'kling-1-6-pro-text-to-video', prompt: 'A drone shot flying over a tropical island' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'create-video', 'input': { 'model': 'kling-1-6-pro-text-to-video', 'prompt': 'A drone shot flying over a tropical island' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "create-video", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Kling 2.0 Master Image to Video Source: https://docs.artificialstudio.ai/video/kling-2-0-master-image-to-video POST https://api.artificialstudio.ai/api/run Animate images with Kling 2.0 Master. | | | | ----------- | --------------------- | | **Credits** | 60 credits per second | | **Tool** | `animate-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ----------------- | ------ | -------- | --------------------------------- | | `tool` | string | Yes | `animate-image` | | `input.model` | string | Yes | `kling-2-0-master-image-to-video` | | `input.image_url` | string | Yes | URL of the image to animate | | `input.prompt` | string | No | Description of the desired motion | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "animate-image", "input": { "model": "kling-2-0-master-image-to-video", "image_url": "https://example.com/my-image.jpg", "prompt": "Camera slowly zooming in" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'animate-image', input: { model: 'kling-2-0-master-image-to-video', image_url: 'https://example.com/my-image.jpg', prompt: 'Camera slowly zooming in' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'animate-image', 'input': { 'model': 'kling-2-0-master-image-to-video', 'image_url': 'https://example.com/my-image.jpg', 'prompt': 'Camera slowly zooming in' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "animate-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Kling 2.0 Master Source: https://docs.artificialstudio.ai/video/kling-2-0-master-text-to-video POST https://api.artificialstudio.ai/api/run Generate videos from text using Kling 2.0 Master. | | | | ----------- | --------------------- | | **Credits** | 60 credits per second | | **Tool** | `create-video` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | -------------- | ------ | -------- | ----------------------------------------- | | `tool` | string | Yes | `create-video` | | `input.model` | string | Yes | `kling-2-0-master-text-to-video` | | `input.prompt` | string | Yes | Text description of the video to generate | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "create-video", "input": { "model": "kling-2-0-master-text-to-video", "prompt": "A drone shot flying over a tropical island" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'create-video', input: { model: 'kling-2-0-master-text-to-video', prompt: 'A drone shot flying over a tropical island' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'create-video', 'input': { 'model': 'kling-2-0-master-text-to-video', 'prompt': 'A drone shot flying over a tropical island' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "create-video", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Kling 2.5 Turbo Image to Video Source: https://docs.artificialstudio.ai/video/kling-2-5-turbo-image-to-video POST https://api.artificialstudio.ai/api/run Animate images with Kling 2.5 Turbo. | | | | ----------- | --------------------- | | **Credits** | 14 credits per second | | **Tool** | `animate-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ----------------- | ------ | -------- | --------------------------------------- | | `tool` | string | Yes | `animate-image` | | `input.model` | string | Yes | `kling-2-5-turbo-image-to-video` | | `input.image_url` | string | Yes | URL of the image to animate | | `input.prompt` | string | No | Description of the desired motion | | `input.duration` | number | No | Duration in seconds. Options: `5`, `10` | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "animate-image", "input": { "model": "kling-2-5-turbo-image-to-video", "image_url": "https://example.com/my-image.jpg", "prompt": "Camera slowly zooming in" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'animate-image', input: { model: 'kling-2-5-turbo-image-to-video', image_url: 'https://example.com/my-image.jpg', prompt: 'Camera slowly zooming in' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'animate-image', 'input': { 'model': 'kling-2-5-turbo-image-to-video', 'image_url': 'https://example.com/my-image.jpg', 'prompt': 'Camera slowly zooming in' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "animate-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Kling 3.0 Pro Image to Video Source: https://docs.artificialstudio.ai/video/kling-3-0-pro-image-to-video POST https://api.artificialstudio.ai/api/run Top-tier image-to-video with cinematic visuals, fluid motion, and native audio generation. | | | | ----------- | --------------------- | | **Credits** | 34 credits per second | | **Tool** | `animate-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ----------------- | ------ | -------- | ------------------------------------------------------------ | | `tool` | string | Yes | `animate-image` | | `input.model` | string | Yes | `kling-3-0-pro-image-to-video` | | `input.image_url` | string | Yes | URL of the image to animate | | `input.prompt` | string | Yes | Describe how you want the image to animate | | `input.duration` | string | No | Video duration in seconds. Options: `5`, `10` (default: `5`) | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "animate-image", "input": { "model": "kling-3-0-pro-image-to-video", "image_url": "https://example.com/image.jpg", "prompt": "Camera slowly pushes in as leaves rustle in the breeze" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'animate-image', input: { model: 'kling-3-0-pro-image-to-video', image_url: 'https://example.com/image.jpg', prompt: 'Camera slowly pushes in as leaves rustle in the breeze' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'animate-image', 'input': { 'model': 'kling-3-0-pro-image-to-video', 'image_url': 'https://example.com/image.jpg', 'prompt': 'Camera slowly pushes in as leaves rustle in the breeze' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "animate-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Kling 3.0 Pro Source: https://docs.artificialstudio.ai/video/kling-3-0-pro-text-to-video POST https://api.artificialstudio.ai/api/run Top-tier cinematic videos with fluid motion, native audio, and multi-shot support. | | | | ----------- | --------------------- | | **Credits** | 34 credits per second | | **Tool** | `create-video` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | -------------------- | ------ | -------- | -------------------------------------------------------------- | | `tool` | string | Yes | `create-video` | | `input.model` | string | Yes | `kling-3-0-pro-text-to-video` | | `input.prompt` | string | Yes | Text description of the video to generate | | `input.duration` | string | No | Video duration in seconds. Options: `5`, `10` (default: `5`) | | `input.aspect_ratio` | string | No | Aspect ratio. Options: `16:9`, `9:16`, `1:1` (default: `16:9`) | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "create-video", "input": { "model": "kling-3-0-pro-text-to-video", "prompt": "A cinematic wide shot of a lone astronaut walking on Mars" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'create-video', input: { model: 'kling-3-0-pro-text-to-video', prompt: 'A cinematic wide shot of a lone astronaut walking on Mars' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'create-video', 'input': { 'model': 'kling-3-0-pro-text-to-video', 'prompt': 'A cinematic wide shot of a lone astronaut walking on Mars' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "create-video", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Kling 3.0 Standard Image to Video Source: https://docs.artificialstudio.ai/video/kling-3-0-standard-image-to-video POST https://api.artificialstudio.ai/api/run Cinematic image-to-video with fluid motion and native audio at an affordable price. | | | | ----------- | --------------------- | | **Credits** | 25 credits per second | | **Tool** | `animate-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ----------------- | ------ | -------- | ------------------------------------------------------------ | | `tool` | string | Yes | `animate-image` | | `input.model` | string | Yes | `kling-3-0-standard-image-to-video` | | `input.image_url` | string | Yes | URL of the image to animate | | `input.prompt` | string | Yes | Describe how you want the image to animate | | `input.duration` | string | No | Video duration in seconds. Options: `5`, `10` (default: `5`) | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "animate-image", "input": { "model": "kling-3-0-standard-image-to-video", "image_url": "https://example.com/image.jpg", "prompt": "Gentle wind blows through the subject'\''s hair" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'animate-image', input: { model: 'kling-3-0-standard-image-to-video', image_url: 'https://example.com/image.jpg', prompt: "Gentle wind blows through the subject's hair" } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'animate-image', 'input': { 'model': 'kling-3-0-standard-image-to-video', 'image_url': 'https://example.com/image.jpg', 'prompt': "Gentle wind blows through the subject's hair" } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "animate-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Kling 3.0 Standard Source: https://docs.artificialstudio.ai/video/kling-3-0-standard-text-to-video POST https://api.artificialstudio.ai/api/run Cinematic videos with fluid motion and native audio at an affordable price. | | | | ----------- | --------------------- | | **Credits** | 25 credits per second | | **Tool** | `create-video` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | -------------------- | ------ | -------- | -------------------------------------------------------------- | | `tool` | string | Yes | `create-video` | | `input.model` | string | Yes | `kling-3-0-standard-text-to-video` | | `input.prompt` | string | Yes | Text description of the video to generate | | `input.duration` | string | No | Video duration in seconds. Options: `5`, `10` (default: `5`) | | `input.aspect_ratio` | string | No | Aspect ratio. Options: `16:9`, `9:16`, `1:1` (default: `16:9`) | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "create-video", "input": { "model": "kling-3-0-standard-text-to-video", "prompt": "A chef tossing pizza dough in a rustic kitchen" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'create-video', input: { model: 'kling-3-0-standard-text-to-video', prompt: 'A chef tossing pizza dough in a rustic kitchen' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'create-video', 'input': { 'model': 'kling-3-0-standard-text-to-video', 'prompt': 'A chef tossing pizza dough in a rustic kitchen' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "create-video", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Kling 2.6 Pro Motion Control Source: https://docs.artificialstudio.ai/video/kling-motion-control-v26-pro POST https://api.artificialstudio.ai/api/run Higher quality motion transfer, ideal for complex dance moves and gestures. | | | | ----------- | --------------------- | | **Credits** | 23 credits per second | | **Tool** | `animate-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ----------------------------- | ------ | -------- | -------------------------------------------------------------------------------------------------------------------------- | | `tool` | string | Yes | `animate-image` | | `input.model` | string | Yes | `kling-motion-control-v26-pro` | | `input.image_url` | string | Yes | URL of the character image to animate (clear body proportions recommended) | | `input.video_url` | string | Yes | URL of the reference video with the motion to transfer | | `input.character_orientation` | string | No | `video` matches the reference video orientation (max 30s), `image` matches the reference image (max 10s). Default: `video` | | `input.prompt` | string | No | Optional scene or style description (max 500 chars) | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "animate-image", "input": { "model": "kling-motion-control-v26-pro", "image_url": "https://example.com/character.jpg", "video_url": "https://example.com/dance-reference.mp4" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'animate-image', input: { model: 'kling-motion-control-v26-pro', image_url: 'https://example.com/character.jpg', video_url: 'https://example.com/dance-reference.mp4' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'animate-image', 'input': { 'model': 'kling-motion-control-v26-pro', 'image_url': 'https://example.com/character.jpg', 'video_url': 'https://example.com/dance-reference.mp4' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "animate-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Kling 2.6 Standard Motion Control Source: https://docs.artificialstudio.ai/video/kling-motion-control-v26-standard POST https://api.artificialstudio.ai/api/run Cost-effective motion transfer, perfect for portraits and simple animations. | | | | ----------- | --------------------- | | **Credits** | 14 credits per second | | **Tool** | `animate-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ----------------------------- | ------ | -------- | -------------------------------------------------------------------------------------------------------------------------- | | `tool` | string | Yes | `animate-image` | | `input.model` | string | Yes | `kling-motion-control-v26-standard` | | `input.image_url` | string | Yes | URL of the character image to animate (clear body proportions recommended) | | `input.video_url` | string | Yes | URL of the reference video with the motion to transfer | | `input.character_orientation` | string | No | `video` matches the reference video orientation (max 30s), `image` matches the reference image (max 10s). Default: `video` | | `input.prompt` | string | No | Optional scene or style description (max 500 chars) | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "animate-image", "input": { "model": "kling-motion-control-v26-standard", "image_url": "https://example.com/character.jpg", "video_url": "https://example.com/motion-reference.mp4" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'animate-image', input: { model: 'kling-motion-control-v26-standard', image_url: 'https://example.com/character.jpg', video_url: 'https://example.com/motion-reference.mp4' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'animate-image', 'input': { 'model': 'kling-motion-control-v26-standard', 'image_url': 'https://example.com/character.jpg', 'video_url': 'https://example.com/motion-reference.mp4' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "animate-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Kling 3.0 Pro Motion Control Source: https://docs.artificialstudio.ai/video/kling-motion-control-v3-pro POST https://api.artificialstudio.ai/api/run Best quality motion transfer with facial consistency support. | | | | ----------- | --------------------- | | **Credits** | 34 credits per second | | **Tool** | `animate-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ----------------------------- | ------ | -------- | -------------------------------------------------------------------------------------------------------------------------- | | `tool` | string | Yes | `animate-image` | | `input.model` | string | Yes | `kling-motion-control-v3-pro` | | `input.image_url` | string | Yes | URL of the character image to animate (clear body proportions recommended) | | `input.video_url` | string | Yes | URL of the reference video with the motion to transfer | | `input.character_orientation` | string | No | `video` matches the reference video orientation (max 30s), `image` matches the reference image (max 10s). Default: `video` | | `input.prompt` | string | No | Optional scene or style description (max 500 chars) | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "animate-image", "input": { "model": "kling-motion-control-v3-pro", "image_url": "https://example.com/character.jpg", "video_url": "https://example.com/motion-reference.mp4" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'animate-image', input: { model: 'kling-motion-control-v3-pro', image_url: 'https://example.com/character.jpg', video_url: 'https://example.com/motion-reference.mp4' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'animate-image', 'input': { 'model': 'kling-motion-control-v3-pro', 'image_url': 'https://example.com/character.jpg', 'video_url': 'https://example.com/motion-reference.mp4' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "animate-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Kling 3.0 Standard Motion Control Source: https://docs.artificialstudio.ai/video/kling-motion-control-v3-standard POST https://api.artificialstudio.ai/api/run Latest Kling model for motion transfer with improved quality. | | | | ----------- | --------------------- | | **Credits** | 26 credits per second | | **Tool** | `animate-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ----------------------------- | ------ | -------- | -------------------------------------------------------------------------------------------------------------------------- | | `tool` | string | Yes | `animate-image` | | `input.model` | string | Yes | `kling-motion-control-v3-standard` | | `input.image_url` | string | Yes | URL of the character image to animate (clear body proportions recommended) | | `input.video_url` | string | Yes | URL of the reference video with the motion to transfer | | `input.character_orientation` | string | No | `video` matches the reference video orientation (max 30s), `image` matches the reference image (max 10s). Default: `video` | | `input.prompt` | string | No | Optional scene or style description (max 500 chars) | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "animate-image", "input": { "model": "kling-motion-control-v3-standard", "image_url": "https://example.com/character.jpg", "video_url": "https://example.com/motion-reference.mp4" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'animate-image', input: { model: 'kling-motion-control-v3-standard', image_url: 'https://example.com/character.jpg', video_url: 'https://example.com/motion-reference.mp4' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'animate-image', 'input': { 'model': 'kling-motion-control-v3-standard', 'image_url': 'https://example.com/character.jpg', 'video_url': 'https://example.com/motion-reference.mp4' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "animate-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Kling O3 Source: https://docs.artificialstudio.ai/video/kling-o3 POST https://api.artificialstudio.ai/api/run Animate images with start and optional end frame guidance. | | | | ------------ | --------------------------- | | **Credits** | 44 credits per second | | **Duration** | 3–15 seconds (configurable) | | **Tool** | `animate-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | --------------------- | ------ | -------- | ----------------------------------------------- | | `tool` | string | Yes | `animate-image` | | `input.model` | string | Yes | `kling-o3-image-to-video` | | `input.image_url` | string | Yes | URL of the start frame image | | `input.prompt` | string | No | Description of the desired motion | | `input.end_image_url` | string | No | URL of the end frame image for guided animation | | `input.duration` | number | No | Video duration in seconds (3–15, default: 5) | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "animate-image", "input": { "model": "kling-o3-image-to-video", "image_url": "https://example.com/start-frame.jpg", "prompt": "Camera slowly zooming in", "duration": 5 } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'animate-image', input: { model: 'kling-o3-image-to-video', image_url: 'https://example.com/start-frame.jpg', prompt: 'Camera slowly zooming in', duration: 5 } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'animate-image', 'input': { 'model': 'kling-o3-image-to-video', 'image_url': 'https://example.com/start-frame.jpg', 'prompt': 'Camera slowly zooming in', 'duration': 5 } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "animate-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Luma Ray 2 Image to Video Source: https://docs.artificialstudio.ai/video/luma-ray-2-image-to-video POST https://api.artificialstudio.ai/api/run Animate images into videos using Luma Ray 2. | | | | ----------- | --------------------- | | **Credits** | 20 credits per second | | **Tool** | `animate-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ----------------- | ------ | -------- | --------------------------------- | | `tool` | string | Yes | `animate-image` | | `input.model` | string | Yes | `luma-ray-2-image-to-video` | | `input.image_url` | string | Yes | URL of the image to animate | | `input.prompt` | string | No | Description of the desired motion | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "animate-image", "input": { "model": "luma-ray-2-image-to-video", "image_url": "https://example.com/my-image.jpg", "prompt": "Camera slowly zooming in" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'animate-image', input: { model: 'luma-ray-2-image-to-video', image_url: 'https://example.com/my-image.jpg', prompt: 'Camera slowly zooming in' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'animate-image', 'input': { 'model': 'luma-ray-2-image-to-video', 'image_url': 'https://example.com/my-image.jpg', 'prompt': 'Camera slowly zooming in' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "animate-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Luma Ray 2 Source: https://docs.artificialstudio.ai/video/luma-ray-2-text-to-video POST https://api.artificialstudio.ai/api/run Generate videos from text using Luma Ray 2. | | | | ----------- | --------------------- | | **Credits** | 20 credits per second | | **Tool** | `create-video` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | -------------- | ------ | -------- | ----------------------------------------- | | `tool` | string | Yes | `create-video` | | `input.model` | string | Yes | `luma-ray-2-text-to-video` | | `input.prompt` | string | Yes | Text description of the video to generate | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "create-video", "input": { "model": "luma-ray-2-text-to-video", "prompt": "A drone shot flying over a tropical island" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'create-video', input: { model: 'luma-ray-2-text-to-video', prompt: 'A drone shot flying over a tropical island' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'create-video', 'input': { 'model': 'luma-ray-2-text-to-video', 'prompt': 'A drone shot flying over a tropical island' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "create-video", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Magi Extend Source: https://docs.artificialstudio.ai/video/magi-extend POST https://api.artificialstudio.ai/api/run Extend video duration with AI-generated continuation. | | | | ----------- | --------------------- | | **Credits** | 10 credits per second | | **Tool** | `extend-video` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ----------------- | ------ | -------- | ------------------------------------- | | `tool` | string | Yes | `extend-video` | | `input.model` | string | Yes | `magi-extend` | | `input.video_url` | string | Yes | URL of the video to extend | | `input.prompt` | string | No | Description to guide the continuation | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "extend-video", "input": { "model": "magi-extend", "video_url": "https://example.com/my-video.mp4", "prompt": "Continue the camera movement forward" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'extend-video', input: { model: 'magi-extend', video_url: 'https://example.com/my-video.mp4', prompt: 'Continue the camera movement forward' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'extend-video', 'input': { 'model': 'magi-extend', 'video_url': 'https://example.com/my-video.mp4', 'prompt': 'Continue the camera movement forward' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "extend-video", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Minimax Image to Video Source: https://docs.artificialstudio.ai/video/minimax-image-to-video POST https://api.artificialstudio.ai/api/run Animate images into videos using Minimax. | | | | ----------- | --------------------- | | **Credits** | 20 credits per second | | **Tool** | `animate-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ----------------- | ------ | -------- | --------------------------------- | | `tool` | string | Yes | `animate-image` | | `input.model` | string | Yes | `minimax-image-to-video` | | `input.image_url` | string | Yes | URL of the image to animate | | `input.prompt` | string | No | Description of the desired motion | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "animate-image", "input": { "model": "minimax-image-to-video", "image_url": "https://example.com/my-image.jpg", "prompt": "Camera slowly zooming in" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'animate-image', input: { model: 'minimax-image-to-video', image_url: 'https://example.com/my-image.jpg', prompt: 'Camera slowly zooming in' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'animate-image', 'input': { 'model': 'minimax-image-to-video', 'image_url': 'https://example.com/my-image.jpg', 'prompt': 'Camera slowly zooming in' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "animate-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Minimax Source: https://docs.artificialstudio.ai/video/minimax-text-to-video POST https://api.artificialstudio.ai/api/run Generate videos from text using Minimax. | | | | ----------- | --------------------- | | **Credits** | 20 credits per second | | **Tool** | `create-video` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | -------------- | ------ | -------- | ----------------------------------------- | | `tool` | string | Yes | `create-video` | | `input.model` | string | Yes | `minimax-text-to-video` | | `input.prompt` | string | Yes | Text description of the video to generate | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "create-video", "input": { "model": "minimax-text-to-video", "prompt": "A drone shot flying over a tropical island" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'create-video', input: { model: 'minimax-text-to-video', prompt: 'A drone shot flying over a tropical island' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'create-video', 'input': { 'model': 'minimax-text-to-video', 'prompt': 'A drone shot flying over a tropical island' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "create-video", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # MMAudio Sync Source: https://docs.artificialstudio.ai/video/mmaudio-sync POST https://api.artificialstudio.ai/api/run Generate synchronized audio for videos. | | | | ----------- | ------------------- | | **Credits** | 1 credit per second | | **Tool** | `video-sync-audio` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ----------------- | ------ | -------- | ----------------------------------------- | | `tool` | string | Yes | `video-sync-audio` | | `input.model` | string | Yes | `mmaudio-sync` | | `input.video_url` | string | Yes | URL of the video | | `input.prompt` | string | No | Description to guide the audio generation | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "video-sync-audio", "input": { "model": "mmaudio-sync", "video_url": "https://example.com/my-video.mp4", "prompt": "Ocean waves crashing on rocks" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'video-sync-audio', input: { model: 'mmaudio-sync', video_url: 'https://example.com/my-video.mp4', prompt: 'Ocean waves crashing on rocks' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'video-sync-audio', 'input': { 'model': 'mmaudio-sync', 'video_url': 'https://example.com/my-video.mp4', 'prompt': 'Ocean waves crashing on rocks' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "video-sync-audio", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Mochi Source: https://docs.artificialstudio.ai/video/mochi-text-to-video POST https://api.artificialstudio.ai/api/run Generate videos from text using Mochi. | | | | ----------- | --------------------- | | **Credits** | 16 credits per second | | **Tool** | `create-video` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | -------------- | ------ | -------- | ----------------------------------------- | | `tool` | string | Yes | `create-video` | | `input.model` | string | Yes | `mochi-text-to-video` | | `input.prompt` | string | Yes | Text description of the video to generate | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "create-video", "input": { "model": "mochi-text-to-video", "prompt": "A drone shot flying over a tropical island" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'create-video', input: { model: 'mochi-text-to-video', prompt: 'A drone shot flying over a tropical island' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'create-video', 'input': { 'model': 'mochi-text-to-video', 'prompt': 'A drone shot flying over a tropical island' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "create-video", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Runway Gen4 Source: https://docs.artificialstudio.ai/video/runway-gen4 POST https://api.artificialstudio.ai/api/run Edit videos with AI using text prompts. | | | | ----------- | -------------------- | | **Credits** | 6 credits per second | | **Tool** | `edit-video` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ----------------- | ------ | -------- | -------------------------------- | | `tool` | string | Yes | `edit-video` | | `input.model` | string | Yes | `runway-gen4` | | `input.prompt` | string | Yes | Description of the edit to apply | | `input.video_url` | string | Yes | URL of the video to edit | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "edit-video", "input": { "model": "runway-gen4", "prompt": "Add cinematic color grading", "video_url": "https://example.com/my-video.mp4" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'edit-video', input: { model: 'runway-gen4', prompt: 'Add cinematic color grading', video_url: 'https://example.com/my-video.mp4' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'edit-video', 'input': { 'model': 'runway-gen4', 'prompt': 'Add cinematic color grading', 'video_url': 'https://example.com/my-video.mp4' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "edit-video", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # SeeDance 2.0 Fast Image to Video Source: https://docs.artificialstudio.ai/video/seedance-2-fast-image-to-video POST https://api.artificialstudio.ai/api/run Faster version of SeeDance 2.0 for image animation. Great quality at lower cost with optional last frame support. | | | | ----------- | ------------------------------------------------------------ | | **Credits** | 22 credits per second at 480p, 49 credits per second at 720p | | **Tool** | `animate-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | --------------------- | ------ | -------- | --------------------------------------------------------------------------------------------------------------------------- | | `tool` | string | Yes | `animate-image` | | `input.model` | string | Yes | `seedance-2-fast-image-to-video` | | `input.image_url` | string | Yes | URL of the image to animate | | `input.prompt` | string | Yes | Describe how you want the image to animate | | `input.end_image_url` | string | No | Optional end frame to interpolate towards | | `input.duration` | string | No | Video duration in seconds. Options: `auto`, `4`, `5`, `6`, `7`, `8`, `9`, `10`, `11`, `12`, `13`, `14`, `15` (default: `5`) | | `input.aspect_ratio` | string | No | Aspect ratio. Options: `auto`, `16:9`, `9:16`, `4:3`, `3:4`, `1:1`, `21:9` (default: `auto`) | | `input.resolution` | string | No | Video resolution. Options: `480p`, `720p` (default: `480p`) | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "animate-image", "input": { "model": "seedance-2-fast-image-to-video", "image_url": "https://example.com/image.jpg", "prompt": "A cat jumping off a bookshelf in slow motion" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'animate-image', input: { model: 'seedance-2-fast-image-to-video', image_url: 'https://example.com/image.jpg', prompt: 'A cat jumping off a bookshelf in slow motion' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'animate-image', 'input': { 'model': 'seedance-2-fast-image-to-video', 'image_url': 'https://example.com/image.jpg', 'prompt': 'A cat jumping off a bookshelf in slow motion' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "animate-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # SeeDance 2.0 Fast Source: https://docs.artificialstudio.ai/video/seedance-2-fast-text-to-video POST https://api.artificialstudio.ai/api/run Faster version of SeeDance 2.0 with great quality at lower cost. Ideal for quick iterations. | | | | ----------- | ------------------------------------------------------------ | | **Credits** | 22 credits per second at 480p, 49 credits per second at 720p | | **Tool** | `create-video` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | -------------------- | ------ | -------- | --------------------------------------------------------------------------------------------------------------------------- | | `tool` | string | Yes | `create-video` | | `input.model` | string | Yes | `seedance-2-fast-text-to-video` | | `input.prompt` | string | Yes | Text description of the video to generate | | `input.duration` | string | No | Video duration in seconds. Options: `auto`, `4`, `5`, `6`, `7`, `8`, `9`, `10`, `11`, `12`, `13`, `14`, `15` (default: `5`) | | `input.aspect_ratio` | string | No | Aspect ratio. Options: `16:9`, `9:16`, `4:3`, `3:4`, `1:1`, `21:9` (default: `16:9`) | | `input.resolution` | string | No | Video resolution. Options: `480p`, `720p` (default: `480p`) | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "create-video", "input": { "model": "seedance-2-fast-text-to-video", "prompt": "A time-lapse of clouds moving over mountains" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'create-video', input: { model: 'seedance-2-fast-text-to-video', prompt: 'A time-lapse of clouds moving over mountains' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'create-video', 'input': { 'model': 'seedance-2-fast-text-to-video', 'prompt': 'A time-lapse of clouds moving over mountains' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "create-video", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # SeeDance 2.0 Image to Video Source: https://docs.artificialstudio.ai/video/seedance-2-image-to-video POST https://api.artificialstudio.ai/api/run ByteDance's most advanced video model. Animate images with cinematic quality, native audio, and real-world physics. Supports optional last frame. | | | | ----------- | ------------------------------------------------------------ | | **Credits** | 27 credits per second at 480p, 61 credits per second at 720p | | **Tool** | `animate-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | --------------------- | ------ | -------- | --------------------------------------------------------------------------------------------------------------------------- | | `tool` | string | Yes | `animate-image` | | `input.model` | string | Yes | `seedance-2-image-to-video` | | `input.image_url` | string | Yes | URL of the image to animate | | `input.prompt` | string | Yes | Describe how you want the image to animate | | `input.end_image_url` | string | No | Optional end frame to interpolate towards | | `input.duration` | string | No | Video duration in seconds. Options: `auto`, `4`, `5`, `6`, `7`, `8`, `9`, `10`, `11`, `12`, `13`, `14`, `15` (default: `5`) | | `input.aspect_ratio` | string | No | Aspect ratio. Options: `auto`, `16:9`, `9:16`, `4:3`, `3:4`, `1:1`, `21:9` (default: `auto`) | | `input.resolution` | string | No | Video resolution. Options: `480p`, `720p` (default: `480p`) | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "animate-image", "input": { "model": "seedance-2-image-to-video", "image_url": "https://example.com/image.jpg", "prompt": "The character slowly turns their head and smiles" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'animate-image', input: { model: 'seedance-2-image-to-video', image_url: 'https://example.com/image.jpg', prompt: 'The character slowly turns their head and smiles' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'animate-image', 'input': { 'model': 'seedance-2-image-to-video', 'image_url': 'https://example.com/image.jpg', 'prompt': 'The character slowly turns their head and smiles' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "animate-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # SeeDance 2.0 Source: https://docs.artificialstudio.ai/video/seedance-2-text-to-video POST https://api.artificialstudio.ai/api/run ByteDance's most advanced video model with cinematic quality, native audio, and real-world physics. | | | | ----------- | ------------------------------------------------------------ | | **Credits** | 27 credits per second at 480p, 61 credits per second at 720p | | **Tool** | `create-video` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | -------------------- | ------ | -------- | --------------------------------------------------------------------------------------------------------------------------- | | `tool` | string | Yes | `create-video` | | `input.model` | string | Yes | `seedance-2-text-to-video` | | `input.prompt` | string | Yes | Text description of the video to generate | | `input.duration` | string | No | Video duration in seconds. Options: `auto`, `4`, `5`, `6`, `7`, `8`, `9`, `10`, `11`, `12`, `13`, `14`, `15` (default: `5`) | | `input.aspect_ratio` | string | No | Aspect ratio. Options: `16:9`, `9:16`, `4:3`, `3:4`, `1:1`, `21:9` (default: `16:9`) | | `input.resolution` | string | No | Video resolution. Options: `480p`, `720p` (default: `480p`) | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "create-video", "input": { "model": "seedance-2-text-to-video", "prompt": "A drone shot flying over a tropical beach at sunset" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'create-video', input: { model: 'seedance-2-text-to-video', prompt: 'A drone shot flying over a tropical beach at sunset' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'create-video', 'input': { 'model': 'seedance-2-text-to-video', 'prompt': 'A drone shot flying over a tropical beach at sunset' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "create-video", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Seedance Lite Source: https://docs.artificialstudio.ai/video/seedance-lite-text-to-video POST https://api.artificialstudio.ai/api/run Generate videos from text with Seedance Lite. | | | | ----------- | -------------------- | | **Credits** | 7 credits per second | | **Tool** | `create-video` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | -------------- | ------ | -------- | ----------------------------------------- | | `tool` | string | Yes | `create-video` | | `input.model` | string | Yes | `seedance-lite-text-to-video` | | `input.prompt` | string | Yes | Text description of the video to generate | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "create-video", "input": { "model": "seedance-lite-text-to-video", "prompt": "A drone shot flying over a tropical island" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'create-video', input: { model: 'seedance-lite-text-to-video', prompt: 'A drone shot flying over a tropical island' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'create-video', 'input': { 'model': 'seedance-lite-text-to-video', 'prompt': 'A drone shot flying over a tropical island' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "create-video", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Seedance Pro Source: https://docs.artificialstudio.ai/video/seedance-pro-text-to-video POST https://api.artificialstudio.ai/api/run Generate videos from text with Seedance Pro. | | | | ----------- | --------------------- | | **Credits** | 30 credits per second | | **Tool** | `create-video` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | -------------- | ------ | -------- | ----------------------------------------- | | `tool` | string | Yes | `create-video` | | `input.model` | string | Yes | `seedance-pro-text-to-video` | | `input.prompt` | string | Yes | Text description of the video to generate | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "create-video", "input": { "model": "seedance-pro-text-to-video", "prompt": "A drone shot flying over a tropical island" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'create-video', input: { model: 'seedance-pro-text-to-video', prompt: 'A drone shot flying over a tropical island' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'create-video', 'input': { 'model': 'seedance-pro-text-to-video', 'prompt': 'A drone shot flying over a tropical island' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "create-video", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Sora 2 Pro Source: https://docs.artificialstudio.ai/video/sora-2-pro-text-to-video POST https://api.artificialstudio.ai/api/run Generate high-quality videos from text using OpenAI Sora 2 Pro. | | | | ----------- | --------------------- | | **Credits** | 60 credits per second | | **Tool** | `create-video` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | -------------------- | ------ | -------- | -------------------------------------------------- | | `tool` | string | Yes | `create-video` | | `input.model` | string | Yes | `sora-2-pro-text-to-video` | | `input.prompt` | string | Yes | Text description of the video to generate | | `input.aspect_ratio` | string | No | Aspect ratio of the video. Options: `16:9`, `9:16` | | `input.duration` | number | No | Duration in seconds. Options: `4`, `8`, `12` | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "create-video", "input": { "model": "sora-2-pro-text-to-video", "prompt": "A drone shot flying over a tropical island" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'create-video', input: { model: 'sora-2-pro-text-to-video', prompt: 'A drone shot flying over a tropical island' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'create-video', 'input': { 'model': 'sora-2-pro-text-to-video', 'prompt': 'A drone shot flying over a tropical island' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "create-video", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Sora 2 Source: https://docs.artificialstudio.ai/video/sora-2-text-to-video POST https://api.artificialstudio.ai/api/run Generate videos from text using OpenAI Sora 2. | | | | ----------- | --------------------- | | **Credits** | 20 credits per second | | **Tool** | `create-video` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | -------------------- | ------ | -------- | -------------------------------------------------- | | `tool` | string | Yes | `create-video` | | `input.model` | string | Yes | `sora-2-text-to-video` | | `input.prompt` | string | Yes | Text description of the video to generate | | `input.aspect_ratio` | string | No | Aspect ratio of the video. Options: `16:9`, `9:16` | | `input.duration` | number | No | Duration in seconds. Options: `4`, `8`, `12` | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "create-video", "input": { "model": "sora-2-text-to-video", "prompt": "A drone shot flying over a tropical island" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'create-video', input: { model: 'sora-2-text-to-video', prompt: 'A drone shot flying over a tropical island' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'create-video', 'input': { 'model': 'sora-2-text-to-video', 'prompt': 'A drone shot flying over a tropical island' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "create-video", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Topaz Upscaler Source: https://docs.artificialstudio.ai/video/topaz-upscaler POST https://api.artificialstudio.ai/api/run Professional-grade video upscaling using Topaz technology. | | | | ----------- | -------------------- | | **Credits** | 3 credits per second | | **Tool** | `upscale-video` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ---------------------- | ------ | -------- | ------------------------------------------------------------------------ | | `tool` | string | Yes | `upscale-video` | | `input.model` | string | Yes | `topaz-upscaler` | | `input.video_url` | string | Yes | URL of the video to upscale | | `input.upscale_factor` | number | No | Upscale factor. Options: `2` (default), `3` | | `input.target_fps` | number | No | Target frame rate. Options: `24`, `25`, `30` (default), `48`, `50`, `60` | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "upscale-video", "input": { "model": "topaz-upscaler", "video_url": "https://example.com/low-res-video.mp4", "upscale_factor": 2, "target_fps": 60 } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'upscale-video', input: { model: 'topaz-upscaler', video_url: 'https://example.com/low-res-video.mp4', upscale_factor: 2, target_fps: 60 } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'upscale-video', 'input': { 'model': 'topaz-upscaler', 'video_url': 'https://example.com/low-res-video.mp4', 'upscale_factor': 2, 'target_fps': 60 } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "upscale-video", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Video Background Remover Source: https://docs.artificialstudio.ai/video/veed-video-background-remover POST https://api.artificialstudio.ai/api/run Remove backgrounds from videos. | | | | ----------- | -------------------------- | | **Credits** | 3 credits per 30 frames | | **Tool** | `video-background-remover` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ----------------- | ------ | -------- | ------------------------------- | | `tool` | string | Yes | `video-background-remover` | | `input.model` | string | Yes | `veed-video-background-remover` | | `input.video_url` | string | Yes | URL of the video to process | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "video-background-remover", "input": { "model": "veed-video-background-remover", "video_url": "https://example.com/my-video.mp4" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'video-background-remover', input: { model: 'veed-video-background-remover', video_url: 'https://example.com/my-video.mp4' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'video-background-remover', 'input': { 'model': 'veed-video-background-remover', 'video_url': 'https://example.com/my-video.mp4' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "video-background-remover", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Veo 3.1 First & Last Frame Source: https://docs.artificialstudio.ai/video/veo-3-1-first-last-frame-to-video POST https://api.artificialstudio.ai/api/run Create videos from start and end frame images using Veo 3.1. | | | | ----------- | --------------------- | | **Credits** | 44 credits per second | | **Tool** | `animate-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | --------------------- | ------ | -------- | ---------------------------------------------------------- | | `tool` | string | Yes | `animate-image` | | `input.model` | string | Yes | `veo-3-1-first-last-frame-to-video` | | `input.image_url` | string | Yes | URL of the first frame image | | `input.prompt` | string | No | Description of the desired motion | | `input.end_image_url` | string | No | URL of the last frame image | | `input.duration` | number | No | Duration in seconds. Options: `4`, `6`, `8` | | `input.resolution` | string | No | Output resolution. Options: `720p`, `1080p`, `4k` | | `input.aspect_ratio` | string | No | Aspect ratio of the video. Options: `auto`, `16:9`, `9:16` | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "animate-image", "input": { "model": "veo-3-1-first-last-frame-to-video", "image_url": "https://example.com/my-image.jpg", "prompt": "Camera slowly zooming in" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'animate-image', input: { model: 'veo-3-1-first-last-frame-to-video', image_url: 'https://example.com/my-image.jpg', prompt: 'Camera slowly zooming in' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'animate-image', 'input': { 'model': 'veo-3-1-first-last-frame-to-video', 'image_url': 'https://example.com/my-image.jpg', 'prompt': 'Camera slowly zooming in' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "animate-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Veo Extend Source: https://docs.artificialstudio.ai/video/veo-extend POST https://api.artificialstudio.ai/api/run Extend video duration using Google Veo. | | | | ----------- | --------------------- | | **Credits** | 30 credits per second | | **Tool** | `extend-video` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ----------------- | ------ | -------- | ------------------------------------------ | | `tool` | string | Yes | `extend-video` | | `input.model` | string | Yes | `veo-extend` | | `input.video_url` | string | Yes | URL of the video to extend | | `input.prompt` | string | No | Description to guide the extension | | `input.duration` | number | No | Extension duration in seconds (default: 7) | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "extend-video", "input": { "model": "veo-extend", "video_url": "https://example.com/my-video.mp4" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'extend-video', input: { model: 'veo-extend', video_url: 'https://example.com/my-video.mp4' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'extend-video', 'input': { 'model': 'veo-extend', 'video_url': 'https://example.com/my-video.mp4' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "extend-video", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Google Veo 3.1 Image to Video Source: https://docs.artificialstudio.ai/video/veo3-1-image-to-video POST https://api.artificialstudio.ai/api/run Google's most advanced video model. Animate images with superior quality, audio, and up to 4K. Supports optional last frame. | | | | ----------- | ------------------------------------------------------------------- | | **Credits** | 80 credits per second at 720p & 1080p, 120 credits per second at 4K | | **Tool** | `animate-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | --------------------- | ------ | -------- | ------------------------------------------------------------------ | | `tool` | string | Yes | `animate-image` | | `input.model` | string | Yes | `veo3-1-image-to-video` | | `input.image_url` | string | Yes | URL of the image to animate | | `input.prompt` | string | Yes | Describe how you want the image to animate | | `input.end_image_url` | string | No | Optional last frame for first-to-last-frame interpolation | | `input.duration` | string | No | Video duration in seconds. Options: `4`, `6`, `8` (default: `8`) | | `input.aspect_ratio` | string | No | Aspect ratio. Options: `auto`, `16:9`, `9:16` (default: `auto`) | | `input.resolution` | string | No | Video resolution. Options: `720p`, `1080p`, `4k` (default: `720p`) | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "animate-image", "input": { "model": "veo3-1-image-to-video", "image_url": "https://example.com/image.jpg", "prompt": "A waterfall begins flowing as birds fly across the sky" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'animate-image', input: { model: 'veo3-1-image-to-video', image_url: 'https://example.com/image.jpg', prompt: 'A waterfall begins flowing as birds fly across the sky' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'animate-image', 'input': { 'model': 'veo3-1-image-to-video', 'image_url': 'https://example.com/image.jpg', 'prompt': 'A waterfall begins flowing as birds fly across the sky' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "animate-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Google Veo 3.1 Lite Image to Video Source: https://docs.artificialstudio.ai/video/veo3-1-lite-image-to-video POST https://api.artificialstudio.ai/api/run Fast and affordable image animation with audio. Supports optional last frame for interpolation. | | | | ----------- | ------------------------------------------------------------- | | **Credits** | 10 credits per second at 720p, 16 credits per second at 1080p | | **Tool** | `animate-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | --------------------- | ------ | -------- | -------------------------------------------------------------------------------------------- | | `tool` | string | Yes | `animate-image` | | `input.model` | string | Yes | `veo3-1-lite-image-to-video` | | `input.image_url` | string | Yes | URL of the image to animate | | `input.prompt` | string | Yes | Describe how you want the image to animate | | `input.end_image_url` | string | No | Optional last frame for interpolation (forces 8s duration) | | `input.duration` | string | No | Video duration in seconds. Options: `4`, `6`, `8` (default: `8`). 1080p requires 8s duration | | `input.aspect_ratio` | string | No | Aspect ratio. Options: `auto`, `16:9`, `9:16` (default: `auto`) | | `input.resolution` | string | No | Video resolution. Options: `720p`, `1080p` (default: `720p`) | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "animate-image", "input": { "model": "veo3-1-lite-image-to-video", "image_url": "https://example.com/image.jpg", "prompt": "Steam rises from the coffee cup as sunlight streams in" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'animate-image', input: { model: 'veo3-1-lite-image-to-video', image_url: 'https://example.com/image.jpg', prompt: 'Steam rises from the coffee cup as sunlight streams in' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'animate-image', 'input': { 'model': 'veo3-1-lite-image-to-video', 'image_url': 'https://example.com/image.jpg', 'prompt': 'Steam rises from the coffee cup as sunlight streams in' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "animate-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Google Veo 3.1 Lite Source: https://docs.artificialstudio.ai/video/veo3-1-lite-text-to-video POST https://api.artificialstudio.ai/api/run Fast and affordable video generation with audio. Great balance of quality and cost. | | | | ----------- | ------------------------------------------------------------- | | **Credits** | 10 credits per second at 720p, 16 credits per second at 1080p | | **Tool** | `create-video` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | -------------------- | ------ | -------- | -------------------------------------------------------------------------------------------- | | `tool` | string | Yes | `create-video` | | `input.model` | string | Yes | `veo3-1-lite-text-to-video` | | `input.prompt` | string | Yes | Text description of the video to generate | | `input.duration` | string | No | Video duration in seconds. Options: `4`, `6`, `8` (default: `8`). 1080p requires 8s duration | | `input.aspect_ratio` | string | No | Aspect ratio. Options: `16:9`, `9:16` (default: `16:9`) | | `input.resolution` | string | No | Video resolution. Options: `720p`, `1080p` (default: `720p`) | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "create-video", "input": { "model": "veo3-1-lite-text-to-video", "prompt": "A golden retriever running through a field of sunflowers" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'create-video', input: { model: 'veo3-1-lite-text-to-video', prompt: 'A golden retriever running through a field of sunflowers' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'create-video', 'input': { 'model': 'veo3-1-lite-text-to-video', 'prompt': 'A golden retriever running through a field of sunflowers' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "create-video", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Google Veo 3.1 Source: https://docs.artificialstudio.ai/video/veo3-1-text-to-video POST https://api.artificialstudio.ai/api/run Google's most advanced video model with superior quality, audio generation, and up to 4K resolution. | | | | ----------- | ------------------------------------------------------------------- | | **Credits** | 80 credits per second at 720p & 1080p, 120 credits per second at 4K | | **Tool** | `create-video` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | -------------------- | ------ | -------- | ------------------------------------------------------------------ | | `tool` | string | Yes | `create-video` | | `input.model` | string | Yes | `veo3-1-text-to-video` | | `input.prompt` | string | Yes | Text description of the video to generate | | `input.duration` | string | No | Video duration in seconds. Options: `4`, `6`, `8` (default: `8`) | | `input.aspect_ratio` | string | No | Aspect ratio. Options: `16:9`, `9:16` (default: `16:9`) | | `input.resolution` | string | No | Video resolution. Options: `720p`, `1080p`, `4k` (default: `720p`) | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "create-video", "input": { "model": "veo3-1-text-to-video", "prompt": "A cinematic close-up of rain falling on a car window at night" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'create-video', input: { model: 'veo3-1-text-to-video', prompt: 'A cinematic close-up of rain falling on a car window at night' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'create-video', 'input': { 'model': 'veo3-1-text-to-video', 'prompt': 'A cinematic close-up of rain falling on a car window at night' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "create-video", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Veo 3 Fast Source: https://docs.artificialstudio.ai/video/veo3-fast-text-to-video POST https://api.artificialstudio.ai/api/run Generate videos from text using Google Veo 3 at fast speed. | | | | ----------- | --------------------- | | **Credits** | 30 credits per second | | **Tool** | `create-video` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | -------------------- | ------ | -------- | --------------------------------------------------------- | | `tool` | string | Yes | `create-video` | | `input.model` | string | Yes | `veo3-fast-text-to-video` | | `input.prompt` | string | Yes | Text description of the video to generate | | `input.aspect_ratio` | string | No | Aspect ratio of the video. Options: `16:9`, `9:16`, `1:1` | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "create-video", "input": { "model": "veo3-fast-text-to-video", "prompt": "A drone shot flying over a tropical island" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'create-video', input: { model: 'veo3-fast-text-to-video', prompt: 'A drone shot flying over a tropical island' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'create-video', 'input': { 'model': 'veo3-fast-text-to-video', 'prompt': 'A drone shot flying over a tropical island' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "create-video", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Veo 3 Image to Video Source: https://docs.artificialstudio.ai/video/veo3-image-to-video POST https://api.artificialstudio.ai/api/run Animate images into videos using Google Veo 3. | | | | ----------- | --------------------- | | **Credits** | 80 credits per second | | **Tool** | `animate-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ----------------- | ------ | -------- | --------------------------------- | | `tool` | string | Yes | `animate-image` | | `input.model` | string | Yes | `veo3-image-to-video` | | `input.image_url` | string | Yes | URL of the image to animate | | `input.prompt` | string | No | Description of the desired motion | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "animate-image", "input": { "model": "veo3-image-to-video", "image_url": "https://example.com/my-image.jpg", "prompt": "Camera slowly zooming in" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'animate-image', input: { model: 'veo3-image-to-video', image_url: 'https://example.com/my-image.jpg', prompt: 'Camera slowly zooming in' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'animate-image', 'input': { 'model': 'veo3-image-to-video', 'image_url': 'https://example.com/my-image.jpg', 'prompt': 'Camera slowly zooming in' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "animate-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Veo 3 Source: https://docs.artificialstudio.ai/video/veo3-text-to-video POST https://api.artificialstudio.ai/api/run Generate high-quality videos from text using Google Veo 3. | | | | ----------- | --------------------- | | **Credits** | 80 credits per second | | **Tool** | `create-video` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | -------------------- | ------ | -------- | --------------------------------------------------------- | | `tool` | string | Yes | `create-video` | | `input.model` | string | Yes | `veo3-text-to-video` | | `input.prompt` | string | Yes | Text description of the video to generate | | `input.aspect_ratio` | string | No | Aspect ratio of the video. Options: `16:9`, `9:16`, `1:1` | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "create-video", "input": { "model": "veo3-text-to-video", "prompt": "A drone shot flying over a tropical island" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'create-video', input: { model: 'veo3-text-to-video', prompt: 'A drone shot flying over a tropical island' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'create-video', 'input': { 'model': 'veo3-text-to-video', 'prompt': 'A drone shot flying over a tropical island' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "create-video", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Video Depth Map Source: https://docs.artificialstudio.ai/video/video-depth-map POST https://api.artificialstudio.ai/api/run Generate temporally consistent depth maps from video. | | | | ----------- | -------------------- | | **Credits** | 8 credits per second | | **Tool** | `video-depth-map` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ----------------- | ------ | -------- | -------------------------------------------------------------------------------------------------------------- | | `tool` | string | Yes | `video-depth-map` | | `input.model` | string | Yes | `video-depth-map` | | `input.video_url` | string | Yes | URL of the video to generate a depth map from | | `input.colormap` | string | No | Depth visualization style. Options: `grayscale`, `turbo`, `inferno`, `magma`, `viridis` (default: `grayscale`) | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "video-depth-map", "input": { "model": "video-depth-map", "video_url": "https://example.com/video.mp4", "colormap": "turbo" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'video-depth-map', input: { model: 'video-depth-map', video_url: 'https://example.com/video.mp4', colormap: 'turbo' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'video-depth-map', 'input': { 'model': 'video-depth-map', 'video_url': 'https://example.com/video.mp4', 'colormap': 'turbo' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "video-depth-map", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Wan v2.2 Image to Video Source: https://docs.artificialstudio.ai/video/wan-2-2-image-to-video POST https://api.artificialstudio.ai/api/run Animate still images into dynamic videos. | | | | ------------ | --------------------- | | **Credits** | 10 credits per second | | **Duration** | 5 seconds | | **Tool** | `animate-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ----------------- | ------ | -------- | --------------------------------- | | `tool` | string | Yes | `animate-image` | | `input.model` | string | Yes | `wan-2-2-image-to-video` | | `input.image_url` | string | Yes | URL of the image to animate | | `input.prompt` | string | Yes | Description of the desired motion | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "animate-image", "input": { "model": "wan-2-2-image-to-video", "image_url": "https://example.com/landscape.jpg", "prompt": "Clouds moving slowly across the sky" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'animate-image', input: { model: 'wan-2-2-image-to-video', image_url: 'https://example.com/landscape.jpg', prompt: 'Clouds moving slowly across the sky' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'animate-image', 'input': { 'model': 'wan-2-2-image-to-video', 'image_url': 'https://example.com/landscape.jpg', 'prompt': 'Clouds moving slowly across the sky' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "animate-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Wan v2.2 Source: https://docs.artificialstudio.ai/video/wan-2-2-text-to-video POST https://api.artificialstudio.ai/api/run Generate videos from text descriptions. | | | | ------------ | --------------------- | | **Credits** | 10 credits per second | | **Duration** | 3 seconds | | **Tool** | `create-video` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | -------------- | ------ | -------- | ----------------------------------------- | | `tool` | string | Yes | `create-video` | | `input.model` | string | Yes | `wan-2-2-text-to-video` | | `input.prompt` | string | Yes | Text description of the video to generate | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "create-video", "input": { "model": "wan-2-2-text-to-video", "prompt": "A drone shot flying over a tropical island" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'create-video', input: { model: 'wan-2-2-text-to-video', prompt: 'A drone shot flying over a tropical island' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'create-video', 'input': { 'model': 'wan-2-2-text-to-video', 'prompt': 'A drone shot flying over a tropical island' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "create-video", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Wan v2.7 Edit Source: https://docs.artificialstudio.ai/video/wan-2-7-edit-video POST https://api.artificialstudio.ai/api/run Edit videos with enhanced motion smoothness and visual coherence. | | | | ----------- | --------------------- | | **Credits** | 20 credits per second | | **Tool** | `edit-video` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ----------------- | ------ | -------- | -------------------------------------------------- | | `tool` | string | Yes | `edit-video` | | `input.model` | string | Yes | `wan-2-7-edit-video` | | `input.video_url` | string | Yes | URL of the video to edit | | `input.prompt` | string | Yes | Describe the changes you want to make to the video | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "edit-video", "input": { "model": "wan-2-7-edit-video", "video_url": "https://example.com/video.mp4", "prompt": "Change the style to anime with dramatic lighting" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'edit-video', input: { model: 'wan-2-7-edit-video', video_url: 'https://example.com/video.mp4', prompt: 'Change the style to anime with dramatic lighting' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'edit-video', 'input': { 'model': 'wan-2-7-edit-video', 'video_url': 'https://example.com/video.mp4', 'prompt': 'Change the style to anime with dramatic lighting' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "edit-video", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Wan Character Replace Source: https://docs.artificialstudio.ai/video/wan-character-replace POST https://api.artificialstudio.ai/api/run Replace characters in videos with a reference image. | | | | ----------- | --------------------- | | **Credits** | 15 credits per second | | **Tool** | `character-replace` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ----------------- | ------ | -------- | -------------------------------------- | | `tool` | string | Yes | `character-replace` | | `input.model` | string | Yes | `wan-character-replace` | | `input.video_url` | string | Yes | URL of the video | | `input.image_url` | string | Yes | URL of the replacement character image | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "character-replace", "input": { "model": "wan-character-replace", "video_url": "https://example.com/my-video.mp4", "image_url": "https://example.com/character.jpg" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'character-replace', input: { model: 'wan-character-replace', video_url: 'https://example.com/my-video.mp4', image_url: 'https://example.com/character.jpg' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'character-replace', 'input': { 'model': 'wan-character-replace', 'video_url': 'https://example.com/my-video.mp4', 'image_url': 'https://example.com/character.jpg' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "character-replace", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Wan Image to Video Source: https://docs.artificialstudio.ai/video/wan-image-to-video POST https://api.artificialstudio.ai/api/run Animate images into videos using Wan. | | | | ----------- | --------------------- | | **Credits** | 16 credits per second | | **Tool** | `animate-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ----------------- | ------ | -------- | --------------------------------- | | `tool` | string | Yes | `animate-image` | | `input.model` | string | Yes | `wan-image-to-video` | | `input.image_url` | string | Yes | URL of the image to animate | | `input.prompt` | string | No | Description of the desired motion | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "animate-image", "input": { "model": "wan-image-to-video", "image_url": "https://example.com/my-image.jpg", "prompt": "Camera slowly zooming in" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'animate-image', input: { model: 'wan-image-to-video', image_url: 'https://example.com/my-image.jpg', prompt: 'Camera slowly zooming in' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'animate-image', 'input': { 'model': 'wan-image-to-video', 'image_url': 'https://example.com/my-image.jpg', 'prompt': 'Camera slowly zooming in' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "animate-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Wan Pro Image to Video Source: https://docs.artificialstudio.ai/video/wan-pro-image-to-video POST https://api.artificialstudio.ai/api/run Animate images into videos using Wan Pro. | | | | ----------- | --------------------- | | **Credits** | 30 credits per second | | **Tool** | `animate-image` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | ----------------- | ------ | -------- | --------------------------------- | | `tool` | string | Yes | `animate-image` | | `input.model` | string | Yes | `wan-pro-image-to-video` | | `input.image_url` | string | Yes | URL of the image to animate | | `input.prompt` | string | No | Description of the desired motion | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "animate-image", "input": { "model": "wan-pro-image-to-video", "image_url": "https://example.com/my-image.jpg", "prompt": "Camera slowly zooming in" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'animate-image', input: { model: 'wan-pro-image-to-video', image_url: 'https://example.com/my-image.jpg', prompt: 'Camera slowly zooming in' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'animate-image', 'input': { 'model': 'wan-pro-image-to-video', 'image_url': 'https://example.com/my-image.jpg', 'prompt': 'Camera slowly zooming in' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "animate-image", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ``` # Wan Pro Source: https://docs.artificialstudio.ai/video/wan-pro-text-to-video POST https://api.artificialstudio.ai/api/run Generate videos from text using Wan Pro. | | | | ----------- | --------------------- | | **Credits** | 30 credits per second | | **Tool** | `create-video` | ### Headers | Name | Type | Required | Description | | --------------- | ------ | -------- | ------------------ | | `Authorization` | string | Yes | Your API key | | `Content-Type` | string | Yes | `application/json` | ### Body | Parameter | Type | Required | Description | | -------------- | ------ | -------- | ----------------------------------------- | | `tool` | string | Yes | `create-video` | | `input.model` | string | Yes | `wan-pro-text-to-video` | | `input.prompt` | string | Yes | Text description of the video to generate | ```bash bash theme={null} curl -X POST https://api.artificialstudio.ai/api/run \ -H "Content-Type: application/json" \ -H "Authorization: YOUR_API_KEY" \ -d '{ "tool": "create-video", "input": { "model": "wan-pro-text-to-video", "prompt": "A drone shot flying over a tropical island" } }' ``` ```javascript JavaScript theme={null} const response = await fetch('https://api.artificialstudio.ai/api/run', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, body: JSON.stringify({ tool: 'create-video', input: { model: 'wan-pro-text-to-video', prompt: 'A drone shot flying over a tropical island' } }) }); const data = await response.json(); ``` ```python Python theme={null} import requests response = requests.post( 'https://api.artificialstudio.ai/api/run', headers={ 'Content-Type': 'application/json', 'Authorization': 'YOUR_API_KEY' }, json={ 'tool': 'create-video', 'input': { 'model': 'wan-pro-text-to-video', 'prompt': 'A drone shot flying over a tropical island' } } ) data = response.json() ``` ```json 200 theme={null} { "id": "507f1f77bcf86cd799439011", "status": "processing", "tool": "create-video", "createdAt": "2024-01-15T10:30:00.000Z" } ``` ```json 400 theme={null} { "message": "Missing or invalid parameters" } ``` ```json 401 theme={null} { "message": "Invalid or missing API key" } ``` ```json 402 theme={null} { "message": "You do not have enough credits to perform this action" } ``` ```json 429 theme={null} { "message": "Too many API requests, please try again later" } ```