GoFundMe GraphQL API

Welcome

The GoFundMe API enables partners to allow their users to create fundraiser pages without ever leaving the website, retrieve fundraiser and donation data to report and display, search through supported GoFundMe charities, and (coming soon) integrate donations and fundraiser search & discovery capabilities into their platforms.

By using GoFundMe's API, you're not just coding; you're contributing to a global movement of mutual support, one line of code at a time.

Getting started

Welcome to our platform! This guide will help you get started with our services.

Step 1: Log in to Partner page

  1. Go to the Partner page.
  2. Log in with your credentials.
  3. If you can't log in or can't find your company, contact GoFundMe support for assistance.

Step 2: Get your Partner code

  1. Once you can see your partner dashboard, you should see a referral link at the bottom of the dashboard e.g. https://gofundme.com/partners/create/{code}
  2. The last segment of that link is your partnership's unique referral code

Step 3: Create an API key

  1. Click on your company button in the top right corner.
  2. Select "Account".
  3. At the bottom, you have the option to create an API key.
  4. Create a new API key and save it somewhere secure, as you will only be able to view it once.

Step 4: Set up your request

  1. Open Postman (or your preferred tool for sending POST requests).
  2. Set the request type to POST.
  3. Use the URL https://graphql.gofundme.com/graphql.
  4. Add headers:
    • x-partner-code: Your partner code
    • x-api-key: Your API key
  5. Add your GraphQL query as the POST body (see example query below)
  6. Send the request
curl --location 'https://graphql.gofundme.com/graphql' \
--header 'x-partner-code: YOUR_PARTNER_CODE' \
--header 'x-api-key: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{"query":"query { partner { code name}}"}'
query {
   partner {
    code
    name
  }
}

If you provided your key correctly, you should get back a response containing your partnership's name and code.

{
  "data": {
    "partner": {
      "code": "GFM",
      "name": "GoFundMe"
    }
  }
}

Next steps

Congratulations! You have successfully completed the getting started guide. Here are some next steps to explore:

Searching for charities

This guide will help you get started with searching for charities supported by GoFundMe or retrieving specific charity details using the nonprofit’s PPGF ID.

How it works

The charitySearch query allows you to retrieve a list of charities that GoFundMe supports based on keywords. This can be used to offer users an option to search for charities to select as a beneficiary for their fundraiser.

The charityByPaypalNonprofitId query allows you to retrieve details of a specific charity using the PPGF ID of that nonprofit. This endpoint is useful for determining which GoFundMe ID a charity has if a pre-selected charity will be the beneficiary of the fundraiser.

Example use cases

charitySearch

Let’s say you want to allow your users to search for any nonprofit to fundraiser for out of the list of available GoFundMe beneficiaries in a particular country. Pass the user’s search term into charitySearch and display the corresponding response back to the user to allow them to select which charity they would like to fundraise for. We encourage using the charity’s npoId (PPGF ID) in the fundraiserCreateDraft mutation.

Search for Red Cross with a country filter GB and return:

  • GoFundMe ID
  • PPGF ID
  • Charity Name
  • Charity Country

Query example:

{
  charitySearch(searchTerm: "red cross", filter: {
    countryCode: "GB"
  }) {
    id
    npoId
    name
    country
  }
}

Response:

{
  "data": {
    "charitySearch": [
      {
        "id": "4",
        "npoId": "12345",
        "name": "British Red Cross",
        "country": "GB"
      }
    ]
  }
}

charityByPaypalNonprofitId

Now let’s say you want to enable one (or several) pre-selected charities to the beneficiary. To find the GoFundMe ID for that specific charity, to use as a CharityInput in fundraiserCreateDraft, query charityByPaypalNonprofitId using the corresponding PPGF ID as a parameter.

Search a charity given its PPGF ID and return:

  • GoFundMe ID
  • Charity Name
  • Charity Description

Query example:

{
  charityByPaypalNonprofitId(paypalNonprofitId: 14886) {
    npoId
    name
  }
}

Response:

{
  "data": {
    "charityByPaypalNonprofitId": {
      "npoId": "14886",
      "name": "British Red Cross"
    }
  }
}

Creating and launching fundraisers

This guide will help you get started with programmatically creating and publishing fundraisers on GoFundMe. We currently only support Charity fundraisers created via API.

How it works

The fundraiserCreateDraft mutation allows you to create a draft for a new fundraiser. The partnerPhotoUpload mutation is used in the create process to upload an image and then supply the fundraiserCreateDraft with an image URL.

The fundraiserPublish mutation allows you to publish the created fundraiser. The fundraiser will not be live to the user until it is published.

Example use cases

partnerPhotoUpload

First, upload an image to be used as the cover media for the fundraiser, using the partnerPhotoUpload mutation. Because the request must be multipart/form-data, how your query is structured will vary based on which graphql client you are using. Regardless of which client you use, you must also provide graphql-require-preflight: true on this request because it is multipart.

CURL example:

curl --location 'https://graphql.gofundme.com/graphql' \
--header 'graphql-require-preflight: true' \
--header 'x-api-key: YOUR_API_KEY' \
--header 'x-partner-code: YOUR_PARTNER_CODE' \
--form 'operations={"query":"mutation partnerPhotoUpload(\u0024input:Upload!) {\n  partnerPhotoUpload(input: \u0024input) {id url fileSize fileType createdAt } \n}"}' \
--form 'map={"0": ["variables.input"]}' \
--form '0=@"/path/to/local/file/file.png"'

Response:

{
    "data": {
        "partnerPhotoUpload": {
            "id": "59",
            "url": "https://www.gofundme.com/partnerassets/pitdev/partner-uploads/1722550606/ca7a4e16-5ac6-4c18-a1be-7bcce969bd08.jpeg",
            "fileSize": 15273,
            "fileType": "image/jpeg",
            "createdAt": "2024-08-01T17:16:47.000-05:00"
        }
    }
}

fundraiserCreateDraft

Then create a draft fundraiser, calling the fundraiserCreateDraft mutation with required inputs. Note: use the URL from the response of partnerPhotoUpload as the mediaUrl.

  • country
  • category
  • beneficiaryType
  • charity
  • postalCode
  • goalAmount
  • title
  • description (note: at the moment we do not support full HTML fundraiser descriptions, including emojis)
  • mediaUrl

Mutation example:

mutation {
  fundraiserCreateDraft(input: {
    title: "A Charity Fundraiser"
    category: MEDICAL
    charity: {
      paypalNonprofitId: 14886
    }
    country: "GB"
    postalCode: "E1 8RU"
    goalAmount: 5000
    beneficiaryType: CHARITY
    mediaUrl: "https://www.gofundme.com/partnerassets/pitdev/partner-uploads/1722481246/5a20d214-6685-4348-9789-57fd1b80d0bd.jpeg"
    partnerAffiliation: {
      sourceApplication: "Another Application"
    }
    description: "We are raising money for the British Red Cross. Please show your support by donating and sharing this fundraiser with your community."
  }) {
    fundraiser {
      slug
      fundId
      title
    }
    userErrors {
      field,
      message
    }
  }
}

Response:

{
  "data": {
    "fundraiserCreateDraft": {
      "fundraiser": {
        "slug": "e5957e20-5335-4b8c-b1e3-cd8fc8d5d112",
        "fundId": "59024133",
        "title": "A Charity Fundraiser"
      },
      "userErrors": []
    }
  }
}

fundraiserPublish

To publish the draft fundraiser, use the fundraiserPublish mutation with the fundId from fundraiserCreateDraft as the input.

Mutation example:

mutation {
  fundraiserPublish(id: 59024133) {
    userErrors {
      message
    }
    fundraiser {
      title
      slug
      fundId
    }
  }
}

Response:

{
  "data": {
    "fundraiserPublish": {
      "userErrors": [],
      "fundraiser": {
        "title": "A Charity Fundraiser",
        "slug": "a-fundraiser-slug",
        "fundId": "59024133"
      }
    }
  }
}

Retrieving donations/fundraisers

This guide will help you get started with querying data to retrieve all the fundraisers or donations associated with fundraisers that were published via your GoFundMe partner account.

How it works

The partner.fundraiser query allows you to retrieve all fundraisers associated with your partner account. The fundraiser.donations query allows you to retrieve all donations to a given fundraiser. The partner.donations query allows you to retrieve all donations to all fundraisers associated with your partner account.

