GEThttps://api.veriko.mx/v1/plans/public

Public plan catalog (landing)

Audience
public

Returns the plan catalog for unauthenticated surfaces (the /pricing landing and embeddable widgets).

The operation is public, IP rate-limited, and cached for 5 minutes. It only includes active and public plans (is_active = 1 and is_public = 1); each carries its active prices[] in the current billing mode and active bilingual features[].

Not every plan is sold in every interval: a plan with no annual price carries no billing_interval: year rows. Offer only the combinations that appear in prices[].

Request
curl -X GET 'https://api.veriko.mx/v1/plans/public'

Python example — coming soon.

JavaScript example — coming soon.

PHP example — coming soon.

Response 200ListPublicPlansResponse — Active and public plans with active prices and features embedded.
FieldTypeDescription
dataarray

Main response payload. Shape varies by endpoint (object, array, or JSON:API envelope with type, id, attributes).

type*string

JSON:API resource type. Always plan.

e.g. plan
id*string

Unique, human-readable plan identifier.

e.g. pro
attributes*object

The resource's own data, kept apart from its identity.

slug*string

Unique, human-readable plan identifier. It has the same value as id.

e.g. pro
name*string

Plan name shown in the interfaces.

e.g. Pro
billing_model*string

Plan billing model — free: No charge; tiered: Flat fee; metered: Usage-based charge; hybrid: Flat fee plus usage.

e.g. free
monthly_validation_limit*integer

Validation cap per subscription cycle. 0 allows no validations.

e.g. 5000
included_validations*integer | nullnullable

Validations included in the base quota before overage charges. null when the plan has no base quota.

e.g. 5000
trial_days*integer | nullnullable

Free trial days. null or 0 when the plan offers no free trial.

e.g. 14
is_default*boolean

true when this is the default plan assigned to new accounts.

e.g. true
sort_order*integer

Sort position used to order the plan within the catalog (ascending).

e.g. 20
prices*array

Active plan prices, one per currency, billing interval, and pricing-kind combination.

features*array

Active bilingual plan features, ordered by sort_order.

metaobject

Response metadata including API version, route prefix, unique request identifier, and the server timestamp in UTC.

versionstring

API version that processed the request.

e.g. 1.47.0
api_versionstring

API route prefix version (e.g. v1).

e.g. v1
request_idstring

Unique request identifier (hex).

e.g. a1b2c3d4e5f66f5e4d3c2b1a
datetimeobject

Companion descriptor present in the meta block of every response (and in the meta of outgoing webhook bodies). Lets clients assert the timezone contract without re-reading the spec.

e.g. {"timezone":"UTC","format":"ISO 8601"}
timezone*string

Always UTC: The canonical timezone for every datetime field in the body.

e.g. UTC
format*string

Always ISO 8601: Explicit Z suffix on every datetime.

e.g. ISO 8601
linksobject

Pagination or related links, present only when the endpoint returns a paginated collection.

Response status codesGET /v1/plans/public
StatusClassDescriptionBody
2002xxActive and public plans with active prices and features embedded.ListPublicPlansResponse
4294xxRate limit exceededErrorResponse
Response headers200
HeaderTypeDescription
Cache-ControlstringPublic cache directive: public, max-age=300.
Errors from GET /v1/plans/public
StatusCodeExample
429rate_limit_exceeded

Rate limit exceeded. Try again in 45 seconds.

Envelope
meta.request_id
f7a8b9c0d1e22e1d0c9b8a7f
Response headers
  • Retry-After: integer — Seconds to wait before retrying. Matches the endpoint's rate-limit window (typically 60s for list endpoints, 1-5s for in-flight idempotent operations).
  • X-RateLimit-Limit: integer — Configured request cap for this bucket. It is emitted on every 429 and, on the authenticated API, also on successful responses, where it is the per-key cap of the account plan.
  • X-RateLimit-Remaining: integer — Requests remaining in the current window. Always 0 at the moment of the 429; on a successful response of the authenticated API it is what is left of the per-key cap.
  • X-RateLimit-Reset: integer — Absolute Unix epoch (seconds) when the window resets. Emitted on every 429, alongside Retry-After, and on successful responses of the authenticated API. Per-endpoint overrides exist (e.g. `rate_limited_login`).