> ## Documentation Index
> Fetch the complete documentation index at: https://docs.platform.arb.inc/llms.txt
> Use this file to discover all available pages before exploring further.

# Authenticate with email and password

> Authenticates a user using their email address and password, returning an access token and refresh token for subsequent API requests. The email must be verified before authentication can succeed.



## OpenAPI

````yaml api-reference/auth.yaml post /authenticate/basic-auth
openapi: 3.0.3
info:
  title: auth
  description: >-
    The Auth Service is the single source of truth for all accounts and their
    permissions, managing authentication and access control across the platform.
    It maintains efficiency at scale by issuing access tokens to accounts when
    they log into the platform and providing public keys for other services to
    verify them.
  version: 1.0.0
servers:
  - url: https://auth.platform.arb.inc
security: []
tags:
  - name: /
  - name: authenticate
  - name: internal
  - name: organizations
  - name: sessions
  - name: users
paths:
  /authenticate/basic-auth:
    post:
      tags:
        - authenticate
      summary: Authenticate with email and password
      description: >-
        Authenticates a user using their email address and password, returning
        an access token and refresh token for subsequent API requests. The email
        must be verified before authentication can succeed.
      operationId: authenticateBasicAuth
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - email
                - password
              properties:
                email:
                  type: string
                  format: email
                  description: User's email address
                  example: user@example.com
                password:
                  type: string
                  description: User's password
                  example: SecurePass123!
      responses:
        '200':
          description: Successfully authenticated user
          content:
            application/json:
              schema:
                type: object
                properties:
                  accessToken:
                    type: string
                    description: JWT access token for authenticated requests
                    example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
                  refreshToken:
                    type: string
                    description: Token used to obtain new access tokens
                    example: a7b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7
                  validForSeconds:
                    type: integer
                    description: Number of seconds the access token is valid
                    example: 3600
        '401':
          description: Invalid password
        '403':
          description: Email is not verified
        '404':
          description: Account not found
        '422':
          description: Account doesn't have a password
        '423':
          description: Account is locked

````