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

# Authentication

> Before accessing any endpoints, clients need to obtain an access token through the authentication process, using Username and Password The access token serves as a credential to authenticate the client’s requests to the API.



## OpenAPI

````yaml POST /token
openapi: 3.0.1
info:
  title: Evaluation Report API
  description: An API for retrieving evaluation reports.
  version: 1.0.0
servers:
  - url: https://api-staging.crazygoldfish.com
    description: SandBox endpoint
  - url: https://api.crazygoldfish.com
    description: Prod End Point
security: []
paths:
  /token:
    post:
      summary: Obtain Access Token
      description: >-
        Allows clients to obtain an access token through the authentication
        process using Username and Password.
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                username:
                  type: string
                  description: The username of the client.
                password:
                  type: string
                  description: The password associated with the username.
                grant_type:
                  type: string
                  description: OAuth 2.0 grant type.
                scope:
                  type: string
                  description: The scope of the access request.
                client_id:
                  type: string
                  description: The client ID.
                client_secret:
                  type: string
                  description: The client secret.
              required:
                - username
                - password
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  access_token:
                    type: string
                    description: >-
                      The access token to be used for authentication with 30
                      minutes expire.
                  token_type:
                    type: string
                    example: bearer
                    description: The token type.
        '401':
          description: Unauthorized - Incorrect credentials
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: Error message indicating incorrect credentials
                    example: Incorrect username or password
                  data:
                    type: object
                    description: Additional data, if any
                    example: {}
                  status:
                    type: string
                    description: Status description, if any
                    example: ''
                  status_code:
                    type: integer
                    description: HTTP status code
                    example: 401
        '422':
          description: Unprocessable Entity - Missing Required Fields
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: array
                    items:
                      type: object
                      properties:
                        type:
                          type: string
                          example: missing
                        loc:
                          type: array
                          items:
                            type: string
                          example:
                            - body
                            - username
                        msg:
                          type: string
                          example: Field required
                        input:
                          type: string
                          nullable: true
                          example: null
                    description: List of missing or invalid fields

````