openapi: 3.2.0 info: title: Centaur Authorization Login API version: 1.0.0 servers: - url: https://api.centaurlabs.com description: Public API security: - bearerAuth: [] ApiKeyAuth: [] tags: - name: Login paths: /auth/public/v1/login: post: tags: - Login summary: Log in with an API key and password, and open an API session description: Log in to a public API session. operationId: login_auth_public_v1_login_post requestBody: content: application/json: schema: $ref: '#/components/schemas/PublicLoginRequest' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PublicLoginResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/MessageResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/MessageResponse' '403': description: Country not served content: application/json: schema: $ref: '#/components/schemas/GeoRestrictedResponse' security: - ApiKeyAuth: [] components: schemas: PublicLoginRequest: properties: username: type: string title: Username examples: - johndoe@domain.com api_password: type: string title: Api Password examples: - abcd1234 type: object required: - username - api_password title: PublicLoginRequest description: The credentials of a public login. PublicLoginResponse: properties: token: type: string title: Token examples: - 344545656gffgfgfgfg id: type: integer title: Id examples: - 1 email: type: string title: Email examples: - jsmith@email.com role: type: string title: Role examples: - customer name: anyOf: - type: string - type: 'null' title: Name examples: - Jon Smith organization_id: anyOf: - type: integer - type: 'null' title: Organization Id examples: - 2 organization: anyOf: - type: string - type: 'null' title: Organization examples: - Company A created_at: anyOf: - type: string - type: 'null' title: Created At additionalProperties: true type: object required: - token - id - email - role title: PublicLoginResponse description: The customer row a successful login returns, plus the new API token. GeoRestrictedResponse: properties: message: type: string title: Message examples: - Centaur isn't available in your country. Based on your location, we're unable to provide access. Questions about eligibility? Email support@centaurlabs.com code: type: string title: Code examples: - restricted_country type: object required: - message - code title: GeoRestrictedResponse description: 'The refusal a caller gets from a country the service does not serve. The `code` is a stable marker, so a client tells this apart from any other refusal without a match on prose.' MessageResponse: properties: message: type: string title: Message examples: - Hello! type: object required: - message title: MessageResponse description: 'A one-line answer: a refusal, a greeting, or a closed session.' securitySchemes: bearerAuth: type: http scheme: bearer ApiKeyAuth: type: apiKey in: header name: X-API-KEY x-provenance: method: searched source: https://docs.centaurlabs.com/reference harvested: '2026-10-14' tool: harvest-readme-openapi.py note: Assembled verbatim from the OpenAPI definition ReadMe embeds in each operation page of the provider's developer portal; paths and components merged by API title, nothing authored. assembled_from: - https://docs.centaurlabs.com/reference/login_auth_public_v1_login_post.md - https://docs.centaurlabs.com/reference/logout_auth_public_v1_logout_post.md - https://docs.centaurlabs.com/reference/refresh_token_auth_public_v1_refreshtoken_post.md - https://docs.centaurlabs.com/reference/test_token_auth_public_v1_testtoken_post.md - https://docs.centaurlabs.com/reference/version_auth_public_v1_version_get.md merge: pages: 5 deduped: 12 conflicts_kept_first: 0