---
title: Тестовый режим
description: Песочница Clipia API — ключи clipia_test_* проходят полный цикл submit → status → result без списания кредитов и возвращают sample-результат.
---

Тестовый режим (песочница) позволяет отладить интеграцию — `submit → status → result`, опрос, вебхуки и проверку подписи — **без списания кредитов** и без обращения к реальной генерации. Любой ключ с префиксом `clipia_test_…` работает в этом режиме: `submit` мгновенно возвращает детерминированный mock-результат с фиксированным sample-ассетом.

## Как включить

1. В личном кабинете (**Консоль разработчика** → **API-ключи**) при создании ключа переключите тумблер среды на **«Тестовая»**.
2. Полученный ключ имеет префикс `clipia_test_…`. Используйте его так же, как боевой — в любом из поддерживаемых заголовков.

```http
Authorization: Bearer clipia_test_xxxxxxxxxxxxxxxxxxxxxx
```

Тестовый и боевой ключи независимы: чтобы перейти на реальную генерацию, замените ключ на `clipia_live_…` — код менять не нужно.

## Поведение

При вызове с `clipia_test_…`-ключом:

- **Кредиты не списываются** — баланс не затрагивается, боевой баланс для песочницы не нужен.
- **Реальная генерация не запускается** — запрос не уходит в очередь.
- **Результат готов мгновенно** — `submit` сразу возвращает `status: COMPLETED`, минуя `IN_QUEUE`/`IN_PROGRESS`, с `queue_position: 0`.
- **Output — фиксированный sample-ассет** на `media.clipia.ai`: для image-моделей изображение, для video-моделей видео.
- **`cost`** в ответе — расчётная стоимость (сколько операция стоила бы на боевом ключе), но она **не списывается**.
- **Вебхуки приходят** — если передан `webhook_url`, доставка отправляется тем же подписанным механизмом (HMAC-SHA256, заголовок `X-Clipia-Signature`), что и в бою. Это позволяет протестировать обработчик и проверку подписи.
- **Лимиты и идемпотентность** действуют как обычно: RPM-лимит и `Idempotency-Key` работают так же, как в боевом режиме.

## Пример

<Callout type="info" title="Кредиты не списываются">
Песочница рассчитана на отладку кода: `submit → status → result`, вебхуки и проверку подписи. Тестовый ключ `clipia_test_*` не затрагивает баланс — реальные кредиты не резервируются и не списываются.
</Callout>

<Tabs items={['cURL', 'TypeScript', 'Python']}>
<Tab value="cURL">

```bash
# Submit с тестовым ключом — результат сразу COMPLETED
curl -X POST https://api.clipia.ai/v1/models/nano-banana-2 \
  -H "Authorization: Bearer $CLIPIA_TEST_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "input": { "prompt": "a sunset over mountains, cinematic" } }'
```

</Tab>
<Tab value="TypeScript">

```ts
import { Clipia } from "clipia-ai";

// Тестовый ключ clipia_test_* — результат сразу COMPLETED
const clipia = new Clipia({ apiKey: process.env.CLIPIA_TEST_KEY });

const result = await clipia.models.submit("nano-banana-2", {
  input: { prompt: "a sunset over mountains, cinematic" },
});

console.log(result.status); // "COMPLETED"
```

</Tab>
<Tab value="Python">

```python
import os
from clipia import Clipia

# Тестовый ключ clipia_test_* — результат сразу COMPLETED
clipia = Clipia(api_key=os.environ["CLIPIA_TEST_KEY"])

result = clipia.models.submit(
    "nano-banana-2",
    input={"prompt": "a sunset over mountains, cinematic"},
)

print(result.status)  # "COMPLETED"
```

</Tab>
</Tabs>

```json
{
  "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
}
```

```bash
# Result — забрать sample-output
curl https://api.clipia.ai/v1/requests/9c2f7a10-... \
  -H "Authorization: Bearer $CLIPIA_TEST_KEY"
```

```json
{
  "request_id": "9c2f7a10-...",
  "status": "COMPLETED",
  "model": "nano-banana-2",
  "output": {
    "images": [
      { "url": "https://media.clipia.ai/sandbox/sample-image.png", "width": 1024, "height": 1024 }
    ]
  },
  "cost": 12,
  "created_at": "2026-06-02T12:00:00Z",
  "completed_at": "2026-06-02T12:00:00Z"
}
```

Для video-моделей `output` содержит `video: { url: "https://media.clipia.ai/sandbox/sample-video.mp4", width, height, duration }`.

<Callout type="info" title="Зачем sample-ассеты">
Sample-ассеты в песочнице фиксированы и одинаковы для всех запросов соответствующего типа. Они нужны для проверки вашего кода (разбор ответа, опрос, обработка вебхука), а не для оценки качества генерации — реальную картинку или видео вернёт боевой ключ `clipia_live_…`.
</Callout>
