Nonprofit Search GraphQL

Candid's newest API to perform nonprofit searches. The latest and most up-to-date nonprofit information on over 4.9 million organizations available for you to integrate into your systems.

API Endpoints
https://api.candid.org/nonprofitsearch/graphql

Queries

v1

Description

Search, filter, and find nonprofit organizations with Candid's most popular data fields. Use those results to get more data from other Candid APIs. API returns search result in JSON format.

Response

Returns an ApiResponse

Arguments
Name Description
request - ApiRequestInput

Example

Query
query v1($request: ApiRequestInput) {
  v1(request: $request) {
    code
    title
    took
    time
    searchTerm
    showingResultsFor
    resultsCount
    pageCount
    errors
    hits {
      ...HitFragment
    }
  }
}
Variables
{"request": ApiRequestInput}
Response
{
  "data": {
    "v1": {
      "code": 200,
      "title": "Request was processed successfully!",
      "took": 158,
      "time": "2024-01-01 10:10:10Z",
      "searchTerm": "candid",
      "showingResultsFor": "candid",
      "resultsCount": 987,
      "pageCount": 198,
      "errors": ["abc123"],
      "hits": [Hit]
    }
  }
}

Types

ApiRequestInput

Fields
Input Field Description
searchTerms - String Keyword search terms.
from - Int The offset from the first result. Defaults to 0.
size - Int The maximum number of hits to be returned. Defaults to 25. The maximum number allowed is 25
sort - SortFilterInput
autoSuggestion - Boolean Optional value to get correct results even if search request has a typo. Will only affect the search terms field. Defaults to true.
filters - FilterInput
Example
{
  "searchTerms": "candid",
  "from": 20,
  "size": 5,
  "sort": SortFilterInput,
  "autoSuggestion": false,
  "filters": FilterInput
}

ApiResponse

Fields
Field Name Description
code - Int! Response Code.
title - String Diagnostic message for response status.
took - Int! Time taken for request to process in milliseconds.
time - String Time of API call.
searchTerm - String Term that response was searched on.
showingResultsFor - String Showing results for this term.
resultsCount - Int! Number of results returned by search.
pageCount - Int! Number of pages returned by the search.
errors - [String] List of errors encountered.
hits - [Hit]
Example
{
  "code": 200,
  "title": "Request was processed successfully!",
  "took": 158,
  "time": "2024-01-01 10:10:10Z",
  "searchTerm": "candid",
  "showingResultsFor": "candid",
  "resultsCount": 987,
  "pageCount": 197,
  "errors": ["xyz789"],
  "hits": [Hit]
}

FilterInput

Fields
Input Field Description
organization - OrganizationFilterInput
financials - FinancialsFilterInput
geography - GeographyFilterInput
lastUpdated - LastUpdatedFilterInput
Example
{
  "organization": OrganizationFilterInput,
  "financials": FinancialsFilterInput,
  "geography": GeographyFilterInput,
  "lastUpdated": LastUpdatedFilterInput
}

Financials

Fields
Field Name Description
mostRecentYear - MostRecentYear
requiredToFile990T - Boolean Flag indicating the organization is required to file a 990-T.
a133AuditPerformed - Boolean Flag indicating the organization performed A-133 audit.
Example
{
  "mostRecentYear": MostRecentYear,
  "requiredToFile990T": true,
  "a133AuditPerformed": true
}

FinancialsFilterInput

Fields
Input Field Description
mostRecentYear - MostRecentYearFilterInput
requiredToFile990t - Boolean Flag indicating the organization is required to file a 990-T. Value set as true or false.
a133AuditPerformed - Boolean Flag indicating the organization performed A-133 audit. Value set as true or false.
Example
{
  "mostRecentYear": MostRecentYearFilterInput,
  "requiredToFile990t": true,
  "a133AuditPerformed": true
}

FoundationCode

Fields
Field Name Description
code - String Foundation code that describes the organization.
foundationCodeDescription - String Description of foundation code.
Example
{
  "code": "15",
  "foundationCodeDescription": "Organization which receives a substantial part of its support from a governmental unit or the general public"
}

Geography

