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

# List health requirements

> Vaccine requirements for entry. Filter by `countryId` (and optionally `cityId`) for destination-scoped results, or omit both for the paginated catalogue.



## OpenAPI

````yaml GET /health-requirements
openapi: 3.1.0
info:
  title: Ceibo API
  description: >-
    Travel platform data API: countries, cities, points of interest, walking
    tours, and entry requirements.
  version: 1.0.0
  contact:
    name: Ceibo Support
    email: support@ceibo.me
    url: https://developer.ceibo.me
servers:
  - url: https://api.ceibo.me/v1
    description: Production
security:
  - apiKey: []
paths:
  /health-requirements:
    get:
      summary: List health requirements
      description: >-
        Vaccine requirements for entry. Filter by `countryId` (and optionally
        `cityId`) for destination-scoped results, or omit both for the paginated
        catalogue.
      parameters:
        - name: countryId
          in: query
          required: false
          schema:
            type: integer
        - name: cityId
          in: query
          description: >-
            Requires `countryId`. Returns city-specific or non-region-specific
            requirements.
          required: false
          schema:
            type: integer
        - name: page
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            default: 1
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 10
      responses:
        '200':
          description: >-
            Health requirements. Returns a paginated envelope without
            `countryId`, an unwrapped array with it.
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/PaginatedHealthRequirements'
                  - type: array
                    items:
                      $ref: '#/components/schemas/HealthRequirement'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  schemas:
    PaginatedHealthRequirements:
      type: object
      required:
        - data
        - meta
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/HealthRequirement'
        meta:
          $ref: '#/components/schemas/PaginationMeta'
    HealthRequirement:
      type: object
      required:
        - id
        - countryId
        - regionSpecific
        - vaccineId
        - vaccine
        - requirement
        - createdAt
        - updatedAt
      properties:
        id:
          type: integer
          example: 1
        countryId:
          type: integer
          example: 76
        cityId:
          type:
            - integer
            - 'null'
          example: 5
        regionSpecific:
          type: boolean
        vaccineId:
          type: integer
          example: 1
        vaccine:
          type: object
          required:
            - id
            - code
            - name
            - diseaseName
            - dosesRequired
          properties:
            id:
              type: integer
            code:
              type: string
            name:
              type: string
            diseaseName:
              type: string
            dosesRequired:
              type: integer
            minimumDaysBeforeTravel:
              type:
                - integer
                - 'null'
        requirement:
          $ref: '#/components/schemas/EnforcementLevel'
        circumstances:
          type:
            - string
            - 'null'
        notes:
          type:
            - string
            - 'null'
        sourceUrl:
          type:
            - string
            - 'null'
        lastVerifiedAt:
          type:
            - string
            - 'null'
          format: date-time
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
    PaginationMeta:
      type: object
      required:
        - page
        - limit
        - total
        - totalPages
      properties:
        page:
          type: integer
          example: 1
        limit:
          type: integer
          example: 20
        total:
          type: integer
          example: 195
        totalPages:
          type: integer
          example: 10
    EnforcementLevel:
      type: string
      enum:
        - required
        - recommended
        - may_be_asked
        - not_required
      description: >-
        Captures both whether a requirement exists and how strictly it is
        enforced at the border.
    Error:
      type: object
      required:
        - statusCode
        - code
        - message
        - timestamp
        - path
      properties:
        statusCode:
          type: integer
          example: 404
        code:
          type: string
          example: NOT_FOUND
        message:
          type: string
          example: Country with id 9999 not found
        timestamp:
          type: string
          format: date-time
          example: '2026-04-30T10:00:00.000Z'
        path:
          type: string
          example: /v1/countries/9999
  responses:
    Unauthorized:
      description: Missing, malformed, revoked, or unknown API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key
      description: API key minted at developer.ceibo.me. Send on every request.

````