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

# List chapters

> Returns HFSAA chapters represented by public directory locations.



## OpenAPI

````yaml /openapi.yaml get /v1/chapters
openapi: 3.1.0
info:
  title: HFSAA Public API
  version: 1.2.2
  description: >
    API-key protected access to HFSAA-certified restaurants, meat markets, and
    dining halls.

    Every directory-data route in the `/v1` namespace requires an API key; there
    are no

    anonymous data endpoints. Public health and developer-onboarding routes are
    explicitly

    marked with `security: []` and do not expose directory data.

    Developers can request test access without creating an account. Test keys do
    not

    expire automatically, but they are restricted to the test environment and
    quota.

    Successful data responses may be cached privately for no more than one hour.
  contact:
    name: HFSAA
servers:
  - url: https://api.hfsaa.org
    description: Production
  - url: https://hfsaa-public-api-staging.idris-ocasio.workers.dev
    description: Test
security:
  - ApiKeyAuth: []
paths:
  /v1/chapters:
    get:
      tags:
        - Chapters
      summary: List chapters
      description: Returns HFSAA chapters represented by public directory locations.
      operationId: listChapters
      responses:
        '200':
          description: HFSAA chapters.
          headers:
            Cache-Control:
              $ref: '#/components/headers/DataCacheControl'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChapterList'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/RateLimited'
        '500':
          $ref: '#/components/responses/ServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
components:
  headers:
    DataCacheControl:
      description: >-
        Private caching is permitted for at most one hour. Revalidate after
        expiry; shared caches must not store authenticated responses.
      schema:
        type: string
        example: private, max-age=3600, must-revalidate
  schemas:
    ChapterList:
      type: object
      additionalProperties: false
      required:
        - dataset_version
        - data
      properties:
        dataset_version:
          type: string
          description: Opaque immutable dataset version used to derive this chapter list.
        data:
          type: array
          items:
            $ref: '#/components/schemas/Chapter'
    Chapter:
      type: object
      additionalProperties: false
      required:
        - name
      properties:
        name:
          type: string
          example: New York
    Error:
      type: object
      additionalProperties: false
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
          properties:
            code:
              type: string
              example: invalid_parameter
            message:
              type: string
              example: limit must be between 1 and 100.
  responses:
    Unauthorized:
      description: The Bearer credential is missing or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Forbidden:
      description: >-
        The API key is recognized but has been revoked or is not permitted to
        access the resource.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    RateLimited:
      description: The API key's per-minute or monthly allowance was exceeded.
      headers:
        Retry-After:
          description: Seconds to wait before retrying.
          schema:
            type: integer
            example: 60
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    ServerError:
      description: >-
        The service or an upstream dependency could not complete the request.
        Retry with exponential backoff and jitter.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    ServiceUnavailable:
      description: The service is temporarily unavailable. Retry after the indicated delay.
      headers:
        Retry-After:
          description: Seconds to wait before retrying when known.
          schema:
            type: integer
            example: 60
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    ApiKeyAuth:
      type: http
      scheme: bearer
      bearerFormat: hfsaa_test_... or hfsaa_live_...
      description: 'Use the API key as `Authorization: Bearer <api-key>`.'

````