Fields
Field Name Description
addressType - String Address type of the organization.
street1 - String Address line 1 of the organization.
street2 - String Address line 2 of the organization.
street3 - String Address line 3 of the organization.
street4 - String Address line 4 of the organization.
city - String City of the organization's address.
msa - String Metropolitan Statistical Area of the organization's address.
county - String County of the organization's address.
admin1Code - String State (Abbreviation) of the organization's address.
admin1Description - String Description of admin1_code.
postalCode - String Postal code of the organization's address.
geoFocus - [Int!] Where organization's funding is used.
countryCode - String Country code of the organization's address.
countryName - String Country name of the organization's address.
formattedAddress - String Formatted address of the organization.
latitude - Decimal latitude of the organization's address.
longitude - Decimal longitude of the organization's address.
Example
{
  "addressType": "main",
  "street1": "32 Old Slip 24th Floor",
  "street2": "xyz",
  "street3": "xyz",
  "street4": "xyz",
  "city": "New York City",
  "msa": "New York-Newark-Jersey City, NY-NJ-PA Metro Area",
  "county": "New York",
  "admin1Code": "NY",
  "admin1Description": "New York",
  "postalCode": "10005",
  "geoFocus": [123],
  "countryCode": "US",
  "countryName": "United States",
  "formattedAddress": "32 Old Slip 24th Floor, New York City, NY, 10005, USA",
  "latitude": 40.706,
  "longitude": -74.008613
}

GeographyFilterInput

Fields
Input Field Description
admin1 - [String] State code, comma separated.
msa - [String] Metropolitan statistical area, comma separated.
city - [String] US cities, comma separated.
county - [String] US counties, comma separated.
postalCode - String Five digit Postal code.
radius - Int Radius from the specified postal code in miles. Allowed range is between 1 and 50 miles. Values exceeding 50 will default to a radius of 50 miles.
countryCode - [String] Country codes, comma separated.
countryName - [String] Country names the nonprofit is registered in, comma separated.
geoFocus - [String] Use to filter by where funding is used.
Example
{
  "admin1": ["NY"],
  "msa": ["New York-Newark-Jersey City, NY-NJ-PA Metro Area"],
  "city": ["New York City"],
  "county": ["New York"],
  "postalCode": "10005",
  "radius": 50,
  "countryCode": ["US"],
  "countryName": ["United States"],
  "geoFocus": ["5128638"],
}

Hit

Fields
Field Name Description
organization - Organization
properties - Properties
geography - Geography
taxonomies - Taxonomy
financials - Financials
lastModified - LastModified
Example
{
  "organization": Organization,
  "properties": Properties,
  "geography": Geography,
  "taxonomies": Taxonomy,
  "financials": Financials,
  "lastModified": LastModified
}

IrsFormTypesFilterInput

Fields
Input Field Description
f990 - Boolean! Flag indicating the organization files a form 990. Value set as true or false.
f990PF - Boolean Flag indicating the organization files a form 990-PF. Value set as true or false.
f990EZ - Boolean Flag indicating the organization files a form 990ez. Value set as true or false.
f990N - Boolean Flag indicating the organization files a form 990n. Value set as true or false.
Example
{
  "f990": true, 
  "f990PF": false, 
  "f990EZ": false, 
  "f990N": true
  }

LastModified

Fields
Field Name Description
sealLastModified - String Date when Candid seal status was last modified.
profileLastModified - String Datetime of last update to Candid profile.
demographicsLastModified - String Datetime of last update to organization demographics information.
financialsLastModified - String Datetime of last update to organization's financial information.
modified - String Datetime of organization's last modified entry.
Example
{
  "sealLastModified": "2024-01-01 10:10:10",
  "profileLastModified": "2024-01-01 10:10:10",
  "demographicsLastModified": "2024-01-01 10:10:10",
  "financialsLastModified": "2024-01-01 10:10:10",
  "modified": "xyz789"
}

LastUpdatedFilterInput

Fields
Input Field Description
startDate - String A filter, along with end_date, defines a range on date_type, in the format yyyy-MM-ddTHH:mm:ss.
endDate - String A filter, along with start_date, defines a range on date_type, in the format yyyy-MM-ddTHH:mm:ss.
dateType - String! A filter, to specify updates made to a organization over the specified end_date and start_date.
Example
{
  "startDate": "2024-01-01 10:10:10",
  "endDate": "2024-01-01 10:10:10",
  "dateType": "seal_last_modified"
}

