{"openapi":"3.1.0","info":{"title":"RCS-Box API","version":"v1","description":"Multi-tenant API gateway for Google RCS Business Messaging."},"servers":[{"url":"/"}],"security":[{"bearerAuth":[]},{"apiKeyAuth":[]}],"tags":[{"name":"Health"},{"name":"Public"},{"name":"Brands"},{"name":"Agents"},{"name":"Messages"},{"name":"Testers"},{"name":"Launch"},{"name":"Carriers"},{"name":"Capabilities"}],"paths":{"/health":{"get":{"tags":["Health"],"summary":"Public health check","security":[],"responses":{"200":{"description":"Service health information.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicHealth"}}}}}}},"/api/v1/public/plans":{"get":{"tags":["Public"],"summary":"List published public plans","security":[],"responses":{"200":{"description":"Published plans with cache metadata.","headers":{"ETag":{"schema":{"type":"string"}},"Last-Modified":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","required":["plans","meta"],"properties":{"plans":{"type":"array","items":{"$ref":"#/components/schemas/PublicPlan"}},"meta":{"$ref":"#/components/schemas/PublicPlanMeta"}}}}}},"304":{"description":"Cached representation is still current."}}}},"/v1/health":{"get":{"tags":["Health"],"summary":"Authenticated health check","responses":{"200":{"description":"Authenticated API health information.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V1Health"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"}}}},"/v1/brands":{"get":{"tags":["Brands"],"summary":"List brands for the current tenant","responses":{"200":{"description":"Tenant brands.","content":{"application/json":{"schema":{"type":"object","required":["brands"],"properties":{"brands":{"type":"array","items":{"$ref":"#/components/schemas/Brand"}}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/v1/brands/{google_brand_id}":{"get":{"tags":["Brands"],"summary":"Get one brand","parameters":[{"$ref":"#/components/parameters/GoogleBrandId"}],"responses":{"200":{"description":"Brand details.","content":{"application/json":{"schema":{"type":"object","required":["brand"],"properties":{"brand":{"$ref":"#/components/schemas/Brand"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/v1/brands/{google_brand_id}/verification":{"get":{"tags":["Brands"],"summary":"Get brand verification state","parameters":[{"$ref":"#/components/parameters/GoogleBrandId"}],"responses":{"200":{"description":"Verification state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BrandVerification"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/v1/brands/{google_brand_id}/documents":{"get":{"tags":["Brands"],"summary":"List brand supporting documents","parameters":[{"$ref":"#/components/parameters/GoogleBrandId"}],"responses":{"200":{"description":"Uploaded documents.","content":{"application/json":{"schema":{"type":"object","required":["documents"],"properties":{"documents":{"type":"array","items":{"$ref":"#/components/schemas/BrandDocument"}}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"}}},"post":{"tags":["Brands"],"summary":"Upload a brand supporting PDF","parameters":[{"$ref":"#/components/parameters/GoogleBrandId"}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["document"],"properties":{"document":{"type":"string","format":"binary"}}}}}},"responses":{"201":{"description":"Uploaded document.","content":{"application/json":{"schema":{"type":"object","required":["document"],"properties":{"document":{"$ref":"#/components/schemas/BrandDocument"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/ValidationError"}}}},"/v1/brands/{google_brand_id}/documents/{id}":{"delete":{"tags":["Brands"],"summary":"Delete a brand supporting document","parameters":[{"$ref":"#/components/parameters/GoogleBrandId"},{"$ref":"#/components/parameters/Id"}],"responses":{"204":{"description":"Document deleted or already absent."},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/v1/agents":{"get":{"tags":["Agents"],"summary":"List agents for the current tenant","responses":{"200":{"description":"Tenant agents.","content":{"application/json":{"schema":{"type":"object","required":["agents"],"properties":{"agents":{"type":"array","items":{"$ref":"#/components/schemas/Agent"}}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"}}},"post":{"tags":["Agents"],"summary":"Create an RCS agent","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentCreateRequest"}}}},"responses":{"201":{"description":"Created agent.","content":{"application/json":{"schema":{"type":"object","required":["agent"],"properties":{"agent":{"$ref":"#/components/schemas/Agent"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"422":{"$ref":"#/components/responses/ValidationError"}}}},"/v1/agents/{id}":{"get":{"tags":["Agents"],"summary":"Get one agent","parameters":[{"$ref":"#/components/parameters/Id"}],"responses":{"200":{"description":"Agent details.","content":{"application/json":{"schema":{"type":"object","required":["agent"],"properties":{"agent":{"$ref":"#/components/schemas/Agent"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/v1/agents/{id}/launch":{"get":{"tags":["Launch"],"summary":"Get agent launch state","parameters":[{"$ref":"#/components/parameters/Id"}],"responses":{"200":{"description":"Launch state per region.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LaunchState"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"}}}},"/v1/agents/{id}/launch_questionnaire_draft":{"get":{"tags":["Launch"],"summary":"Show launch questionnaire draft","parameters":[{"$ref":"#/components/parameters/Id"}],"responses":{"200":{"description":"Current customer-submitted draft.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LaunchQuestionnaireDraft"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"}}},"post":{"tags":["Launch"],"summary":"Submit launch questionnaire draft","parameters":[{"$ref":"#/components/parameters/Id"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LaunchQuestionnaireDraftRequest"}}}},"responses":{"201":{"description":"Stored draft.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LaunchQuestionnaireDraft"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/ValidationError"}}}},"/v1/agents/{agent_id}/messages":{"post":{"tags":["Messages"],"summary":"Send a contentMessage","parameters":[{"$ref":"#/components/parameters/AgentId"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageSendRequest"}}}},"responses":{"201":{"$ref":"#/components/responses/MessageCreated"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"402":{"$ref":"#/components/responses/PaymentRequired"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/ValidationError"}}}},"/v1/agents/{agent_id}/messages/video":{"post":{"tags":["Messages"],"summary":"Send a video URL as an auto-unfurl text message","parameters":[{"$ref":"#/components/parameters/AgentId"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["phone","video_url"],"properties":{"phone":{"$ref":"#/components/schemas/Phone"},"video_url":{"type":"string","format":"uri"},"caption":{"type":"string"}}}}}},"responses":{"201":{"$ref":"#/components/responses/MessageCreated"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"422":{"$ref":"#/components/responses/ValidationError"}}}},"/v1/agents/{agent_id}/messages/image":{"post":{"tags":["Messages"],"summary":"Send an image URL as contentInfo","parameters":[{"$ref":"#/components/parameters/AgentId"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["phone","image_url"],"properties":{"phone":{"$ref":"#/components/schemas/Phone"},"image_url":{"type":"string","format":"uri"},"thumbnail_url":{"type":"string","format":"uri"}}}}}},"responses":{"201":{"$ref":"#/components/responses/MessageCreated"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"422":{"$ref":"#/components/responses/ValidationError"}}}},"/v1/agents/{agent_id}/messages/xl":{"post":{"tags":["Messages"],"summary":"Send two or three contentMessages as an XL message","parameters":[{"$ref":"#/components/parameters/AgentId"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["phone","messages"],"properties":{"phone":{"$ref":"#/components/schemas/Phone"},"messages":{"type":"array","minItems":2,"maxItems":3,"items":{"$ref":"#/components/schemas/ContentMessage"}},"delay_seconds":{"type":"number","minimum":0,"maximum":10}}}}}},"responses":{"201":{"description":"Messages sent.","content":{"application/json":{"schema":{"type":"object","required":["messages"],"properties":{"messages":{"type":"array","items":{"$ref":"#/components/schemas/MessageLog"}}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"422":{"$ref":"#/components/responses/ValidationError"}}}},"/v1/agents/{agent_id}/messages/final":{"post":{"tags":["Messages"],"summary":"Send one final post-opt-out message","parameters":[{"$ref":"#/components/parameters/AgentId"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["phone","consent_audit_log_id","content_message"],"properties":{"phone":{"$ref":"#/components/schemas/Phone"},"consent_audit_log_id":{"type":"integer"},"content_message":{"$ref":"#/components/schemas/ContentMessage"}}}}}},"responses":{"201":{"$ref":"#/components/responses/MessageCreated"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/ValidationError"}}}},"/v1/agents/{agent_id}/testers":{"get":{"tags":["Testers"],"summary":"List testers for an agent","parameters":[{"$ref":"#/components/parameters/AgentId"}],"responses":{"200":{"description":"Agent testers.","content":{"application/json":{"schema":{"type":"object","required":["testers"],"properties":{"testers":{"type":"array","items":{"$ref":"#/components/schemas/Tester"}}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"}}},"post":{"tags":["Testers"],"summary":"Register a tester phone number","parameters":[{"$ref":"#/components/parameters/AgentId"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["phone"],"properties":{"phone":{"$ref":"#/components/schemas/Phone"}}}}}},"responses":{"201":{"description":"Registered tester.","content":{"application/json":{"schema":{"type":"object","required":["tester"],"properties":{"tester":{"$ref":"#/components/schemas/Tester"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/ValidationError"}}}},"/v1/agents/{agent_id}/testers/{id}":{"delete":{"tags":["Testers"],"summary":"Remove a tester","parameters":[{"$ref":"#/components/parameters/AgentId"},{"$ref":"#/components/parameters/Id"}],"responses":{"204":{"description":"Tester removed."},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/ValidationError"}}}},"/v1/agents/{agent_id}/testers/{id}/status":{"get":{"tags":["Testers"],"summary":"Refresh tester invitation status","parameters":[{"$ref":"#/components/parameters/AgentId"},{"$ref":"#/components/parameters/Id"}],"responses":{"200":{"description":"Refreshed tester.","content":{"application/json":{"schema":{"type":"object","required":["tester"],"properties":{"tester":{"$ref":"#/components/schemas/Tester"}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/ValidationError"}}}},"/v1/carriers":{"get":{"tags":["Carriers"],"summary":"List German RCS carriers","parameters":[{"name":"management_type","in":"query","required":false,"schema":{"type":"string","enum":["GOOGLE_MANAGED","CARRIER_MANAGED"]}}],"responses":{"200":{"description":"Carriers.","content":{"application/json":{"schema":{"type":"object","required":["carriers"],"properties":{"carriers":{"type":"array","items":{"$ref":"#/components/schemas/Carrier"}}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"}}}},"/v1/agents/{id}/capabilities":{"get":{"tags":["Capabilities"],"summary":"Check RCS capabilities for one phone number","parameters":[{"$ref":"#/components/parameters/Id"},{"name":"phone","in":"query","required":true,"schema":{"$ref":"#/components/schemas/Phone"}}],"responses":{"200":{"description":"Capability result.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CapabilityResult"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/ValidationError"}}}},"/v1/agents/{id}/capabilities/batch":{"post":{"tags":["Capabilities"],"summary":"Check RCS capability for up to 100 phone numbers","parameters":[{"$ref":"#/components/parameters/Id"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["phones"],"properties":{"phones":{"type":"array","minItems":1,"maxItems":100,"items":{"$ref":"#/components/schemas/Phone"}}}}}}},"responses":{"200":{"description":"Capability results.","content":{"application/json":{"schema":{"type":"object","required":["results"],"properties":{"results":{"type":"array","items":{"$ref":"#/components/schemas/BatchCapabilityResult"}}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"422":{"$ref":"#/components/responses/ValidationError"}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API key","description":"Use `Authorization: Bearer \u003capi_key\u003e`."},"apiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-Key","description":"Alternative API key header."}},"parameters":{"Id":{"name":"id","in":"path","required":true,"schema":{"type":"integer"}},"AgentId":{"name":"agent_id","in":"path","required":true,"schema":{"type":"integer"}},"GoogleBrandId":{"name":"google_brand_id","in":"path","required":true,"description":"Google brand identifier, for example `brands/abc`.","schema":{"type":"string"}}},"responses":{"BadRequest":{"description":"Invalid request parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Unauthorized":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"PaymentRequired":{"description":"Tenant quota has been exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Forbidden":{"description":"Request is forbidden for the current tenant or resource state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotFound":{"description":"Resource was not found in the current tenant scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"ValidationError":{"description":"Validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationError"}}}},"MessageCreated":{"description":"Message sent and logged.","content":{"application/json":{"schema":{"type":"object","required":["message"],"properties":{"message":{"$ref":"#/components/schemas/MessageLog"}}}}}}},"schemas":{"PublicHealth":{"type":"object","required":["status","timestamp","commit"],"properties":{"status":{"type":"string","example":"ok"},"timestamp":{"type":"string","format":"date-time"},"commit":{"type":"string"}}},"V1Health":{"type":"object","required":["status","version","timestamp"],"properties":{"status":{"type":"string","example":"ok"},"version":{"type":"string","example":"v1"},"timestamp":{"type":"string","format":"date-time"}}},"Brand":{"type":"object","required":["google_brand_id","display_name","verification_state"],"properties":{"google_brand_id":{"type":"string","example":"brands/abc"},"display_name":{"type":["string","null"],"example":"Acme"},"verification_state":{"type":["string","null"],"example":"VERIFIED"},"synced_at":{"type":["string","null"],"format":"date-time"}}},"BrandVerification":{"type":"object","required":["google_brand_id","verification_state","verification_synced_at"],"properties":{"google_brand_id":{"type":"string"},"verification_state":{"type":["string","null"]},"verification_synced_at":{"type":["string","null"],"format":"date-time"}}},"BrandDocument":{"type":"object","required":["id","filename","byte_size","created_at"],"properties":{"id":{"type":"integer"},"filename":{"type":"string"},"byte_size":{"type":"integer"},"created_at":{"type":"string","format":"date-time"}}},"Agent":{"type":"object","description":"Agent record as serialized by Rails.","additionalProperties":true,"properties":{"id":{"type":"integer"},"google_agent_id":{"type":"string","example":"brands/acme/agents/support"},"name":{"type":["string","null"]},"display_name":{"type":["string","null"]},"status":{"type":["string","null"],"example":"LAUNCHED"},"track":{"type":["string","null"],"enum":["conversation","newsletter",null]}}},"ContactPhone":{"type":"object","properties":{"number":{"$ref":"#/components/schemas/Phone"},"label":{"type":"string"}}},"ContactEmail":{"type":"object","properties":{"address":{"type":"string","format":"email"},"label":{"type":"string"}}},"ContactWebsite":{"type":"object","properties":{"uri":{"type":"string","format":"uri"},"label":{"type":"string"}}},"AgentCreateRequest":{"type":"object","required":["display_name","description","hosting_region","billing_category","use_case"],"properties":{"display_name":{"type":"string","maxLength":40},"description":{"type":"string"},"hosting_region":{"type":"string","enum":["EUROPE","NORTH_AMERICA"]},"billing_category":{"type":"string","example":"CONVERSATIONAL"},"use_case":{"type":"string","example":"PROMOTIONAL"},"track":{"type":"string","enum":["conversation","newsletter"]},"logo_uri":{"type":"string","format":"uri"},"hero_uri":{"type":"string","format":"uri"},"color":{"type":"string","pattern":"^#[0-9A-Fa-f]{6}$"},"privacy_uri":{"type":"string","format":"uri"},"privacy_label":{"type":"string"},"terms_uri":{"type":"string","format":"uri"},"terms_label":{"type":"string"},"website_uri":{"type":"string","format":"uri"},"website_label":{"type":"string"},"phones":{"type":"array","maxItems":3,"items":{"$ref":"#/components/schemas/ContactPhone"}},"emails":{"type":"array","maxItems":3,"items":{"$ref":"#/components/schemas/ContactEmail"}},"websites":{"type":"array","maxItems":3,"items":{"$ref":"#/components/schemas/ContactWebsite"}}}},"LaunchState":{"type":"object","required":["status","launch_details"],"properties":{"status":{"type":"string"},"launch_details":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"region":{"type":"string"},"launch_state":{"type":"string"},"update_time":{"type":"string","format":"date-time"}}}}}},"LaunchQuestionnaireDraft":{"type":"object","required":["agent_id","google_agent_id","submitted_at","draft"],"properties":{"agent_id":{"type":"integer"},"google_agent_id":{"type":"string"},"submitted_at":{"type":["string","null"],"format":"date-time"},"draft":{"type":["object","null"],"additionalProperties":true}}},"LaunchQuestionnaireDraftRequest":{"type":"object","properties":{"primary_contact_name":{"type":"string"},"primary_contact_title":{"type":"string"},"primary_contact_email":{"type":"string","format":"email"},"opt_in_description":{"type":"string"},"opt_out_description":{"type":"string"},"trigger_description":{"type":"string"},"interaction_description":{"type":"string"},"access_instructions":{"type":"string"},"video_url":{"type":"string","format":"uri"},"screenshot_url":{"type":"string","format":"uri"}}},"MessageSendRequest":{"type":"object","required":["phone","content_message"],"properties":{"phone":{"$ref":"#/components/schemas/Phone"},"content_message":{"$ref":"#/components/schemas/ContentMessage"}}},"ContentMessage":{"type":"object","description":"Google RBM contentMessage payload. Exactly one primary content key is accepted.","additionalProperties":true,"properties":{"text":{"type":"string","maxLength":3072},"fileName":{"type":"string"},"uploadedRbmFile":{"type":"object","required":["fileName"],"properties":{"fileName":{"type":"string"}}},"contentInfo":{"$ref":"#/components/schemas/ContentInfo"},"richCard":{"type":"object","additionalProperties":true},"suggestions":{"type":"array","maxItems":11,"items":{"type":"object","additionalProperties":true}}}},"ContentInfo":{"type":"object","required":["fileUrl"],"properties":{"fileUrl":{"type":"string","format":"uri"},"thumbnailUrl":{"type":"string","format":"uri"}}},"MessageLog":{"type":"object","description":"Message log record as serialized by Rails.","additionalProperties":true,"properties":{"id":{"type":"integer"},"google_message_id":{"type":"string"},"phone":{"$ref":"#/components/schemas/Phone"},"status":{"type":"string","example":"SENT"},"message_type":{"type":"string","example":"text"},"direction":{"type":"string","example":"outbound"},"sent_at":{"type":"string","format":"date-time"}}},"Tester":{"type":"object","additionalProperties":true,"properties":{"id":{"type":"integer"},"phone":{"$ref":"#/components/schemas/Phone"},"status":{"type":"string","example":"ACCEPTED"}}},"Carrier":{"type":"object","required":["slug","name","google_region_name","management_type"],"properties":{"slug":{"type":"string"},"name":{"type":"string"},"google_region_name":{"type":"string"},"management_type":{"type":"string","enum":["GOOGLE_MANAGED","CARRIER_MANAGED"]}}},"CapabilityResult":{"type":"object","required":["rcs_enabled","features"],"properties":{"rcs_enabled":{"type":"boolean"},"features":{"type":"array","items":{"type":"string"}}}},"BatchCapabilityResult":{"type":"object","required":["phone","rcs_enabled"],"properties":{"phone":{"$ref":"#/components/schemas/Phone"},"rcs_enabled":{"type":"boolean"},"skipped":{"type":"string","enum":["invalid_phone","not_in_allowlist"]}}},"PublicPlan":{"type":"object","additionalProperties":false,"required":["slug","name","pricing","limits","modes","feature_bullets","cta"],"properties":{"slug":{"type":"string"},"name":{"type":"string"},"tagline":{"type":["string","null"]},"description":{"type":["string","null"]},"is_featured":{"type":"boolean"},"track":{"type":["string","null"]},"metric":{"type":["string","null"]},"sort_order":{"type":["integer","null"]},"pricing":{"type":"object","properties":{"monthly_amount":{"type":["string","null"]},"setup_amount":{"type":["string","null"]},"display_prefix":{"type":["string","null"]},"currency":{"type":"string"}}},"limits":{"type":"object","properties":{"max_brands":{"type":["integer","null"]},"sla_uptime":{"type":["string","null"]},"support_level":{"type":["string","null"]}}},"modes":{"type":"object","additionalProperties":{"type":"object","properties":{"quotas":{"type":"array","items":{"type":"object","properties":{"component_type":{"type":"string"},"included":{"type":["integer","null"]},"overage_amount":{"type":["string","null"]},"overage_unit":{"type":["string","null"]}}}}}}},"feature_bullets":{"type":"array","items":{"type":"string"}},"cta":{"type":"object","properties":{"label":{"type":["string","null"]},"kind":{"type":["string","null"]},"url":{"type":["string","null"]}}}}},"PublicPlanMeta":{"type":"object","required":["version","schema_version","count"],"properties":{"version":{"type":["string","null"],"format":"date-time"},"schema_version":{"type":"integer"},"count":{"type":"integer"}}},"Phone":{"type":"string","description":"E.164 phone number. Tenant country allow-lists apply.","example":"+491791234567"},"Error":{"type":"object","additionalProperties":true,"properties":{"error":{"type":"string"},"message":{"type":"string"},"version":{"type":"string"}}},"ValidationError":{"type":"object","additionalProperties":true,"properties":{"error":{"type":"string"},"message":{"type":"string"},"errors":{"type":"object","additionalProperties":{"type":"string"}}}}}}}