GoFundMe · OpenAPI Overlay 1.0.0

API Evangelist enhancements for the GoFundMe Pro API

10 actions 10 updates update extends openapi/gofundme-pro-api-openapi.json
Generated by API Evangelist Written by API Evangelist tooling for GoFundMe's API. It is a proposal applied on top of the contract, not a document GoFundMe publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-notex-apievangelist-absolute-token-urlx-apievangelist-providerx-apievangelist-apix-apievangelist-harvestedx-apievangelist-sourcex-apievangelist-artifactsx-apievangelist-token-endpoint

Targets 4

$.info
$.servers
$.components.securitySchemes.OAuth2Application
$.components.securitySchemes.OAuth2Member

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for the GoFundMe Pro API
  version: 1.0.0
extends: openapi/gofundme-pro-api-openapi.json
x-generated: '2026-08-04'
x-method: generated
x-source: >-
  Derived from the verbatim OpenAPI harvested from https://docs.classy.org/specs/apiv2-public.json
  on 2026-08-04, plus the docs at developers.gofundme.com/pro and the artifacts in this repo.
  This overlay carries API Evangelist annotations only; the harvested spec is never mutated.
actions:
- target: $.info
  update:
    x-apievangelist-provider: gofundme
    x-apievangelist-api: GoFundMe Pro API
    x-apievangelist-harvested: '2026-08-04'
    x-apievangelist-source: https://docs.classy.org/specs/apiv2-public.json
    x-apievangelist-artifacts:
      authentication: authentication/gofundme-authentication.yml
      scopes: scopes/gofundme-scopes.yml
      conventions: conventions/gofundme-conventions.yml
      errors: errors/gofundme-problem-types.yml
      rate_limits: rate-limits/gofundme-rate-limits.yml
      lifecycle: lifecycle/gofundme-lifecycle.yml
      data_model: data-model/gofundme-data-model.yml
      webhooks: asyncapi/gofundme-webhooks.yml
      sandbox: sandbox/gofundme-sandbox.yml
      conformance: conformance/gofundme-conformance.yml
- target: $.servers
  update:
  - url: https://pro.gofundme.com/api/2.0
    description: Production (GoFundMe Pro host) — declared by the provider's own spec.
  - url: https://api.classy.org/2.0
    description: >-
      Production (legacy Classy host) — still live and still the host every published authentication
      example uses. Added by API Evangelist because the spec omits it while the docs depend on it.
    x-apievangelist-added: true
- target: $.info
  update:
    x-apievangelist-token-endpoint: https://api.classy.org/oauth2/auth
    x-apievangelist-token-lifetime-seconds: 3600
    x-apievangelist-note: >-
      The oauth2 securitySchemes declare a RELATIVE tokenUrl ("/oauth2/auth"), which resolves
      against the declared server (pro.gofundme.com/api/2.0) and therefore does not match the
      absolute token endpoint the authentication docs publish (https://api.classy.org/oauth2/auth).
      Generated clients will send token requests to the wrong URL. Recorded here rather than
      patched into the harvested spec.
- target: $.info
  update:
    x-apievangelist-rate-limit:
      requests_per_minute: 1800
      scope: per application and per user
      exempt: internal applications
      headers: [X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, Retry-After]
      status: 429
      artifact: rate-limits/gofundme-rate-limits.yml
- target: $.info
  update:
    x-apievangelist-pagination:
      style: page-number
      params: [page, per_page]
      default_per_page: 20
      max_per_page: 100
      envelope: PaginatedResponse
    x-apievangelist-query-conventions:
      expand: with
      sparse_fields: fields
      filter: filter
      sort: sort
- target: $.info
  update:
    x-apievangelist-error-model:
      rfc9457: false
      envelopes:
      - ForbiddenResponse
      - ResourceNotFoundResponse
      - MalformedPayloadResponse
      - UnprocessableEntityResponse
      - RateLimitExceededResponse
      undeclared_in_spec: [401, 429, 503]
      artifact: errors/gofundme-problem-types.yml
- target: $.info
  update:
    x-apievangelist-deprecation:
      deprecated_operations: 54
      policy_url: https://developers.gofundme.com/pro/reference/deprecation
      sunset_header: false
      note: >-
        54 operations carry OpenAPI `deprecated: true` but the published deprecation schedule has
        no entries after 2016 and no removal dates for any of them.
- target: $.components.securitySchemes.OAuth2Application
  update:
    x-apievangelist-absolute-token-url: https://api.classy.org/oauth2/auth
    x-apievangelist-credential-source: >-
      client_id + client_secret minted in GoFundMe Pro > Apps & Integrations > API. Must be sent in
      the request body, never as query-string parameters.
- target: $.components.securitySchemes.OAuth2Member
  update:
    x-apievangelist-absolute-token-url: https://api.classy.org/oauth2/auth
    x-apievangelist-grants: [authorization_code, password]
    x-apievangelist-consent-flow: https://developers.gofundme.com/pro/api-docs/login
    x-apievangelist-note: >-
      The spec models this scheme as the `password` flow, but the documented and recommended path to
      a member token is an authorization_code exchange after Classy Login consent.
- target: $.info
  update:
    x-apievangelist-gaps:
    - No AsyncAPI document for the Svix-delivered webhook surface (6 events, 3 resources).
    - No /.well-known/openid-configuration for the Classy Login OIDC service.
    - No global Idempotency-Key header; idempotency_key exists on one batch operation only.
    - No sandbox tenant or test credentials; every write is a production write.
    - No 401/429/503 responses declared on any operation despite being documented in prose.
    - First-party SDKs (npm classy-node, Packagist classy-org/classy-php-sdk) are years stale.