LegalIDsInput

Fields
Input Field Description
legalID - String Legal ID of organization
legalIDType - String Legal ID type of organization
Example
{
  "legalID": "13-1837418",
  "legalIDType": "ein"
}

LegalIds

Fields
Field Name Description
legalID - String Legal ID of organization
legalIDType - String Type of organization's legal id
Example
{
  "legalID": "13-1837418",
  "legalIDType": "ein"
}

MostRecentYear

Fields
Field Name Description
source - String Tax form filing type.
fiscalYear - Int Fiscal year of the most recent tax filing.
totalGiving - Decimal
totalRevenue - Decimal Most recent year total revenue.
totalExpenses - Decimal Most recent year total expenses.
totalAssets - Decimal Most recent year total assets.
currency - String Currency of financial numbers
Example
{
  "source": "990",
  "fiscalYear": 2022,
  "totalGiving": 2349999.0,
  "totalRevenue": 2349999.0,
  "totalExpenses": 22224499.0,
  "totalAssets": 57426592.0,
  "currency": "USD"
}

MostRecentYearFilterInput

Fields
Input Field Description
formTypes - IrsFormTypesFilterInput
totalGiving - NumberRangeFilterInput
totalRevenue - NumberRangeFilterInput
totalExpenses - NumberRangeFilterInput
totalAssets - NumberRangeFilterInput
Example
{
  "formTypes": IrsFormTypesFilterInput,
  "totalGiving": NumberRangeFilterInput,
  "totalRevenue": NumberRangeFilterInput,
  "totalExpenses": NumberRangeFilterInput,
  "totalAssets": NumberRangeFilterInput
}

Names

Fields
Field Name Description
name - String Organization name also known as
nameType - String How the organization is also known as
Example
{
  "name": "Foundation Center",
  "nameType": "fka"
}

NamesInput

Fields
Input Field Description
name - String Allows search on exact organization name. Provides best match results, not exact match.
nameType - String Name type
Example
{
  "name": "Candid",
  "nameType": "main"
}

NteeCode

Fields
Field Name Description
nteeCode - String National Taxonomy of Exempt Entities.
nteeCodeDescription - String Description of NTEE code.
Example
{
  "nteeCode": "T50",
  "nteeCodeDescription": "Philanthropy, Voluntarism, and Grantmaking Foundations"
}

NumberRangeFilterInput

Fields
Input Field Description
min - Int Minimum number
max - Int Maximum number
Example
{
  "min": 123, 
  "max": 123
  }

Organization

Fields
Field Name Description
candidEntityID - String A unique number identifying organizations and organizational entities.
ein - String Employer Identification Number.
legalIDs - [LegalIds]
organizationName - String The public name recognized by the IRS.
organizationAKANames - [Names]
mission - String Candid gets you the information you need to do good.
websites - [Website]
organizationLogo - String URL for the organization's logo.
organizationPhone - String Phone number of the primary contact at the organization.
candidSealLevel - String Candid seal level.
candidSealYear - Int Candid seal year.
candidSealImage - String Candid's seal logo.
candidProfileLink - String Candid's public profile URL.
organizationDonationLink - String Donation link of the organization.
leaderName - String Name of leader.
leaderTitle - String Leader's title.
contactName - String Name of the primary contact at the organization.
contactEmail - String Email of the primary contact at the organization.
contactPhone - String Phone number of the primary contact at the organization.
contactTitle - String Title of the primary contact at the organization.
numberOfEmployees - Int Number of employees at the organization.
rulingYear - Int The year the IRS granted organization tax exempt status (a.k.a. Ruling Year).
groupExemption - String Four-digit number assigned to a group of organizations falling under a central/parent organization holding group exemption letters.
Example
{
  "candidEntityID": "7578046",
  "ein": "39-1731296",
  "legalIDs": [LegalIds],
  "organizationName": "Candid",
  "organizationAKANames": [Names],
  "mission": "Candid gets you the information you need to do good",
  "websites": [Website],
  "organizationLogo": "https://docs.candid.org/edoc/10485767",
  "organizationPhone": "(212) 620-4230",
  "candidSealLevel": "Platinum",
  "candidSealYear": 2022,
  "candidSealImage": "https://widgets.guidestar.org/TransparencySeal/png/13-1837418",
  "candidProfileLink": "https://beta.candid.org/profile/6908122",
  "organizationDonationLink": "https://candid.org/about/funding-candid",
  "leaderName": "Ann Mei Chang",
  "leaderTitle": "Chief Executive Officer",
  "contactName": "John Smith",
  "contactEmail": "[email protected]",
  "contactPhone": "(212) 640-7438",
  "contactTitle": "Support lead",
  "numberOfEmployees": 123,
  "rulingYear": 2019,
  "groupExemption": "3297"
}

