Getting started
Sandbox
The Clipia API sandbox — a clipia_test_ key runs the full submit, status, result and webhook cycle without charging credits and returns a ready sample.
The sandbox lets you debug an integration — submitting, polling, parsing results, webhooks and signature checks — without spending credits and without running a real generation. Any key with the clipia_test_ prefix works in this mode: a submit immediately returns a finished job with a fixed sample asset.
How to enable it
- Open the Developer Console, go to API keys and click Create key.
- Choose the test environment. The key gets the
clipia_test_prefix. - Use it exactly like a live key, in any of the supported headers.
To switch to real generation, replace the key with a clipia_live_ one — no code changes needed. A test key doesn't require a credit purchase.
How the sandbox behaves
- No credits are charged. The balance doesn't change, even if it is zero.
- No real generation runs. The job never reaches a model queue.
- The result is ready immediately. Submit returns
status: COMPLETEDandqueue_position: 0. - The output is a fixed sample on
media.clipia.ai, one per media type: image, video and audio. costis calculated but not charged. It's what the same job would cost on a live key.- Webhooks are delivered. If you pass a
webhook_url, the delivery is signed exactly as in production, so you can test your handler and signature check. Deliveries are limited to one per minute per key: the rest are not created, and a failed delivery stops after three attempts. - The record is kept for 24 hours. You can fetch the status and result of a test job for a day.
- Rate limits and generation submit idempotency apply the same way as on a live key.
- Ignored parameters are reported the same way. An
inputkey the model will not apply comes back inwarnings, as on a live key; in MCP such a call is rejected. - LLM chat on a test key returns a canned reply with a cost of 0. Parameter ranges (
temperature,top_p,n,toolssize,max_tokens) are checked as on a live key; the model andmessagesaren't, andIdempotency-Keydoesn't replay a response.
Example
# CLIPIA_KEY=clipia_test_...
curl -X POST https://api.clipia.ai/v1/models/nano-banana-2 \
-H "Authorization: Bearer $CLIPIA_KEY" \
-H "Content-Type: application/json" \
-d '{ "input": { "prompt": "a sunset over mountains, cinematic" } }'{
"request_id": "9c2f7a10-3e44-4b1a-bb9d-77e5c0a1d2e3",
"status": "COMPLETED",
"queue_position": 0,
"status_url": "https://api.clipia.ai/v1/requests/9c2f7a10-.../status",
"response_url": "https://api.clipia.ai/v1/requests/9c2f7a10-...",
"cost": 12
}Fetch the result the same way as in production:
curl https://api.clipia.ai/v1/requests/9c2f7a10-... \
-H "Authorization: Bearer $CLIPIA_KEY"{
"request_id": "9c2f7a10-...",
"status": "COMPLETED",
"model": "nano-banana-2",
"output": {
"images": [
{
"url": "https://media.clipia.ai/sandbox/v1/sample-image.png",
"original_url": "https://media.clipia.ai/sandbox/v1/sample-image.png"
}
]
},
"cost": 12,
"created_at": "2026-10-09T12:00:00Z",
"completed_at": "2026-10-09T12:00:00Z"
}Sample assets
| Model type | output |
|---|---|
| image | images: [{ url: ".../sandbox/v1/sample-image.png", original_url: ".../sandbox/v1/sample-image.png" }] |
| video | video: { url: ".../sandbox/v1/sample-video.mp4" } |
| audio | audio: { url: ".../sandbox/v1/sample-audio.mp3", format: "mp3" } |
How samples differ from live output
Samples are identical for every request of the same type: they test your code, not model quality. The shape of output is almost the same as in production: there are no width, height or duration fields in the sandbox or in live output — read dimensions from the file itself. Sandbox video has no optional thumbnail_url, because there is no preview frame for the sample on the CDN. Sandbox audio has only audio, without the audios array. See Result.
Authentication
How to authorize Clipia API requests — the API key, three header forms, live and test keys, key permissions, and how to store the key safely.
Overview
The interactive Clipia REST API reference — parameters, response schemas, error codes, and sending a test request straight from the docs page.