> ## Documentation Index
> Fetch the complete documentation index at: https://docs.artificialstudio.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Generation

> 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 |

<Warning>The request body is validated strictly — unknown fields will be rejected with a `400` error.</Warning>

### 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 |

<RequestExample>
  ```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()
  ```
</RequestExample>

<ResponseExample>
  ```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"
  }
  ```
</ResponseExample>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.