{"openapi":"3.1.0","info":{"title":"GET /api/v1/billing/catalog","version":"1.0.0","description":"Get Billing Catalog"},"servers":[{"url":"https://api.ondayzero.com","description":"Production"}],"paths":{"/api/v1/billing/catalog":{"get":{"tags":["billing"],"summary":"Get Billing Catalog","description":"Return the Stripe price catalog (slug → price details).\n\nUsed by the frontend to get price IDs for checkout without hardcoding.\nAnnual variants are stored as ``<slug>_annual`` entries.","operationId":"get_billing_catalog_api_v1_billing_catalog_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessEnvelope_GetBillingCatalogResponse_"}}}}}}}},"components":{"schemas":{"GetBillingCatalogResponse":{"properties":{},"additionalProperties":true,"type":"object","title":"GetBillingCatalogResponse","description":"Stripe slug → price details (handler returns the catalog dict directly).\n\nKeys are catalog slugs; values match :class:`BillingCatalogEntry`."},"SuccessEnvelope_GetBillingCatalogResponse_":{"properties":{"success":{"type":"boolean","title":"Success","default":true},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"},"code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code"},"data":{"anyOf":[{"$ref":"#/components/schemas/GetBillingCatalogResponse"},{"type":"null"}]}},"additionalProperties":true,"type":"object","title":"SuccessEnvelope[GetBillingCatalogResponse]"}},"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API Token","description":"API token authentication. Format: `Bearer dz_...`"}}},"security":[{"BearerAuth":[]}]}