# Connect an AI agent to Pikes

Pikes is a product-imagery engine an agent can drive: it generates and edits
images that keep a real product's label, text and proportions intact, animates
them, and files the results in the user's boards. Everything below runs against
the user's own Pikes account and spends that account's credits.

## What an agent can do

- **Product photography** — put a real product into a new scene, on a model, or
  in a lifestyle setting, with its label and text intact.
- **Image editing** — combine several references (product + scene + style),
  extend a canvas to another aspect ratio, cut a product out on transparency.
- **Video** — animate a still into a short clip, with audio on the models that
  support it.
- **Brand context** — read and write the account's brand knowledge (voice,
  colours, guidelines) so generations stay on-brand across sessions.
- **Products** — search the saved product library, or import products from a
  Shopify store.
- **Research** — pull competitor ads from the Foreplay library, and read Meta ad
  performance, creative and comments when the account is connected.

## Three ways in

| Path | Best for | Start here |
| --- | --- | --- |
| **MCP server** | Claude, ChatGPT, Cursor, any MCP client | [MCP setup](/docs/mcp) |
| **REST tool calls** | Your own orchestration code — the same tools over plain HTTP | [API reference](/docs/api#rest-tool-calls) |
| **Product-shot endpoints** | One-call product photography from an image file | [API reference](/docs/api#product-shot-endpoints) |

### The shortest possible start

```bash
# 1. Create a key in the app (Settings → API), then:
curl -X POST https://pikes.ai/mcp/tools/generate_image \
  -H "x-api-key: psk_…" -H "Content-Type: application/json" \
  -d '{"prompt":"a matte black bottle on wet stone","aspectRatio":"4:5"}'
```

```bash
# Or hand it a product photo and get a studio shot back:
curl -X POST https://pikes.ai/api/product-shot \
  -H "x-api-key: psk_…" \
  -F "image=@bottle.jpg" \
  -F "aspect_ratio=4:5" \
  -F "resolution=4K"
```

## Authentication

API keys look like `psk_…`, are created in the app under **Settings → API** (or
**Settings → Claude / MCP**), and are accepted as either header:

```
Authorization: Bearer psk_…
x-api-key: psk_…
```

Keys are stored only as a SHA-256 hash and can be revoked at any time. Key
management itself is authenticated by the user's session — a key cannot mint or
revoke keys. MCP clients that can complete OAuth 2.1 should do that instead of
holding a key; see [MCP setup](/docs/mcp#authentication).

## What it costs

Calls spend the account's credits, charged per generation and refunded if a
render fails. The two fixed-price endpoints:

| Call | Credits |
| --- | --- |
| `POST /api/product-shot` at `1K` | 6 |
| `POST /api/product-shot` at `4K` | 12 |

Tool calls through MCP or `/mcp/tools/…` are priced by the model and resolution
they run at — `get_account_info` returns the current balance, and a `402`
response carries the shortfall. Rates and plans are on
[pikes.ai](https://pikes.ai/#pricing).

## Ground rules worth telling your agent

- Reach for `get_product_images` the moment a user names a product; don't ask
  them to upload something they already have in Pikes.
- Ads returned by `find_ads` are research, not inputs — analyse the
  composition, then generate with the user's own product.
- Feed generations from original uploads rather than from previous outputs;
  re-editing a generated image compounds its distortions.
- Long renders (4K, video) belong on `submit_image_job` + `get_image_job`
  instead of a blocking call.

## More

[API reference](/docs/api) · [MCP setup](/docs/mcp) ·
[llms.txt](https://pikes.ai/llms.txt) ·
[every page in one file](https://pikes.ai/llms-full.txt) · questions: leo@pikes.ai
