NAV Navbar
Logo
Shell HTTP

Introduction

The purpose of the Partner API is to provide a highly integrated set of RESTful APIs that a distinguished third party can use to take specific actions without leaving the comfort of their own platform.

GoFundMe Partner API

  _______  _______ .___  ___.
 /  _____||   ____||   \/   |
|  |  __  |  |__   |  \  /  |
|  | |_ | |   __|  |  |\/|  |
|  |__| | |  |     |  |  |  |
 \______| |__|     |__|  |__|

Getting Started

The quickest way to get started is to load up postman and then proceed to our Auth section for tips on generating your JWT token. Once complete you should be able to play around with our API!

Run in Postman

Authentication with JWT

We utilize JSON Web Tokens (JWT) to authenticate and verify payloads sent between our partners and our REST API. Every API consumer will have a Consumer Id and an associated API Key.

HTTP Headers

The partner API will expect the Authorization header to be present when accepting JSON web tokens. The header should contain Bearer and a generated token.

Code Samples

# Pass auth header on each request
curl -X get https://api.gofundme.com/partner -H "Authorization: Bearer <token>"
GET https://api.gofundme.com/partner HTTP/1.1
Host: api.gofundme.com
Content-Type: application/json
Accept: application/json
Authorization: Bearer <token>
Header Value
Authorization Bearer <token>
Content-Type application/json

JSON Web Token

As is standard with JWT our token can be broken into three parts. Conceptually this token is made up of the header, payload and signature each of which is separated by a period.

<header>.<payload>.<signature>

JWT Header JSON

{
  "alg": "HS256",
  "typ": "JWT"
}

JWT Header

First we have the header which contains the algorithm and token type.

Property Required Description Supported Values
alg true Hashing algorithm used on signature HS256
typ true Type of token used JWT

JWT Payload JSON

{
  "sub": "y42LW46J9luq3Xq9XMly"
}

JWT Payload

Second is the request payload which contains any claims being made about each request.

Property Required Description
sub true Contains the consumer id to access the Partner API

JWT Signature Creation

HMACSHA256(
  base64UrlEncode(header) + "." +
  base64UrlEncode(payload),
  secret
)

JWT Signature

The final portion of your token is the signature. The signature uses HMAC SHA256 to generate a keyed hash value. The data that is fed into the hashing algorithm is made up of the header and payload which are both individually base 64 encoded and URL safe. These two pieces are then appended together and hashed using the secret key issued to your consumer.

Roles

The API token that is used to access the Partner API can be broken into two roles: parent and child consumers.

Parent consumers have full access rights; they can create consumers, funds, and beneficiaries. They can also view fund information for funds created by their consumers.

Child consumers have curtailed access rights; they can only create funds and beneficiaries, and only view the funds that they themselves have created.

Endpoint Access Reference

Endpoint Role
consumer.* parent
beneficiary.* parent, child
fund.* parent, child
user.* parent, child

Consumer

Consumers are a special class of user designated to take specific actions through our API interface. In most cases a Partner only has a need for a single consumer which represents themselves however, it is possible for a Partner to have 1:N relationship with their Consumers.

Fund

A Fund is the underlying entity which represents a campaign. This may include content generated by the campaign organizer, donors and even visitors. A fund or campaign can be broken out into several resources accessed through this API.

Response Handling

The Partner API will return specific HTTP status codes with each response returned. The below codes represent all the possible status codes that can be expected from this API.

2xx Success Responses

The Partner API only accepts request methods GET, POST and PUT. Generally these methods return a specific HTTP status code when successful.

Status Meaning Description
200 OK Reserved for GET and POST requests and JSON in body is optional.
201 Created Reserved for POST requests and JSON in body is optional.
204 No Content Reserved for PUT requests and no body is expected.

4xx and 5xx Error Responses

The Partner API does not reserve client errors or server errors for any particular request situation. Generally we rely on the error response send back to give us context around the specific error.

Status Meaning Description
400 Bad Request Bad Request
401 Unauthorized Unauthorized
403 Forbidden Forbidden
404 Not Found Not Found
405 Method Not Allowed Method Not Allowed
429 Too Many Requests Too Many Requests
500 Internal Server Error Internal Server Error

Error Responses

The system will attempt to gracefully catch the details of the error and the context in which they happen so that a predictable informative response can be provided to our API consumers.

Example Error Response

{  
  "error": {  
    "code": 2000,
    "message": "Unable to validate the Auth token provided.",
    "data": {  

    }
  }
}
Property Description
code
integer
Numeric value representing a specific error
message
string
Provides a human readable string
data
object
Data specific to the action taken

In this example we don’t provide any data as the error is clearly around a problem with validating the JWT token and therefore has no context beyond just not being able to authenticate.

Error Codes

The Partner API’s error codes are broken down into groups each of which correspond with either a specific set of actions or a specific resource.

Generic Error Codes

Any errors that return with an error code in the 1000’s are generic application level error codes

Code Description
1000 Unknown application error occurred.
1001 Invalid cursor position.
1002 Validation error(s) occurred.

Authentication Error Codes

Any errors that return with an error code in the 2000’s are typically reserved for authentication or permission errors.

Code Description
2000 Unable to validate the Auth token provided.

Beneficiary Resource Error Codes

Any errors that return with an error code in the 3000’s are specific to the Beneficiary resource

Code Description
3000 Failed to create a new beneficiary. Please try again later.
3001 Accepting user cannot be the same user as the fund owner.

Consumer Resource Error Codes

Any errors that return with an error code in the 4000’s are specific to the Consumer resource

Code Description
4000 Unauthorized to retrieve consumer.
4001 Unauthorized to create consumer.
4002 Consumer not found.
4003 Consumer does not have access to resource.
4004 One of the uploaded logo images is too big. The maximum file size is 10MB.
4005 One of the uploaded logo images could not be found.
4006 One of the uploaded logo images has an invalid file type.
4007 Logo upload failed. Please try again later.
4008 Failed to create consumer. Please try again later.
4009 Failed to edit consumer. Please try again later.

Fund Resource Error Codes

Any errors that return with an error code in the 5000’s are specific to the Fund resource

Code Description
5000 Failed to create a new fund. Please try again later.
5001 Failed to update user details. Please try again later.
5002 Failed to invite user to claim fund. Please try again later.
5003 Fund not found.
5004 Failed to find user for given fund.
5005 Failed to find beneficiary for given fund.
5006 Fund has already been claimed.
5007 Funds have not been withdrawn yet.
5008 Failed to retrieve withdrawal information. Please try again later.

User Resource Error Codes

Any errors that return with an error code in the 6000’s are specific to the User resource

Code Description
6000 Failed to create a new user. Please try again later.
6001 Fund creation disabled for existing user.
6002 Maximum number of funds reached for existing user.
6003 User email address already in use. Please try another address.
6004 User not found.
6005 Failed to create User KYC information.
6006 User KYC information not found.
6007 User KYC information already exists.
6008 Failed to edit User KYC information.
6009 Failed to create User Bank Settlement information.
6010 User Bank Settlement information not found.
6011 User Bank Settlement information already exists.
6012 User KYC information must be set prior to setting up banking information.
6013 Failed to edit User Bank Settlement information.
6014 The given user has an unsupported payment processor. Please create a new user.
6015 The given user does not have a payment processor. Please create a new user.

Pagination

We use cursor pagination for paginated responses.

Request parameters

Code samples

curl -X get https://api.gofundme.com/partner/v1/funds/Q2aWYAXtQK8A/updates?before=SGoXQkhfl&limit=3 \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ"
GET https://api.gofundme.com/partner/v1/funds/Q2aWYAXtQK8A/updates?before=SGoXQkhfl&limit=3 HTTP/1.1
Host: api.gofundme.com
Content-Type: application/json
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

When requesting a paginated collection, you are allowed to pass in the following additional query parameters.

Parameter In Description
before query A cursor; retrieves the previous rows before this ID
after query A cursor; retrieves the next rows after this ID
limit query The maximum number of results in the result set (limit 100, default 20)

