Overflow Donors API
The Donors API from Overflow — 2 operation(s) for donors.
The Donors API from Overflow — 2 operation(s) for donors.
openapi: 3.0.0
info:
title: Overflow Open Campaigns Donors API
description: '
The documentation for the Overflow Open APIs.
To access the OpenAPI spec in JSON/YAML format, navigate to:
* `/api/docs/openapi.json`
* `/api/docs/openapi.yaml`
'
version: '3.0'
contact: {}
servers:
- url: https://server.stage.overflow.co
description: API server
tags:
- name: Donors
paths:
/api/v3/donors:
get:
description: Returns donors for the nonprofit based on the provided filters.
operationId: OpenApiDonorProfilesController_getDonorProfiles
parameters:
- name: limit
required: false
in: query
description: The number of donors to return
schema:
minimum: 1
maximum: 100
default: 25
type: number
- name: locationIds
required: false
in: query
description: Filter donors by location IDs
schema:
example:
- 6710f34fd5061afeec3eab57
type: array
items:
type: string
- name: maximumUpdatedDate
required: false
in: query
description: The maximum updated date of the donors to return.
schema:
format: date-time
example: '2025-02-01'
type: string
- name: minimumUpdatedDate
required: false
in: query
description: The minimum updated date of the donors to return.
schema:
format: date-time
example: '2025-01-01'
type: string
- name: page
required: false
in: query
description: The page number of the donors to return
schema:
minimum: 1
default: 1
type: number
- name: sortBy
required: false
in: query
description: The field to sort the donors by.
schema:
default: updatedAt
example: createdAt
enum:
- createdAt
- updatedAt
- firstName
- lastName
- email
- phone
- id
- totalContributionsCount
type: string
- name: sortDirection
required: false
in: query
description: The direction to sort the donors by.
schema:
default: DESC
example: DESC
enum:
- ASC
- DESC
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/GetDonorsResponse'
security:
- ClientId: []
ApiKey: []
summary: Get Donors
tags:
- Donors
post:
description: Creates a new Donor Profile.
operationId: OpenApiDonorProfilesController_createDonorProfile
parameters: []
requestBody:
required: true
description: Parameters to create a new Donor Profile
content:
application/json:
schema:
$ref: '#/components/schemas/CreateDonorProfileParams'
responses:
'201':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/CreateDonorProfileResponse'
security:
- ClientId: []
ApiKey: []
summary: Create Donor Profile
tags:
- Donors
/api/v3/donors/{donorId}:
get:
description: Returns donor for given ID.
operationId: OpenApiDonorProfilesController_getDonorProfile
parameters:
- name: donorId
required: true
in: path
description: The ID of the donor to fetch.
schema:
example: 2ea1ae03ca521e437db76d76
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/GetDonorResponse'
'400':
description: Donor does not belong to the nonprofit
'404':
description: Donor profile does not exist
security:
- ClientId: []
ApiKey: []
summary: Get Donor
tags:
- Donors
patch:
description: Updates the Donor Profile for the given id
operationId: OpenApiDonorProfilesController_updateDonorProfile
parameters:
- name: donorId
required: true
in: path
description: The ID of the donor to update.
schema:
example: 2ea1ae03ca521e437db76d76
type: string
requestBody:
required: true
description: Parameters to update a Donor Profile
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateDonorProfileParams'
responses:
'204':
description: Successfully updated Donor Profile
'400':
description: Donor does not belong to the nonprofit
'403':
description: This Donor Profile is associated to a Donor and cannot be updated.
'404':
description: Donor profile does not exist
security:
- ClientId: []
ApiKey: []
summary: Update Donor
tags:
- Donors
components:
schemas:
UpdateDonorProfileParams:
type: object
properties:
email:
type: string
format: email
description: The email address of the donor
example: john.doe@example.com
firstName:
type: string
description: The first name of the donor
example: John
lastName:
type: string
description: The last name of the donor
example: Doe
phone:
type: string
description: The phone number of the donor
example: '+1234567890'
GetDonorsResponse:
type: object
properties:
data:
type: array
items:
type: object
properties:
id:
type: string
description: Donor Id
example: 6710f34fd5061afeec3eab57
createdAt:
type: string
format: date-time
description: Donor created at
example: '2025-01-01T00:00:00.000Z'
updatedAt:
type: string
format: date-time
description: Donor updated at
example: '2025-01-01T00:00:00.000Z'
firstName:
type: string
description: Donor first name
example: John
lastName:
type: string
description: Donor last name
example: Doe
email:
type: string
format: email
description: Donor email
example: john.doe@example.com
phone:
type: string
description: Donor phone number in E.164 format
example: '+1234567890'
address:
type: object
properties:
city:
type: string
minLength: 1
country:
type: string
line1:
type: string
minLength: 1
line2:
type: string
state:
type: string
minLength: 1
timezone:
type: string
zip:
type: string
pattern: ^\d{5}(-\d{4})?$
required:
- city
- line1
- state
- zip
nullable: true
description: Donor address
example:
line1: 123 Main St
line2: Apt 1
city: Anytown
state: CA
zip: '12345'
activeRecurringCount:
type: number
description: The number of active recurring donations
example: 1
latestContributionDate:
type: string
format: date-time
description: The date of the latest contribution
example: '2025-01-01T00:00:00.000'
locationIds:
type: array
items:
type: string
description: The location IDs associated with the donor
example:
- 6710f34fd5061afeec3eab57
totalContributionsCount:
type: number
description: Total number of contributions made by the donor
example: 10
required:
- id
- createdAt
- updatedAt
- firstName
- lastName
- email
- phone
- address
description: List of donors
totalCount:
type: number
description: Total number of donors matching the filters
example: 100
required:
- data
- totalCount
GetDonorResponse:
type: object
properties:
data:
type: object
properties:
id:
type: string
description: Donor Id
example: 6710f34fd5061afeec3eab57
createdAt:
type: string
format: date-time
description: Donor created at
example: '2025-01-01T00:00:00.000Z'
updatedAt:
type: string
format: date-time
description: Donor updated at
example: '2025-01-01T00:00:00.000Z'
firstName:
type: string
description: Donor first name
example: John
lastName:
type: string
description: Donor last name
example: Doe
email:
type: string
format: email
description: Donor email
example: john.doe@example.com
phone:
type: string
description: Donor phone number in E.164 format
example: '+1234567890'
address:
type: object
properties:
city:
type: string
minLength: 1
country:
type: string
line1:
type: string
minLength: 1
line2:
type: string
state:
type: string
minLength: 1
timezone:
type: string
zip:
type: string
pattern: ^\d{5}(-\d{4})?$
required:
- city
- line1
- state
- zip
nullable: true
description: Donor address
example:
line1: 123 Main St
line2: Apt 1
city: Anytown
state: CA
zip: '12345'
activeRecurringCount:
type: number
description: The number of active recurring donations
example: 1
latestContributionDate:
type: string
format: date-time
description: The date of the latest contribution
example: '2025-01-01T00:00:00.000'
locationIds:
type: array
items:
type: string
description: The location IDs associated with the donor
example:
- 6710f34fd5061afeec3eab57
totalContributionsCount:
type: number
description: Total number of contributions made by the donor
example: 10
required:
- id
- createdAt
- updatedAt
- firstName
- lastName
- email
- phone
- address
description: The donor for the given ID
required:
- data
CreateDonorProfileResponse:
type: object
properties:
data:
type: string
description: The id of the new donor profile
required:
- data
CreateDonorProfileParams:
type: object
properties:
email:
type: string
format: email
description: The email address of the donor
example: john.doe@example.com
firstName:
type: string
description: The first name of the donor
example: John
lastName:
type: string
description: The last name of the donor
example: Doe
mailingAddress:
type: object
properties:
city:
type: string
minLength: 1
country:
type: string
line1:
type: string
minLength: 1
line2:
type: string
state:
type: string
minLength: 1
timezone:
type: string
zip:
type: string
pattern: ^\d{5}(-\d{4})?$
required:
- city
- line1
- state
- zip
description: The mailing address of the donor
example:
city: Anytown
line1: 123 Main St
line2: Apt 1
state: CA
zip: '12345'
phone:
type: string
description: The phone number of the donor
example: '+1234567890'
required:
- firstName
- lastName
securitySchemes:
ApiKey:
type: apiKey
in: header
name: x-api-key
description: API Key for API authentication
ClientId:
type: apiKey
in: header
name: x-client-id
description: Client ID for API authentication