> ## 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 charity or campaign donation activity

> Combines receipts with observed bridge deposits, including refunded or reclaimed transfers. Transfer amounts are the original total sent, not beneficiary proceeds, and do not contribute to financial totals. Entries keep their identity and source timestamp when a receipt replaces a transfer. Invalid or scope-mismatched opaque cursors restart at the first page, matching existing donation pagination. Messages awaiting normal donation ingestion and moderation are not exposed.



## OpenAPI

````yaml https://www.donate.gg/api/v1/openapi get /donation-activity
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:
  /donation-activity:
    get:
      summary: List charity or campaign donation activity
      description: >-
        Combines receipts with observed bridge deposits, including refunded or
        reclaimed transfers. Transfer amounts are the original total sent, not
        beneficiary proceeds, and do not contribute to financial totals. Entries
        keep their identity and source timestamp when a receipt replaces a
        transfer. Invalid or scope-mismatched opaque cursors restart at the
        first page, matching existing donation pagination. Messages awaiting
        normal donation ingestion and moderation are not exposed.
      parameters:
        - schema:
            type: integer
            minimum: 1
            maximum: 50
            description: Page size (min 1, max 50)
          required: false
          description: Page size (min 1, max 50)
          name: limit
          in: query
        - schema:
            type: string
            description: Cursor for next page (from previous pageKey)
          required: false
          description: Cursor for next page (from previous pageKey)
          name: cursor
          in: query
        - schema:
            type: string
            enum:
              - charity
              - campaign
          required: true
          name: kind
          in: query
        - schema:
            type: string
            minLength: 1
            maxLength: 128
          required: true
          name: id
          in: query
        - 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: Fresh activity ordered by source timestamp and stable identity.
          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: object
                properties:
                  pageKey:
                    type: string
                    nullable: true
                  response:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        kind:
                          type: string
                          enum:
                            - donation
                            - transfer
                        status:
                          anyOf:
                            - type: string
                              enum:
                                - pending
                                - settled
                                - unconfirmed
                            - type: string
                              enum:
                                - pending
                                - executing
                                - bridged
                                - arrived
                                - donated
                                - claimable
                                - reclaimed
                                - refunding
                                - refunded
                                - manual
                        delivery:
                          type: object
                          properties:
                            chainId:
                              type: integer
                            transactionHash:
                              type: string
                          required:
                            - chainId
                            - transactionHash
                        donationReceiptId:
                          type: string
                          nullable: true
                        sourceTransferId:
                          type: string
                          nullable: true
                        chainId:
                          type: integer
                        transactionHash:
                          type: string
                        logIndex:
                          type: integer
                        timestamp:
                          type: string
                          format: date-time
                        sourceAddress:
                          type: string
                        sourceName:
                          type: string
                        inputAmount:
                          type: string
                          pattern: ^\d+$
                        inputToken:
                          type: object
                          nullable: true
                          properties:
                            address:
                              type: string
                            chainId:
                              type: integer
                            symbol:
                              type: string
                            decimals:
                              type: integer
                          required:
                            - address
                            - chainId
                            - symbol
                            - decimals
                        amountScope:
                          type: string
                          enum:
                            - donation
                            - beneficiary
                            - total-sent
                      required:
                        - id
                        - kind
                        - status
                        - donationReceiptId
                        - sourceTransferId
                        - chainId
                        - transactionHash
                        - logIndex
                        - timestamp
                        - sourceAddress
                        - sourceName
                        - inputAmount
                        - inputToken
                        - amountScope
                required:
                  - pageKey
                  - response
                additionalProperties: false
        '400':
          description: Invalid scope or pagination query parameters (kind, id or limit).
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                  code:
                    type: string
                required:
                  - error
                  - code
                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.

````