> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.wisboo.com/wisboo-api/introduction/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.wisboo.com/_mcp/server. # Introducción # Descripción general La API Pública de Wisboo v1 te permite gestionar usuarios, inscripciones, compras y accesos a productos de tu tienda de forma programática. **URL base:** `https://api.wisboo.com/v1` Todos los endpoints están bajo el contexto de una tienda: `/v1/stores/{store_id}/...` El `store_id` corresponde al identificador público de tu tienda, y puedes conseguirlo en tu administración en **Tienda → Información**. # Autenticación Todos los requests deben incluir una API key válida dentro del header **Authorization**: ``` Authorization: Bearer ``` Puedes generar API keys desde tu panel de Wisboo en **Configuración → API Keys**. Cada key está asociada a una tienda específica y debe coincidir con el `store_id` usado en la URL. # Códigos de error | Status | Código | Descripción | | ------ | ------------------- | ------------------------------------------------------------------------------- | | `401` | `NOT_AUTHORIZED` | Token faltante o inválido | | `403` | `FEATURE_DISABLED` | La funcionalidad de API Pública no está habilitada en la cuenta | | `404` | — | Recurso no encontrado | | `422` | — | Error de validación — el cuerpo de la respuesta contiene los detalles por campo | | `429` | `TOO_MANY_REQUESTS` | Límite de requests excedido — ver sección **Rate Limiting** | | `500` | — | Error interno del servidor | # Rate Limiting La API aplica límites de requests por API key para garantizar la estabilidad del servicio. El límite puede varia según el plan de suscripción de la cuenta, para conocer los límites reales de tu cuentra entra a **Configuración → Mi Plan**. Todos los requests a nuestra API retornan los siguientes headers: | Header | Descripción | | ----------------------- | ----------------------------------------------------------- | | `X-RateLimit-Limit` | Cantidad máxima de requests permitidos en la ventana actual | | `X-RateLimit-Remaining` | Requests restantes en la ventana actual | | `X-RateLimit-Reset` | Timestamp UNIX de cuando se restablece la ventana | | `Retry-After` | Segundos hasta que el límite se restablece | Cuando se supera el límite, la API responde con `429 Too Many Requests` e incluye la siguiente respuesta en el body: ```json { "type": "rate_limit_error", "code": "TOO_MANY_REQUESTS", "message": "Rate limit exceeded.", "retry_after": 45, "retry_at": "2024-11-01T10:01:00Z" } ``` Se recomienda implementar reintentos con backoff exponencial al recibir un `429`. # Paginación Los endpoints de listado soportan los parámetros `page` (base 1) y `size`. Todas las respuestas de tipo lista comparten el mismo formato: ```json { "object": "list", "url": "/v1/stores/{store_id}/...", "data": [ ... ], "metadata": { "page_number": 1, "page_size": 5, "total_record_count": 48 } } ``` # Idempotencia En los requests de tipo `POST` , `PUT` y `DELETE` puedes incluir el header `X-Idempotency-Key` para reintentar requests de forma segura sin riesgo de efectos secundarios duplicados.