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

# Cherry Shot API: AI Product Photography & Video Ads

> Transform raw product photos into studio-quality images and short video ads using a simple REST API — no photography studio required.

Cherry Shot API gives you programmatic access to the same AI-powered photography engine behind the Cherry Shot app. This page explains what the API does, how its async job model works, and where to go next — whether you are building a custom integration, connecting an MCP-compatible AI assistant, or setting up a white-label solution for your agency.

<CardGroup cols={2}>
  <Card title="Quickstart" icon="bolt" href="quickstart">
    Make your first API call and get a studio-quality product image back in minutes.
  </Card>

  <Card title="Authentication" icon="key" href="authentication">
    Learn how to generate and pass your `cs_...` API key with every request.
  </Card>

  <Card title="Shoots (Images)" icon="camera" href="guides/shoots">
    Create photo shoots, choose a style and mode, and retrieve your finished images.
  </Card>

  <Card title="Video Ads" icon="film" href="guides/videos">
    Turn product photos into short video ads and control resolution and duration.
  </Card>
</CardGroup>

## How it works

Cherry Shot API uses an **async, job-based** model. You submit a generation request, receive a job ID, and poll until the job is complete. This keeps your HTTP calls fast and lets long-running renders finish in the background.

<Steps>
  <Step title="Create a shoot or video">
    Send a `POST` request with your product image URL, shoot style, and any options. The API immediately returns a job object containing a unique `id` and a `status` of `pending`.

    ```bash theme={null}
    POST /v1/shoots
    Authorization: Bearer cs_...
    ```
  </Step>

  <Step title="Poll until complete">
    Call `GET /v1/shoots/{id}` (or `GET /v1/videos/{id}`) on a short interval — typically every 2–5 seconds — until `status` changes to `completed` or `failed`.

    ```bash theme={null}
    GET /v1/shoots/{id}
    Authorization: Bearer cs_...
    ```
  </Step>

  <Step title="Use your results">
    When the job is `completed`, the response includes CDN URLs for every generated asset. Download them, store them, or stream them directly to your users.
  </Step>
</Steps>

<Note>
  The base URL for all API requests is `https://kyliwpyuseadbwawnsyd.supabase.co/functions/v1/api`. A stable production domain will replace it when available — paths and payloads stay the same.
</Note>

## Authentication

Every request must include your API key. Pass it as a bearer token or as a header:

```http theme={null}
Authorization: Bearer cs_...
# — or —
x-api-key: cs_...
```

Your API key is shared with your Cherry Shot app account. Keep it secret and rotate it immediately if it is ever exposed. See [Authentication](/authentication) for full details.

## Credits

API usage draws from the same credit balance you use in the Cherry Shot app. Credits are consumed when a job reaches `completed` status — failed jobs are not charged.

| Asset type     | Credits consumed                    |
| -------------- | ----------------------------------- |
| Standard image | 1 credit                            |
| Pro image      | 2 credits                           |
| 4K image       | 4 credits                           |
| Video          | Scales with resolution and duration |

<Tip>
  Monitor your credit balance in the Cherry Shot dashboard or via the `/credits` endpoint so you can top up before you run out in production.
</Tip>

## Shoot styles & modes

Choose from ten curated styles to match your brand aesthetic:

`classic` · `minimal` · `luxury` · `loud_luxury` · `magazine` · `editorial` · `avant_garde` · `element` · `influencer` · `lifestyle`

Each style can be run in one of two modes:

* **`product_only`** — the product is the sole subject, on a clean or styled background.
* **`with_model`** — the product is styled on or around a model for a lifestyle feel.

See [Shoots](/guides/shoots) for the full parameter reference.

## More resources

<CardGroup cols={2}>
  <Card title="MCP Server" icon="robot" href="guides/mcp">
    Connect Cherry Shot directly to Claude or Cursor via the Model Context Protocol server.
  </Card>

  <Card title="Agency & White-Label" icon="building" href="guides/agencies">
    Manage multiple client accounts and resell Cherry Shot under your own brand.
  </Card>
</CardGroup>
