https://api.veriko.mx/v1/plans/public Public plan catalog (landing)
Plan catalog for unauthenticated surfaces (landing /pricing, embeddable widgets). Public endpoint, IP rate-limited, cached for 5 minutes. Returns plans where is_active = 1 AND is_public = 1. Each one embeds prices[] (filtered to is_active = 1) and bilingual features[] (also active). Does NOT expose stripe_product_id, stripe_price_id, user_count, nor internal timestamps — stripe_price_id is resolved server-side at Checkout Session creation. Cache: Cache-Control: public, max-age=300 (5 min).
curl -X GET 'https://api.veriko.mx/v1/plans/public' \
-H 'Authorization: Bearer mxcep_••••'
Python example — coming soon.
JavaScript example — coming soon.
PHP example — coming soon.
| Field | Type | Description |
|---|---|---|
type * | string | |
id * | string | Plan slug. |
attributes * | object | |
slug * | string | Human-readable plan identifier (slug), stable and unique; same value as `id`. |
name * | string | Display name of the plan, shown in the UI. |
billing_model * | string | Plan billing model — `free` (no cost), `tiered` (fixed tiers), `metered` (usage-based) or `hybrid` (base + usage). |
monthly_validation_limit | integer | null nullable | Monthly cap on validations allowed by the plan; `null` means uncapped. |
included_validations | integer | null nullable | Validations included at no extra cost within the base quota; `null` when not applicable. |
trial_days | integer | null nullable | Free-trial length in days; `null` or `0` when the plan has no trial. |
is_default | boolean | Whether this is the default plan assigned to new accounts. |
sort_order | integer | Sort position used to order the plan within the catalog (ascending). |
prices * | array | Plan prices, one per billing-period and currency combination. |
features * | array | Features included in the plan, in display order. |
| Status | Class | Description | Body |
|---|---|---|---|
| 200 | 2xx | Active + public plans with embedded prices and features. | ListPublicPlansResponse |
| 429 | 4xx | Rate limit exceeded | ErrorResponse |
| Header | Type | Description |
|---|---|---|
Cache-Control | string | `public, max-age=300`. |
| Status | Code | Detail |
|---|---|---|
| 429 | rate_limit_exceeded | Rate limit exceeded. Try again in 45 seconds. Envelope
Response headers
|