{"openapi": "3.1.0", "info": {"title": "AnswerBeacon API", "version": "1.0.0", "summary": "Audit a page for AI-search readiness and get copy-paste fixes.", "description": "REST API and remote MCP server (POST /mcp) for AnswerBeacon. Audits run a bounded, robots-respecting fetch of one page and score it on 20 on-page elements. A page that cannot be read returns an error, never a guessed score.", "termsOfService": "https://brandrank.eliteaiempire.com/terms", "contact": {"email": "support@eliteaiempire.com"}}, "servers": [{"url": "https://brandrank.eliteaiempire.com"}], "tags": [{"name": "read", "description": "Read-only"}, {"name": "write", "description": "Changes state; needs confirm=true"}, {"name": "account", "description": "Keys, export, deletion"}], "paths": {"/v1/audit": {"get": {"operationId": "answerbeacon_audit_page", "summary": "Run the 20-element on-page AI-readiness audit on one public page", "security": [{"bearerAuth": ["read"]}], "tags": ["read"], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"type": "object"}}}}, "401": {"description": "Missing, invalid or revoked key", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "403": {"description": "Key lacks the required scope", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "402": {"description": "Free quota used up, or a paid plan is required", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "409": {"description": "confirm=true is required", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "422": {"description": "Invalid request or unreadable page", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "429": {"description": "Rate limit exceeded; see Retry-After", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}}, "parameters": [{"name": "url", "in": "query", "required": true, "schema": {"type": "string"}, "description": "Public page URL or bare domain, e.g. example.com"}], "x-pricing": {"unit": "audit call", "unit_price_usd": 0, "currency": "USD", "free_quota_per_month": 100, "free_quota_scope": "per account without a paid plan", "paid_plans": "included in the flat monthly price of every paid plan (fair-use rate limit)", "plans_url": "https://brandrank.eliteaiempire.com/pricing", "metered_stripe_price": null, "plans": [{"name": "Starter", "usd": 49.0, "interval": "month", "lookup_key": "brandrank_starter_monthly"}, {"name": "Starter (annual)", "usd": 490.0, "interval": "year", "lookup_key": "brandrank_starter_yearly"}, {"name": "Pro", "usd": 149.0, "interval": "month", "lookup_key": "brandrank_pro_monthly"}, {"name": "Pro (annual)", "usd": 1490.0, "interval": "year", "lookup_key": "brandrank_pro_yearly"}, {"name": "Agency", "usd": 399.0, "interval": "month", "lookup_key": "brandrank_agency_monthly"}, {"name": "Agency (annual)", "usd": 3990.0, "interval": "year", "lookup_key": "brandrank_agency_yearly"}]}, "x-mcp-tool": "answerbeacon_audit_page"}}, "/v1/audit/schema": {"get": {"operationId": "answerbeacon_check_schema", "summary": "Schema.org / JSON-LD subset of the audit", "security": [{"bearerAuth": ["read"]}], "tags": ["read"], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"type": "object"}}}}, "401": {"description": "Missing, invalid or revoked key", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "403": {"description": "Key lacks the required scope", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "402": {"description": "Free quota used up, or a paid plan is required", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "409": {"description": "confirm=true is required", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "422": {"description": "Invalid request or unreadable page", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "429": {"description": "Rate limit exceeded; see Retry-After", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}}, "parameters": [{"name": "url", "in": "query", "required": true, "schema": {"type": "string"}, "description": "Public page URL or bare domain, e.g. example.com"}], "x-pricing": {"unit": "audit call", "unit_price_usd": 0, "currency": "USD", "free_quota_per_month": 100, "free_quota_scope": "per account without a paid plan", "paid_plans": "included in the flat monthly price of every paid plan (fair-use rate limit)", "plans_url": "https://brandrank.eliteaiempire.com/pricing", "metered_stripe_price": null, "plans": [{"name": "Starter", "usd": 49.0, "interval": "month", "lookup_key": "brandrank_starter_monthly"}, {"name": "Starter (annual)", "usd": 490.0, "interval": "year", "lookup_key": "brandrank_starter_yearly"}, {"name": "Pro", "usd": 149.0, "interval": "month", "lookup_key": "brandrank_pro_monthly"}, {"name": "Pro (annual)", "usd": 1490.0, "interval": "year", "lookup_key": "brandrank_pro_yearly"}, {"name": "Agency", "usd": 399.0, "interval": "month", "lookup_key": "brandrank_agency_monthly"}, {"name": "Agency (annual)", "usd": 3990.0, "interval": "year", "lookup_key": "brandrank_agency_yearly"}]}, "x-mcp-tool": "answerbeacon_check_schema"}}, "/v1/fixes": {"get": {"operationId": "answerbeacon_get_fixes", "summary": "Copy-paste fixes for every missed check", "security": [{"bearerAuth": ["read"]}], "tags": ["read"], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"type": "object"}}}}, "401": {"description": "Missing, invalid or revoked key", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "403": {"description": "Key lacks the required scope", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "402": {"description": "Free quota used up, or a paid plan is required", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "409": {"description": "confirm=true is required", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "422": {"description": "Invalid request or unreadable page", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "429": {"description": "Rate limit exceeded; see Retry-After", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}}, "parameters": [{"name": "url", "in": "query", "required": true, "schema": {"type": "string"}, "description": "Public page URL or bare domain, e.g. example.com"}], "x-pricing": {"unit": "audit call", "unit_price_usd": 0, "currency": "USD", "free_quota_per_month": 100, "free_quota_scope": "per account without a paid plan", "paid_plans": "included in the flat monthly price of every paid plan (fair-use rate limit)", "plans_url": "https://brandrank.eliteaiempire.com/pricing", "metered_stripe_price": null, "plans": [{"name": "Starter", "usd": 49.0, "interval": "month", "lookup_key": "brandrank_starter_monthly"}, {"name": "Starter (annual)", "usd": 490.0, "interval": "year", "lookup_key": "brandrank_starter_yearly"}, {"name": "Pro", "usd": 149.0, "interval": "month", "lookup_key": "brandrank_pro_monthly"}, {"name": "Pro (annual)", "usd": 1490.0, "interval": "year", "lookup_key": "brandrank_pro_yearly"}, {"name": "Agency", "usd": 399.0, "interval": "month", "lookup_key": "brandrank_agency_monthly"}, {"name": "Agency (annual)", "usd": 3990.0, "interval": "year", "lookup_key": "brandrank_agency_yearly"}]}, "x-mcp-tool": "answerbeacon_get_fixes"}}, "/v1/visibility": {"get": {"operationId": "answerbeacon_visibility_snapshot", "summary": "Instant AI-visibility snapshot (same as the free homepage audit)", "security": [{"bearerAuth": ["read"]}], "tags": ["read"], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"type": "object"}}}}, "401": {"description": "Missing, invalid or revoked key", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "403": {"description": "Key lacks the required scope", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "402": {"description": "Free quota used up, or a paid plan is required", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "409": {"description": "confirm=true is required", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "422": {"description": "Invalid request or unreadable page", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "429": {"description": "Rate limit exceeded; see Retry-After", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}}, "parameters": [{"name": "url", "in": "query", "required": true, "schema": {"type": "string"}, "description": "Public page URL or bare domain, e.g. example.com"}, {"name": "category", "in": "query", "required": false, "schema": {"type": "string"}, "description": "Business category (optional)"}], "x-pricing": {"unit": "audit call", "unit_price_usd": 0, "currency": "USD", "free_quota_per_month": 100, "free_quota_scope": "per account without a paid plan", "paid_plans": "included in the flat monthly price of every paid plan (fair-use rate limit)", "plans_url": "https://brandrank.eliteaiempire.com/pricing", "metered_stripe_price": null, "plans": [{"name": "Starter", "usd": 49.0, "interval": "month", "lookup_key": "brandrank_starter_monthly"}, {"name": "Starter (annual)", "usd": 490.0, "interval": "year", "lookup_key": "brandrank_starter_yearly"}, {"name": "Pro", "usd": 149.0, "interval": "month", "lookup_key": "brandrank_pro_monthly"}, {"name": "Pro (annual)", "usd": 1490.0, "interval": "year", "lookup_key": "brandrank_pro_yearly"}, {"name": "Agency", "usd": 399.0, "interval": "month", "lookup_key": "brandrank_agency_monthly"}, {"name": "Agency (annual)", "usd": 3990.0, "interval": "year", "lookup_key": "brandrank_agency_yearly"}]}, "x-mcp-tool": "answerbeacon_visibility_snapshot"}}, "/v1/checks/{check_id}": {"get": {"operationId": "answerbeacon_explain_check", "summary": "Explain what one of the 20 checks looks for", "security": [{"bearerAuth": ["read"]}], "tags": ["read"], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"type": "object"}}}}, "401": {"description": "Missing, invalid or revoked key", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "403": {"description": "Key lacks the required scope", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "402": {"description": "Free quota used up, or a paid plan is required", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "409": {"description": "confirm=true is required", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "422": {"description": "Invalid request or unreadable page", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "429": {"description": "Rate limit exceeded; see Retry-After", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}}, "parameters": [{"name": "check_id", "in": "path", "required": true, "schema": {"type": "string", "enum": ["e01_title", "e02_meta_desc", "e03_h1", "e04_internal_links", "e05_img_alt", "e06_faq_section", "e07_faq_schema", "e08_local_kw", "e09_service_pages", "e10_location_pages", "e11_breadcrumbs", "e12_org_schema", "e13_localbiz_schema", "e14_service_schema", "e15_author_bios", "e16_reviews", "e17_case_studies", "e18_related_content", "e19_cta", "e20_blog"]}, "description": ""}], "x-mcp-tool": "answerbeacon_explain_check"}}, "/v1/alerts": {"get": {"operationId": "answerbeacon_list_alerts", "summary": "List scheduled snapshot alerts on this account", "security": [{"bearerAuth": ["read"]}], "tags": ["read"], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"type": "object"}}}}, "401": {"description": "Missing, invalid or revoked key", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "403": {"description": "Key lacks the required scope", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "402": {"description": "Free quota used up, or a paid plan is required", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "409": {"description": "confirm=true is required", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "422": {"description": "Invalid request or unreadable page", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "429": {"description": "Rate limit exceeded; see Retry-After", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}}, "parameters": [], "x-mcp-tool": "answerbeacon_list_alerts"}, "post": {"operationId": "answerbeacon_create_alert", "summary": "Schedule a recurring snapshot email (requires confirm=true; paid plan)", "security": [{"bearerAuth": ["write"]}], "tags": ["write"], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"type": "object"}}}}, "401": {"description": "Missing, invalid or revoked key", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "403": {"description": "Key lacks the required scope", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "402": {"description": "Free quota used up, or a paid plan is required", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "409": {"description": "confirm=true is required", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "422": {"description": "Invalid request or unreadable page", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "429": {"description": "Rate limit exceeded; see Retry-After", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}}, "requestBody": {"required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"domain": {"type": "string"}, "cadence": {"type": "string", "enum": ["daily", "weekly", "monthly"]}, "brand": {"type": "string"}, "category": {"type": "string"}, "confirm": {"type": "boolean", "description": "Must be true to perform the action; without it the call is refused and returns what would happen."}}, "required": ["domain", "confirm"], "additionalProperties": false}}}}, "parameters": [{"name": "Idempotency-Key", "in": "header", "required": false, "schema": {"type": "string"}, "description": "Repeat the same key to get the first response back instead of repeating the action."}], "x-mcp-tool": "answerbeacon_create_alert", "x-requires-confirm": true}}, "/v1/fix-prs": {"post": {"operationId": "answerbeacon_open_fix_pr", "summary": "Open a pull request with the fixes on the connected repository (requires confirm=true; Agency plan)", "security": [{"bearerAuth": ["write"]}], "tags": ["write"], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"type": "object"}}}}, "401": {"description": "Missing, invalid or revoked key", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "403": {"description": "Key lacks the required scope", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "402": {"description": "Free quota used up, or a paid plan is required", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "409": {"description": "confirm=true is required", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "422": {"description": "Invalid request or unreadable page", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "429": {"description": "Rate limit exceeded; see Retry-After", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}}, "requestBody": {"required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"confirm": {"type": "boolean", "description": "Must be true to perform the action; without it the call is refused and returns what would happen."}}, "required": ["confirm"], "additionalProperties": false}}}}, "parameters": [{"name": "Idempotency-Key", "in": "header", "required": false, "schema": {"type": "string"}, "description": "Repeat the same key to get the first response back instead of repeating the action."}], "x-mcp-tool": "answerbeacon_open_fix_pr", "x-requires-confirm": true}}, "/v1/usage": {"get": {"operationId": "answerbeacon_get_usage", "summary": "Usage, quota and recent metering events for this account", "security": [{"bearerAuth": ["read"]}], "tags": ["read"], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"type": "object"}}}}, "401": {"description": "Missing, invalid or revoked key", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "403": {"description": "Key lacks the required scope", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "402": {"description": "Free quota used up, or a paid plan is required", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "409": {"description": "confirm=true is required", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "422": {"description": "Invalid request or unreadable page", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "429": {"description": "Rate limit exceeded; see Retry-After", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}}, "parameters": [], "x-mcp-tool": "answerbeacon_get_usage"}}, "/v1/export": {"get": {"operationId": "answerbeacon_export_data", "summary": "Export every object held for this account (JSON or CSV)", "security": [{"bearerAuth": ["read"]}], "tags": ["read"], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"type": "object"}}}}, "401": {"description": "Missing, invalid or revoked key", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "403": {"description": "Key lacks the required scope", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "402": {"description": "Free quota used up, or a paid plan is required", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "409": {"description": "confirm=true is required", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "422": {"description": "Invalid request or unreadable page", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "429": {"description": "Rate limit exceeded; see Retry-After", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}}, "parameters": [{"name": "format", "in": "query", "required": false, "schema": {"type": "string", "enum": ["json", "csv"]}, "description": ""}], "x-mcp-tool": "answerbeacon_export_data"}}, "/v1/keys": {"get": {"operationId": "answerbeacon_list_keys", "summary": "List API keys on this account", "security": [{"bearerAuth": ["billing"]}], "tags": ["read"], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"type": "object"}}}}, "401": {"description": "Missing, invalid or revoked key", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "403": {"description": "Key lacks the required scope", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "402": {"description": "Free quota used up, or a paid plan is required", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "409": {"description": "confirm=true is required", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "422": {"description": "Invalid request or unreadable page", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "429": {"description": "Rate limit exceeded; see Retry-After", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}}, "parameters": []}, "post": {"operationId": "answerbeacon_create_key", "summary": "Create an API key with a subset of your scopes", "security": [{"bearerAuth": ["billing"]}], "tags": ["account"], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"type": "object"}}}}, "401": {"description": "Missing, invalid or revoked key", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "403": {"description": "Key lacks the required scope", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "402": {"description": "Free quota used up, or a paid plan is required", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "409": {"description": "confirm=true is required", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "422": {"description": "Invalid request or unreadable page", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "429": {"description": "Rate limit exceeded; see Retry-After", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}}, "requestBody": {"required": false, "content": {"application/json": {"schema": {"type": "object", "properties": {"name": {"type": "string"}, "scopes": {"type": "array", "items": {"type": "string", "enum": ["read", "write", "billing"]}}}, "required": [], "additionalProperties": false}}}}, "parameters": [{"name": "Idempotency-Key", "in": "header", "required": false, "schema": {"type": "string"}, "description": "Repeat the same key to get the first response back instead of repeating the action."}]}}, "/v1/keys/{key_id}": {"delete": {"operationId": "answerbeacon_revoke_key", "summary": "Revoke an API key", "security": [{"bearerAuth": ["billing"]}], "tags": ["account"], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"type": "object"}}}}, "401": {"description": "Missing, invalid or revoked key", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "403": {"description": "Key lacks the required scope", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "402": {"description": "Free quota used up, or a paid plan is required", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "409": {"description": "confirm=true is required", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "422": {"description": "Invalid request or unreadable page", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "429": {"description": "Rate limit exceeded; see Retry-After", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}}, "parameters": [{"name": "key_id", "in": "path", "required": true, "schema": {"type": "string"}, "description": ""}]}}, "/v1/keys/{key_id}/rotate": {"post": {"operationId": "answerbeacon_rotate_key", "summary": "Replace a key: returns a new key and revokes the old one", "security": [{"bearerAuth": ["billing"]}], "tags": ["account"], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"type": "object"}}}}, "401": {"description": "Missing, invalid or revoked key", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "403": {"description": "Key lacks the required scope", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "402": {"description": "Free quota used up, or a paid plan is required", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "409": {"description": "confirm=true is required", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "422": {"description": "Invalid request or unreadable page", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "429": {"description": "Rate limit exceeded; see Retry-After", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}}, "requestBody": {"required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {}, "required": [], "additionalProperties": false}}}}, "parameters": [{"name": "key_id", "in": "path", "required": true, "schema": {"type": "string"}}, {"name": "Idempotency-Key", "in": "header", "required": false, "schema": {"type": "string"}, "description": "Repeat the same key to get the first response back instead of repeating the action."}]}}, "/v1/account": {"delete": {"operationId": "answerbeacon_delete_account", "summary": "Delete all keys, usage records and alerts for this account (requires confirm=true)", "security": [{"bearerAuth": ["billing"]}], "tags": ["account"], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"type": "object"}}}}, "401": {"description": "Missing, invalid or revoked key", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "403": {"description": "Key lacks the required scope", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "402": {"description": "Free quota used up, or a paid plan is required", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "409": {"description": "confirm=true is required", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "422": {"description": "Invalid request or unreadable page", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "429": {"description": "Rate limit exceeded; see Retry-After", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}}, "requestBody": {"required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"confirm": {"type": "boolean", "description": "Must be true to perform the action; without it the call is refused and returns what would happen."}}, "required": ["confirm"], "additionalProperties": false}}}}, "parameters": [], "x-requires-confirm": true}}, "/v1/signup": {"post": {"operationId": "answerbeacon_signup", "summary": "Get a free read-only API key (no card)", "security": [], "tags": ["account"], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"type": "object"}}}}, "402": {"description": "Free quota used up, or a paid plan is required", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "409": {"description": "confirm=true is required", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "422": {"description": "Invalid request or unreadable page", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}, "429": {"description": "Rate limit exceeded; see Retry-After", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/Error"}}}}}, "requestBody": {"required": true, "content": {"application/json": {"schema": {"type": "object", "properties": {"email": {"type": "string"}, "name": {"type": "string"}}, "required": ["email"], "additionalProperties": false}}}}, "parameters": [{"name": "Idempotency-Key", "in": "header", "required": false, "schema": {"type": "string"}, "description": "Repeat the same key to get the first response back instead of repeating the action."}]}}, "/v1/health": {"get": {"operationId": "answerbeacon_health", "summary": "Liveness", "security": [], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"type": "object"}}}}}}}}, "components": {"securitySchemes": {"bearerAuth": {"type": "http", "scheme": "bearer", "description": "API key. Scopes: read (audits, usage, export), write (alerts, fix PRs), billing (keys, account deletion). Get a free read key from POST /v1/signup."}}, "schemas": {"Error": {"type": "object", "required": ["error"], "properties": {"error": {"type": "object", "required": ["code", "message", "request_id"], "properties": {"code": {"type": "string"}, "message": {"type": "string"}, "request_id": {"type": "string"}}}}}}}, "x-rate-limits": {"per_key_per_minute": 60, "headers": ["X-RateLimit-Limit", "X-RateLimit-Remaining", "X-RateLimit-Reset", "Retry-After"]}, "x-pricing-plans": [{"name": "Starter", "usd": 49.0, "interval": "month", "lookup_key": "brandrank_starter_monthly"}, {"name": "Starter (annual)", "usd": 490.0, "interval": "year", "lookup_key": "brandrank_starter_yearly"}, {"name": "Pro", "usd": 149.0, "interval": "month", "lookup_key": "brandrank_pro_monthly"}, {"name": "Pro (annual)", "usd": 1490.0, "interval": "year", "lookup_key": "brandrank_pro_yearly"}, {"name": "Agency", "usd": 399.0, "interval": "month", "lookup_key": "brandrank_agency_monthly"}, {"name": "Agency (annual)", "usd": 3990.0, "interval": "year", "lookup_key": "brandrank_agency_yearly"}], "x-mcp": {"url": "https://brandrank.eliteaiempire.com/mcp", "transport": "streamable-http", "auth": "Bearer"}}