{"openapi":"3.1.0","info":{"title":"MCPGatePro API","description":"Hosted MCP servers for Claude Desktop and Claude Code. Authenticate every call with your API key in the `X-API-Key` header.","version":"0.1.0"},"paths":{"/api/checkout/session":{"post":{"summary":"Create Checkout Session","description":"Create a Stripe Checkout Session and return its hosted URL.","operationId":"create_checkout_session_api_checkout_session_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/me":{"get":{"summary":"Get Me","operationId":"get_me_api_v1_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/v1/keys":{"get":{"summary":"List Keys","operationId":"list_keys_api_v1_keys_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]},"post":{"summary":"Create Key","operationId":"create_key_api_v1_keys_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/v1/usage":{"get":{"summary":"Get Usage","operationId":"get_usage_api_v1_usage_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/v1/me/featured-partner":{"get":{"summary":"Get Featured Partner State","operationId":"get_featured_partner_state_api_v1_me_featured_partner_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeaturedPartnerState"}}}}},"security":[{"APIKeyHeader":[]}]},"put":{"summary":"Update Featured Partner State","description":"Partial update. Setting featured_partner=True records consent timestamp;\nsetting it to False records revocation + clears all placement toggles.","operationId":"update_featured_partner_state_api_v1_me_featured_partner_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeaturedPartnerUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeaturedPartnerState"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]},"delete":{"summary":"Revoke Featured Partner","description":"Hard revoke — same as PUT with featured_partner=False, plus clear company info.","operationId":"revoke_featured_partner_api_v1_me_featured_partner_delete","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeaturedPartnerState"}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/v1/featured-partners":{"get":{"summary":"List Featured Partners","description":"Public endpoint — for landing page render. No auth.\n\nFilters: opt-in active + the requested location toggle on + non-revoked.\nCached upstream (CDN) — server-side cache TTL handled by FastAPI middleware.","operationId":"list_featured_partners_api_v1_featured_partners_get","parameters":[{"name":"location","in":"query","required":false,"schema":{"type":"string","default":"landing","title":"Location"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicPartnersResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/mcp/{service}/{path}":{"delete":{"summary":"Proxy Mcp","operationId":"proxy_mcp_mcp__service___path__delete","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"service","in":"path","required":true,"schema":{"type":"string","title":"Service"}},{"name":"path","in":"path","required":true,"schema":{"type":"string","title":"Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"summary":"Proxy Mcp","operationId":"proxy_mcp_mcp__service___path__delete","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"service","in":"path","required":true,"schema":{"type":"string","title":"Service"}},{"name":"path","in":"path","required":true,"schema":{"type":"string","title":"Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"Proxy Mcp","operationId":"proxy_mcp_mcp__service___path__delete","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"service","in":"path","required":true,"schema":{"type":"string","title":"Service"}},{"name":"path","in":"path","required":true,"schema":{"type":"string","title":"Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Proxy Mcp","operationId":"proxy_mcp_mcp__service___path__delete","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"service","in":"path","required":true,"schema":{"type":"string","title":"Service"}},{"name":"path","in":"path","required":true,"schema":{"type":"string","title":"Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/health":{"get":{"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"CheckoutRequest":{"properties":{"product":{"type":"string","title":"Product","description":"mcpgatepro | vocea"},"plan":{"type":"string","title":"Plan","description":"Plan key (starter, pro, business, setup)"},"customer_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Customer Email","description":"Pre-fill email if known"},"currency":{"anyOf":[{"type":"string","enum":["pln","eur","usd"]},{"type":"null"}],"title":"Currency","description":"Force currency. Omit for Stripe geo-detection default."}},"type":"object","required":["product","plan"],"title":"CheckoutRequest"},"CheckoutResponse":{"properties":{"checkout_url":{"type":"string","title":"Checkout Url"},"session_id":{"type":"string","title":"Session Id"}},"type":"object","required":["checkout_url","session_id"],"title":"CheckoutResponse"},"FeaturedPartnerState":{"properties":{"featured_partner":{"type":"boolean","title":"Featured Partner"},"featured_partner_consent_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Featured Partner Consent At"},"featured_partner_revoked_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Featured Partner Revoked At"},"company_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company Name"},"company_logo_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company Logo Url"},"company_website_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company Website Url"},"show_logo_on_landing":{"type":"boolean","title":"Show Logo On Landing"},"show_logo_on_corporate":{"type":"boolean","title":"Show Logo On Corporate"},"show_logo_in_product":{"type":"boolean","title":"Show Logo In Product"},"last_featured_partner_credit_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Featured Partner Credit At"}},"type":"object","required":["featured_partner","featured_partner_consent_at","featured_partner_revoked_at","company_name","company_logo_url","company_website_url","show_logo_on_landing","show_logo_on_corporate","show_logo_in_product","last_featured_partner_credit_at"],"title":"FeaturedPartnerState"},"FeaturedPartnerUpdate":{"properties":{"featured_partner":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Featured Partner"},"company_name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Company Name"},"company_logo_url":{"anyOf":[{"type":"string","maxLength":2083,"minLength":1,"format":"uri"},{"type":"null"}],"title":"Company Logo Url"},"company_website_url":{"anyOf":[{"type":"string","maxLength":2083,"minLength":1,"format":"uri"},{"type":"null"}],"title":"Company Website Url"},"show_logo_on_landing":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Show Logo On Landing"},"show_logo_on_corporate":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Show Logo On Corporate"},"show_logo_in_product":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Show Logo In Product"}},"type":"object","title":"FeaturedPartnerUpdate","description":"All fields optional — partial update allowed."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"PublicPartner":{"properties":{"company":{"type":"string","title":"Company"},"logo":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logo"},"website":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Website"}},"type":"object","required":["company","logo","website"],"title":"PublicPartner"},"PublicPartnersResponse":{"properties":{"customers":{"items":{"$ref":"#/components/schemas/PublicPartner"},"type":"array","title":"Customers"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["customers","updated_at"],"title":"PublicPartnersResponse"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}},"securitySchemes":{"APIKeyHeader":{"type":"apiKey","in":"header","name":"X-API-Key"}}}}