# GoFundMe > GoFundMe is the world's largest social fundraising platform. Its developer surface is **GoFundMe Pro** (formerly Classy, acquired 2022) — the enterprise fundraising suite nonprofits use for donation pages, peer-to-peer campaigns, recurring giving, ticketed events and Giving Cart checkout. GoFundMe Pro publishes a public OpenAPI 3.0 definition for a REST API (v2.0) with 290 operations across 70 resource families, OAuth2 client-credentials and member tokens, Svix-delivered webhooks, an OpenID Connect SSO service (Classy Login) and an embedded checkout library (Classy Pay). The consumer gofundme.com product publishes no public API. This file was generated by API Evangelist from GoFundMe's public developer surface. GoFundMe does not publish an llms.txt of its own (probed 2026-08-04: 404 on www.gofundme.com, SPA shell on developers.gofundme.com and developers.classy.org). ## APIs - [GoFundMe Pro API](https://developers.gofundme.com/pro/docs): REST v2.0 — organizations, campaigns, Studio campaigns and campaign series, fundraising pages and teams, transactions and transaction items, supporters and members, recurring donation plans, designations, promo codes, ticket types and registrations, payouts, activity feeds, stories, comments, themes and branding, roles and reporting. Base URL `https://pro.gofundme.com/api/2.0` (also live at `https://api.classy.org/2.0`). - [Classy Login](https://developers.gofundme.com/pro/api-docs/login): OpenID Connect single sign-on. Authorize `https://login.classy.org/authorize`, token `https://api.classy.org/oauth2/auth`, userinfo `https://api.classy.org/2.0/me`. Pre-release; no OIDC discovery document. - [Classy Pay](https://developers.gofundme.com/pro/api-docs/pay): payments and embedded checkout, with a published staging environment. ## Specs - [GoFundMe Pro OpenAPI 3.0.0](https://docs.classy.org/specs/apiv2-public.json): 201 paths, 290 operations, 356 component schemas, 70 tags. Also served at `https://developers.gofundme.com/pro/docs/specs/apiv2-public.json`. ## Docs - [Get started](https://developers.gofundme.com/pro/overview/get-started) - [Welcome / developer portal](https://developers.gofundme.com/pro/overview/welcome) - [Authentication](https://developers.gofundme.com/pro/overview/authentication) - [Making requests](https://developers.gofundme.com/pro/overview/making-requests) - [API reference (Redoc)](https://developers.gofundme.com/pro/docs) - [Request access](https://developers.gofundme.com/pro/overview/request-access) - [Sample apps](https://developers.gofundme.com/pro/tutorials/samples) - [V2 migration guide](https://developers.gofundme.com/pro/tutorials/migration-guide) - [Deprecation schedule](https://developers.gofundme.com/pro/reference/deprecation) - [Intro to the GoFundMe Pro API](https://prosupport.gofundme.com/hc/en-us/articles/37288767751707-Intro-the-GoFundMe-Pro-API) - [Using webhooks](https://prosupport.gofundme.com/hc/en-us/articles/41221411214619-Using-webhooks) - [Release notes](https://prosupport.gofundme.com/hc/en-us/articles/37726683210267-Release-notes) - [Status page](https://status.classy.org) - [Security](https://www.gofundme.com/c/security) ## Authentication - OAuth 2.0. `POST https://api.classy.org/oauth2/auth` with `grant_type=client_credentials`, `client_id` and `client_secret` **in the request body** (form-encoded or JSON), never in the query string. - Response: `{ "access_token": ..., "expires_in": 3600, "token_type": "bearer" }`. Send as `Authorization: Bearer `. - Member tokens come from an `authorization_code` exchange after Classy Login consent. - Two scopes only: `read`, `write`. No operation declares a scope requirement. - Note: the OpenAPI declares a **relative** `tokenUrl` (`/oauth2/auth`) that does not resolve to a working endpoint under the declared server. Use the absolute URL above. ## Conventions - JSON only. Resource-oriented URLs, standard HTTP verbs. GET/PUT/DELETE documented as idempotent, POST not. - Pagination: `page` (default 1), `per_page` (default 20, max 100). Envelope carries `current_page`, `last_page`, `next_page_url`, `prev_page_url`, `total`, `links[]`. No cursors. - Expansion: `with=organization,designation`. Sparse fields: `fields=`. Filtering: `filter={assoc}.{attr}{operand}{value}` (operand URL-encoded). Sorting: `sort=created_at:desc`. - Datetimes: ISO 8601 `YYYY-MM-DDTHH:mm:ss.sssZ`. - Rate limit: 1,800 requests/minute per application. Headers `X-RateLimit-Limit`, `X-RateLimit-Remaining`, `X-RateLimit-Reset`, `Retry-After`. `429` body carries `message` and `retry_after`. - Errors: plain JSON, **not** RFC 9457. Three envelope shapes: `{error}`, `{errors[]}`, `{success,message}`. Documented statuses: 400, 401, 403, 404, 405, 409, 422, 429, 500, 503. - Idempotency: no global `Idempotency-Key` header. `idempotency_key` is required only on `POST /scoped-magic-link/batch`. ## Events - Webhooks delivered by Svix; configured in GoFundMe Pro → Apps & Integrations → Webhooks. Signature verification via a per-endpoint secret. Endpoint must return 2xx within 15 seconds. 50 endpoints per account. No AsyncAPI document is published. - Events: `supporter.created`, `supporter.updated`, `transaction.created`, `transaction.updated`, `recurring_donation_plan.created`, `recurring_donation_plan.updated`. ## SDKs and tooling - [classy-node (npm)](https://www.npmjs.com/package/classy-node) — official Node client, v3.2.2, last released 2019. - [classy-org/classy-php-sdk (Packagist)](https://packagist.org/packages/classy-org/classy-php-sdk) — official PHP client, v1.2.0. - [classy-org/classy-org-wp](https://github.com/classy-org/classy-org-wp) — official WordPress plugin. - [Postman collections](https://github.com/classy-org/postman-collections) — authentication, fetch source codes, multi-item orders, bulk offline donations; some ship a Postman mock server. - [Custom progress bar sample](https://github.com/classy-org/custom-progress-bar-sample-app) and [custom leaderboard sample](https://github.com/classy-org/custom-leaderboard-sample-app) — Node + React reference apps. - [GitHub organization](https://github.com/classy-org) ## What does not exist Recorded so an agent does not go looking: no MCP server, no A2A agent card, no GraphQL endpoint, no gRPC/protobuf, no AsyncAPI document, no OIDC discovery document, no `/.well-known/` catalog, no sandbox tenant or test credentials, no published test card numbers, no first-party CLI, and no Python/Go/Java/Ruby/.NET client library.