Response

Example response

{
  "data": [
    {
      "id": "SGoXQkhfl",
      "text": "You say goodbye",
      "created_at": "2017-02-17T00:12:16Z"
    },
    {
      "id": "LGt0U9I9",
      "text": "I say hello",
      "created_at": "2017-02-17T00:12:19Z"
    },
    {
      "id": "A1IXv0JB",
      "text": "Hello, hello, hello",
      "created_at": "2017-02-17T00:12:30Z"
    }
  ],
  "meta": {
    "has_more": true
  }
}

The response for a paginated collection will come back with the following:

Parameter Description
data
array
The array of objects retrieved; empty if there are no objects
meta.has_more
boolean
Whether there are more results to be retrieved or not

Enumerations

The Partner API uses enumerations to describe specific resource actions and/or states.

Fund Country Codes

All country codes should follow the international standard ISO 3166-1 alpha-2.

Value Description
CA Canada
US United States

Fund Currency Codes

All currency codes should follow the international standard ISO 4217 alpha-3.

Value Description
CAD Canadian Dollar
USD US Dollar

Fund Categorization

Our Fund resources will either expect or return, as part of a response, a category property. This property is important for determining how a fund is discovered.

Value Description
ANIMALS Animals & Pets
BUSINESS Business & Entrepreneurs
CHARITY Non-Profits & Charities
COMMUNITY Community & Neighbors
COMPETITIONS Competitions & Pageants
CREATIVE Creative Arts, Music & Film
DREAMS Dreams, Hopes & Wishes
EMERGENCIES Accidents & Emergencies
EDUCATION Education & Learning
EVENTS Celebrations & Events
FAITH Missions, Faith & Church
FAMILY Babies, Kids & Family
MEDICAL Medical, Illness & Healing
MEMORIALS Funerals & Memorials
OTHER Other
SPORTS Sports, Teams & Clubs
TRAVEL Travel & Adventure
VOLUNTEER Volunteer & Service
WEDDINGS Weddings & Honeymoons

Fund State

Fund resources can expect to have a simple return property called state. Generally this field returns a value that represents whether a fund is visible to the public or not.

Value Description
ACTIVE Fund is discoverable
PENDING Fund is pending claim completion and is not discoverable
INACTIVE Fund is not discoverable

User State

The User sub resource, similar to it’s parent Fund, has a state field.

Value Description
ACTIVE User is active
PENDING User is pending claim completion
INACTIVE User is inactive

Versioning

The Partner API is versioned, so developers can expect the API behavior they see to remain constant (e.g. properties seen in responses, parameters sent in requests, etc.). When we change the API in a backwards-incompatible way, we release a new version. Old API versions will be disabled after their end of life date.

When sending queries to the API, versions are placed after the https://api.gofundme.com/partner/ base URL.

API versions

Version Description Release date End of life
v1 Initial release March 15, 2017 TBD

Backward compatibility charter

For a given API version, we promise to only make backwards-compatible changes.

The following are considered backwards-compatible:

Beneficiary

Beneficiary specific operations

beneficiary.create

Code samples

curl -X post https://api.gofundme.com/partner/v1/beneficiaries \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ"
POST https://api.gofundme.com/partner/v1/beneficiaries HTTP/1.1
Host: api.gofundme.com
Content-Type: application/json
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

POST /beneficiaries

Create Beneficiary

Creates a new GoFundMe beneficiary by invitation. Beneficiary invites are sent out the moment campaign organizer (fund owner) claims a newly created fund.

Body parameters (Invite only)

{
  "fund_id": "Q2aWYAXtQK8A",
  "email": "person@example.org",
  "name": "Full Name"
}

Parameters (Invite only)

Parameter In Description
fund_id
required
body Fund ID
email
required
body Email to invite
name
required
body Full name

Creates a new GoFundMe beneficiary by attempting to verify and setup a user’s payment account. Beneficiary is created the moment campaign organizer (fund owner) claims a newly created fund. This action has several potential fall-back scenarios if verification fails.

Body parameters (Auto-Accept)

{
  "fund_id": "Q2aWYAXtQK8A",
  "user_id": "b5BULvurAHFV"
}

Parameters (Auto-Accept)

Parameter In Description
fund_id
required
body Fund ID
user_id
required
body User to invite or auto-accept

Consumer

Consumer specific operations

consumer.collection.get

Code samples

curl -X get https://api.gofundme.com/partner/v1/consumers \ 
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ"
GET https://api.gofundme.com/partner/v1/consumers HTTP/1.1
Host: api.gofundme.com
Content-Type: application/json
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

GET /consumers

Get consumers

Get the consumers that belong to the current consumer

Parameters

Parameter In Description
before query A cursor; retrieves the previous rows before this ID
after query A cursor; retrieves the next rows after this ID
limit query The maximum number of results in the result set (limit 100, default 20)

Example response

{
  "data": [
    {
      "id": "FUe9zttHXkaOag",
      "email": "person@example.org",
      "name": "Place Name",
      "description": "A place for all your needs",
      "url": "http://place.example.org/",
      "logo_small": "https://place.example.org/logo_small.png",
      "logo_big": "https://place.example.org/logo_big.png",
      "tax_id": "123456",
      "phone": "14085551234",
      "address": {
        "street_line1": "123 Main St.",
        "street_line2": "Apt 123",
        "city": "San Diego",
        "region": "CA",
        "postal_code": "92123",
        "country_code": "US"
      },
      "user_id": "b5BULvurAHFV"
    }
  ],
  "meta": {
    "has_more": true
  }
}

Response

This is a paginated collection. Responses will be contained inside a data array, while metadata will be contained inside a meta object.

Dotted properties (eg. address.city) are sub-properties.

Parameter Description
id
string
Consumer ID
email
string
Email
name
string
Full name
description
string
Description
url
string
URL
logo_small
string
Campaign page logo URL
logo_big
string
Email logo URL
tax_id
string
Tax ID
phone
string
Phone number
address.street_line1
string
Street address, first line
address.street_line2
string
Street address, second line
address.city
string
City
address.region
string
State/province
address.postal_code
string
Postal/zip code
address.country_code
string
Country code ISO 3166-1 alpha-2
user_id
string
Id of consumer’s user account

consumer.create

Code samples

curl -X post https://api.gofundme.com/partner/v1/consumers \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ"
POST https://api.gofundme.com/partner/v1/consumers HTTP/1.1
Host: api.gofundme.com
Content-Type: application/json
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

POST /consumers

Create Consumer Account

Creates a new GoFundMe consumer account.

Body parameter

{
  "email": "person@example.org",
  "name": "Place Name",
  "description": "A place for all your needs",
  "url": "http://place.example.org/",
  "logo_small": "https://place.example.org/logo_small.png",
  "logo_big": "https://place.example.org/logo_big.png",
  "tax_id": "123456",
  "phone": "14085551234",
  "address": {
    "street_line1": "123 Main St.",
    "street_line2": "Apt 123",
    "city": "San Diego",
    "region": "CA",
    "postal_code": "92123",
    "country_code": "US"
  },
  "user": {
    "email": "person@example.org",
    "name": "Full Name",
    "password": "5tFPQpYA"
  }
}

Parameters

Dotted properties (eg. address.city) are sub-properties.

Parameter In Description
email
required
body Email
name
required
body Full name
description body Description
url
required
body URL
logo_small
required
body Campaign page logo URL (height should be >=100px, aspect ratio should be >=1. eg. it should be wider than it is tall)
logo_big
required
body Email logo URL (height should be >=200px, aspect ratio should be >=1. eg. it should be wider than it is tall)
tax_id body Tax ID
phone body Phone number
address.street_line1 body Street address, first line
address.street_line2 body Street address, second line
address.city body City
address.region body State/province
address.postal_code body Postal/zip code
address.country_code body Country code ISO 3166-1 alpha-2
user.email body Account owner’s email address
user.name body Account owner’s first and last name
user.password body Account owner’s 8 digit or longer alpha numeric password