Example use cases

partner.fundraisers

To query all fundraisers associated with your partner account partner.fundraisers.

Query example:

query {
  partner {
    fundraisers {
      edges {
       node {
         title
         description
       }
      }
    }
  }
}

Response:

{
  "data": {
    "partner": {
      "fundraisers": {
        "edges": [
          {
            "node": {
              "title": "Partner Fundraiser 1",
              "description": "A fundraiser description for a test campaign"
            }
          },
          {
            "node": {
              "title": "Partner Fundraiser 2",
              "description": "Another description for a test campaign"
            }
          }
        ]
      }
    }
  }
} 

fundraiser.donations

To query all donations to one particular fundraiser, use fundraiser.donations. Use pagination and hasNextPage to determine when you’ve reached the end of a connection.

Query example:

query {
  fundraiser(slug: "example-campaign") {
    donations {
      pageInfo {
        hasNextPage
        hasPreviousPage
        startCursor
      }
      edges {
        cursor
        node {
          name
          amount {
            currencyCode
            amount
          }
          createdAt
        }
      }
    }
  }
}

Response:

{
  "data": {
    "fundraiser": {
      "donations": {
        "pageInfo": {
          "hasNextPage": true,
          "hasPreviousPage": false,
          "startCursor": "RG9uYXRpb246aWQ6NzYyODM4OTI1"
        },
        "edges": [
          {
            "cursor": "RG9uYXRpb246aWQ6NzYyODM4OTI1",
            "node": {
              "name": "Test Donor",
              "amount": {
                "currencyCode": "USD",
                "amount": 5
              },
              "createdAt": "2023-03-17T12:40:33.000-05:00"
            }
          },
          {
            "cursor": "RG9uYXRpb246aWQ6NzYyODg4ODk1",
            "node": {
              "name": "John Doh",
              "amount": {
                "currencyCode": "USD",
                "amount": 5
              },
              "createdAt": "2023-03-27T16:32:20.000-05:00"
            }
          },
          {
            "cursor": "RG9uYXRpb246aWQ6NzYyODkyODY1",
            "node": {
              "name": "Another Donor",
              "amount": {
                "currencyCode": "USD",
                "amount": 5
              },
              "createdAt": "2023-03-28T13:42:06.000-05:00"
            }
          }
        ]
      }
    }
  }

partner.donations

To query all donations associated with your partner account partner.donations. Use pagination and hasNextPage to determine when you’ve reached the end of a connection.

Query example:

query {
  partner {
    donations {
      pageInfo {
        hasNextPage
        hasPreviousPage
        startCursor
      }
      edges {
       node {
         name
         amount {
          currencyCode
          amount
        }
        fundraiser {
          title
          fundId
        }
       }
      }
    }
  }
}

Response:

{
  "data": {
    "partner": {
      "donations": {
        "pageInfo": {
          "hasNextPage": true,
          "hasPreviousPage": false,
          "startCursor": "RG9uYXRpb246aWQ6NzYxNTg1NjIz"
        },
        "edges": [
          {
            "node": {
              "name": "Archer Woolery",
              "amount": {
                "currencyCode": "USD",
                "amount": 5
              },
              "fundraiser": {
                "title": "Adyen test campaign",
                "fundId": "33760977"
              }
            }
          },
          {
            "node": {
              "name": "Archer Woolery",
              "amount": {
                "currencyCode": "USD",
                "amount": 5
              },
              "fundraiser": {
                "title": "Adyen test campaign",
                "fundId": "33760977"
              }
            }
          },
          {
            "node": {
              "name": "Archer Woolery",
              "amount": {
                "currencyCode": "USD",
                "amount": 5
              },
              "fundraiser": {
                "title": "Adyen test campaign",
                "fundId": "33760977"
              }
            }
          },
          {
            "node": {
              "name": "Product Testing",
              "amount": {
                "currencyCode": "USD",
                "amount": 7
              },
              "fundraiser": {
                "title": "Adyen test campaign",
                "fundId": "33760977"
              }
            }
          },
          {
            "node": {
              "name": "Ksenia Cat",
              "amount": {
                "currencyCode": "USD",
                "amount": 7
              },
              "fundraiser": {
                "title": "Adyen test campaign",
                "fundId": "33760977"
              }
            }
          }
        ]
      }
    }
  }
}

Queries

charityByPaypalNonprofitId

Description

Gets a charity by Paypal Nonprofit ID

Response

Returns a Charity

Arguments

Name Description
paypalNonprofitId - ID! Paypal Nonprofit ID

Query

query charityByPaypalNonprofitId($paypalNonprofitId: ID!) {
  charityByPaypalNonprofitId(paypalNonprofitId: $paypalNonprofitId) {
    id
    npoId
    ein
    name
    categoryCode
    description
    city
    state
    country
    zipCode
    addressLine1
    logo {
      ...CharityPhotoFragment
    }
    slug
    paypalActivationStatus
    paypalEnrollmentStatus
    defaultFundId
    isSeoIndexable
    status
    verifiedAt
    details {
      ...CharityDetailsFragment
    }
    socials {
      ...CharitySocialFragment
    }
    donations {
      ...DonationConnectionFragment
    }
    recentDonations {
      ...DonationConnectionFragment
    }
    fundraisers {
      ...FundraiserConnectionFragment
    }
    charityAggregates {
      ...CharityAggregatesFragment
    }
  }
}

Variables

{"paypalNonprofitId": 4}

Response

{
  "data": {
    "charityByPaypalNonprofitId": {
      "id": "4",
      "npoId": "abc123",
      "ein": "xyz789",
      "name": "abc123",
      "categoryCode": "abc123",
      "description": "xyz789",
      "city": "abc123",
      "state": "xyz789",
      "country": "abc123",
      "zipCode": "xyz789",
      "addressLine1": "xyz789",
      "logo": CharityPhoto,
      "slug": "abc123",
      "paypalActivationStatus": 123,
      "paypalEnrollmentStatus": 123,
      "defaultFundId": "4",
      "isSeoIndexable": true,
      "status": "INACTIVE",
      "verifiedAt": "2007-12-03T10:15:30Z",
      "details": CharityDetails,
      "socials": CharitySocial,
      "donations": DonationConnection,
      "recentDonations": DonationConnection,
      "fundraisers": FundraiserConnection,
      "charityAggregates": CharityAggregates
    }
  }
}

charitySearch

Description

Gets charities with keywords similar to the searchTerm

Response

Returns [Charity!]!

Arguments

Name Description
searchTerm - String
filter - CharityFilter

Query

query charitySearch(
  $searchTerm: String,
  $filter: CharityFilter
) {
  charitySearch(
    searchTerm: $searchTerm,
    filter: $filter
  ) {
    id
    npoId
    ein
    name
    categoryCode
    description
    city
    state
    country
    zipCode
    addressLine1
    logo {
      ...CharityPhotoFragment
    }
    slug
    paypalActivationStatus
    paypalEnrollmentStatus
    defaultFundId
    isSeoIndexable
    status
    verifiedAt
    details {
      ...CharityDetailsFragment
    }
    socials {
      ...CharitySocialFragment
    }
    donations {
      ...DonationConnectionFragment
    }
    recentDonations {
      ...DonationConnectionFragment
    }
    fundraisers {
      ...FundraiserConnectionFragment
    }
    charityAggregates {
      ...CharityAggregatesFragment
    }
  }
}

Variables

{
  "searchTerm": "abc123",
  "filter": CharityFilter
}

Response

{
  "data": {
    "charitySearch": [
      {
        "id": 4,
        "npoId": "abc123",
        "ein": "xyz789",
        "name": "abc123",
        "categoryCode": "abc123",
        "description": "abc123",
        "city": "xyz789",
        "state": "abc123",
        "country": "abc123",
        "zipCode": "xyz789",
        "addressLine1": "abc123",
        "logo": CharityPhoto,
        "slug": "xyz789",
        "paypalActivationStatus": 123,
        "paypalEnrollmentStatus": 123,
        "defaultFundId": 4,
        "isSeoIndexable": false,
        "status": "INACTIVE",
        "verifiedAt": "2007-12-03T10:15:30Z",
        "details": CharityDetails,
        "socials": CharitySocial,
        "donations": DonationConnection,
        "recentDonations": DonationConnection,
        "fundraisers": FundraiserConnection,
        "charityAggregates": CharityAggregates
      }
    ]
  }
}

fundraiser

Description

Gets a fundraiser by slug / url

Response

Returns a Fundraiser

Arguments

Name Description
slug - ID! Fundraiser slug

Query

query fundraiser($slug: ID!) {
  fundraiser(slug: $slug) {
    deprecatedNestedField
    id
    fundId
    autoFbPostMode
    expectedBeneficiaryRelation
    categoryId
    category
    charity {
      ...CharityFragment
    }
    currentAmount {
      ...MoneyFragment
    }
    defaultUrl
    defaultSlug
    donationCount
    commentsEnabled
    donationsEnabled
    smartGoalsEnabled
    smartGoalsOptIn
    enableContact
    isGfmDotOrgFund
    hasDonations
    hasGfmOrgDonation
    fundDescription
    description
    fundName
    title
    goalAmount {
      ...MoneyFragment
    }
    userDefinedGoalAmount {
      ...MoneyFragment
    }
    goalDeadline
    deadline
    mediaType
    projectType
    serviceDate
    templateId
    turnOffDonations
    url
    slug
    redirectUrl
    mediaId
    visibleInSearch
    deactivated
    state
    inDegradedMode
    isLaunched
    isPublished
    fundraiserImageUrl
    mediaUrl
    fundraiserPhoto {
      ...FundraiserPhotoFragment
    }
    photo {
      ...FundraiserPhotoFragment
    }
    launchDate
    publishedAt
    socialShareLastUpdate
    location {
      ...LocationFragment
    }
    tags
    team {
      ...TeamFragment
    }
    partner {
      ...PartnerFragment
    }
    isPersonalCharity
    charityOrganized
    lastDonationAt
    donations {
      ...DonationConnectionFragment
    }
    donationsOffsetPagination {
      ...DonationConnectionFragment
    }
    donationsFromShares {
      ...DonationConnectionFragment
    }
    commentsOffsetPagination {
      ...CommentConnectionFragment
    }
    teamMembers {
      ...TeamMemberFragment
    }
    commentCount
    updateCount
    uniqueDonorCount
    fundraiserHeartCount
    heartCount
    socialShareCount
    photoCounts {
      ...PhotoCountsFragment
    }
    donationsInLast48HoursCount
    partnerExternalOrganizer {
      ...PartnerExternalOrganizerFragment
    }
    autoThank {
      ...AutoThankFragment
    }
    goalLog {
      ...GoalFragment
    }
    instagramDeepLink
    isLinkedWithMeta
    galleryImages {
      ...PhotoFragment
    }
    suggestedGoalAmount {
      ...SuggestedGoalAmountFragment
    }
  }
}

Variables

{"slug": "4"}

Response

{
  "data": {
    "fundraiser": {
      "deprecatedNestedField": "xyz789",
      "id": 4,
      "fundId": "4",
      "autoFbPostMode": false,
      "expectedBeneficiaryRelation": "YOURSELF",
      "categoryId": 4,
      "category": "EMERGENCIES",
      "charity": Charity,
      "currentAmount": Money,
      "defaultUrl": "abc123",
      "defaultSlug": "xyz789",
      "donationCount": 987,
      "commentsEnabled": false,
      "donationsEnabled": true,
      "smartGoalsEnabled": true,
      "smartGoalsOptIn": "ENABLED",
      "enableContact": false,
      "isGfmDotOrgFund": true,
      "hasDonations": false,
      "hasGfmOrgDonation": false,
      "fundDescription": "xyz789",
      "description": "xyz789",
      "fundName": "xyz789",
      "title": "abc123",
      "goalAmount": Money,
      "userDefinedGoalAmount": Money,
      "goalDeadline": "2007-12-03T10:15:30Z",
      "deadline": "2007-12-03T10:15:30Z",
      "mediaType": "UNKNOWN",
      "projectType": "UNKNOWN",
      "serviceDate": "2007-12-03T10:15:30Z",
      "templateId": 123,
      "turnOffDonations": true,
      "url": "xyz789",
      "slug": "abc123",
      "redirectUrl": "xyz789",
      "mediaId": "xyz789",
      "visibleInSearch": false,
      "deactivated": false,
      "state": "CAMPAIGNLITE",
      "inDegradedMode": true,
      "isLaunched": false,
      "isPublished": true,
      "fundraiserImageUrl": Url,
      "mediaUrl": Url,
      "fundraiserPhoto": FundraiserPhoto,
      "photo": FundraiserPhoto,
      "launchDate": "2007-12-03T10:15:30Z",
      "publishedAt": "2007-12-03T10:15:30Z",
      "socialShareLastUpdate": "2007-12-03T10:15:30Z",
      "location": Location,
      "tags": ["abc123"],
      "team": Team,
      "partner": Partner,
      "isPersonalCharity": false,
      "charityOrganized": false,
      "lastDonationAt": "2007-12-03T10:15:30Z",
      "donations": DonationConnection,
      "donationsOffsetPagination": DonationConnection,
      "donationsFromShares": DonationConnection,
      "commentsOffsetPagination": CommentConnection,
      "teamMembers": [TeamMember],
      "commentCount": 123,
      "updateCount": 123,
      "uniqueDonorCount": 987,
      "fundraiserHeartCount": 123,
      "heartCount": 123,
      "socialShareCount": 123,
      "photoCounts": PhotoCounts,
      "donationsInLast48HoursCount": 123,
      "partnerExternalOrganizer": PartnerExternalOrganizer,
      "autoThank": AutoThank,
      "goalLog": [Goal],
      "instagramDeepLink": "abc123",
      "isLinkedWithMeta": false,
      "galleryImages": [Photo],
      "suggestedGoalAmount": SuggestedGoalAmount
    }
  }
}

partner

Description

Data and Queries that are pertinent to a partner (requires partner API Key)

Response

Returns a Partner

Query

query partner {
  partner {
    id
    name
    code
    logoUrl
    allowCobranding
    fundraisers {
      ...FundraiserConnectionFragment
    }
    donations {
      ...DonationConnectionFragment
    }
  }
}

Response

{
  "data": {
    "partner": {
      "id": "4",
      "name": "xyz789",
      "code": "abc123",
      "logoUrl": Url,
      "allowCobranding": false,
      "fundraisers": FundraiserConnection,
      "donations": DonationConnection
    }
  }
}

Mutations

fundraiserCreateDraft

Description

Create a new fundraiser, which will initially be in a draft state. Use the fundraiserPublish mutation to make a fundraiser publicly visible

Response

Returns a FundraiserResponse

Arguments

Name Description
input - FundraiserInput!

Query

mutation fundraiserCreateDraft($input: FundraiserInput!) {
  fundraiserCreateDraft(input: $input) {
    fundraiser {
      ...FundraiserFragment
    }
    userErrors {
      ...UserErrorFragment
    }
  }
}

Variables

{"input": FundraiserInput}

Response

{
  "data": {
    "fundraiserCreateDraft": {
      "fundraiser": Fundraiser,
      "userErrors": [UserError]
    }
  }
}

fundraiserPublish

Description

Publish a fundraiser

Response

Returns a FundraiserResponse

Arguments

Name Description
id - ID!
input - FundraiserPublishInput

Query

mutation fundraiserPublish(
  $id: ID!,
  $input: FundraiserPublishInput
) {
  fundraiserPublish(
    id: $id,
    input: $input
  ) {
    fundraiser {
      ...FundraiserFragment
    }
    userErrors {
      ...UserErrorFragment
    }
  }
}

Variables

{
  "id": "4",
  "input": FundraiserPublishInput
}

Response

{
  "data": {
    "fundraiserPublish": {
      "fundraiser": Fundraiser,
      "userErrors": [UserError]
    }
  }
}

fundraiserUpdate

Description

Update a fundraiser Use the fundraiserPublish mutation to make a fundraiser publicly visible

Response

Returns a FundraiserResponse

Arguments

Name Description
id - ID!
input - FundraiserInput!

Query

mutation fundraiserUpdate(
  $id: ID!,
  $input: FundraiserInput!
) {
  fundraiserUpdate(
    id: $id,
    input: $input
  ) {
    fundraiser {
      ...FundraiserFragment
    }
    userErrors {
      ...UserErrorFragment
    }
  }
}

Variables

{
  "id": "4",
  "input": FundraiserInput
}

Response

{
  "data": {
    "fundraiserUpdate": {
      "fundraiser": Fundraiser,
      "userErrors": [UserError]
    }
  }
}

partnerPhotoUpload

Description

Allows a partner to upload a public asset. The content-type for this mutation must be multipart/form-data

Response

Returns a PartnerUpload

Arguments

Name Description
input - Upload! The file to upload

Query

mutation partnerPhotoUpload($input: Upload!) {
  partnerPhotoUpload(input: $input) {
    id
    fileName
    fileSize
    fileType
    url
    createdAt
  }
}

Variables

{"input": Upload}

Response

{
  "data": {
    "partnerPhotoUpload": {
      "id": 4,
      "fileName": "abc123",
      "fileSize": 987,
      "fileType": "abc123",
      "url": "xyz789",
      "createdAt": "2007-12-03T10:15:30Z"
    }
  }
}

Subscriptions

channel

Description

the channel the person is subscribed to for the subscription

Response

Returns a String!

Query

subscription channel {
  channel
}

Response

{"data": {"channel": "abc123"}}

name

Description

the name of the subscription IE: Setup Withdrawals (CO or Bene)

Response

Returns a String

Query

subscription name {
  name
}

Response

{"data": {"name": "xyz789"}}

optIn

Description

the optIn status of the subscription IE: True, False

Response

Returns a Boolean!

Query

subscription optIn {
  optIn
}

Response

{"data": {"optIn": false}}

personId

Description

The person id to GFM

Response

Returns an ID

Query

subscription personId {
  personId
}

Response

{"data": {"personId": 4}}

Types

AutoThank

Description

Represents an auto thank setting for a fundraiser, indicating whether donations should trigger an automatic thank-you email. The thank-you message can be customized, and its activation status can be toggled on/off

Fields

Field Name Description
id - ID!
message - String!
active - Boolean!
fundId - ID!

Example

{
  "id": 4,
  "message": "xyz789",
  "active": true,
  "fundId": 4
}

Boolean

Description

The Boolean scalar type represents true or false

Example

true

Charity

Description

Describes a registered charity that a fundraiser can raise money for

Fields

Field Name Description
id - ID!
npoId - String
ein - String!
name - String!
categoryCode - String
description - String
city - String!
state - String!
country - String!
zipCode - String
addressLine1 - String
logo - CharityPhoto
slug - String
paypalActivationStatus - Int
paypalEnrollmentStatus - Int
defaultFundId - ID
isSeoIndexable - Boolean!
status - CharityStatus!
verifiedAt - DateTime
details - CharityDetails Charity organization detail
socials - CharitySocial Charity socials links
donations - DonationConnection List of donations by charity
Arguments
first - Int
last - Int
before - String
after - String
order - DonationOrder
recentDonations - DonationConnection List of donations by charity's top 10 funds by last donation date
Arguments
first - Int
last - Int
before - String
after - String
order - DonationOrder
fundraisers - FundraiserConnection List of fundraisers, optional list based on charityOrganized flag
Arguments
charityOrganized - Boolean
first - Int
last - Int
before - String
after - String
order - FundraiserOrder
charityAggregates - CharityAggregates Total aggregates by charityId

Example

{
  "id": "4",
  "npoId": "abc123",
  "ein": "abc123",
  "name": "abc123",
  "categoryCode": "abc123",
  "description": "abc123",
  "city": "abc123",
  "state": "abc123",
  "country": "abc123",
  "zipCode": "xyz789",
  "addressLine1": "abc123",
  "logo": CharityPhoto,
  "slug": "xyz789",
  "paypalActivationStatus": 123,
  "paypalEnrollmentStatus": 123,
  "defaultFundId": 4,
  "isSeoIndexable": true,
  "status": "INACTIVE",
  "verifiedAt": "2007-12-03T10:15:30Z",
  "details": CharityDetails,
  "socials": CharitySocial,
  "donations": DonationConnection,
  "recentDonations": DonationConnection,
  "fundraisers": FundraiserConnection,
  "charityAggregates": CharityAggregates
}

CharityAggregates

Fields

Field Name Description
totalDonations - Int
totalDonated - [Money]
totalFundraisers - Int

Example

{
  "totalDonations": 987,
  "totalDonated": [Money],
  "totalFundraisers": 123
}

CharityDetails

Fields

Field Name Description
ein - String
nteeCode - String
nteeDescription - String
mission - String
pcsPopulation - [String]
pcsSubjectTran - [String]
rulingYr - Float

Example

{
  "ein": "abc123",
  "nteeCode": "xyz789",
  "nteeDescription": "abc123",
  "mission": "abc123",
  "pcsPopulation": ["xyz789"],
  "pcsSubjectTran": ["xyz789"],
  "rulingYr": 123.45
}

CharityFilter

Description

Fields for filtering a list of charities

Fields

Input Field Description
countryCode - CountryCode Country a charity was started in

Example

{"countryCode": "US"}

CharityPhoto

Fields

Field Name Description
url - Url!
scaled - CharityPhotoScaled
intrinsicSize - CharityPhotoIntrinsicSize Deprecated for performance reasons

Example

{
  "url": Url,
  "scaled": CharityPhotoScaled,
  "intrinsicSize": CharityPhotoIntrinsicSize
}

CharityPhotoIntrinsicSize

Fields

Field Name Description
height - Int
width - Int

Example

{"height": 987, "width": 987}

CharityPhotoScaled

Fields

Field Name Description
threeByTwo120 - Url
oneByOne120 - Url

Example

{
  "threeByTwo120": Url,
  "oneByOne120": Url
}

CharitySelectInput

Description

Input for selecting a Charity when creating or updating a Fundraiser. If a charity is provided, a user will not be able to withdraw funds to their own bank account. Instead, the funds will go directly to the Charity. A charity may be referenced though its id, which is a GoFundMe id. Or, it may be referenced through its PayPal Nonprofit id. Supplying multiple values in this input, e.g. a value for both "id" and "paypalNonprofitId", is invalid and will return an error

Fields

Input Field Description
id - ID The GoFundMe id of the Charity that will be receiving the proceeds of this fundraiser
paypalNonprofitId - ID The PayPal Nonprofit id of the Charity that will be receiving the proceeds of this fundraiser

Example

{"id": 4, "paypalNonprofitId": 4}

CharitySocial

Fields

Field Name Description
facebook - Url
instagram - Url
linkedin - Url
twitter - Url
youtube - Url
website - Url
tiktok - Url
candid - Url
charityNavigator - Url
blueSky - Url
twitch - Url
discord - Url
threads - Url
custom - Url

Example

{
  "facebook": Url,
  "instagram": Url,
  "linkedin": Url,
  "twitter": Url,
  "youtube": Url,
  "website": Url,
  "tiktok": Url,
  "candid": Url,
  "charityNavigator": Url,
  "blueSky": Url,
  "twitch": Url,
  "discord": Url,
  "threads": Url,
  "custom": Url
}

CharityStatus

Values

Enum Value Description

INACTIVE

ACTIVE

HIDDEN

BANNED

UNKNOWN

Example

"INACTIVE"

Comment

Fields

Field Name Description
id - ID!
photos - [Photo!]!
donation - Donation!
text - String!
status - CommentStatus!
createdAt - DateTime
authorFirstName - String
authorLastName - String
authorProfilePhoto - Url

Example

{
  "id": 4,
  "photos": [Photo],
  "donation": Donation,
  "text": "abc123",
  "status": "DELETED",
  "createdAt": "2007-12-03T10:15:30Z",
  "authorFirstName": "xyz789",
  "authorLastName": "xyz789",
  "authorProfilePhoto": Url
}

CommentConnection

Fields

Field Name Description
edges - [CommentEdge]
pageInfo - PageInfo!

Example

{
  "edges": [CommentEdge],
  "pageInfo": PageInfo
}

CommentEdge

Fields

Field Name Description
cursor - String
node - Comment

Example

{
  "cursor": "xyz789",
  "node": Comment
}

CommentStatus

Values

Enum Value Description

DELETED

ACTIVE

Example

"DELETED"

Coordinates

Fields

Field Name Description
latitude - Decimal
longitude - Decimal

Example

{
  "latitude": Decimal,
  "longitude": Decimal
}

CountryCode

Example

"US"

CurrencyCode

Description

A representation of the currencies in which GoFundMe supports fundraisers raising money

Values

Enum Value Description

AUD

EUR

CAD

CHF

DKK

GBP

MXN

NOK

SEK

USD

Example

"AUD"

DateTime

Example

"2007-12-03T10:15:30Z"

Decimal

Example

Decimal

Donation

Description

A donation to a given fundraiser made by a donor

Fields

Field Name Description
refundedAt - DateTime The datetime the donation was refunded (null if it has not been refunded). Only available to partners for donations to fundraisers attributed to the partner
ppgfTransactionId - ID The PPGF (PayPal Giving Fund) transaction ID. Only available to partners for donations to charity fundraisers attributed to the partner
id - ID!
checkoutId - ID A reference to the donation within GoFundMe's payments system
amount - Money! The amount of money donated to a fundraiser
isOffline - Boolean! An indicator whether the donation was processed offline, i.e. not through GoFundMe's Payments Rails
isAnonymous - Boolean! An indicator whether the donation was made anonymously, any anonymous donation should have an empty name field and an empty profileUrl field
createdAt - DateTime! The timestamp of the donor donating to the fundraiser
name - String! The name of the donor donating to the fundraiser. When isAnonymous is true, name must be the string 'Anonymous'
profileUrl - Url The Facebook profile URL for the donor. When isAnonymous is true, profileUrl must be empty
isVerified - Boolean! An indicator that the donation was completed and counts towards the fundraisers balance
fundraiser - Fundraiser! The fundraiser to which this donation was made
encryptedDonationId - String Encoded encrypted donation id
isRecurring - Boolean Indicate if the donation is a recurring donation
scheduledPaymentUuid - String scheduled payment uuid that is used to access the donation scheduled configuration

Example

{
  "refundedAt": "2007-12-03T10:15:30Z",
  "ppgfTransactionId": 4,
  "id": "4",
  "checkoutId": "4",
  "amount": Money,
  "isOffline": true,
  "isAnonymous": false,
  "createdAt": "2007-12-03T10:15:30Z",
  "name": "abc123",
  "profileUrl": Url,
  "isVerified": false,
  "fundraiser": Fundraiser,
  "encryptedDonationId": "xyz789",
  "isRecurring": true,
  "scheduledPaymentUuid": "xyz789"
}

DonationConnection

Fields

Field Name Description
edges - [DonationEdge]
pageInfo - PageInfo!

Example

{
  "edges": [DonationEdge],
  "pageInfo": PageInfo
}

DonationEdge

Fields

Field Name Description
cursor - String
node - Donation

Example

{
  "cursor": "xyz789",
  "node": Donation
}

DonationOrder

Values

Enum Value Description

CREATED_AT

AMOUNT

Example

"CREATED_AT"

ExpectedBeneficiaryRelation

Description

The intended relationship of the organizer of the fundraiser to the beneficiary of the fundraiser. This field only indicates an intention at the time of fundraiser creation. It is not indicative of who the actual beneficiary is

Values

Enum Value Description

YOURSELF

The person who created the fundraiser intends to be one receiving the funds

SOMEONE_ELSE

The person who created the fundraiser intends for someone else to receive the funds

CHARITY

The person who created the fundraiser intends to fundraiser for charity. I.e. the charity will be directly receiving the funds

Example

"YOURSELF"

Experiment

Description

A simple key-value pair that maps an experiment key to a variant

Fields

Input Field Description
key - String! The experiment key
variant - String! The variant to which the user is assigned

Example

{
  "key": "xyz789",
  "variant": "abc123"
}

Float

Description

The Float scalar type represents signed double-precision fractional values as specified by IEEE 754

Example

123.45

Fundraiser

Description

A Fundraiser is an Entity that allows Fundraiser Organizers to raise money for themselves or others from Donors

Fields

Field Name Description
deprecatedNestedField - String test nested field
id - ID! A unique identifier for the fundraiser
fundId - ID! The fundraiser's unique, stable id
autoFbPostMode - Boolean!
expectedBeneficiaryRelation - ExpectedBeneficiaryRelation Who the organizer of the fundraiser originally expected to receive the funds. E.g. "Yourself", "Someone else", or "Charity". This value does not represent who is actually receiving the funds, just an intent at the time the fundraiser was created
categoryId - ID! The categoryId of the fundraiser. Used for legacy purposes Use the 'category' field.
category - FundraiserCategory The category of the fundraiser
charity - Charity Information about the charity beneficiary of the fundraiser if there is one
currentAmount - Money! The current amount of money raised for a fundraiser
defaultUrl - String! Use the 'defaultSlug' field.
defaultSlug - String!
donationCount - Int!
commentsEnabled - Boolean! An indicator for whether donors are able to make comments on the fundraiser
donationsEnabled - Boolean! An indicator for whether donors are able to make donations to the fundraiser
smartGoalsEnabled - Boolean An indicator for whether smart goals are enabled on the fundraiser. If null, the organizer has not opted into smart goals, which will mean smart goals are disabled Use the 'smartGoalsOptIn' field
smartGoalsOptIn - SmartGoalsOptInState An indicator for whether smart goals are enabled/disabled on the fundraiser. If in the not eligible state, the organizer has not opted into smart goals, which will mean smart goals are disabled
enableContact - Boolean! An indicator for whether the Contact Organizer feature should be present
isGfmDotOrgFund - Boolean! An indicator for whether the fund is a GFM.org fund
hasDonations - Boolean! An indicator for whether the fundraiser has received any donations
hasGfmOrgDonation - Boolean! An indicator for whether the fundraiser has received any donations from GoFundMe.org
fundDescription - String! Fundraiser organizer supplied description of the fundraiser Use the 'description' field.
Arguments
excerpt - Boolean

Flag to specify whether to return an excerpt of the description; defaults to false

description - String! Fundraiser organizer supplied description of the fundraiser, in HTML
Arguments
excerpt - Boolean

Flag to specify whether to return an excerpt of the description; defaults to false

fundName - String! Fundraiser organizer supplied name for the fundraiser Use the 'title' field.
title - String! Fundraiser organizer supplied title for the fundraiser
goalAmount - Money! Displayed goal amount for the fundraiser
userDefinedGoalAmount - Money! Fundraiser organizer supplied goal amount for the fundraiser
goalDeadline - DateTime Fundraiser organizer supplied deadline for raising funds for the fundraiser Use the 'serviceDate' field.
deadline - DateTime Fundraiser organizer supplied deadline for raising funds for the fundraiser Use the 'serviceDate' field.
mediaType - MediaType! The kind of content used for the fundraiser page
projectType - ProjectType! Is the fundraiser personal, or for charity? Money goes directly to the charity for charity fundraisers
serviceDate - DateTime Date that funds need to be raised by for a funeral or memorial service
templateId - Int!
turnOffDonations - Boolean! An indicator whether the fund is accepting donations
url - String! The Url of the fundraiser. Deprecated in favor of 'slug' This value is not a URL, it is a slug. Use the 'slug' field.
slug - String! The unique slug of the fundraiser
redirectUrl - String Most recent url for the fundraiser. Returns null if the request url is current
mediaId - String! Reference to the content used for the fundraiser page
visibleInSearch - Boolean! An indicator whether or not the fundraiser is visible in search
deactivated - Boolean! An indicator whether the fundraiser is currently deactivated
state - FundraiserState!
inDegradedMode - Boolean!
isLaunched - Boolean! An indicator whether the fundraiser is currently launched Use the 'isPublished' field.
isPublished - Boolean! An indicator whether the fundraiser is currently published. A published fundraiser is publicly visible, unless it has been flagged. A "draft" fundraiser is one that is not published
fundraiserImageUrl - Url The Url of the image to be used for the fundraiser Use 'mediaUrl' field.
mediaUrl - Url The Url of the image to be used for the fundraiser
fundraiserPhoto - FundraiserPhoto Object with image url and various scaling options Use 'photo' field.
photo - FundraiserPhoto Object with image url and various scaling options
launchDate - DateTime The timestamp of the fundraiser organizer launching the fundraiser Use 'publishedAt' field.
publishedAt - DateTime The timestamp of when the fundraiser was first published
socialShareLastUpdate - DateTime The contents of the fundraiser organizers last social share
location - Location The fundraiser organizer specified location of the fundraiser
tags - [String!]!
team - Team Information about the team the fundraiser is being organized by
partner - Partner Information about the partner that facilitated the creation of the fundraiser
isPersonalCharity - Boolean! An indicator
charityOrganized - Boolean!
lastDonationAt - DateTime Time of the last donation to the fundraiser
donations - DonationConnection List of donations for a fundraiser using cursor based pagination
Arguments
first - Int
last - Int
before - String
after - String
order - DonationOrder
donationsOffsetPagination - DonationConnection List of donations for a fundraiser using offset based pagination. Should only be used for feed deprecation project - otherwise just use "donations"
Arguments
limit - Int
offset - Int
order - DonationOrder
donationsFromShares - DonationConnection List of donations for a fundraiser by SmartLink AttributionId using cursor based pagination
Arguments
attributionId - String
first - Int
last - Int
before - String
after - String
order - DonationOrder
commentsOffsetPagination - CommentConnection List of comments posted by donors for a fundraiser using offset pagination Should only be used for feed deprecation project - otherwise just use "comments"
Arguments
limit - Int
offset - Int
teamMembers - [TeamMember!]!
commentCount - Int
updateCount - Int
uniqueDonorCount - Int
fundraiserHeartCount - Int Use 'heartCount' field.
heartCount - Int
socialShareCount - Int
photoCounts - PhotoCounts
donationsInLast48HoursCount - Int!
partnerExternalOrganizer - PartnerExternalOrganizer A partner-created fund can be associated with an external user that might claim the fund later on; or has already done so
autoThank - AutoThank Auto thank setting is used to determine whether a donor will receive an automatic thank you
goalLog - [Goal] A log of goal changes over time
instagramDeepLink - String The Instagram deep link url. Only available for some Person To Charity (P2C) fundraisers
isLinkedWithMeta - Boolean Indicates if the fund was linked to Meta
galleryImages - [Photo!] List of additional uncropped fundraiser gallery images submitted by the organizer
suggestedGoalAmount - SuggestedGoalAmount Get suggested goal amount based on fundraiser and browser/device data. Returns null if there is no suggestion
Arguments
goalType - SuggestedGoalType!
modelTargets - [Experiment!]
organizerDefinedGoalAmount - Int
organizerDistinctId - ID
organizerReferrer - String
organizerScreenHeight - Int
organizerScreenWidth - Int
requestSource - SuggestedGoalRequestSource!

Example

{
  "deprecatedNestedField": "xyz789",
  "id": "4",
  "fundId": "4",
  "autoFbPostMode": false,
  "expectedBeneficiaryRelation": "YOURSELF",
  "categoryId": 4,
  "category": "EMERGENCIES",
  "charity": Charity,
  "currentAmount": Money,
  "defaultUrl": "abc123",
  "defaultSlug": "abc123",
  "donationCount": 987,
  "commentsEnabled": false,
  "donationsEnabled": false,
  "smartGoalsEnabled": true,
  "smartGoalsOptIn": "ENABLED",
  "enableContact": false,
  "isGfmDotOrgFund": false,
  "hasDonations": false,
  "hasGfmOrgDonation": true,
  "fundDescription": "abc123",
  "description": "abc123",
  "fundName": "abc123",
  "title": "xyz789",
  "goalAmount": Money,
  "userDefinedGoalAmount": Money,
  "goalDeadline": "2007-12-03T10:15:30Z",
  "deadline": "2007-12-03T10:15:30Z",
  "mediaType": "UNKNOWN",
  "projectType": "UNKNOWN",
  "serviceDate": "2007-12-03T10:15:30Z",
  "templateId": 123,
  "turnOffDonations": false,
  "url": "abc123",
  "slug": "xyz789",
  "redirectUrl": "abc123",
  "mediaId": "abc123",
  "visibleInSearch": true,
  "deactivated": true,
  "state": "CAMPAIGNLITE",
  "inDegradedMode": false,
  "isLaunched": true,
  "isPublished": true,
  "fundraiserImageUrl": Url,
  "mediaUrl": Url,
  "fundraiserPhoto": FundraiserPhoto,
  "photo": FundraiserPhoto,
  "launchDate": "2007-12-03T10:15:30Z",
  "publishedAt": "2007-12-03T10:15:30Z",
  "socialShareLastUpdate": "2007-12-03T10:15:30Z",
  "location": Location,
  "tags": ["abc123"],
  "team": Team,
  "partner": Partner,
  "isPersonalCharity": true,
  "charityOrganized": false,
  "lastDonationAt": "2007-12-03T10:15:30Z",
  "donations": DonationConnection,
  "donationsOffsetPagination": DonationConnection,
  "donationsFromShares": DonationConnection,
  "commentsOffsetPagination": CommentConnection,
  "teamMembers": [TeamMember],
  "commentCount": 123,
  "updateCount": 123,
  "uniqueDonorCount": 123,
  "fundraiserHeartCount": 123,
  "heartCount": 123,
  "socialShareCount": 987,
  "photoCounts": PhotoCounts,
  "donationsInLast48HoursCount": 123,
  "partnerExternalOrganizer": PartnerExternalOrganizer,
  "autoThank": AutoThank,
  "goalLog": [Goal],
  "instagramDeepLink": "abc123",
  "isLinkedWithMeta": false,
  "galleryImages": [Photo],
  "suggestedGoalAmount": SuggestedGoalAmount
}

FundraiserCategory

Description

The fundraiser category, such as "Funerals & Memorials" or "Medical". When someone is creating a fundraiser, one of the form fields they fill out is called "Category", and this type represents an option

Values

Enum Value Description

EMERGENCIES

ANIMALS

FAMILY

BUSINESS

EVENTS

COMMUNITY

CREATIVE

WISHES

EDUCATION

MEMORIALS

MEDICAL

FAITH

SPORTS

TRAVEL

VOLUNTEER

OTHER

ENVIRONMENT

MONTHLY_BILLS

COMPETITIONS

NEWLYWEDS

CHARITY

Example

"EMERGENCIES"

FundraiserConnection

Fields

Field Name Description
edges - [FundraiserEdge]
pageInfo - PageInfo!

Example

{
  "edges": [FundraiserEdge],
  "pageInfo": PageInfo
}

FundraiserEdge

Fields

Field Name Description
cursor - String
node - Fundraiser

Example

{
  "cursor": "abc123",
  "node": Fundraiser
}

FundraiserInput

Description

Input for creating or updating a fundraiser

Fields

Input Field Description
country - CountryCode

The country the fundraiser is located in. The user creating this fundraiser will only be able to withdraw funds if their mailing address is located in this country.

Once a user has published their first fundraiser, all subsequent fundraisers must have the same country. To check this requirement, use the Viewer.assignedCountryForPayments field. If that value is set, the FundraiserInput.country field must match, or the mutation will be rejected

category - FundraiserCategory The fundraiser's category
expectedBeneficiaryRelation - ExpectedBeneficiaryRelation

Who the organizer of the fundraiser intends will receive the funds. E.g. "Yourself" if they intend to receive funds themselves, "Someone else" if they intend for another individual to receive the funds, or "Charity" if they're fundraising on behalf of charity.

This value only represents an expectation at the time of creating or updating the fundraiser. It is not a source of truth for who is actually receiving the funds

charity - CharitySelectInput The charity that will directly receive the money raised from this fundraiser. If a charity is selected, the organizer will not be able to withdraw funds to their own bank account
partnerAffiliation - PartnerAffiliation Optional information necessary to associate this fundraiser to a partner, if the organizer came to us from a partner. Basic affiliation will be inferred automatically if a fundraiser is created using an API Key
partnerExternalOrganizer - PartnerExternalOrganizerInput Associates a partner-created fundraiser with an external user. If provided, the user will be sent an invitation to organize the fundraiser upon publish
postalCode - String The zip/postal code of the fundraiser
goalAmount - Int The fundraiser's goal amount. This amount is denominated in the currency provided in the "currency" input value. This is a deprecated field, userDefinedGoalAmount should be used instead
userDefinedGoalAmount - Int The organizer's manually entered goal amount. This represents their final goal, but may not be what be what displays on the fundraiser page if the organizer has opted into smart goals. This amount is denominated in the currency provided in the "currency" input value
smartGoalAmount - Int Internal use only. An automatically determined starting goal amount that will be updated over time, if the organizer has opted into smart goals. This amount is denominated in the currency provided in the "currency" input value
title - String The fundraiser's title. This will appear as the headline and show up in shared links and social media posts
isPrivate - Boolean The fundraiser's privacy setting. This will control whether the fundraiser can appear on featured pages and collections. This setting is used, alongside other factors, in determining if the fundraiser should appear in search
description - String The HTML description for the fundraiser. This must be a well-formed HTML fragment containing only the following HTML tags: "p", "div", "h1", "h2", "h3", "h4", "h5", "h6", "ul", "ol", "li", "blockquote", "b", "i", "font", "s", "u", "o", "sup", "sub", "ins", "del", "strong", "strike", "tt", "code", "big", "small", "br", "span", "em"
serviceDate - DateTime Date that funds need to be raised by for a funeral or memorial service. This value should only be set for fundraisers that are for funerals or memorials
mediaUrl - Url The URL of the main image or video that appears on the fundraiser's public page
slug - String The unique slug that will be used to construct the URL to your fundraiser (gofundme.com/f/{slug}). If not provided, a slug will be inferred from your title. If a custom slug is provided, but it is already taken, an error will be thrown. Slug can be edited freely while in draft. After publish, only one additional update to slug is permitted
acknowledgeContentWarnings - Boolean

A confirmation that the organizer of this fundraiser has acknowledged any warnings that may have been triggered by the content of their fundraiser.

This field is optional if:

  1. The fundraiser is not published, OR
  2. The input does not trigger any content warnings.

If the input does trigger content warnings, this value must be true or the request will be rejected.

To check for warnings before submitting input, use the contentWarnings Query

smartGoalsEnabled - Boolean A setting that controls whether or not the goal amount should be automatically adjusted over time. If enabled, the current smart goal amount (goalAmount) will be shown on the fundraiser page. If disabled, the userDefinedGoalAmount will always be shown

Example

{
  "country": "US",
  "category": "EMERGENCIES",
  "expectedBeneficiaryRelation": "YOURSELF",
  "charity": CharitySelectInput,
  "partnerAffiliation": PartnerAffiliation,
  "partnerExternalOrganizer": PartnerExternalOrganizerInput,
  "postalCode": "xyz789",
  "goalAmount": 123,
  "userDefinedGoalAmount": 987,
  "smartGoalAmount": 987,
  "title": "abc123",
  "isPrivate": false,
  "description": "abc123",
  "serviceDate": "2007-12-03T10:15:30Z",
  "mediaUrl": Url,
  "slug": "abc123",
  "acknowledgeContentWarnings": false,
  "smartGoalsEnabled": false
}

FundraiserOrder

Values

Enum Value Description

CREATED_AT

AMOUNT

LAST_DONATION_AT

Example

"CREATED_AT"

FundraiserPhoto

Fields

Field Name Description
url - Url
scaled - FundraiserPhotoScaled

Example

{
  "url": Url,
  "scaled": FundraiserPhotoScaled
}

FundraiserPhotoScaled

Fields

Field Name Description
fourByThree1200 - Url
threeByTwo1200 - Url
sixteenByNine270 - Url
threeByTwo720 - Url
threeByTwo640 - Url
oneByOne960 - Url

Example

{
  "fourByThree1200": Url,
  "threeByTwo1200": Url,
  "sixteenByNine270": Url,
  "threeByTwo720": Url,
  "threeByTwo640": Url,
  "oneByOne960": Url
}

FundraiserPublishInput

Description

Input for creating or updating a fundraiser

Fields

Input Field Description
acknowledgeContentWarnings - Boolean Publish the fundraiser regardless of whether or not CATS flags the description as containing potential PII / crisis content

Example

{"acknowledgeContentWarnings": false}

FundraiserResponse

Description

Response payload after creating or updating a fundraiser

Fields

Field Name Description
fundraiser - Fundraiser The newly-created fundraiser
userErrors - [UserError!]! Fixable validation errors. These are meant to display to the end-user

Example

{
  "fundraiser": Fundraiser,
  "userErrors": [UserError]
}

FundraiserState

Values

Enum Value Description

CAMPAIGNLITE

HIDDEN

UNKNOWN

DELETED

ACTIVE

Example

"CAMPAIGNLITE"

Goal

Fields

Field Name Description
goalAmount - Money!
source - GoalLogSource!
date - DateTime!

Example

{
  "goalAmount": Money,
  "source": "USER",
  "date": "2007-12-03T10:15:30Z"
}

GoalLogSource

Description

The source of the goal log referenced by the source field

Values

Enum Value Description

USER

The goal log change came from a user

SYSTEM

The goal log change came from the system

Example

"USER"

ID

Description

The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4") or integer (such as 4) input value will be accepted as an ID

Example

4

Int

Description

The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1

Example

123

Location

Fields

Field Name Description
city - String
countryCode - CountryCode
coordinates - Coordinates
postalCode - String
statePrefix - String

Example

{
  "city": "xyz789",
  "countryCode": "US",
  "coordinates": Coordinates,
  "postalCode": "abc123",
  "statePrefix": "xyz789"
}

MediaType

Description

The type of media referenced by the mediaUrl field on a fundraiser

Values

Enum Value Description

UNKNOWN

There is no data about the mediaUrl on the fundraiser

YOUTUBE

The mediaUrl points to a YouTube video

PHOTO_RACK

The mediaUrl points to a photo stored on GoFundMe's hosting platform

VIMEO

The mediaUrl points to a Vimeo video

PHOTO_AWS

The mediaUrl points to an AWS resource owned by GoFundMe

FACEBOOK_AWS

Facebook slideshow posted to the user's account, hosted on AWS

FACEBOOK_RACK

Facebook slideshow posted to the user's account, indicating specialized storage or optimization

FACEBOOK_ONLY

Facebook video updates only uploaded to the user's Facebook account

FACEBOOK_PAGE_AWS

Facebook slideshow hosted on GoFundMe's Facebook page, utilizing AWS for hosting

FACEBOOK_PAGE_RACK

Facebook slideshow hosted on GoFundMe's Facebook page, indicating specialized storage or optimization

GFM_MUX_CLIPS

The mediaUrl points to a Mux resource owned by GoFundMe, for video hosting or streaming

Example

"UNKNOWN"

Money

Description

A representation of a monetary amount. Amount is a decimal represented as a string with 0, 1, or 2 decimal places

Fields

Field Name Description
currencyCode - CurrencyCode!
amount - Decimal!

Example

{"currencyCode": "AUD", "amount": Decimal}

Node

Fields

Field Name Description
id - ID!

Possible Types

Node Types

Fundraiser

Donation

Partner

AutoThank

Comment

Photo

Example

{"id": 4}

PageInfo

Fields

Field Name Description
hasPreviousPage - Boolean!
hasNextPage - Boolean!
startCursor - String
endCursor - String

Example

{
  "hasPreviousPage": false,
  "hasNextPage": false,
  "startCursor": "xyz789",
  "endCursor": "xyz789"
}

Partner

Fields

Field Name Description
id - ID!
name - String!
code - String!
logoUrl - Url!
allowCobranding - Boolean! Whether this partner wants attributed fundraisers to show co-branding
fundraisers - FundraiserConnection List of fundraisers attributed to the partner
Arguments
first - Int
last - Int
before - String
after - String
order - FundraiserOrder
donations - DonationConnection
Arguments
first - Int
last - Int
before - String
after - String
order - DonationOrder

Example

{
  "id": "4",
  "name": "abc123",
  "code": "abc123",
  "logoUrl": Url,
  "allowCobranding": false,
  "fundraisers": FundraiserConnection,
  "donations": DonationConnection
}

PartnerAffiliation

Fields

Input Field Description
code - String A Partner's unique referral code
thirdPartyId - String An optional third-party ID a partner can associate to a referral
thirdPartyUrl - String An optional origin the partner can associate to their referral
sourceApplication - String This information will be used in future communications with the user. Allows partners to optionally provide a sourceApplication for their created fundraiser. For example, "Thank you for joining us from {source}, click here to manage your fundraiser."

Example

{
  "code": "abc123",
  "thirdPartyId": "xyz789",
  "thirdPartyUrl": "xyz789",
  "sourceApplication": "abc123"
}

PartnerDonationsFilter

Fields

Input Field Description
charityId - ID
paypalNonprofitId - ID
dateFrom - DateTime start date (inclusive)
dateTo - DateTime end date (not inclusive)
includeRefunds - Boolean

Example

{
  "charityId": "4",
  "paypalNonprofitId": "4",
  "dateFrom": "2007-12-03T10:15:30Z",
  "dateTo": "2007-12-03T10:15:30Z",
  "includeRefunds": true
}

PartnerExternalOrganizer

Fields

Field Name Description
firstName - String!
lastName - String!
organizerInviteUrl - Url The invitation link for the user to organize the fundraiser that was created for them. This is only queryable within the publish mutation response
inviteAcceptedAt - DateTime

Example

{
  "firstName": "abc123",
  "lastName": "abc123",
  "organizerInviteUrl": Url,
  "inviteAcceptedAt": "2007-12-03T10:15:30Z"
}

PartnerExternalOrganizerInput

Description

Input for partners to provide info about the user they are creating a fundraiser on behalf of

Fields

Input Field Description
firstName - String!
lastName - String!
email - String!
emailOptIn - Boolean!

Example

{
  "firstName": "xyz789",
  "lastName": "abc123",
  "email": "xyz789",
  "emailOptIn": false
}

PartnerFundraiserFilter

Fields

Input Field Description
charityId - ID
paypalNonprofitId - ID
dateFrom - DateTime start publishedAt date (inclusive)
dateTo - DateTime end publishedAt date (not inclusive)

Example

{
  "charityId": 4,
  "paypalNonprofitId": "4",
  "dateFrom": "2007-12-03T10:15:30Z",
  "dateTo": "2007-12-03T10:15:30Z"
}

PartnerUpload

Fields

Field Name Description
id - ID!
fileName - String!
fileSize - Int!
fileType - String!
url - String!
createdAt - DateTime!

Example

{
  "id": "4",
  "fileName": "abc123",
  "fileSize": 987,
  "fileType": "xyz789",
  "url": "xyz789",
  "createdAt": "2007-12-03T10:15:30Z"
}

Photo

Fields

Field Name Description
id - ID!
filename - String! Name of the file
url - Url! URL where the photo is accessible
mediaType - MediaType! Type of media the photo represents
mediaId - String The slug of the YouTube video. Only applicable if the photo is a thumbnail for a YouTube video
caption - String Caption for the photo
photoType - PhotoType! Enumerated type of the photo indicating where it is used or its purpose
createdAt - DateTime! The date and time when the photo was created
scaled - PhotoScaled Scaled versions of the photo for different resolutions and aspect ratios. These are not utilized for profile photos
status - PhotoStatus! Status of the photo, indicating if it is active or deleted

Example

{
  "id": "4",
  "filename": "xyz789",
  "url": Url,
  "mediaType": "UNKNOWN",
  "mediaId": "xyz789",
  "caption": "abc123",
  "photoType": "MAIN",
  "createdAt": "2007-12-03T10:15:30Z",
  "scaled": PhotoScaled,
  "status": "DELETED"
}

PhotoCounts

Fields

Field Name Description
photos - Int!
coPhotos - Int!
communityPhotos - Int!

Example

{"photos": 987, "coPhotos": 123, "communityPhotos": 123}

PhotoScaled

Fields

Field Name Description
fourByThree1200 - Url
threeByTwo1200 - Url
sixteenByNine720 - Url
threeByTwo720 - Url
threeByTwo640 - Url
oneByOne960 - Url

Example

{
  "fourByThree1200": Url,
  "threeByTwo1200": Url,
  "sixteenByNine720": Url,
  "threeByTwo720": Url,
  "threeByTwo640": Url,
  "oneByOne960": Url
}

PhotoStatus

Values

Enum Value Description

DELETED

ACTIVE

Example

"DELETED"

PhotoType

Values

Enum Value Description

MAIN

DESCRIPTION

UPDATE

FACEBOOK_SLIDESHOW

CONTENT

TEAM

PROFILE

GALLERY

Example

"MAIN"

ProjectType

Values

Enum Value Description

UNKNOWN

PERSONAL

CHARITY

AON

DIRECT_TO_CHARITY

HANDLE

Example

"UNKNOWN"

SmartGoalsOptInState

Description

The state of smart goals referenced by the smartGoalsOptIn field on a fundraiser

Values

Enum Value Description

ENABLED

The fundraiser has smart goals available and the user has opted in

DISABLED

The fundraiser has smart goals available and the user has opted out

NOT_ELIGIBLE

The fundraiser is not eligible for smart goals (user has not opted in or out), do not show smart goals at all

Example

"ENABLED"

String

Description

The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text

Example

"xyz789"

SuggestedGoalAmount

Description

Suggested goal amount for the create, fundraiser, and manage pages

Fields

Field Name Description
goalAmount - Decimal The next smart goal amount for the fundraiser
isSmartGoalsDefaultEnabled - Boolean Determines if the smart goals toggle should be enabled by default

Example

{
  "goalAmount": Decimal,
  "isSmartGoalsDefaultEnabled": false
}

SuggestedGoalRequestSource

Values

Enum Value Description

CREATE

MANAGE

AFTER_DONATION

Example

"CREATE"

SuggestedGoalType

Values

Enum Value Description

SUGGESTED_GOAL

Goal type for suggesting a projected goal for the fundraiser

INITIAL_SMART_GOAL

Goal type when an existing smart goal doesn't exist

INCREMENTAL_SMART_GOAL

Goal type when fundraiser has donations

Example

"SUGGESTED_GOAL"

Team

Fields

Field Name Description
name - String
nameEncoded - String
teamPicUrl - Url
mediaType - MediaType
publicAttributions - Boolean!
teamInviteLimit - Int!
status - TeamStatus!
createdAt - DateTime!
updatedAt - DateTime!

Example

{
  "name": "abc123",
  "nameEncoded": "xyz789",
  "teamPicUrl": Url,
  "mediaType": "UNKNOWN",
  "publicAttributions": false,
  "teamInviteLimit": 987,
  "status": "DELETED",
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z"
}

TeamMember

Fields

Field Name Description
id - ID
firstName - String
lastName - String
amountRaised - Int
numberOfDonationsAttributed - Int
status - TeamMemberStatus!
gfmProfileUrl - Url
profileUrl - Url
role - TeamMemberRole!
personId - ID
locale - String
teamId - ID
fundId - ID

Example

{
  "id": "4",
  "firstName": "xyz789",
  "lastName": "abc123",
  "amountRaised": 123,
  "numberOfDonationsAttributed": 987,
  "status": "INACTIVE",
  "gfmProfileUrl": Url,
  "profileUrl": Url,
  "role": "ORGANIZER",
  "personId": 4,
  "locale": "xyz789",
  "teamId": 4,
  "fundId": 4
}

TeamMemberRole

Values

Enum Value Description

ORGANIZER

BENEFICIARY

TEAM_MEMBER

Example

"ORGANIZER"

TeamMemberStatus

Values

Enum Value Description

INACTIVE

ACTIVE

ADMIN

Example

"INACTIVE"

TeamStatus

Values

Enum Value Description

DELETED

ACTIVE

Example

"DELETED"

Upload

Example

Upload

Url

Example

Url

UserError

Description

Represents a fixable error that occurred during the execution of a mutation, such as failed validation. Each UserError provides context about the error, making it possible to identify which part of the user input caused the failure, and to display a meaningful message to the end-user

Fields

Field Name Description
field - String Specifies the input field associated with the error. This name corresponds to the field names as defined in the GraphQL input types. If the error is not specific to a single field but rather to the operation as a whole, this can be left empty
message - String! A human-readable explanation of the error. This message can be displayed directly to the end-users to inform them about what went wrong and potentially how to fix it

Example

{
  "field": "abc123",
  "message": "abc123"
}