GET https://api.veriko.mx/v1/plans/public

Catálogo público de planes (landing)

Audiencia
public

Catálogo de planes para superficies sin autenticación (landing /pricing, widgets embebibles). Endpoint público, rate-limited por IP, cacheado 5 minutos. Devuelve los planes con is_active = 1 Y is_public = 1. Cada uno incluye prices[] ya filtrados a los is_active = 1 y features[] bilingüe (también activos). No expone stripe_product_id, stripe_price_id, user_count ni timestamps internos — la resolución de stripe_price_id ocurre server-side cuando se crea la Checkout Session. Cache: Cache-Control: public, max-age=300 (5 min).

Petición
curl -X GET 'https://api.veriko.mx/v1/plans/public' \
  -H 'Authorization: Bearer mxcep_••••'

Ejemplo en Python — próximamente.

Ejemplo en JavaScript — próximamente.

Ejemplo en PHP — próximamente.

Respuesta 200 ListPublicPlansResponse — Planes activos + públicos con precios y viñetas embebidas.
Campo Tipo Descripción
type * string

id * string

Slug del plan.

attributes * object

slug * string

Identificador legible del plan (slug), estable y único; el mismo valor que `id`.

name * string

Nombre visible del plan para mostrar en la interfaz.

billing_model * string

Modelo de cobro del plan — `free` (sin costo), `tiered` (escalones fijos), `metered` (por uso) o `hybrid` (base + uso).

monthly_validation_limit integer | null anulable

Tope mensual de verificaciones permitidas por el plan; `null` significa sin tope.

included_validations integer | null anulable

Verificaciones incluidas sin costo adicional dentro de la cuota base; `null` cuando no aplica.

trial_days integer | null anulable

Duración del periodo de prueba gratuita en días; `null` o `0` cuando el plan no ofrece prueba.

is_default boolean

Indica si es el plan asignado por defecto a las cuentas nuevas.

sort_order integer

Posición de ordenamiento para listar el plan dentro del catálogo (ascendente).

prices * array

Precios del plan, uno por combinación de periodicidad y moneda.

features * array

Features incluidas en el plan, en el orden en que se muestran.

Códigos de respuesta GET /v1/plans/public
Código Clase Descripción Cuerpo
200 2xx Planes activos + públicos con precios y viñetas embebidas. ListPublicPlansResponse
429 4xx Límite de tasa excedido ErrorResponse
Cabeceras de respuesta 200
Cabecera Tipo Descripción
Cache-Control string `public, max-age=300`.
Errores de GET /v1/plans/public
Código Clave Detalle
429 rate_limit_exceeded

Rate limit exceeded. Try again in 45 seconds.

Envelope
meta.request_id
f7a8b9c0d1e2
Cabeceras de respuesta
  • Retry-After : integer — Segundos a esperar antes de reintentar. Coincide con la ventana de rate-limit del endpoint (típicamente 60s para listas, 1-5s para operaciones idempotentes en vuelo).
  • X-RateLimit-Limit : integer — Límite de solicitudes configurado para este bucket (emitido sólo en 429).
  • X-RateLimit-Remaining : integer — Solicitudes restantes en la ventana actual — siempre 0 en el momento del 429 (emitido sólo en 429).
  • X-RateLimit-Reset : integer — Unix epoch absoluto (segundos) en que se reinicia la ventana. Emitido sólo en 429, junto con Retry-After. Puede existir sobreescritura por endpoint (p. ej. `rate_limited_login`).