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

List active plans with bilingual feature bullets

Audience
public
Auth
API key

Returns active subscription plans (is_active = 1), each with its feature bullet list (features[]) pre-filtered to active items. Used by the dashboard pricing card; the public landing uses the parallel GET /v1/plans/public endpoint (no auth, cached, prices embedded). Accepts API key authentication. The user's current subscription (plan_slug, effective_limit, and cycle dates) comes from GET /v1/billing/subscription.

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

Python example — coming soon.

JavaScript example — coming soon.

PHP example — coming soon.

Response 200 ListPlansItem — Active plans list.
Field Type Description
type * string

id * string

Plan slug.

attributes * object

Subscription plan available on the platform. Returned by `GET /v1/plans` so the user can compare options and choose a plan.

slug * string

Unique plan identifier (immutable). Used to reference the plan in other requests (e.g. `PUT /v1/users/me/subscription`).

name * string

Human-readable plan name shown in the UI.

monthly_validation_limit * integer

Validations included per calendar month. `0` means the plan includes no validations (upgrade required). Very large values (e.g. 999999) represent virtually unlimited quota.

is_default * boolean

`true` if this plan is automatically assigned to new accounts.

billing_model * string

Billing model: `free` — no charge; `tiered` — fixed price per period; `metered` — usage reported to Stripe; `hybrid` — base plus overage.

trial_days integer | null nullable

Trial days before billing starts. `null` when the plan offers no trial.

included_validations integer | null nullable

Validations included before overage charges apply on hybrid plans. `null` for `free` and `enterprise` plans.

is_public * boolean

`true` if the plan appears on the public pricing page. `false` hides the plan from self-service (e.g. `admin_granted` or `enterprise` plans).

stripe_product_id string | null nullable

Associated Stripe Product identifier. `null` when the plan is not connected to Stripe (free or manually managed plans).

is_active * boolean

Inactive plans are not shown to users and cannot be assigned. Only visible to administrators.

sort_order * integer

Display order in the UI: lower value = first. Controls the sequence of plans in the pricing card.

user_count integer

Active (non-revoked) users currently on this plan.

beneficiaries_max integer

-1 = unlimited; >=0 caps beneficiaries per plan.

retry_max_retries integer | null nullable

Per-plan cap on retries per validation. `null` inherits the global default from `config/validation_retries.php`.

retry_max_pending_per_user integer | null nullable

Per-plan cap on pending retries per user at any moment. `null` inherits the global default.

retry_max_dispatched_per_day integer | null nullable

Per-plan cap on retries dispatched per day per user. `null` inherits the global default.

features array

List of bilingual plan feature bullets to display in the pricing card. Ordered by ascending `sort_order`. Public endpoints include only active feature rows.

Response status codes GET /v1/plans
Status Class Description Body
200 2xx Active plans list. No body
401 4xx Authentication is required or the provided credentials are invalid. ErrorResponse
Errors from GET /v1/plans
Status Code Detail
401 unauthorized

Invalid or missing authentication credentials.

Envelope
meta.request_id
c4d5e6f7a8b9