Example response

{
  "id": "FUe9zttHXkaOag",
  "secret": "H9LcHVVvmTBrvx1jvNDATqlYRkDaXQCrg9Y/hiXeA6YDSv8Q",
  "email": "person@example.org",
  "name": "Funeral Home",
  "description": "A funeral home for all your funeral needs",
  "url": "http://funeralhome.example.org/",
  "logo_small": "https://funeralhome.example.org/logo_small.png",
  "logo_big": "https://funeralhome.example.org/logo_big.png",
  "tax_id": "123456",
  "phone": "14085551234",
  "address": {
    "street_line1": "123 Main St.",
    "street_line2": "Apt 123",
    "city": "San Diego",
    "region": "CA",
    "postal_code": "92123",
    "country_code": "US"
  },
  "user_id": "string"
}

Response

Dotted properties (eg. address.city) are sub-properties.

Parameter Description
id
string
Consumer ID
secret
string
Consumer API secret
email
string
Email
name
string
Full name
description
string
Description
url
string
URL
logo_small
string
Campaign page logo URL
logo_big
string
Email logo URL
tax_id
string
Tax ID
phone
string
Phone number
address.street_line1
string
Street address, first line
address.street_line2
string
Street address, second line
address.city
string
City
address.region
string
State/province
address.postal_code
string
Postal/zip code
address.country_code
string
Country code ISO 3166-1 alpha-2
user_id
string
Id of consumer’s user account

consumer.get

Code samples

curl -X get https://api.gofundme.com/partner/v1/consumers/FUe9zttHXkaOag \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ"
GET https://api.gofundme.com/partner/v1/consumers/FUe9zttHXkaOag HTTP/1.1
Host: api.gofundme.com
Content-Type: application/json
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

GET /consumers/{id}

Get Consumer

Get a single GoFundMe consumer

Parameters

Parameter Type Description
id
required
path Consumer Id

Example response

{
  "id": "FUe9zttHXkaOag",
  "email": "person@example.org",
  "name": "Place Name",
  "description": "A place for all your needs",
  "url": "http://place.example.org/",
  "logo_small": "https://place.example.org/logo_small.png",
  "logo_big": "https://place.example.org/logo_big.png",
  "tax_id": "123456",
  "phone": "14085551234",
  "address": {
    "street_line1": "123 Main St.",
    "street_line2": "Apt 123",
    "city": "San Diego",
    "region": "CA",
    "postal_code": "92123",
    "country_code": "US"
  },
  "user_id": "b5BULvurAHFV"
}

Response

Dotted properties (eg. address.city) are sub-properties.

Parameter Description
id
string
Consumer ID
email
string
Email
name
string
Full name
description
string
Description
url
string
URL
logo_small
string
Campaign page logo URL
logo_big
string
Email logo URL
tax_id
string
Tax ID
phone
string
Phone number
address.street_line1
string
Street address, first line
address.street_line2
string
Street address, second line
address.city
string
City
address.region
string
State/province
address.postal_code
string
Postal/zip code
address.country_code
string
Country code ISO 3166-1 alpha-2
user_id
string
Id of consumer’s user account

consumer.edit

Code samples

curl -X put https://api.gofundme.com/partner/v1/consumers/FUe9zttHXkaOag \ 
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ"
PUT https://api.gofundme.com/partner/v1/consumers/FUe9zttHXkaOag HTTP/1.1
Host: api.gofundme.com
Content-Type: application/json
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

PUT /consumers/{id}

Edit Consumer Account

Edits an existing GoFundMe consumer account

Body parameter

{
  "email": "person@example.org",
  "name": "Place Name",
  "description": "A place for all your needs",
  "url": "http://place.example.org/",
  "logo_small": "https://place.example.org/logo_small.png",
  "logo_big": "https://place.example.org/logo_big.png",
  "tax_id": "123456",
  "phone": "14085551234",
  "address": {
    "street_line1": "123 Main St.",
    "street_line2": "Apt 123",
    "city": "San Diego",
    "region": "CA",
    "postal_code": "92123",
    "country_code": "US"
  }
}

Parameters

Dotted properties (eg. address.city) are sub-properties.

Parameter In Description
id
required
path Consumer ID
email body Email
name body Full name
description body Description
url body URL
logo_small body Campaign page logo URL (height should be >=100px, aspect ratio should be >=1. eg. it should be wider than it is tall)
logo_big body Email logo URL (height should be >=200px, aspect ratio should be >=1. eg. it should be wider than it is tall)
tax_id body Tax ID
phone body Phone number
address.street_line1 body Street address, first line
address.street_line2 body Street address, second line
address.city body City
address.region body State/province
address.postal_code body Postal/zip code
address.country_code body Country code ISO 3166-1 alpha-2

consumer.reissue

Code samples

curl -X post https://api.gofundme.com/partner/v1/consumers/FUe9zttHXkaOag/reissue \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ"
POST https://api.gofundme.com/partner/v1/consumers/FUe9zttHXkaOag/reissue HTTP/1.1
Host: api.gofundme.com
Content-Type: application/json
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

POST /consumers/{id}/reissue

Reissue Consumer Secret

Reissue a GoFundMe consumer secret

Parameters

Parameter In Description
id
required
path Consumer ID

Example response

{
  "id": "FUe9zttHXkaOag",
  "secret": "H9LcHVVvmTBrvx1jvNDATqlYRkDaXQCrg9Y/hiXeA6YDSv8Q"
}

Response

Parameter Description
id
string
Consumer ID
secret
string
Consumer API secret

consumer.funds

Code samples

curl -X get https://api.gofundme.com/partner/v1/consumers/FUe9zttHXkaOag/funds \ 
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ"
GET https://api.gofundme.com/partner/v1/consumers/FUe9zttHXkaOag/funds HTTP/1.1
Host: api.gofundme.com
Content-Type: application/json
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

GET /consumers/{id}/funds

Get consumer funds

Get the funds that belong to a consumer

Parameters

Parameter In Description
id
required
path Consumer Id
before query A cursor; retrieves the previous rows before this ID
after query A cursor; retrieves the next rows after this ID
limit query The maximum number of results in the result set (limit 100, default 20)

Example response

{
  "data": [
    {
      "id": "Q2aWYAXtQK8A",
      "url": "example-fund",
      "title": "Example Fund",
      "description": "This is an example fund",
      "category": "OTHER",
      "currency_code": "USD",
      "goal": 500,
      "media": "https://place.example.org/media.png",
      "balance": 100,
      "counts": {
        "comments": 2,
        "donations": 22,
        "updates": 1
      },
      "comments_enabled": true,
      "donations_enabled": true,
      "state": "ACTIVE",
      "created_at": "2017-02-17T00:12:16Z",
      "claimed_at": "2017-02-24T00:02:03Z",
      "launched_at": "2017-02-24T00:02:47Z"
    }
  ],
  "meta": {
    "has_more": true
  }
}

Response

This is a paginated collection. Responses will be contained inside a data array, while metadata will be contained inside a meta object.

Dotted properties (eg. counts.comments) are subproperties.

Parameter Description
id
string
Fund ID
email
string
Email
name
string
Full name
description
string
Description
category
string
Category
currency_code
string
User’s currency code ISO 4217 alpha-3
goal
integer
Goal amount in user’s currency
media
string
Main image or video
balance
integer
Currently raised amount in user’s currency
counts.comments
integer
How many comments the campaign has
counts.donations
integer
How many donations the campaign has
counts.updates
integer
How many updates the campaign has
comments_enabled
boolean
Whether comments are enabled or not
donations_enabled
boolean
Whether the fund is accepting donations or not
state
string, ACTIVE or INACTIVE
Fund status, visibility to the public
created_at
timestamp
When the fund was created
claimed_at
timestamp
When the fund was claimed
launched_at
timestamp
When the fund setup was completed

Fund

The operations listed below allow a consumer to create and manipulate a fund. Any operation that seeks to modify a fund must be sent prior to the fund being claimed. After that the control is transfered to the user.

Media Upload

