---
title: "AI Content Drop Sandbox and Test Mode | AI Content Drop"
description: "Rehearse AI Content Drop generation calls without spending credits or touching production data using X-Sandbox: true."
canonical: "https://aicontentdrop.com/docs/sandbox"
source: "https://aicontentdrop.com/docs/sandbox"
---

# AI Content Drop Sandbox and Test Mode

Send `X-Sandbox: true` (or `?sandbox=true`) on a generation request and nothing happens for real: no provider call, no credits, no row in your history. You get back a well-formed, obviously synthetic job so you can exercise your parsing, your retry logic, and your polling loop before you spend anything.

## It works without a key

This is the one authenticated-looking endpoint that answers anonymously, deliberately: an agent evaluating whether to integrate should be able to see the response shape before a human has been asked for a credential.

```bash
curl -sX POST https://aicontentdrop.com/v1/generate/video \
  -H "Content-Type: application/json" \
  -H "X-Sandbox: true" \
  -d '{"prompt":"a cat surfing"}'
```

```json
{
  "sandbox": true,
  "video": {
    "id": "sandbox_…",
    "status": "completed",
    "aiModel": "kling_3_0",
    "creditsUsed": 0,
    "videoUrl": "https://aicontentdrop.com/sandbox/placeholder.mp4",
    "note": "Sandbox mode: nothing was generated and no credits were spent."
  }
}
```

The response carries `X-Sandbox: true` as a header as well as `"sandbox": true` in the body, and the asset URL is a placeholder — a caller that mistakes a sandbox result for a real asset finds out immediately rather than after shipping it to a customer.

## What is still enforced

Validation. A sandbox request with no `prompt` is a 400, exactly as a real one would be. That is the point: the sandbox exercises the contract, not just the transport.

## Everywhere it works

- REST: `POST /v1/generate/video` and `POST /v1/generate/image`, with the header or the query parameter
- GraphQL: `generateVideo(input: { prompt: "…", sandbox: true })`
- MCP: not exposed as a tool argument — use the REST or GraphQL form while you are wiring up

## Related

Pair it with `Idempotency-Key` to rehearse your retry path too: the same key returns the first response rather than starting a second job. See the [REST reference](https://aicontentdrop.com/docs/api).