OrganizationFilterInput

Fields
Input Field Description
candidEntityID - [String] Candid entity ids, comma separated up to 25.
ein - [String] Employee identification numbers, comma separated up to 25.
legalIDs - [LegalIDsInput]
names - [NamesInput]
candidSealLevel - [String] Candid seal levels, comma separated.
subjectCodes - [String] Subject codes, comma separated.
populationServedCodes - [String] Population served codes, comma separated.
organizationTypeCodes - [String] Organization type codes, comma separated.
nteeMajorCodes - [String] National Taxonomy of Exempt Entities (NTEE) major codes, comma separated.
nteeMinorCodes - [String] National Taxonomy of Exempt Entities (NTEE) minor codes, comma separated.
subsectionCodes - [String] IRS subsection codes and/or descriptions, comma separated.
foundationCodes - [String] Foundation codes and/or descriptions, comma separated.
sdGs - [String] Sustainable development goals.
groupExemption - String Group exemption codes, comma separated.
numberOfEmployees - NumberRangeFilterInput Range specifying the number of employees at the organization.
rulingYear - NumberRangeFilterInput Range specifying the year the granted organization tax exempt status (a.k.a. Ruling Year).
properties - PropertyFilterInput
demographicsLeader - [String] Demographics of the organization's leader.
Example
{
  "candidEntityID": ["6908122"],
  "ein": ["13-1837418"],
  "legalIDs": [LegalIDsInput],
  "names": [NamesInput],
  "candidSealLevel": ["platinum"],
  "subjectCodes": ["SN04"],
  "populationServedCodes": ["PG0302"],
  "organizationTypeCodes": ["EA040000"],
  "nteeMajorCodes": ["T"],
  "nteeMinorCodes": ["T50"],
  "subsectionCodes": ["501(c)(3) Public Charity."],
  "foundationCodes": ["15"],
  "sdGs": ["17"],
  "groupExemption": "1243",
  "numberOfEmployees": NumberRangeFilterInput,
  "rulingYear": NumberRangeFilterInput,
  "properties": PropertyFilterInput,
  "demographicsLeader": ["bipoc_leader"]
}

OrganizationTypeCode

Fields
Field Name Description
code - String Organization type code.
organizationTypeDescription - String Description of organization type code.
Example
{
  "code": "EA040000",
  "organizationTypeDescription": "Public charities"
}

PopulationServedCode

Fields
Field Name Description
code - String Population served code.
populationServedDescritpion - String Description of population served code.
Example
{
  "code": "PG030000",
  "populationServedDescritpion": "People with Physical Disabilities"
}

Properties

Fields
Field Name Description
bmfStatus - Boolean If the organization is present on the BMF.
pub78Verified - Boolean If the organization is Pub78 verified.
revoked - Boolean If the organization is revoked.
defunct - Boolean If the organization is defunct.
merged - Boolean If the organization is merged.
grantmakerStatus - Boolean If the organization is a grantmaker.
allowOnlineGiving - Boolean If the organization allows online giving.
demographicsSubmitted - Boolean If the organization has submitted demographics information.
demographicsLeader - [String!] Demographics of the organization's leade.r
hasUrl - Boolean If the organization is a url listed.
hasContact - Boolean If the organization is contact listed.
parent - Boolean If the organization is a parent.
subordinate - Boolean If the organization is a subordinate.
independent - Boolean If the organization is independent.
headquarters - Boolean If the organization is a national headquarter.
Example
{
  "bmfStatus": true,
  "pub78Verified": true,
  "revoked": false,
  "defunct": false,
  "merged": false,
  "grantmakerStatus": true,
  "allowOnlineGiving": true,
  "demographicsSubmitted": false,
  "demographicsLeader": ["bipoc_leader"],
  "hasUrl": true,
  "hasContact": false,
  "parent": true,
  "subordinate": true,
  "independent": false,
  "headquarters": true
}

