---
title: Entorno de pruebas
description: El entorno de pruebas de la API de Clipia — una clave clipia_test_ ejecuta el ciclo completo de envío, estado, resultado y webhook sin cobrar créditos y devuelve una muestra lista.
icon: FlaskConical
---

El entorno de pruebas le permite depurar una integración —el envío, la consulta del estado, el análisis de resultados, los webhooks y la verificación de firmas— **sin gastar créditos** y sin ejecutar una generación real. Cualquier clave con el prefijo `clipia_test_` funciona en este modo: el envío devuelve de inmediato una tarea terminada con un recurso de muestra fijo.

## Cómo activarlo

1. Abra la [Developer Console](/es/developer), vaya a **API Keys** y haga clic en **Create key**.
2. Elija el entorno de prueba. La clave recibe el prefijo `clipia_test_`.
3. Utilícela exactamente igual que una clave de producción, en cualquiera de las [cabeceras admitidas](/es/docs/getting-started/authentication).

Para pasar a la generación real, sustituya la clave por una `clipia_live_`, sin cambiar el código. Una clave de prueba no requiere comprar créditos.

## Cómo se comporta el entorno de pruebas

- **No se cobran créditos.** El saldo no cambia, aunque sea cero.
- **No se ejecuta ninguna generación real.** La tarea nunca llega a la cola de un modelo.
- **El resultado está listo al instante.** El envío devuelve `status: COMPLETED` y `queue_position: 0`.
- **El resultado es una muestra fija** en `media.clipia.ai`, una por tipo de contenido: imagen, vídeo y audio.
- **`cost` se calcula, pero no se cobra.** Es lo que costaría la misma tarea con una clave de producción.
- **Los webhooks se envían.** Si indica un `webhook_url`, la entrega se firma exactamente igual que en producción, así que puede probar su controlador y la verificación de la firma.
- **El registro se conserva 24 horas.** Puede consultar el estado y el resultado de una tarea de prueba durante un día.
- **Los límites de frecuencia y la idempotencia se aplican** igual que con una clave de producción.
- **Los parámetros ignorados se notifican igual.** Una clave de `input` que el modelo no aplicará se devuelve en [`warnings`](/es/docs/api-reference/submit#warnings), como con una clave de producción; en MCP esa llamada se rechaza.
- **El chat con LLM** con una clave de prueba devuelve una respuesta predefinida con un coste de 0.

## Ejemplo

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

```bash
# 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" } }'
```

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

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

// CLIPIA_KEY=clipia_test_...
const clipia = createClient({ apiKey: process.env.CLIPIA_KEY! });

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

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

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

```python
import os
from clipia import Clipia

# CLIPIA_KEY=clipia_test_...
clipia = Clipia(api_key=os.environ["CLIPIA_KEY"])

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

print(job.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
}
```

Obtenga el resultado igual que en producción:

```bash
curl https://api.clipia.ai/v1/requests/9c2f7a10-... \
  -H "Authorization: Bearer $CLIPIA_KEY"
```

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

## Recursos de muestra

| Tipo de modelo | `output` |
|------------|----------|
| imagen | `images: [{ url: ".../sandbox/v1/sample-image.png", width: 1024, height: 1024 }]` |
| vídeo | `video: { url: ".../sandbox/v1/sample-video.mp4", width: 1280, height: 720, duration: 5 }` |
| audio | `audio: { url: ".../sandbox/v1/sample-audio.mp3" }` |

<Callout type="info" title="En qué se diferencian las muestras del resultado real">
Las muestras son idénticas para cada solicitud del mismo tipo: sirven para probar su código, no la calidad del modelo. El resultado real de imagen y vídeo no tiene los campos `width`, `height` ni `duration`; en su lugar incluye `original_url` y, en el vídeo, también `thumbnail_url`; consulte [Resultado](/es/docs/api-reference/result). No base su lógica en las dimensiones del entorno de pruebas.
</Callout>
