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

# List a patient's allergies

> Returns the allergies the patient reported on their most recent submitted intake, including the `denies` / `unknown` sentinels. `recordedAt: null` means the patient has never submitted intake — an empty list then means 'never asked', NOT 'no known allergies'. Requires read:clinical_data scope.



## OpenAPI

````yaml /openapi-v2.json get /patients/{id}/allergies
openapi: 3.0.0
info:
  title: Max AI Public API
  description: API for third-party marketplace apps
  version: '2.0'
  contact: {}
servers:
  - url: https://api.maxcare.ai/v2
security: []
tags: []
paths:
  /patients/{id}/allergies:
    get:
      tags:
        - Patients
      summary: List a patient's allergies
      description: >-
        Returns the allergies the patient reported on their most recent
        submitted intake, including the `denies` / `unknown` sentinels.
        `recordedAt: null` means the patient has never submitted intake — an
        empty list then means 'never asked', NOT 'no known allergies'. Requires
        read:clinical_data scope.
      operationId: PatientsPublicController_listPatientAllergies
      parameters:
        - name: id
          required: true
          in: path
          description: Patient ID
          schema:
            type: string
        - name: X-Organization-Id
          in: header
          required: true
          schema:
            type: string
          description: Target clinic organization ID
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListPatientAllergiesSuccessResponse'
        '400':
          description: Missing or invalid request parameter
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiBadRequestResponse'
        '401':
          description: Invalid or missing API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiUnauthorizedResponse'
        '403':
          description: Insufficient scope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiForbiddenResponse'
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiNotFoundResponse'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicApiRateLimitResponse'
      security:
        - api-key: []
components:
  schemas:
    ListPatientAllergiesSuccessResponse:
      type: object
      properties:
        code:
          type: string
          description: Response code
          example: success
        data:
          $ref: '#/components/schemas/ListPatientAllergiesResponseData'
      required:
        - code
        - data
    PublicApiBadRequestResponse:
      type: object
      properties:
        code:
          type: string
          description: Error code
          example: bad_request
        message:
          type: string
          description: Human-readable error message
          example: '''id'' must be a valid UUID'
        trace_id:
          type: string
          description: Trace ID for debugging
          example: 550e8400-e29b-41d4-a716-446655440000
      required:
        - code
        - message
        - trace_id
    PublicApiUnauthorizedResponse:
      type: object
      properties:
        code:
          type: string
          description: Error code
          example: unauthorized
        message:
          type: string
          description: Human-readable error message
          example: Invalid or missing API key
        trace_id:
          type: string
          description: Trace ID for debugging
          example: 550e8400-e29b-41d4-a716-446655440000
      required:
        - code
        - message
        - trace_id
    PublicApiForbiddenResponse:
      type: object
      properties:
        code:
          type: string
          description: Error code
          example: forbidden
        message:
          type: string
          description: Human-readable error message
          example: Insufficient scope
        trace_id:
          type: string
          description: Trace ID for debugging
          example: 550e8400-e29b-41d4-a716-446655440000
      required:
        - code
        - message
        - trace_id
    PublicApiNotFoundResponse:
      type: object
      properties:
        code:
          type: string
          description: Error code
          example: not_found
        message:
          type: string
          description: Human-readable error message
          example: Resource not found
        trace_id:
          type: string
          description: Trace ID for debugging
          example: 550e8400-e29b-41d4-a716-446655440000
      required:
        - code
        - message
        - trace_id
    PublicApiRateLimitResponse:
      type: object
      properties:
        code:
          type: string
          description: Error code
          example: rate_limit_exceeded
        message:
          type: string
          description: Human-readable error message
          example: Rate limit exceeded. Maximum 1000 requests per 60 seconds.
        trace_id:
          type: string
          description: Trace ID for debugging
          example: 550e8400-e29b-41d4-a716-446655440000
      required:
        - code
        - message
        - trace_id
    ListPatientAllergiesResponseData:
      type: object
      properties:
        allergies:
          type: array
          items:
            $ref: '#/components/schemas/ExternalPatientAllergyResponse'
        recordedAt:
          type: string
          description: >-
            When the source intake submission was submitted. Null when the
            patient has never submitted intake — in which case an empty
            `allergies` array means 'never asked', NOT 'no known allergies'. Do
            not default to 'no allergies' on a null here.
          nullable: true
          example: '2026-08-01T12:00:00.000Z'
      required:
        - allergies
        - recordedAt
    ExternalPatientAllergyResponse:
      type: object
      properties:
        status:
          type: string
          description: >-
            `coded` is a real allergy. `denies` means the patient explicitly
            denied having any; `unknown` means they were asked and did not know.
            Both sentinels carry no `description`.
          enum:
            - coded
            - denies
            - unknown
          example: coded
        description:
          type: string
          description: Allergen description
          nullable: true
          example: Penicillins
        reaction:
          type: string
          description: Reaction, when recorded
          nullable: true
          example: Hives
        fdbId:
          type: string
          description: FDB allergen id
          nullable: true
          example: '1254'
        fdbType:
          type: string
          description: FDB allergen type discriminator
          nullable: true
          example: '1'
        recordedAt:
          type: string
          description: When the patient reported it
          example: '2026-08-01T12:00:00.000Z'
      required:
        - status
        - description
        - reaction
        - fdbId
        - fdbType
        - recordedAt
  securitySchemes:
    api-key:
      scheme: bearer
      bearerFormat: JWT
      type: http
      description: Marketplace API key

````