Both the fund.create and fund.edit endpoints allow a consumer to upload a main image. This media field has few restrictions and recommended best practices which should be considered.

Restrictions

  1. The uploaded image must be one of the following mime types.
    • image/jpeg
    • image/jpg
    • image/gif
    • image/png
  2. Uploads must not exceed 8MB

Recommendations

  1. The recommended aspect ratio of upload media is 3:2.
  2. This translates into the following recommended resolutions (W x H).
    • 1920 x 1280
    • 1200 x 800
    • 800 x 533

fund.collection.get

Code samples

curl -X get https://api.gofundme.com/partner/v1/funds \ 
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ"
GET https://api.gofundme.com/partner/v1/funds HTTP/1.1
Host: api.gofundme.com
Content-Type: application/json
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

GET /funds

Get funds

Get the funds that belong to the current consumer

Parameters

Parameter In Description
before query A cursor; retrieves the previous rows before this ID
after query A cursor; retrieves the next rows after this ID
limit query The maximum number of results in the result set (limit 100, default 20)

Example response

{
  "data": [
    {
      "id": "Q2aWYAXtQK8A",
      "url": "example-fund",
      "title": "Example Fund",
      "description": "This is an example fund",
      "category": "OTHER",
      "currency_code": "USD",
      "goal": 500,
      "media": "https://place.example.org/media.png",
      "balance": 100,
      "counts": {
        "comments": 2,
        "donations": 22,
        "updates": 1
      },
      "comments_enabled": true,
      "donations_enabled": true,
      "status": "ACTIVE",
      "created_at": "2017-02-17T00:12:16Z",
      "claimed_at": "2017-02-24T00:02:03Z",
      "launched_at": "2017-02-24T00:02:47Z"
    }
  ],
  "meta": {
    "has_more": true
  }
}

Response

This is a paginated collection. Responses will be contained inside a data array, while metadata will be contained inside a meta object.

Dotted properties (eg. counts.comments) are subproperties.

Parameter Description
id
string
Fund ID
email
string
Email
name
string
Full name
description
string
Description
category
string, ENUM
Fund category, How a fund is discovered
currency_code
string
User’s currency code ISO 4217 alpha-3
goal
integer
Goal amount in user’s currency
media
string
Fund main image
balance
integer
Currently raised amount in user’s currency
counts.comments
integer
How many comments the campaign has
counts.donations
integer
How many donations the campaign has
counts.updates
integer
How many updates the campaign has
comments_enabled
boolean
Whether comments are enabled or not
donations_enabled
boolean
Whether the fund is accepting donations or not
state
string, ENUM
Fund state, visibility to the public
created_at
timestamp
When the fund was created
claimed_at
timestamp
When the fund was claimed
launched_at
timestamp
When the fund setup was completed

fund.create

Code samples

curl -X post https://api.gofundme.com/partner/v1/funds \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ"
POST https://api.gofundme.com/partner/v1/funds HTTP/1.1
Host: api.gofundme.com
Content-Type: application/json
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

POST /funds

Create Fund

Creates a new GoFundMe fund

Body parameter

{
  "category": "OTHER",
  "postal_code": "92123",
  "country_code": "US",
  "currency_code": "USD",
  "title": "Example Campaign",
  "description": "This is an example campaign.",
  "goal": 500,
  "media": "https://example.org/test-image.png",
  "user": {
    "email": "person@example.org",
    "name": "Full Name"
  }
}

Parameters

Dotted properties (eg. user.email) are sub-properties.

Parameter In Description
category
required
body Fund category
postal_code
required
body User’s postal address code
country_code
required
body User’s country code ISO 3166-1 alpha-2
currency_code
required
body User’s currency code ISO 4217 alpha-3
title
required
body Fund title with a max of 36 characters
description body Fund description
goal body Amount that is wished to be raised between 1 and 1,000,000,000
media body Fund main image
user.email
required
body User’s email
user.name
required
body User’s name

Example response

{
  "id": "Q2aWYAXtQK8A",
  "url": "example-fund",
  "title": "Example Fund",
  "description": "This is an example fund",
  "category": "OTHER",
  "currency_code": "USD",
  "goal": 0,
  "media": "https://place.example.org/media.png",
  "balance": 0,
  "counts": {
    "comments": 0,
    "donations": 0,
    "updates": 0
  },
  "comments_enabled": true,
  "donations_enabled": true,
  "state": "ACTIVE",
  "created_at": "2017-02-17T00:12:16Z",
  "claimed_at": null,
  "launched_at": null
}

Response

Dotted properties (eg. counts.comments) are sub-properties.

Parameter Description
id
string
Fund ID
email
string
Email
name
string
Full name
description
string
Description
category
string, ENUM
Fund category, How a fund is discovered
currency_code
string
User’s currency code ISO 4217 alpha-3
goal
integer
Goal amount in user’s currency
media
string
Fund main image
balance
integer
Currently raised amount in user’s currency
counts.comments
integer
How many comments the campaign has
counts.donations
integer
How many donations the campaign has
counts.updates
integer
How many updates the campaign has
comments_enabled
boolean
Whether comments are enabled or not
donations_enabled
boolean
Whether the fund is accepting donations or not
state
string, ENUM
Fund state, visibility to the public
created_at
timestamp
When the fund was created
claimed_at
timestamp
When the fund was claimed
launched_at
timestamp
When the fund setup was completed

fund.edit

Code samples

curl -X put https://api.gofundme.com/partner/v1/funds \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ"
PUT https://api.gofundme.com/partner/v1/funds HTTP/1.1
Host: api.gofundme.com
Content-Type: application/json
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

PUT /funds/{id}

Edit Fund

Edit a fund prior to launch

Body parameter

{
  "category": "OTHER",
  "postal_code": "92123",
  "country_code": "US",
  "currency_code": "USD",
  "title": "Example Campaign",
  "description": "This is an example campaign.",
  "goal": 500,
  "media": "https://example.org/test-image.png"
}

Parameters

Dotted properties (eg. user.email) are sub-properties.

Parameter In Description
id
required
path Fund ID
category
required
body Fund category
postal_code
required
body User’s postal address code
country_code
required
body User’s country code ISO 3166-1 alpha-2
currency_code
required
body User’s currency code ISO 4217 alpha-3
title
required
body Fund title with a max of 36 characters
description body Fund description
goal body Amount that is wished to be raised between 1 and 1,000,000,000
media body Fund main image

fund.launch

Code samples

curl -X post https://api.gofundme.com/partner/v1/funds/Q2aWYAXtQK8A/launch \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ"
POST https://api.gofundme.com/partner/v1/funds/Q2aWYAXtQK8A/launch HTTP/1.1
Host: api.gofundme.com
Content-Type: application/json
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

POST /funds/{id}/launch

Launch a Fund

Launch a newly created GoFundMe fund and send user claim email

Parameters

Parameter In Description
id
required
path Fund Id

fund.get

Code samples

curl -X get https://api.gofundme.com/partner/v1/funds/Q2aWYAXtQK8A \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ"
GET https://api.gofundme.com/partner/v1/funds/Q2aWYAXtQK8A HTTP/1.1
Host: api.gofundme.com
Content-Type: application/json
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

GET /funds/{id}

Get Fund

Get a single GoFundMe fund

Parameter In Description
id
required
path Fund Id

Example response

{
  "id": "Q2aWYAXtQK8A",
  "url": "example-fund",
  "title": "Example Fund",
  "description": "This is an example fund",
  "category": "OTHER",
  "currency_code": "USD",
  "goal": 500,
  "media": "https://place.example.org/media.png",
  "balance": 100,
  "counts": {
    "comments": 2,
    "donations": 22,
    "updates": 1
  },
  "comments_enabled": true,
  "donations_enabled": true,
  "state": "ACTIVE",
  "created_at": "2017-02-17T00:12:16Z",
  "claimed_at": "2017-02-24T00:02:03Z",
  "launched_at": "2017-02-24T00:02:47Z"
}

Response

Dotted properties (eg. counts.comments) are sub-properties.

