Donately Fundraisers API
Manage peer-to-peer fundraisers - individual or team fundraising pages created under a campaign. Create, list, retrieve, and update fundraisers with their own goals and personal messaging.
Manage peer-to-peer fundraisers - individual or team fundraising pages created under a campaign. Create, list, retrieve, and update fundraisers with their own goals and personal messaging.
openapi: 3.0.3
info:
title: Donately API
description: >-
The Donately API is a REST/JSON API for online donation and fundraising
management. It exposes accounts, campaigns, donations, recurring
subscriptions, people (donors), fundraisers, forms, and webhooks. Base URL
https://api.donately.com/v2 (API version 2019-03-15). Requests are
authenticated with an API token via HTTP Basic Auth (the token is
base64-encoded with a trailing colon); the token is found in the Donately
dashboard under Settings -> API. Most endpoints require an account_id
parameter identifying which account to operate against. NOTE: Donately's
reference renders as a JavaScript single-page app that could not be fully
crawled; endpoints confirmed from documentation and third-party connectors
are marked as such, and the remainder are modeled on Donately's Stripe-style
REST conventions - verify exact paths against developer.donately.com/api.
version: '2019-03-15'
contact:
name: Donately
url: https://developer.donately.com/
servers:
- url: https://api.donately.com/v2
description: Donately API (version 2019-03-15)
security:
- basicAuth: []
tags:
- name: Accounts
description: The organizations a token has access to.
- name: Campaigns
description: Fundraising pages with goals and settings.
- name: Donations
description: One-time and recurring gifts.
- name: Subscriptions
description: Recurring donation schedules.
- name: People
description: Donors and contacts.
- name: Fundraisers
description: Peer-to-peer fundraising pages under a campaign.
paths:
/accounts:
get:
operationId: listAccounts
tags:
- Accounts
summary: List accounts
description: >-
Lists the accounts (organizations) the authenticated token can access.
MODELED - verify against the live reference.
responses:
'200':
description: A list of accounts.
content:
application/json:
schema:
$ref: '#/components/schemas/ListResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/accounts/{id}:
get:
operationId: getAccount
tags:
- Accounts
summary: Retrieve an account
description: Retrieves a single account by ID. MODELED - verify against the live reference.
parameters:
- $ref: '#/components/parameters/IdParam'
responses:
'200':
description: An account object.
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/donations:
get:
operationId: listDonations
tags:
- Donations
summary: List donations
description: >-
Returns donations for the specified account. CONFIRMED. Accepts an
account_id parameter and standard list pagination parameters.
parameters:
- $ref: '#/components/parameters/AccountIdParam'
responses:
'200':
description: A list of donations.
content:
application/json:
schema:
$ref: '#/components/schemas/ListResponse'
'401':
$ref: '#/components/responses/Unauthorized'
post:
operationId: createDonation
tags:
- Donations
summary: Create a donation
description: >-
Creates a new donation. CONFIRMED. This endpoint can be called
unauthenticated for public campaign donations (as the embeddable form
does). donation_type accepts cc, ach, cash, or paypal.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DonationCreate'
responses:
'200':
description: The created donation.
'400':
$ref: '#/components/responses/BadRequest'
/donations/{id}:
get:
operationId: getDonation
tags:
- Donations
summary: Retrieve a donation
description: Retrieves a single donation by ID. MODELED - verify against the live reference.
parameters:
- $ref: '#/components/parameters/IdParam'
responses:
'200':
description: A donation object.
'404':
$ref: '#/components/responses/NotFound'
/donations/{id}/refund:
post:
operationId: refundDonation
tags:
- Donations
summary: Refund a donation
description: Refunds a donation. MODELED - verify against the live reference.
parameters:
- $ref: '#/components/parameters/IdParam'
responses:
'200':
description: The refunded donation.
'404':
$ref: '#/components/responses/NotFound'
/campaigns:
get:
operationId: listCampaigns
tags:
- Campaigns
summary: List campaigns
description: Returns campaigns for the specified account. CONFIRMED.
parameters:
- $ref: '#/components/parameters/AccountIdParam'
responses:
'200':
description: A list of campaigns.
content:
application/json:
schema:
$ref: '#/components/schemas/ListResponse'
'401':
$ref: '#/components/responses/Unauthorized'
post:
operationId: createCampaign
tags:
- Campaigns
summary: Create a campaign
description: Creates a new campaign. MODELED - verify against the live reference.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CampaignCreate'
responses:
'200':
description: The created campaign.
'400':
$ref: '#/components/responses/BadRequest'
/campaigns/{id}:
get:
operationId: getCampaign
tags:
- Campaigns
summary: Retrieve a campaign
description: Retrieves a single campaign by ID. MODELED - verify against the live reference.
parameters:
- $ref: '#/components/parameters/IdParam'
responses:
'200':
description: A campaign object.
'404':
$ref: '#/components/responses/NotFound'
patch:
operationId: updateCampaign
tags:
- Campaigns
summary: Update a campaign
description: Updates an existing campaign. CONFIRMED.
parameters:
- $ref: '#/components/parameters/IdParam'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CampaignCreate'
responses:
'200':
description: The updated campaign.
'404':
$ref: '#/components/responses/NotFound'
delete:
operationId: deleteCampaign
tags:
- Campaigns
summary: Delete a campaign
description: Deletes a campaign. MODELED - verify against the live reference.
parameters:
- $ref: '#/components/parameters/IdParam'
responses:
'200':
description: Deletion confirmation.
'404':
$ref: '#/components/responses/NotFound'
/subscriptions:
get:
operationId: listSubscriptions
tags:
- Subscriptions
summary: List subscriptions
description: >-
Returns recurring subscriptions for the specified account. CONFIRMED.
Each subscription generates donations on its configured frequency.
parameters:
- $ref: '#/components/parameters/AccountIdParam'
responses:
'200':
description: A list of subscriptions.
content:
application/json:
schema:
$ref: '#/components/schemas/ListResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/subscriptions/{id}:
get:
operationId: getSubscription
tags:
- Subscriptions
summary: Retrieve a subscription
description: Retrieves a single subscription by its unique identifier. CONFIRMED.
parameters:
- $ref: '#/components/parameters/IdParam'
responses:
'200':
description: A subscription object.
'404':
$ref: '#/components/responses/NotFound'
delete:
operationId: cancelSubscription
tags:
- Subscriptions
summary: Cancel a subscription
description: Cancels a recurring subscription. MODELED - verify against the live reference.
parameters:
- $ref: '#/components/parameters/IdParam'
responses:
'200':
description: The cancelled subscription.
'404':
$ref: '#/components/responses/NotFound'
/people:
get:
operationId: listPeople
tags:
- People
summary: List people
description: >-
Returns the people (donors and contacts) for the specified account.
MODELED - verify against the live reference.
parameters:
- $ref: '#/components/parameters/AccountIdParam'
responses:
'200':
description: A list of people.
content:
application/json:
schema:
$ref: '#/components/schemas/ListResponse'
'401':
$ref: '#/components/responses/Unauthorized'
post:
operationId: createPerson
tags:
- People
summary: Create a person
description: Creates a new person (donor/contact). MODELED - verify against the live reference.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PersonCreate'
responses:
'200':
description: The created person.
'400':
$ref: '#/components/responses/BadRequest'
/people/{id}:
get:
operationId: getPerson
tags:
- People
summary: Retrieve a person
description: Retrieves a single person by ID. MODELED - verify against the live reference.
parameters:
- $ref: '#/components/parameters/IdParam'
responses:
'200':
description: A person object.
'404':
$ref: '#/components/responses/NotFound'
patch:
operationId: updatePerson
tags:
- People
summary: Update a person
description: Updates an existing person. MODELED - verify against the live reference.
parameters:
- $ref: '#/components/parameters/IdParam'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PersonCreate'
responses:
'200':
description: The updated person.
'404':
$ref: '#/components/responses/NotFound'
/fundraisers:
get:
operationId: listFundraisers
tags:
- Fundraisers
summary: List fundraisers
description: >-
Returns peer-to-peer fundraisers for the specified account or campaign.
MODELED - verify against the live reference.
parameters:
- $ref: '#/components/parameters/AccountIdParam'
responses:
'200':
description: A list of fundraisers.
content:
application/json:
schema:
$ref: '#/components/schemas/ListResponse'
'401':
$ref: '#/components/responses/Unauthorized'
post:
operationId: createFundraiser
tags:
- Fundraisers
summary: Create a fundraiser
description: Creates a new peer-to-peer fundraiser under a campaign. MODELED - verify against the live reference.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/FundraiserCreate'
responses:
'200':
description: The created fundraiser.
'400':
$ref: '#/components/responses/BadRequest'
/fundraisers/{id}:
get:
operationId: getFundraiser
tags:
- Fundraisers
summary: Retrieve a fundraiser
description: Retrieves a single fundraiser by ID. MODELED - verify against the live reference.
parameters:
- $ref: '#/components/parameters/IdParam'
responses:
'200':
description: A fundraiser object.
'404':
$ref: '#/components/responses/NotFound'
patch:
operationId: updateFundraiser
tags:
- Fundraisers
summary: Update a fundraiser
description: Updates an existing fundraiser. MODELED - verify against the live reference.
parameters:
- $ref: '#/components/parameters/IdParam'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/FundraiserCreate'
responses:
'200':
description: The updated fundraiser.
'404':
$ref: '#/components/responses/NotFound'
components:
securitySchemes:
basicAuth:
type: http
scheme: basic
description: >-
HTTP Basic Auth. Use your Donately API token as the username with an
empty password (the token is base64-encoded with a trailing colon). Find
the token in the Donately dashboard under Settings -> API.
parameters:
IdParam:
name: id
in: path
required: true
description: The unique identifier of the resource.
schema:
type: string
AccountIdParam:
name: account_id
in: query
required: true
description: The ID of the account to operate against.
schema:
type: string
responses:
Unauthorized:
description: Authentication failed or was not provided.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
NotFound:
description: The requested resource was not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
BadRequest:
description: The request was malformed or missing required parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
schemas:
ListResponse:
type: object
description: Standard Donately list envelope.
properties:
object:
type: string
data:
type: array
items:
type: object
summary:
type: object
params:
type: object
Error:
type: object
properties:
object:
type: string
example: error
error:
type: object
properties:
type:
type: string
message:
type: string
DonationCreate:
type: object
required:
- account_id
- amount_in_cents
- donation_type
properties:
account_id:
type: string
description: The account this donation belongs to.
amount_in_cents:
type: integer
description: The donation amount in cents.
donation_type:
type: string
enum:
- cc
- ach
- cash
- paypal
description: The payment method for the donation.
campaign_id:
type: string
description: Optional campaign to attribute the donation to.
first_name:
type: string
last_name:
type: string
email:
type: string
CampaignCreate:
type: object
required:
- account_id
- title
properties:
account_id:
type: string
title:
type: string
goal_in_cents:
type: integer
description:
type: string
PersonCreate:
type: object
required:
- account_id
- email
properties:
account_id:
type: string
email:
type: string
first_name:
type: string
last_name:
type: string
FundraiserCreate:
type: object
required:
- account_id
- campaign_id
- title
properties:
account_id:
type: string
campaign_id:
type: string
title:
type: string
goal_in_cents:
type: integer