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

# List categories

> List campaign categories.



## OpenAPI

````yaml https://www.donate.gg/api/v1/openapi get /categories
openapi: 3.0.0
info:
  title: Donate Developer API
  version: 1.0.0
  description: >-
    Public JSON API for charities, configs, campaigns, tokens, and related
    catalog reads. GET/HEAD catalog routes may omit `donate-api-key` and are IP
    rate-limited for anonymous callers (~20 req/min). Authenticated keys share
    one organization billing-tier bucket. Create/list/delete configs and project
    analytics require an API key. Spec routes (`/openapi`, `/postman`) are
    unauthenticated and unmetered.
servers:
  - url: /api/v1
    description: API v1 base path (relative to your dashboard origin)
security: []
paths:
  /categories:
    get:
      summary: List categories
      description: List campaign categories.
      parameters:
        - schema:
            type: string
            minLength: 1
            description: >-
              Optional. Omit for the anonymous IP budget (~20 req/min). Keys
              share their organization billing-tier limit.
          required: false
          description: >-
            Optional. Omit for the anonymous IP budget (~20 req/min). Keys share
            their organization billing-tier limit.
          name: donate-api-key
          in: header
      responses:
        '200':
          description: List of categories.
          headers:
            X-RateLimit-Limit:
              schema:
                type: integer
              description: Maximum requests allowed in the current window.
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: Requests remaining in the current window.
            X-RateLimit-Reset:
              schema:
                type: integer
              description: Unix epoch seconds when the current window resets.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                    name:
                      type: string
                    slug:
                      type: string
                    imageUrl:
                      type: string
                      nullable: true
                    isHot:
                      type: boolean
                    createdAt:
                      type: string
                    updatedAt:
                      type: string
                  required:
                    - id
                    - name
                    - slug
                    - imageUrl
                    - isHot
                    - createdAt
                    - updatedAt
                  additionalProperties: false
        '429':
          description: >-
            Rate limit exceeded. Retry after the period indicated by the
            Retry-After header.
          headers:
            X-RateLimit-Limit:
              schema:
                type: integer
              description: Maximum requests allowed in the current window.
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: Requests remaining in the current window.
            X-RateLimit-Reset:
              schema:
                type: integer
              description: Unix epoch seconds when the current window resets.
            Retry-After:
              schema:
                type: integer
              description: Seconds until the client should retry.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
                required:
                  - error
                  - code
                additionalProperties: false
      security:
        - {}
        - ApiKeyAuth: []
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: donate-api-key
      description: >-
        Developer API key. Required for config create/list/delete and project
        analytics. Optional on public GET reads (anonymous callers are IP
        rate-limited). Obtain from the Developer dashboard.

````