Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
openapi: 3.2.0
info:
title: Classy API (GoFundMe Pro) Authentication Designations API
description: 'The Classy API is a resource-oriented REST API for the Classy online fundraising platform (rebranding to GoFundMe Pro). It exposes Organizations, Campaigns, Fundraising Pages, Fundraising Teams, Transactions, Recurring Donation Plans, Members, Supporters, and Designations, among other resources, under a versioned base path (https://api.classy.org/2.0). Authentication uses OAuth2 client credentials: POST client_id/client_secret/grant_type as a JSON body to /oauth2/auth to receive a Bearer access_token. List endpoints return a Laravel-style pagination envelope (current_page, data, per_page, total, next_page_url, etc.) and support a `with` query parameter to eager-load related sub-resources (for example ?with=items or ?with=source_tracking_codes). This document models the endpoints confirmed against the official classy-org/classy-node resource map and the official classy-org/postman-collections examples; the full resource surface is broader (52+ resource types) and is documented in full only behind Classy/GoFundMe Pro developer credentials. Endpoint coverage: endpointsConfirmed - a curated set of the most-used endpoints across Organizations, Campaigns, Fundraising Pages, Fundraising Teams, Transactions, Recurring Donation Plans, Members, Supporters, and Designations, grounded in classy-org/classy-node''s src/resources.json and classy-org/postman-collections examples. endpointsModeled - request/response shapes for those endpoints, inferred from the Postman collection example bodies (field names, types, and the pagination envelope) since Classy does not publish a machine-readable OpenAPI/Swagger document.'
version: '2.0'
contact:
name: Classy (GoFundMe Pro)
url: https://www.classy.org
servers:
- url: https://api.classy.org/2.0
description: Classy / GoFundMe Pro production API
security:
- bearerAuth: []
tags:
- name: Designations
description: Funds or programs donors can direct gifts toward.
paths:
/designations/{id}:
parameters:
- $ref: '#/components/parameters/Id'
get:
operationId: getDesignation
tags:
- Designations
summary: Retrieve a designation
responses:
'200':
description: The requested designation.
content:
application/json:
schema:
$ref: '#/components/schemas/Designation'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
put:
operationId: updateDesignation
tags:
- Designations
summary: Update a designation
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DesignationInput'
responses:
'200':
description: The updated designation.
content:
application/json:
schema:
$ref: '#/components/schemas/Designation'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'422':
$ref: '#/components/responses/ValidationError'
components:
parameters:
Id:
name: id
in: path
required: true
description: The numeric ID of the resource.
schema:
type: integer
responses:
NotFound:
description: The requested resource was not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
ValidationError:
description: The request payload failed validation.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
Unauthorized:
description: Missing, invalid, or expired Bearer token.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
schemas:
Error:
type: object
properties:
error:
type: string
error_description:
type: string
permissions:
type: array
items:
type: object
properties:
action:
type: string
entity:
type: string
DesignationInput:
type: object
required:
- name
properties:
name:
type: string
description:
type: string
active:
type: boolean
additionalProperties: true
Designation:
allOf:
- $ref: '#/components/schemas/DesignationInput'
- type: object
properties:
id:
type: integer
organization_id:
type: integer
campaign_id:
type:
- integer
- 'null'
raw_current_amount:
type: number
created_at:
type: string
format: date-time
updated_at:
type: string
format: date-time
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: 'OAuth2 client_credentials access token obtained from POST /oauth2/auth. Passed as `Authorization: Bearer {access_token}`.'