List your plans

Auth: X-API-Key Returns your provider’s active plan versions — active means effective_from <= now and (effective_to is null or >= now). Use this to resolve plan_version_id values. The response is a wrapped object, not a bare array:
Each plan version embeds its plans record (with campaign/discount), wholesale_products (speeds), service_providers (branding, checkout config, and tenant_configs with feature_flags), addon/included services, and badges. On a database error the list degrades to {"plan_versions": []} with HTTP 200.
service_providers.tenant_configs.stripe_connected is a boolean: true once that provider has connected their own Stripe account, false otherwise. A false means the standard (Kurnl marketplace) checkout is unavailable for that provider — only its external checkout can be used.

Get a single plan

Auth: Public (no auth required) Returns the bare plan-version object (no wrapper) with the same embeds — pricing, speed, contract duration, provider, and included/add-on services. Unknown or unfetchable ids return 404 "Plan not found".