openapi: 3.1.0 info: title: Endpoints Accounts Auth API version: 1.0.0 servers: - url: https://api.agora.finance description: Production tags: - name: Auth paths: /v0/auth/token: post: operationId: token summary: Create a Session Token description: "\n The endpoints exposed here are currently in **Beta**! As we continue to build our initial offering, these endpoints may implement breaking changes. Be sure to check back for our change log regularly as a precaution.\n\n\nExchange your API key for a short-lived bearer JWT. Send the API key as `Authorization: Bearer `; no request body is needed. The returned `sessionJwt` is valid for **15 minutes** (the TTL is not echoed in the response) and must be sent in the `Authorization` header on every subsequent authenticated request. Refresh by calling this endpoint again before expiry.\n" tags: - Auth parameters: - name: Authorization in: header description: 'Agora access key (cleartext), sent as `Authorization: Bearer `. Used only by POST /v0/auth/token to mint a session JWT.' required: true schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/auth_token_Response_200' '401': description: Authentication is required. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse_401_unauthorized' '429': description: Too many requests. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse_429_rate_limit_exceeded' '500': description: An unexpected error occurred. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse_500_internal_error' '503': description: An upstream service is temporarily unavailable. Please retry. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse_503_service_unavailable' components: schemas: ErrorResponse_503_service_unavailable: type: object properties: code: $ref: '#/components/schemas/ErrorResponse503ServiceUnavailableCode' docs_url: type: string message: type: string required: - code - docs_url - message title: ErrorResponse_503_service_unavailable ErrorResponse_401_unauthorized: type: object properties: code: $ref: '#/components/schemas/ErrorResponse401UnauthorizedCode' docs_url: type: string message: type: string context: $ref: '#/components/schemas/ErrorResponse401UnauthorizedContext' required: - code - docs_url - message title: ErrorResponse_401_unauthorized ErrorResponse401UnauthorizedContext: type: object properties: reason: $ref: '#/components/schemas/ErrorResponse401UnauthorizedContextReason' required: - reason title: ErrorResponse401UnauthorizedContext ErrorResponse500InternalErrorCode: type: string enum: - internal_error title: ErrorResponse500InternalErrorCode ErrorResponse_429_rate_limit_exceeded: type: object properties: code: $ref: '#/components/schemas/ErrorResponse429RateLimitExceededCode' docs_url: type: string message: type: string required: - code - docs_url - message title: ErrorResponse_429_rate_limit_exceeded ErrorResponse401UnauthorizedContextReason: type: string enum: - invalid_token - missing_claim - missing_header - token_expired - token_revoked - unknown_tenant title: ErrorResponse401UnauthorizedContextReason ErrorResponse401UnauthorizedCode: type: string enum: - unauthorized title: ErrorResponse401UnauthorizedCode auth_token_Response_200: type: object properties: sessionJwt: type: string description: 'Short-lived session JWT. Send it as `Authorization: Bearer ` on every authenticated endpoint.' required: - sessionJwt title: auth_token_Response_200 ErrorResponse429RateLimitExceededCode: type: string enum: - rate_limit_exceeded title: ErrorResponse429RateLimitExceededCode ErrorResponse503ServiceUnavailableCode: type: string enum: - service_unavailable title: ErrorResponse503ServiceUnavailableCode ErrorResponse_500_internal_error: type: object properties: code: $ref: '#/components/schemas/ErrorResponse500InternalErrorCode' docs_url: type: string message: type: string required: - code - docs_url - message title: ErrorResponse_500_internal_error securitySchemes: accessKey: type: http scheme: bearer description: 'Agora access key (cleartext), sent as `Authorization: Bearer `. Used only by POST /v0/auth/token to mint a session JWT.' sessionJwt: type: http scheme: bearer description: 'Session JWT from POST /v0/auth/token, sent as `Authorization: Bearer `.'