> ## 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.

# Look up asynchronous donation transfer progress

> Supply either sourceId, or both chainId and transactionHash. Returns one item per discovered source deposit; an empty array means not yet indexed, not proof of failure. Bridge progress is separate from donation settlement status. donated means the existing Base donation pipeline has accepted the funds. Values are public onchain origin data; no project-private configuration or execution records are exposed.



## OpenAPI

````yaml https://www.donate.gg/api/v1/openapi get /donation-transfers
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-transfers:
    get:
      summary: Look up asynchronous donation transfer progress
      description: >-
        Supply either sourceId, or both chainId and transactionHash. Returns one
        item per discovered source deposit; an empty array means not yet
        indexed, not proof of failure. Bridge progress is separate from donation
        settlement status. donated means the existing Base donation pipeline has
        accepted the funds. Values are public onchain origin data; no
        project-private configuration or execution records are exposed.
      parameters:
        - schema:
            type: string
            pattern: ^0x[\da-fA-F]{64}$
          required: false
          name: sourceId
          in: query
        - schema:
            type: integer
            minimum: 0
            exclusiveMinimum: true
          required: false
          name: chainId
          in: query
        - schema:
            type: string
            pattern: ^0x[\da-fA-F]{64}$
          required: false
          name: transactionHash
          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 bridge progress for the matching deposits.
          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:
                    origin:
                      type: object
                      properties:
                        sourceId:
                          type: string
                          pattern: ^0x[\da-fA-F]{64}$
                        chainId:
                          type: integer
                        sender:
                          type: string
                          pattern: ^0x[\da-fA-F]{40}$
                        depositId:
                          type: string
                          pattern: ^\d+$
                        token:
                          type: string
                          pattern: ^0x[\da-fA-F]{40}$
                        amount:
                          type: string
                          pattern: ^\d+$
                        fundingCaller:
                          type: string
                          pattern: ^0x[\da-fA-F]{40}$
                        transactionHash:
                          type: string
                          pattern: ^0x[\da-fA-F]{64}$
                      required:
                        - sourceId
                        - chainId
                        - sender
                        - depositId
                        - token
                        - amount
                        - fundingCaller
                        - transactionHash
                    status:
                      type: string
                      enum:
                        - pending
                        - executing
                        - bridged
                        - arrived
                        - donated
                        - claimable
                        - reclaimed
                        - refunding
                        - refunded
                        - manual
                    reclaimAt:
                      type: string
                      format: date-time
                    destinationChainId:
                      type: integer
                    destinationTransactionHash:
                      type: string
                      nullable: true
                      pattern: ^0x[\da-fA-F]{64}$
                    donationReceiptId:
                      type: string
                      nullable: true
                    reason:
                      type: string
                      nullable: true
                  required:
                    - origin
                    - status
                    - reclaimAt
                    - destinationChainId
                    - destinationTransactionHash
                    - donationReceiptId
                    - reason
        '400':
          description: Supply exactly one lookup identity.
          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.

````