PropertyFilterInput

Fields
Input Field Description
bmfStatus - Boolean Flag indicating the organization has the most recent IRS BMF. Defaults to null. Otherwise true or false.
pub78Verified - Boolean Flag indicating the organization is pub78 verified. Value setf as true or false.
excludeRevokedOrganizations - Boolean Flag to exclude revoked organizations. Value set as true or false.
excludeDefunctOrganizations - Boolean Flag to exclude defunct organizations. Value set as true or false.
excludeMergedOrganizations - Boolean Flag to exclude merged organizations. Value set as true or false.
grantmakerStatus - Boolean Flag indicating the organization Grantmaker Status. Value set as true or false.
allowOnlineGiving - Boolean Flag indicating the organization allows online giving. Value set as true or false.
demographicsSubmitted - Boolean Flag indicating the organization has submitted demographics information. Value set as true or false.
hasUrl - Boolean Flag indicating the organization has a website. Value set as true or false.
hasContact - Boolean Flag indicating the organization has a contact reference. Value set as true or false.
parent - Boolean Flag indicating the organization is a parent. Value set as true or false.
subordinate - Boolean Flag indicating the organization is a subordinate. Value set as true or false.
independent - Boolean Flag indicating the organization is independent. Value set as true or false.
headquarters - Boolean Flag indicating the organization is a headquarter. Value set as true or false.
Example
{
  "bmfStatus": false,
  "pub78Verified": true,
  "excludeRevokedOrganizations": true,
  "excludeDefunctOrganizations": false,
  "excludeMergedOrganizations": true,
  "grantmakerStatus": true,
  "allowOnlineGiving": false,
  "demographicsSubmitted": false,
  "hasUrl": false,
  "hasContact": false,
  "parent": false,
  "subordinate": false,
  "independent": false,
  "headquarters": false
}

SortFilterInput

Fields
Input Field Description
sortBy - String Sort results based on input value. Leave blank to sort by relevance.
sortOrder - String Default value is ascending. Allowed values are "asc" (ascending) and "desc" (descending).
Example
{
  "sortBy": "organization_name",
  "sortOrder": "asc"
}

SubjectCode

Fields
Field Name Description
code - String Subject code.
subjectCodeDescription - String Description of subject code.
Example
{
  "code": "SK020000",
  "subjectCodeDescription": "Leadership development"
}

SubsectionCode

Fields
Field Name Description
code - String IRS subsection code of the organization.
subsectionCodeDescription - String Description of IRS subsection code.
Example
{
  "code": "03",
  "subsectionCodeDescription": "501(c)(3) Public Charity"
}

SustainableDevelopmentGoal

Fields
Field Name Description
sdgCode - String Sustainable development goal code.
sdgDescription - String Description of sustainable development goal code.
Example
{
  "sdgCode": "SDG3",
  "sdgDescription": "Good Health and Well-being"
}

Taxonomy

Fields
Field Name Description
subjectCodes - [SubjectCode]
populationServedCodes - [PopulationServedCode]
organizationTypeCodes - [OrganizationTypeCode]
nteeCodes - [NteeCode]
subsectionCode - SubsectionCode
foundationCode - FoundationCode
sdGs - [SustainableDevelopmentGoal]
Example
{
  "subjectCodes": [SubjectCode],
  "populationServedCodes": [PopulationServedCode],
  "organizationTypeCodes": [OrganizationTypeCode],
  "nteeCodes": [NteeCode],
  "subsectionCode": SubsectionCode,
  "foundationCode": FoundationCode,
  "sdGs": [SustainableDevelopmentGoal]
}

Website

Fields
Field Name Description
websiteURL - String URL for the organization's website.
websiteType - String Type of organization's website URL.
Example
{
  "websiteURL": "http://candid.org",
  "websiteType": "main"
}