{"openapi":"3.1.0","info":{"title":"Ecommerce Leaderboards Agent API","version":"1.0.0","description":"Read /llms.txt before starting. Email proof creates/reuses an account and returns a bearer key. Paid data access uses the same subscription as the website. Stripe checkout may require cardholder action. Never send card details here. Revenue is company turnover, not online sales. Errors fail closed; authenticated responses are no-store."},"servers":[{"url":"https://ecomleaderboard.com/api/v1"}],"externalDocs":{"url":"https://ecomleaderboard.com/llms.txt","description":"Complete signup, payment, recovery and pagination instructions for LLMs"},"security":[{"ApiKey":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"http","scheme":"bearer","bearerFormat":"el_...","description":"API key returned after email verification. Email verification keys have management authority; keys created through POST /keys default to data-only."}}},"paths":{"/plans":{"get":{"operationId":"getPlans","summary":"Discover pricing, limits, countries, platforms, categories and availability","security":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"enabled":{"type":"boolean"},"currency":{"const":"EUR"},"free":{"type":"object"},"paid":{"type":"object"},"countries":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"},"revenueBasis":{"type":"string"}},"required":["slug","name","revenueBasis"],"additionalProperties":false}},"categories":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"label":{"type":"string"}},"required":["id","label"],"additionalProperties":false}},"platforms":{"type":"array","items":{"type":"string"}}}}}}},"400":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"402":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"413":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"415":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"503":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/auth/start":{"post":{"operationId":"startEmailVerification","summary":"Send a 15-minute token to an authorized inbox; also used for recovery","security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email","maxLength":254}},"required":["email"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"nextAction":{"type":"string"},"expiresInSeconds":{"type":"integer"},"verifyEndpoint":{"type":"string"},"message":{"type":"string"}},"required":["nextAction","expiresInSeconds","verifyEndpoint","message"],"additionalProperties":false}}}},"400":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"402":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"413":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"415":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"503":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/auth/verify":{"post":{"operationId":"verifyEmail","summary":"Consume email proof and return a new key for the same account","security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email"},"token":{"type":"string","pattern":"^[A-Za-z0-9_-]{43}$"}},"required":["email","token"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"apiKey":{"type":"string","description":"Secret returned once. Store securely."},"tier":{"type":"string"},"subscription":{"type":["object","null"]},"nextAction":{"type":"string"},"message":{"type":"string"}},"required":["apiKey","tier","subscription","nextAction","message"],"additionalProperties":false}}}},"400":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"402":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"413":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"415":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"503":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/account":{"get":{"operationId":"getAccount","summary":"Read tier, subscription and this key's daily data usage","responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"manageAccount":{"type":"boolean"},"email":{"type":"string","format":"email"},"tier":{"enum":["free","paid","grace"]},"subscription":{"type":["object","null"],"properties":{"status":{"type":"string"},"cancelAtPeriodEnd":{"type":"boolean"},"currentPeriodEnd":{"type":["string","null"],"format":"date-time"}}},"usage":{"type":"object","properties":{"requestsToday":{"type":"integer"},"limit":{"type":"integer"},"resetsAt":{"type":"string","format":"date-time"}},"required":["requestsToday","limit","resetsAt"],"additionalProperties":false},"nextAction":{"type":"string"}},"required":["manageAccount","email","tier","subscription","usage","nextAction"],"additionalProperties":false}}}},"400":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"402":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"413":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"415":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"503":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/keys":{"get":{"operationId":"listKeys","summary":"List this account's active keys without secrets","responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"keys":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"label":{"type":["string","null"]},"createdAt":{"type":"string"},"lastUsedAt":{"type":["string","null"]},"manageAccount":{"type":"boolean"}},"required":["id","label","createdAt","lastUsedAt","manageAccount"],"additionalProperties":false}}},"required":["keys"],"additionalProperties":false}}}},"400":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"402":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"413":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"415":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"503":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}},"post":{"operationId":"createKey","summary":"Create a key; securely save the one-time secret","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"manageAccount":{"type":"boolean","default":false,"description":"Explicitly delegate account and billing management; default is data-only"},"label":{"type":"string","maxLength":80,"default":"Agent"}},"required":[],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"apiKey":{"type":"string"},"manageAccount":{"type":"boolean"},"message":{"type":"string"}},"required":["id","apiKey","manageAccount","message"],"additionalProperties":false}}}},"400":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"402":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"413":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"415":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"503":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/keys/{id}":{"delete":{"operationId":"revokeKey","summary":"Immediately revoke an owned key, including the current key","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"},"description":"Key ID from listKeys"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"revoked":{"const":true}},"required":["revoked"],"additionalProperties":false}}}},"400":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"402":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"413":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"415":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"503":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/billing/checkout":{"post":{"operationId":"createCheckout","summary":"Create or reuse checkout after owner authorizes recurring payment","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"interval":{"enum":["monthly","annual"]}},"required":["interval"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"checkoutSessionId":{"type":"string"},"checkoutUrl":{"type":["string","null"]},"expiresAt":{"type":"integer","description":"Unix seconds"},"nextAction":{"const":"complete_checkout"}},"required":["checkoutSessionId","checkoutUrl","expiresAt","nextAction"],"additionalProperties":false}}}},"400":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"402":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"413":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"415":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"503":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/billing/sync":{"post":{"operationId":"syncSubscription","summary":"Reconcile Stripe after checkout or refresh an existing subscription; do not trust redirect success","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"checkoutSessionId":{"type":"string","pattern":"^cs_[A-Za-z0-9_]+$","description":"Owned checkout ID; omit to refresh existing subscription"}},"required":[],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"nextAction":{"type":"string"},"tier":{"type":"string"},"subscription":{"type":["object","null"]}}}}}},"400":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"402":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"413":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"415":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"503":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/billing/portal":{"post":{"operationId":"createBillingPortal","summary":"Get a Stripe link to change plans, view invoices or update payment details","responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"portalUrl":{"type":"string"},"nextAction":{"type":"string"}},"required":["portalUrl","nextAction"],"additionalProperties":false}}}},"400":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"402":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"413":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"415":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"503":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/billing/subscription":{"delete":{"operationId":"cancelRenewal","summary":"Cancel renewal for the shared website/API subscription; preserve paid-through access","responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"tier":{"type":"string"},"subscription":{"type":"object"},"message":{"type":"string"}}}}}},"400":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"402":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"413":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"415":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"503":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/stores/lookup":{"get":{"operationId":"lookupStoreByDomain","summary":"Look up a published store by exact domain across all countries; requires paid access and consumes one data request. Returns 404 store_not_found if absent.","parameters":[{"name":"domain","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":2048},"description":"Required once. Domain or HTTP(S) website URL; case, www., trailing dot, port and path are normalized. Other subdomains match exactly. All matching country records are returned; no pagination or other query parameters."}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"string"},"entries":{"type":"array","items":{"type":"object","properties":{"country":{"enum":["estonia","latvia","lithuania","finland","denmark","czechia","norway","france","slovakia","romania","belgium","united-kingdom","moldova","sweden"]},"registryCode":{"type":"string"},"rank":{"type":["number","null"]},"company":{"type":"string"},"legalName":{"type":"string"},"website":{"type":["string","null"]},"revenuePeriod":{"type":["string","null"]},"turnoverEur":{"type":["number","null"]},"previousTurnoverEur":{"type":["number","null"]},"employees":{"type":["number","null"]},"productCount":{"type":["number","null"]},"categoryPageCount":{"type":["number","null"]},"blogPostCount":{"type":["number","null"]},"languageCount":{"type":["number","null"]},"languages":{"type":"array","items":{"type":"string"}},"defaultLanguage":{"type":["string","null"]},"platform":{"type":"string"},"category":{"type":["string","null"]},"activity":{"type":"string"},"profilePath":{"type":["string","null"]}},"required":["country","registryCode","rank","company","legalName","website","revenuePeriod","turnoverEur","previousTurnoverEur","employees","productCount","categoryPageCount","blogPostCount","languageCount","languages","defaultLanguage","platform","category","activity","profilePath"],"additionalProperties":false}},"total":{"type":"integer"},"revenueNote":{"type":"string"}},"required":["domain","entries","total","revenueNote"],"additionalProperties":false}}}},"400":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"402":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"413":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"415":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"503":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/stores/submissions":{"post":{"operationId":"submitStore","summary":"Submit a store for automatic verification and immediate publication on acceptance. Paid data-only keys work. Maximum 20 new-store POSTs per account per UTC day; duplicate pending submissions reuse the ID. All requests consume data quota.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"website":{"type":"string","minLength":1,"maxLength":2048},"country":{"enum":["estonia","latvia","lithuania","finland","denmark","czechia","norway","france","slovakia","romania","belgium","united-kingdom","moldova","sweden"],"description":"Operator's registry country. Required for generic domains such as .com; otherwise inferred from the domain suffix."},"waitSeconds":{"type":"integer","minimum":0,"maximum":20,"default":10,"description":"Wait up to this many seconds for a terminal result. Use 0 to return immediately."}},"required":["website"],"additionalProperties":false}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":["string","null"]},"status":{"enum":["queued","processing","accepted","already-listed","rejected","failed"]},"statusUrl":{"type":["string","null"]},"website":{"type":"string"},"country":{"enum":["estonia","latvia","lithuania","finland","denmark","czechia","norway","france","slovakia","romania","belgium","united-kingdom","moldova","sweden"]},"listed":{"type":"boolean"},"metricsStatus":{"enum":["pending","complete","partial","unavailable",null]},"entry":{"anyOf":[{"type":"object","properties":{"country":{"enum":["estonia","latvia","lithuania","finland","denmark","czechia","norway","france","slovakia","romania","belgium","united-kingdom","moldova","sweden"]},"registryCode":{"type":"string"},"rank":{"type":["number","null"]},"company":{"type":"string"},"legalName":{"type":"string"},"website":{"type":["string","null"]},"revenuePeriod":{"type":["string","null"]},"turnoverEur":{"type":["number","null"]},"previousTurnoverEur":{"type":["number","null"]},"employees":{"type":["number","null"]},"productCount":{"type":["number","null"]},"categoryPageCount":{"type":["number","null"]},"blogPostCount":{"type":["number","null"]},"languageCount":{"type":["number","null"]},"languages":{"type":"array","items":{"type":"string"}},"defaultLanguage":{"type":["string","null"]},"platform":{"type":"string"},"category":{"type":["string","null"]},"activity":{"type":"string"},"profilePath":{"type":["string","null"]}},"required":["country","registryCode","rank","company","legalName","website","revenuePeriod","turnoverEur","previousTurnoverEur","employees","productCount","categoryPageCount","blogPostCount","languageCount","languages","defaultLanguage","platform","category","activity","profilePath"],"additionalProperties":false},{"type":"null"}]},"reasons":{"type":"array","items":{"type":"string"}}},"required":["id","status","statusUrl","website","country","listed","metricsStatus","entry","reasons"],"additionalProperties":false}}}},"202":{"description":"Queued or processing. Poll Location after Retry-After seconds; the job continues without polling.","headers":{"Location":{"schema":{"type":"string"}},"Retry-After":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":["string","null"]},"status":{"enum":["queued","processing","accepted","already-listed","rejected","failed"]},"statusUrl":{"type":["string","null"]},"website":{"type":"string"},"country":{"enum":["estonia","latvia","lithuania","finland","denmark","czechia","norway","france","slovakia","romania","belgium","united-kingdom","moldova","sweden"]},"listed":{"type":"boolean"},"metricsStatus":{"enum":["pending","complete","partial","unavailable",null]},"entry":{"anyOf":[{"type":"object","properties":{"country":{"enum":["estonia","latvia","lithuania","finland","denmark","czechia","norway","france","slovakia","romania","belgium","united-kingdom","moldova","sweden"]},"registryCode":{"type":"string"},"rank":{"type":["number","null"]},"company":{"type":"string"},"legalName":{"type":"string"},"website":{"type":["string","null"]},"revenuePeriod":{"type":["string","null"]},"turnoverEur":{"type":["number","null"]},"previousTurnoverEur":{"type":["number","null"]},"employees":{"type":["number","null"]},"productCount":{"type":["number","null"]},"categoryPageCount":{"type":["number","null"]},"blogPostCount":{"type":["number","null"]},"languageCount":{"type":["number","null"]},"languages":{"type":"array","items":{"type":"string"}},"defaultLanguage":{"type":["string","null"]},"platform":{"type":"string"},"category":{"type":["string","null"]},"activity":{"type":"string"},"profilePath":{"type":["string","null"]}},"required":["country","registryCode","rank","company","legalName","website","revenuePeriod","turnoverEur","previousTurnoverEur","employees","productCount","categoryPageCount","blogPostCount","languageCount","languages","defaultLanguage","platform","category","activity","profilePath"],"additionalProperties":false},{"type":"null"}]},"reasons":{"type":"array","items":{"type":"string"}}},"required":["id","status","statusUrl","website","country","listed","metricsStatus","entry","reasons"],"additionalProperties":false}}}},"400":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"402":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"413":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"415":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"503":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/stores/submissions/{id}":{"get":{"operationId":"getStoreSubmission","summary":"Read a submission owned by the same account; requires paid access and consumes one data request. 202 while pending, 200 for a terminal result. Internal evidence is never returned.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"Submission ID returned by submitStore"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":["string","null"]},"status":{"enum":["queued","processing","accepted","already-listed","rejected","failed"]},"statusUrl":{"type":["string","null"]},"website":{"type":"string"},"country":{"enum":["estonia","latvia","lithuania","finland","denmark","czechia","norway","france","slovakia","romania","belgium","united-kingdom","moldova","sweden"]},"listed":{"type":"boolean"},"metricsStatus":{"enum":["pending","complete","partial","unavailable",null]},"entry":{"anyOf":[{"type":"object","properties":{"country":{"enum":["estonia","latvia","lithuania","finland","denmark","czechia","norway","france","slovakia","romania","belgium","united-kingdom","moldova","sweden"]},"registryCode":{"type":"string"},"rank":{"type":["number","null"]},"company":{"type":"string"},"legalName":{"type":"string"},"website":{"type":["string","null"]},"revenuePeriod":{"type":["string","null"]},"turnoverEur":{"type":["number","null"]},"previousTurnoverEur":{"type":["number","null"]},"employees":{"type":["number","null"]},"productCount":{"type":["number","null"]},"categoryPageCount":{"type":["number","null"]},"blogPostCount":{"type":["number","null"]},"languageCount":{"type":["number","null"]},"languages":{"type":"array","items":{"type":"string"}},"defaultLanguage":{"type":["string","null"]},"platform":{"type":"string"},"category":{"type":["string","null"]},"activity":{"type":"string"},"profilePath":{"type":["string","null"]}},"required":["country","registryCode","rank","company","legalName","website","revenuePeriod","turnoverEur","previousTurnoverEur","employees","productCount","categoryPageCount","blogPostCount","languageCount","languages","defaultLanguage","platform","category","activity","profilePath"],"additionalProperties":false},{"type":"null"}]},"reasons":{"type":"array","items":{"type":"string"}}},"required":["id","status","statusUrl","website","country","listed","metricsStatus","entry","reasons"],"additionalProperties":false}}}},"202":{"description":"Queued or processing. Poll Location after Retry-After seconds; the job continues without polling.","headers":{"Location":{"schema":{"type":"string"}},"Retry-After":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":["string","null"]},"status":{"enum":["queued","processing","accepted","already-listed","rejected","failed"]},"statusUrl":{"type":["string","null"]},"website":{"type":"string"},"country":{"enum":["estonia","latvia","lithuania","finland","denmark","czechia","norway","france","slovakia","romania","belgium","united-kingdom","moldova","sweden"]},"listed":{"type":"boolean"},"metricsStatus":{"enum":["pending","complete","partial","unavailable",null]},"entry":{"anyOf":[{"type":"object","properties":{"country":{"enum":["estonia","latvia","lithuania","finland","denmark","czechia","norway","france","slovakia","romania","belgium","united-kingdom","moldova","sweden"]},"registryCode":{"type":"string"},"rank":{"type":["number","null"]},"company":{"type":"string"},"legalName":{"type":"string"},"website":{"type":["string","null"]},"revenuePeriod":{"type":["string","null"]},"turnoverEur":{"type":["number","null"]},"previousTurnoverEur":{"type":["number","null"]},"employees":{"type":["number","null"]},"productCount":{"type":["number","null"]},"categoryPageCount":{"type":["number","null"]},"blogPostCount":{"type":["number","null"]},"languageCount":{"type":["number","null"]},"languages":{"type":"array","items":{"type":"string"}},"defaultLanguage":{"type":["string","null"]},"platform":{"type":"string"},"category":{"type":["string","null"]},"activity":{"type":"string"},"profilePath":{"type":["string","null"]}},"required":["country","registryCode","rank","company","legalName","website","revenuePeriod","turnoverEur","previousTurnoverEur","employees","productCount","categoryPageCount","blogPostCount","languageCount","languages","defaultLanguage","platform","category","activity","profilePath"],"additionalProperties":false},{"type":"null"}]},"reasons":{"type":"array","items":{"type":"string"}}},"required":["id","status","statusUrl","website","country","listed","metricsStatus","entry","reasons"],"additionalProperties":false}}}},"400":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"402":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"413":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"415":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"503":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}},"/companies/{country}":{"get":{"operationId":"listCompanies","summary":"Query paid public company data; follow next until null","parameters":[{"name":"country","in":"path","required":true,"schema":{"enum":["estonia","latvia","lithuania","finland","denmark","czechia","norway","france","slovakia","romania","belgium","united-kingdom","moldova","sweden"]},"description":"Country slug"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100000,"default":1},"description":"Page; out-of-range pages clamp to last page"},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer","minimum":10,"maximum":100,"default":100},"description":"Rows per page"},{"name":"q","in":"query","required":false,"schema":{"type":"string","maxLength":200},"description":"Company/name/domain search"},{"name":"platform","in":"query","required":false,"schema":{"enum":["All","Shopify","WooCommerce","Magento","PrestaShop","BigCommerce","Voog","Ecwid","Wix","Shopware","OpenCart","Salesforce Commerce Cloud","Squarespace","NopCommerce","DanDomain","SmartWeb","Webflow","Zen Cart","osCommerce","Other"],"default":"All"},"description":"Platform filter"},{"name":"category","in":"query","required":false,"schema":{"enum":["All","electronics","auto-moto","home-interior","construction-tools","garden-agriculture","fashion","health-beauty","food-drink","kids-baby","sports-outdoor","pets","books-media","hobbies-entertainment","flowers-gifts","office-supplies","industrial","general-stores","other"],"default":"All"},"description":"Category filter"},{"name":"minRevenue","in":"query","required":false,"schema":{"type":"number","minimum":0},"description":"Minimum total company turnover EUR"},{"name":"maxRevenue","in":"query","required":false,"schema":{"type":"number","minimum":0},"description":"Maximum total company turnover EUR"},{"name":"sortKey","in":"query","required":false,"schema":{"enum":["rank","company","website","turnoverEur","productCount","platform","category"],"default":"rank"},"description":"Sort field"},{"name":"direction","in":"query","required":false,"schema":{"enum":["asc","desc"],"default":"asc"},"description":"Sort direction"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"country":{"type":"string"},"entries":{"type":"array","items":{"type":"object","properties":{"registryCode":{"type":"string"},"rank":{"type":["number","null"]},"company":{"type":"string"},"legalName":{"type":"string"},"website":{"type":["string","null"]},"revenuePeriod":{"type":["string","null"]},"turnoverEur":{"type":["number","null"]},"previousTurnoverEur":{"type":["number","null"]},"employees":{"type":["number","null"]},"productCount":{"type":["number","null"]},"categoryPageCount":{"type":["number","null"]},"blogPostCount":{"type":["number","null"]},"languageCount":{"type":["number","null"]},"languages":{"type":"array","items":{"type":"string"}},"defaultLanguage":{"type":["string","null"]},"platform":{"type":"string"},"category":{"type":["string","null"]},"activity":{"type":"string"},"profilePath":{"type":["string","null"]}},"required":["registryCode","rank","company","legalName","website","revenuePeriod","turnoverEur","previousTurnoverEur","employees","productCount","categoryPageCount","blogPostCount","languageCount","languages","defaultLanguage","platform","category","activity","profilePath"],"additionalProperties":false}},"total":{"type":"integer"},"page":{"type":"integer"},"pageSize":{"type":"integer"},"pageCount":{"type":"integer"},"next":{"type":["string","null"]},"revenueNote":{"type":"string"}},"required":["country","entries","total","page","pageSize","pageCount","next","revenueNote"],"additionalProperties":false}}}},"400":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"401":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"402":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"403":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"404":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"409":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"413":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"415":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"429":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}},"503":{"description":"Structured error. See error.code and error.message; obey Retry-After for 429 and billing_busy.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string"}},"required":["code","message","docs"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}}}}}}}}