Parameter Description
id
string
Fund ID
url
string
URL (eg. https://gofundme.com/{url})
title
string
Title
description
string
Description
category
string, ENUM
Fund category, How a fund is discovered
currency_code
string
User’s currency code ISO 4217 alpha-3
goal
integer
Goal amount in user’s currency
media
string
Fund main image
balance
integer
Currently raised amount in user’s currency
counts.comments
integer
How many comments the campaign has
counts.donations
integer
How many donations the campaign has
counts.updates
integer
How many updates the campaign has
comments_enabled
boolean
Whether comments are enabled or not
donations_enabled
boolean
Whether the fund is accepting donations or not
state
string, ENUM
Fund state, visibility to the public
created_at
timestamp
When the fund was created
claimed_at
timestamp
When the fund was claimed
launched_at
timestamp
When the fund setup was completed

fund.get.user

Code samples

curl -X get https://api.gofundme.com/partner/v1/funds/Q2aWYAXtQK8A/user \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ"
GET https://api.gofundme.com/partner/v1/funds/Q2aWYAXtQK8A/user HTTP/1.1
Host: api.gofundme.com
Content-Type: application/json
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

GET /funds/{id}/user

Get Fund User

Get a single GoFundMe fund user

Parameters

Parameter In Description
id
required
path Fund Id

Example responses

{
  "id": "Q2aWYAXtQK8A",
  "email": "person@example.org",
  "name": "Full Name",
  "fund_creation_enabled": true,
  "state": "ACTIVE",
  "created_at": "2017-02-17T00:12:16Z"
}

Response

Parameter Description
id
string
User Id
email
string
User’s email
name
string
User’s name
fund_creation_enabled
boolean
User can create new funds
state
string, ENUM
User State, active or not
created_at
timestamp
When the user was created

fund.get.beneficiary

Code samples

curl -X get https://api.gofundme.com/partner/v1/funds/Q2aWYAXtQK8A/beneficiary \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ"
GET https://api.gofundme.com/partner/v1/funds/Q2aWYAXtQK8A/beneficiary HTTP/1.1
Host: api.gofundme.com
Content-Type: application/json
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

GET /funds/{id}/beneficiary

Get Fund Beneficiary

Get a single GoFundMe fund beneficiary

Parameters

Parameter In Description
id
required
path Fund Id

Example responses

{
  "id": "Q2aWYAXtQK8A",
  "name": "Full Name",
  "invited_at": "2017-02-16T00:03:39Z",
  "accepted_at": "2017-02-17T00:12:16Z"
}

Response

Dotted properties (eg. counts.comments) are sub-properties.

Parameter Description
id
string
User Id
name
string
User’s name
invited_at
timestamp
When the beneficiary invite email was sent
accepted_at
timestamp
When beneficiary completed beneficiary claim flow

fund.get.comments

Code samples

curl -X get https://api.gofundme.com/partner/v1/funds/Q2aWYAXtQK8A/comments \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ"
GET https://api.gofundme.com/partner/v1/funds/Q2aWYAXtQK8A/comments HTTP/1.1
Host: api.gofundme.com
Content-Type: application/json
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

GET /funds/{id}/comments

Get Fund Comments

Get comments for a given fund

Parameters

Parameter In Description
id
required
path Fund Id
before query A cursor; retrieves the previous rows before this ID
after query A cursor; retrieves the next rows after this ID
limit query The maximum number of results in the result set (limit 100, default 20)

Example response

{
  "data": [
    {
      "id": "gVKZC7RFtJ",
      "name": "Full Name",
      "text": "Hello!",
      "created_at": "2017-02-17T00:12:16Z"
    }
  ],
  "meta": {
    "has_more": true
  }
}

Response

This is a paginated collection. Responses will be contained inside a data array, while metadata will be contained inside a meta object.

Parameter Description
id
string
Comment ID
name
string
Commenter name
text
string
Comment text
created_at
timestamp
When the comment was created

fund.get.donations

Code samples

curl -X get https://api.gofundme.com/partner/v1/funds/Q2aWYAXtQK8A/donations \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ"
GET https://api.gofundme.com/partner/v1/funds/Q2aWYAXtQK8A/donations HTTP/1.1
Host: api.gofundme.com
Content-Type: application/json
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

GET /funds/{id}/donations

Get Fund Donations

Get donations for a given fund

Parameters

Parameter In Description
id
required
path Fund Id
before query A cursor; retrieves the previous rows before this ID
after query A cursor; retrieves the next rows after this ID
limit query The maximum number of results in the result set (limit 100, default 20)

Example response

{
  "data": [
    {
      "id": "3bHUuvLML",
      "amount": 50,
      "name": "Full Name",
      "text": "Get well soon!",
      "created_at": "2017-02-17T00:12:16Z"
    }
  ],
  "meta": {
    "has_more": true
  }
}

Response

This is a paginated collection. Responses will be contained inside a data array, while metadata will be contained inside a meta object.

Parameter Description
id
string
Donation ID
amount
integer
Donation amount in the fund’s currency
name
string
Name of the person who donated
text
string
Donation comment text
created_at
timestamp
When the donation was made

fund.get.updates

Code samples

curl -X get https://api.gofundme.com/partner/v1/funds/Q2aWYAXtQK8A/updates \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ"
GET https://api.gofundme.com/partner/v1/funds/Q2aWYAXtQK8A/updates HTTP/1.1
Host: api.gofundme.com
Content-Type: application/json
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

GET /funds/{id}/updates

Get Fund Updates

Get updates for a given fund

Parameters

Parameter In Description
id
required
path Fund Id
before query A cursor; retrieves the previous rows before this ID
after query A cursor; retrieves the next rows after this ID
limit query The maximum number of results in the result set (limit 100, default 20)

Example response

{
  "data": [
    {
      "id": "SGoXQkhfl",
      "text": "Hello!",
      "created_at": "2017-02-17T00:12:16Z"
    }
  ],
  "meta": {
    "has_more": true
  }
}

Response

This is a paginated collection. Responses will be contained inside a data array, while metadata will be contained inside a meta object.

Parameter Description
id
string
Update ID
text
string
Update text (HTML)
created_at
timestamp
When the update was created

fund.get.withdrawals

Code samples

curl -X get https://api.gofundme.com/partner/v1/funds/Q2aWYAXtQK8A/withdrawals \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ"
GET https://api.gofundme.com/partner/v1/funds/Q2aWYAXtQK8A/withdrawals HTTP/1.1
Host: api.gofundme.com
Content-Type: application/json
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

GET /funds/{id}/withdrawals

Get Fund Withdrawals

Get withdrawals for a given fund

Parameters

Parameter In Description
id
required
path Fund Id
before query A cursor; retrieves the previous rows before this ID
after query A cursor; retrieves the next rows after this ID
limit query The maximum number of results in the result set (limit 100, default 20)

Example response

{
  "data": [
    {
      "currency": "USD",
      "amount": 4575,
      "status": "COMPLETED",
      "started_at": "2017-02-17T00:12:16Z",
      "completed_at": "2017-02-24T00:02:03Z"
    }
  ],
  "meta": {
    "has_more": true
  }
}

Response

This is a paginated collection. Responses will be contained inside a data array, while metadata will be contained inside a meta object.

Parameter Description
currency
string
Currency withdrawn into
amount
string
Amount withdrawn in cents (E.I. 4575 equals $45.75 USD)
status
string
Status of withdrawal
started_at
timestamp
Date withdrawal was initiated
completed_at
timestamp
Date withdrawal was completed

User

User specific operations

user.create

Code samples

curl -X post https://api.gofundme.com/partner/v1/users \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ"
POST https://api.gofundme.com/partner/v1/users HTTP/1.1
Host: api.gofundme.com
Content-Type: application/json
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

POST /users

Create Fund

Creates a new GoFundMe user account

Body parameter

{
  "email": "person@example.org",
  "name": "Full Name",
  "password": "5tFPQpYA"
}

Parameters

Parameter In Description
email
required
body Account owner’s email address
name
required
body Account owner’s first and last name
password
required
body Account owner’s 8 digit or longer alpha numeric password

Example response

{
  "id": "b5BULvurAHFV",
  "email": "person@example.org",
  "name": "Full Name",
  "fund_creation_enabled": true,
  "state": "ACTIVE",
  "created_at": "2017-02-17T00:12:16Z",
  "claimed_at": "2017-02-24T00:02:03Z"
}

Response

Parameter Description
id
string
User Id
email
string
User’s email
name
string
User’s name
fund_creation_enabled
boolean
User can create new funds
state
string, ENUM
User State, active or not
created_at
timestamp
When the user was created
claimed_at
timestamp
When the user was claimed

user.get

Code samples

curl -X get https://api.gofundme.com/partner/v1/users/b5BULvurAHFV \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ"
GET https://api.gofundme.com/partner/v1/users/b5BULvurAHFV HTTP/1.1
Host: api.gofundme.com
Content-Type: application/json
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

GET /users/{id}

Get User

Get a single GoFundMe user account

Parameter In Description
id
required
path User Id

Example response

{
  "id": "b5BULvurAHFV",
  "email": "person@example.org",
  "name": "Full Name",
  "fund_creation_enabled": true,
  "state": "ACTIVE",
  "created_at": "2017-02-17T00:12:16Z",
  "claimed_at": "2017-02-24T00:02:03Z"
}

Response

Parameter Description
id
string
User Id
email
string
User’s email
name
string
User’s name
fund_creation_enabled
boolean
User can create new funds
state
string, ENUM
User State, active or not
created_at
timestamp
When the user was created
claimed_at
timestamp
When the user was claimed

user.create.kyc

Code samples

curl -X post https://api.gofundme.com/partner/v1/users/b5BULvurAHFV/kyc \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ"
POST https://api.gofundme.com/partner/v1/users/b5BULvurAHFV/kyc HTTP/1.1
Host: api.gofundme.com
Content-Type: application/json
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

POST /users/{id}/kyc

Create User KYC as individual or organization

Creates and stores a user’s KYC information. A user can define this information for either an individual (themselves) or an organization they represent. When a user KYCs as an organization we still require the account owner’s personal information in addition to organization_data.

Parameter In Description
id
string
path User Id

Body parameters for KYC as an individual

{
  "name": {
    "first": "First",
    "last": "Last"
  },
  "address": {
    "house": "Big House",
    "street_line1": "123 GoFundMe Dr.",
    "street_line2": "Apt. 18",
    "city": "San Diego",
    "region": "California",
    "postal_code": "92111",
    "country_code": "US"
  },
  "phone": {
    "country_code": "US",
    "number": "14085551234"
  },
  "personal_data": {
    "national_id" : "000-00-0000",
    "birth_date": "1987-05-25",
    "country_code": "US"
  }
}

Parameters for KYC as an individual

Dotted properties (eg. name.first) are sub-properties.

Parameter In Description
name.first
required
body Account owner’s first name
name.last
required
body Account owner’s last name
address.house body House name or number (For GB only)
address.street_line1
required
body Line 1 (street address, PO box, etc)
address.street_line2 body Line 2 (Apt, Unit, etc)
address.city
required
body City, town, suburb, etc
address.region
required
body State, province, county, etc
address.postal_code
required
body Postal/Zip code
address.country_code
required
body ISO 3166-1 alpha-2 country code
phone.country_code
required
body ISO 3166-1 alpha-2 country code of phone number
phone.number
required
body Phone number E164 format preferred
personal_data.national_id body Government issued ID of individual (US SSN)
personal_data.birth_date
required
body YYYY-MM-DD formatted date
personal_data.country_code
required
body ISO 3166-1 alpha-2 country code of national ID

Additional body content for KYC as an organization

{
  "organization_data": {
    "name": "Cool Company",
    "description": "Pretty sweet place to work.",
    "url": "https://www.example.com",
    "government_id": "12-123456",
    "address": {
      "house": "Big House",
      "street_line1": "123 GoFundMe Dr.",
      "street_line2": "Apt. 18",
      "city": "San Diego",
      "region": "California",
      "postal_code": "92111",
      "country_code": "US"
    }
  }
}

Additional parameters for KYC as an organization

Dotted properties (eg. organization_data.government_id) are sub-properties.

Parameter In Description
organization_data.name
required
body Organization’s name
organization_data.description
required
body Organization’s description
organization_data.url
required
body Organization’s website
organization_data.government_id
required
body Government issued tax ID of organization
organization_data.address.house body House name or number (For GB only)
organization_data.address.street_line1
required
body Line 1 (street address, PO box, etc)
organization_data.address.street_line2 body Line 2 (Apt, Unit, etc)
organization_data.address.city
required
body City, town, suburb, etc
organization_data.address.region
required
body State, province, county, etc
organization_data.address.postal_code
required
body Postal/Zip code
organization_data.address.country_code
required
body ISO 3166-1 alpha-2 country code

Example response (KYC as individual)

{
  "id": "j6a7L8arAHbD",
  "name": {
    "first": "First",
    "last": "Last"
  },
  "address": {
    "house": "Big House",
    "street_line1": "123 GoFundMe Dr.",
    "street_line2": "Apt. 18",
    "city": "San Diego",
    "region": "California",
    "postal_code": "92111",
    "country_code": "US"
  },
  "phone": {
    "country_code": "US",
    "number": "14085551234"
  },
  "personal_data": {
    "national_id" : "000-00-0000",
    "birth_date": "1987-05-25",
    "country_code": "US"
  },
  "created_at": "2017-02-17T00:12:16Z",
  "updated_at": "2017-02-17T00:12:16Z"
}

Response for KYC as an individual

Dotted properties (eg. name.first) are sub-properties.

Parameter Description
id User’s KYC id
name.first
string
Account owner’s first name
name.last
string
Account owner’s last name
address.house
string
House name or number (For GB only)
address.street_line1
string
Line 1 (street address, PO box, etc)
address.street_line2
string
Line 2 (Apt, Unit, etc)
address.city
string
City, town, suburb, etc
address.state
string
State, province, county, etc
address.postal_code
string
Postal/Zip code
address.country_code
string
ISO 3166-1 alpha-2 country code
phone.country_code
string
ISO 3166-1 alpha-2 country code of phone number
phone.number
string
Phone number E164 format preferred
personal_data.national_id
string
Government issued ID of individual
personal_data.birth_date
string
YYYY-MM-DD formatted date
personal_data.country_code
string
ISO 3166-1 alpha-2 country code of national ID
created_at
timestamp
Date KYC information was defined
updated_at
timestamp
Date KYC information was last updated

Example response (KYC as organization)

{
  "id": "j6a7L8arAHbD",
  "name": {
    "first": "First",
    "last": "Last"
  },
  "address": {
    "house": "Big House",
    "street_line1": "123 GoFundMe Dr.",
    "street_line2": "Apt. 18",
    "city": "San Diego",
    "region": "California",
    "postal_code": "92111",
    "country_code": "US"
  },
  "phone": {
    "country_code": "US",
    "number": "14085551234"
  },
  "personal_data": {
    "national_id" : "000-00-0000",
    "birth_date": "1987-05-25",
    "country_code": "US"
  },
  "organization_data": {
    "name": "Cool Company",
    "description": "Pretty sweet place to work.",
    "url": "https://www.example.com",
    "government_id": "12-123456",
    "address": {
      "house": "Big House",
      "street_line1": "123 GoFundMe Dr.",
      "street_line2": "Apt. 18",
      "city": "San Diego",
      "region": "California",
      "postal_code": "92111",
      "country_code": "US"
    }
  },
  "created_at": "2017-02-17T00:12:16Z",
  "updated_at": "2017-02-17T00:12:16Z"
}

Response for KYC as an organization

Dotted properties (eg. name.first) are sub-properties.

Parameter Description
id User’s KYC id
name.first
string
Account owner’s first name
name.last
string
Account owner’s last name
address.house
string
House name or number (For GB only)
address.street_line1
string
Line 1 (street address, PO box, etc)
address.street_line2
string
Line 2 (Apt, Unit, etc)
address.city
string
City, town, suburb, etc
address.state
string
State, province, county, etc
address.postal_code
string
Postal/Zip code
address.country_code
string
ISO 3166-1 alpha-2 country code
phone.country_code
string
ISO 3166-1 alpha-2 country code of phone number
phone.number
string
Phone number E164 format preferred
personal_data.national_id
string
Government issued ID of individual
personal_data.birth_date
string
YYYY-MM-DD formatted date
personal_data.country_code
string
ISO 3166-1 alpha-2 country code of national ID
organization_data.name
string
Organization’s name
organization_data.description
string
Organization’s description
organization_data.url
string
Organization’s website
organization_data.government_id
string
Government issued tax ID of organization
organization_data.address.house
string
House name or number (For GB only)
organization_data.address.street_line1
string
Line 1 (street address, PO box, etc)
organization_data.address.street_line2
string
Line 2 (Apt, Unit, etc)
organization_data.address.city
string
City, town, suburb, etc
organization_data.address.state
string
State, province, county, etc
organization_data.address.postal_code
string
Postal/Zip code
organization_data.address.country_code
string
ISO 3166-1 alpha-2 country code
created_at
timestamp
Date KYC information was defined
updated_at
timestamp
Date KYC information was last updated

user.get.kyc

Code samples

curl -X get https://api.gofundme.com/partner/v1/users/b5BULvurAHFV/kyc \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ"
GET https://api.gofundme.com/partner/v1/users/b5BULvurAHFV/kyc HTTP/1.1
Host: api.gofundme.com
Content-Type: application/json
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

GET /users/{id}/kyc

Get User KYC

Get a single GoFundMe user account

Parameter In Description
id
string
path User Id

Example response (KYC as individual)

{
  "id": "string",
  "name": {
    "first": "First",
    "last": "Last"
  },
  "address": {
    "house": "Big House",
    "street_line1": "123 GoFundMe Dr.",
    "street_line2": "Apt. 18",
    "city": "San Diego",
    "region": "California",
    "postal_code": "92111",
    "country_code": "US"
  },
  "phone": {
    "country_code": "US",
    "number": "14085551234"
  },
  "personal_data": {
    "national_id" : "000-00-0000",
    "birth_date": "1987-05-25",
    "country_code": "US"
  },
  "created_at": "2017-02-17T00:12:16Z",
  "updated_at": "2017-02-17T00:12:16Z"
}

Response for KYC as an individual

Dotted properties (eg. name.first) are sub-properties.

Parameter Description
id User’s KYC id
name.first
string
Account owner’s first name
name.last
string
Account owner’s last name
address.house
string
House name or number (For GB only)
address.street_line1
string
Line 1 (street address, PO box, etc)
address.street_line2
string
Line 2 (Apt, Unit, etc)
address.city
string
City, town, suburb, etc
address.state
string
State, province, county, etc
address.postal_code
string
Postal/Zip code
address.country_code
string
ISO 3166-1 alpha-2 country code
phone.country_code
string
ISO 3166-1 alpha-2 country code of phone number
phone.number
string
Phone number E164 format preferred
personal_data.national_id
string
Government issued ID of individual
personal_data.birth_date
string
YYYY-MM-DD formatted date
personal_data.country_code
string
ISO 3166-1 alpha-2 country code of national ID
created_at
timestamp
Date KYC information was defined
updated_at
timestamp
Date KYC information was last updated

Example response (KYC as organization)

{
  "id": "j6a7L8arAHbD",
  "name": {
    "first": "First",
    "last": "Last"
  },
  "address": {
    "house": "Big House",
    "street_line1": "123 GoFundMe Dr.",
    "street_line2": "Apt. 18",
    "city": "San Diego",
    "region": "California",
    "postal_code": "92111",
    "country_code": "US"
  },
  "phone": {
    "country_code": "US",
    "number": "14085551234"
  },
  "personal_data": {
    "national_id" : "000-00-0000",
    "birth_date": "1987-05-25",
    "country_code": "US"
  },
  "organization_data": {
    "name": "Cool Company",
    "description": "Pretty sweet place to work.",
    "url": "https://www.example.com",
    "government_id": "12-123456",
    "address": {
      "house": "Big House",
      "street_line1": "123 GoFundMe Dr.",
      "street_line2": "Apt. 18",
      "city": "San Diego",
      "region": "California",
      "postal_code": "92111",
      "country_code": "US"
    }
  },
  "created_at": "2017-02-17T00:12:16Z",
  "updated_at": "2017-02-17T00:12:16Z"
}

Response for KYC as an organization

Dotted properties (eg. name.first) are sub-properties.

Parameter Description
id User’s KYC id
name.first
string
Account owner’s first name
name.last
string
Account owner’s last name
address.house
string
House name or number (For GB only)
address.street_line1
string
Line 1 (street address, PO box, etc)
address.street_line2
string
Line 2 (Apt, Unit, etc)
address.city
string
City, town, suburb, etc
address.state
string
State, province, county, etc
address.postal_code
string
Postal/Zip code
address.country_code
string
ISO 3166-1 alpha-2 country code
phone.country_code
string
ISO 3166-1 alpha-2 country code of phone number
phone.number
string
Phone number E164 format preferred
personal_data.national_id
string
Government issued ID of individual
personal_data.birth_date
string
YYYY-MM-DD formatted date
personal_data.country_code
string
ISO 3166-1 alpha-2 country code of national ID
organization_data.name
string
Organization’s name
organization_data.description
string
Organization’s description
organization_data.url
string
Organization’s website
organization_data.government_id
string
Government issued tax ID of organization
organization_data.address.house
string
House name or number (For GB only)
organization_data.address.street_line1
string
Line 1 (street address, PO box, etc)
organization_data.address.street_line2
string
Line 2 (Apt, Unit, etc)
organization_data.address.city
string
City, town, suburb, etc
organization_data.address.state
string
State, province, county, etc
organization_data.address.postal_code
string
Postal/Zip code
organization_data.address.country_code
string
ISO 3166-1 alpha-2 country code
created_at
timestamp
Date KYC information was defined
updated_at
timestamp
Date KYC information was last updated

user.edit.kyc

Code samples

curl -X put https://api.gofundme.com/partner/v1/users/b5BULvurAHFV/kyc \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ"
POST https://api.gofundme.com/partner/v1/users/b5BULvurAHFV/kyc HTTP/1.1
Host: api.gofundme.com
Content-Type: application/json
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

PUT /users/{id}/kyc

Edit User KYC

Edit User KYC information. This can be used to edit any of the fields available to either KYC Individual or KYC organization. KYC can not be converted between individual and organization this must be done by creating a new record via User KYC Create

Parameter In Description
id
string
path User Id

Body for KYC parameters as an individual or organization

{
  "name": {
    "first": "First",
    "last": "Last"
  },
  "address": {
    "house": "Big House",
    "street_line1": "123 GoFundMe Dr.",
    "street_line2": "Apt. 18",
    "city": "San Diego",
    "region": "California",
    "postal_code": "92111",
    "country_code": "US"
  },
  "phone": {
    "country_code": "US",
    "number": "14085551234"
  },
  "personal_data": {
    "national_id" : "000-00-0000",
    "birth_date": "1987-05-25",
    "country_code": "US"
  },
  "organization_data": {
    "name": "Cool Company",
    "description": "Pretty sweet place to work.",
    "url": "https://www.example.com",
    "government_id": "12-123456",
    "address": {
      "house": "Big House",
      "street_line1": "123 GoFundMe Dr.",
      "street_line2": "Apt. 18",
      "city": "San Diego",
      "region": "California",
      "postal_code": "92111",
      "country_code": "US"
    }
  }
}

Parameters for KYC as an individual or organization

Dotted properties (eg. organization_data.government_id) are sub-properties.

Parameter In Description
name.first body Account owner’s first name
name.last body Account owner’s last name
address.house_number_or_name body For GB only
address.line1 body Line 1 (street address, PO box, etc)
address.line2 body Line 2 (Apt, Unit, etc)
address.city body City, town, suburb, etc
address.state body State, province, county, etc
address.postal_code body Postal/Zip code
address.country_code body ISO 3166-1 alpha-2 country code
phone.country_code body ISO 3166-1 alpha-2 country code of phone number
phone.number body Phone number E164 format preferred
personal_data.national_id body Government issued ID of individual
personal_data.national_id_last4 body For US individuals
personal_data.birth_date body YYYY-MM-DD formatted date
personal_data.country_code body ISO 3166-1 alpha-2 country code of national ID
organization_data.name body Organization’s name
organization_data.description body Organization’s description
organization_data.url body Organization’s website
organization_data.government_id body Government issued tax ID of organization
organization_data.address.house body House name or number (For GB only)
organization_data.address.street_line1 body Line 1 (street address, PO box, etc)
organization_data.address.street_line2 body Line 2 (Apt, Unit, etc)
organization_data.address.city body City, town, suburb, etc
organization_data.address.state body State, province, county, etc
organization_data.address.postal_code body Postal/Zip code
organization_data.address.country_code body ISO 3166-1 alpha-2 country code

user.create.bank

Code samples

curl -X post https://api.gofundme.com/partner/v1/users/b5BULvurAHFV/bank \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ"
POST https://api.gofundme.com/partner/v1/users/b5BULvurAHFV/bank HTTP/1.1
Host: api.gofundme.com
Content-Type: application/json
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

POST /users/{id}/bank

Create User Bank Settlement information

Creates or replaces a user’s Bank settlement information

Parameter In Description
id
string
path User Id

Body parameters

{
  "location_code": "string",
  "bank_code": "string",
  "account_number": "string",
  "account_type": "checking",
  "bank_name": "string"
}

Parameters for Bank Settlement

Parameter In Description
location_code
required
body Bank Location Code - Transit (Canada), Routing Transit Number (US)
bank_code body Bank Code - Institution Number (Canada)
account_number
required
body Bank Account Number
account_type
required
body Bank Account Type: Checking/Savings
bank_name
required
body Name of the Bank (e.g. Bank of America)

Example response

{
  "id": "string",
  "location_code": "string",
  "bank_code": "string",
  "account_number": "string",
  "account_type": "checking",
  "bank_name": "string",
  "created_at": "2017-02-17T00:12:16Z",
  "updated_at": null
}

Response

Parameter Description
id
string
User’s Bank Settlement id
location_code
string
Bank Location Code - Transit (Canada), Routing Transit Number (US)
bank_code Bank Code - Institution Number (Canada)
account_number
string
Bank Account Number
account_type
string, ENUM
Bank Account Type: Checking/Savings
bank_name
string
Name of the Bank (e.g. Bank of America)
created_at
timestamp
Date KYC information was defined
updated_at
timestamp
Date KYC information was last updated

user.get.bank

Code samples

curl -X get https://api.gofundme.com/partner/v1/users/b5BULvurAHFV/bank \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ"
GET https://api.gofundme.com/partner/v1/users/b5BULvurAHFV/bank HTTP/1.1
Host: api.gofundme.com
Content-Type: application/json
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

GET /users/{id}/bank

Get User Bank Settlement information

Get a single User’s bank Settlement information

Parameter In Description
id
string
path User Id

Example response

{
  "id": "string",
  "location_code": "string",
  "bank_code": "string",
  "account_number": "string",
  "account_type": "checking",
  "bank_name": "string",
  "created_at": "2017-02-17T00:12:16Z",
  "updated_at": null
}

Response

Parameter Description
id
string
User’s Bank Settlement id
location_code
string
Bank Location Code - Transit (Canada), Routing Transit Number (US)
bank_code Bank Code - Institution Number (Canada)
account_number
string
Bank Account Number
account_type
string, ENUM
Bank Account Type: Checking/Savings
bank_name
string
Name of the Bank (e.g. Bank of America)
created_at
timestamp
Date KYC information was defined
updated_at
timestamp
Date KYC information was last updated

user.edit.bank

Code samples

curl -X put https://api.gofundme.com/partner/v1/users/b5BULvurAHFV/bank \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ"
PUT https://api.gofundme.com/partner/v1/users/b5BULvurAHFV/bank HTTP/1.1
Host: api.gofundme.com
Content-Type: application/json
Accept: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

PUT /users/{id}/bank

Edit User Bank Settlement information

Edit a user’s Bank settlement information

Parameter In Description
id
string
path User Id

Body parameters

{
  "location_code": "string",
  "bank_code": "string",
  "account_number": "string",
  "account_type": "checking",
  "bank_name": "string"
}

Parameters for Bank Settlement

Parameter In Description
location_code body Bank Location Code - Transit (Canada), Routing Transit Number (US)
bank_code body Bank Code - Institution Number (Canada)
account_number body Bank Account Number
account_type body Bank Account Type: Checking/Savings
bank_name body Name of the Bank (e.g. Bank of America)

Object models

Address

Address Model

{
  "address": {
    "house": "Big House",
    "street_line1": "123 GoFundMe Dr.",
    "street_line2": "Apt. 18",
    "city": "San Diego",
    "region": "California",
    "postal_code": "92111",
    "country_code": "US"
  }
}

Parameters

Dotted properties (eg. address.line1) are sub-properties.

Parameter Description
address.house House name or number (For GB only)
address.street_line1
required
Line 1 (street address, PO box, etc)
address.street_line2 Line 2 (Apt, Unit, etc)
address.city
required
City, town, suburb, etc
address.region
required
State, province, county, etc
address.postal_code
required
Postal/Zip code
address.country_code
required
ISO 3166-1 alpha-2 country code

Name

Name Model

{
  "name": {
    "first": "Wonder",
    "last": "Woman"
  }
}

Parameters

Dotted properties (eg. name.first) are sub-properties.

Parameter Description
name.first
required
Account owner’s first name
name.last
required
Account owner’s last name

Phone

Phone Number Model

{
  "phone": {
    "country_code": "US",
    "number": "14085551234"
  }
}

Parameters

Dotted properties (eg. phone.country_code) are sub-properties.

Parameter Description
phone.country_code
required
ISO 3166-1 alpha-2 country code of phone number
phone.number
required
Phone number E164 format preferred

Campaign Claim Flow

Subject: Activate your GoFundMe account

When you launch a fund through the fund.launch endpoint, an email is sent to the user’s email address with a special link allowing them to claim their campaign.

Once an account and/or campaign are claimed, the claim link will be ignored if used again; site usage will proceed as normal in this case. A user cannot make a claim more than once, nor can anyone else use the link to sign up using a different email address.

Email Reminders

Reminder emails are triggered at approximately 5:00pm PST for two days following the initial email. In total the user should receive three emails.

Email Fields

The claim email can be co branded using the consumer endpoints as well as populated through the information provided through fund.create.

Field Description
First First name of the user created or assigned to a given fund
Last Last name of the user created or assigned to a given fund
Consumer The consumer or partners operating alias or name.

The steps for claiming a campaign are slightly different based on whether the user is an existing GoFundMe user or a new user created through the API.

New Users

Upon clicking the link sent to them, a new user will be directed to a page where they will be asked to choose a password for their account. After doing so, they will be asked to sign in with their email address and the password they just created.

The campaign approval process will then begin, where the user can approve or adjust the various details of their campaign. Once the campaign is live the user will be encouraged to share it with their contacts. At this point the campaign will be ready to receive donations.

Existing Users

For security reasons, currently signed-in users will be signed out and asked to click the link in the claim email again to proceed.

Existing users can use the email link or sign in as normal, after which their dashboard will appear. A campaign created for them through the API will appear here amongst any “regular” campaigns; clicking it will start the approval process as above.

Claiming on Mobile Devices

Claiming an account/campaign works similarly for users on mobile devices, albeit with a simpler, more mobile-friendly interface.