diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..afd59d8 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,8 @@ +# +# https://help.github.com/articles/dealing-with-line-endings/ +# +# Linux start script should use lf +/gradlew text eol=lf + +# These are Windows script files and should use crlf +*.bat text eol=crlf diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 0000000..77ff5d5 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,7 @@ +# Lines starting with '#' are comments. +# Each line is a file pattern followed by one or more owners. + +# See: https://help.github.com/articles/about-codeowners/ + +# These owners will be the default owners for everything in the repo. +* @NipunaRanasinghe @AzeemMuzammil diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000..96b073c --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,12 @@ +## Purpose + +Fixes: + +## Examples + +## Checklist +- [ ] Linked to an issue +- [ ] Updated the changelog +- [ ] Added tests +- [ ] Updated the spec +- [ ] Checked native-image compatibility diff --git a/.github/workflows/build-with-bal-test-native.yml b/.github/workflows/build-with-bal-test-native.yml new file mode 100644 index 0000000..a00897f --- /dev/null +++ b/.github/workflows/build-with-bal-test-native.yml @@ -0,0 +1,17 @@ +name: GraalVM Check + +on: + schedule: + - cron: "30 18 * * *" + workflow_dispatch: + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }} + cancel-in-progress: true + +jobs: + call_workflow_template: + name: Run Workflow Template + if: ${{ github.event_name != 'schedule' || (github.event_name == 'schedule' && github.repository_owner == 'ballerina-platform') }} + uses: ballerina-platform/ballerina-standard-library/.github/workflows/build-with-bal-test-graalvm-connector-template.yml@main + secrets: inherit diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..097e713 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,20 @@ +name: CI + +on: + push: + branches: + - main + - 2201.[0-9]+.x + repository_dispatch: + types: check_connector_for_breaking_changes + +jobs: + call_workflow: + name: Run Connector Build Workflow + if: ${{ github.repository_owner == 'ballerina-platform' }} + uses: ballerina-platform/ballerina-standard-library/.github/workflows/build-connector-template.yml@main + secrets: inherit + with: + repo-name: module-ballerinax-candid + publish-required: 'true' + additional-test-flags: -x test diff --git a/.github/workflows/daily-build.yml b/.github/workflows/daily-build.yml new file mode 100644 index 0000000..97b328e --- /dev/null +++ b/.github/workflows/daily-build.yml @@ -0,0 +1,15 @@ +name: Daily build + +on: + schedule: + - cron: "30 2 * * *" + +jobs: + call_workflow: + name: Run Daily Build Workflow + if: ${{ github.repository_owner == 'ballerina-platform' }} + uses: ballerina-platform/ballerina-standard-library/.github/workflows/daily-build-connector-template.yml@main + secrets: inherit + with: + repo-name: module-ballerinax-candid + additional-test-flags: -x test diff --git a/.github/workflows/dev-stg-release.yml b/.github/workflows/dev-stg-release.yml new file mode 100644 index 0000000..49d6f52 --- /dev/null +++ b/.github/workflows/dev-stg-release.yml @@ -0,0 +1,21 @@ +name: Publish to the Ballerina Dev\Stage Central + +on: + workflow_dispatch: + inputs: + environment: + type: choice + description: Select Environment + required: true + options: + - DEV CENTRAL + - STAGE CENTRAL + +jobs: + call_workflow: + name: Run Dev\Stage Central Publish Workflow + if: ${{ github.repository_owner == 'ballerina-platform' }} + uses: ballerina-platform/ballerina-standard-library/.github/workflows/dev-stage-central-publish-connector-template.yml@main + secrets: inherit + with: + environment: ${{ github.event.inputs.environment }} diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml new file mode 100644 index 0000000..8fe0285 --- /dev/null +++ b/.github/workflows/pull-request.yml @@ -0,0 +1,16 @@ +name: PR Build + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }} + cancel-in-progress: true + +on: pull_request + +jobs: + call_workflow: + name: Run PR Build Workflow + if: ${{ github.repository_owner == 'ballerina-platform' }} + uses: ballerina-platform/ballerina-standard-library/.github/workflows/pr-build-connector-template.yml@main + secrets: inherit + with: + additional-test-flags: -x test diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..5f4c8d4 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,16 @@ +name: Publish Release + +on: + workflow_dispatch: + repository_dispatch: + types: [ connector-release-pipeline ] + +jobs: + call_workflow: + name: Run Release Workflow + if: ${{ github.repository_owner == 'ballerina-platform' }} + uses: ballerina-platform/ballerina-standard-library/.github/workflows/release-package-template.yml@main + secrets: inherit + with: + package-name: candid + package-org: ballerinax diff --git a/.gitignore b/.gitignore index 524f096..b876eb2 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ # Package Files # *.jar +!gradle/**/*.jar *.war *.nar *.ear @@ -22,3 +23,11 @@ # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml hs_err_pid* replay_pid* + +# DS_Store file +*.DS_Store +# Ignore Gradle project-specific cache directory +.gradle + +# Ignore Gradle build output directory +build diff --git a/ballerina/.gitignore b/ballerina/.gitignore new file mode 100644 index 0000000..7512ebe --- /dev/null +++ b/ballerina/.gitignore @@ -0,0 +1,3 @@ +target +generated +Config.toml diff --git a/ballerina/Ballerina.toml b/ballerina/Ballerina.toml new file mode 100644 index 0000000..5f6b0ad --- /dev/null +++ b/ballerina/Ballerina.toml @@ -0,0 +1,11 @@ +[package] +org = "ballerinax" +name = "candid" +version = "0.1.0" +authors = ["Ballerina"] +export = ["candid.charitycheckpdf", "candid.essentials", "candid.premier"] +keywords = ["Candid", "Nonprofit Data", "Philanthropy Data", "Nonprofit APIs"] +repository = "https://github.com/ballerina-platform/module-ballerinax-candid" +icon = "icon.png" +license = ["Apache-2.0"] +distribution = "2201.8.0" diff --git a/ballerina/Dependencies.toml b/ballerina/Dependencies.toml new file mode 100644 index 0000000..9aff492 --- /dev/null +++ b/ballerina/Dependencies.toml @@ -0,0 +1,319 @@ +# AUTO-GENERATED FILE. DO NOT MODIFY. + +# This file is auto-generated by Ballerina for managing dependency versions. +# It should not be modified by hand. + +[ballerina] +dependencies-toml-version = "2" +distribution-version = "2201.8.0" + +[[package]] +org = "ballerina" +name = "auth" +version = "2.10.0" +dependencies = [ + {org = "ballerina", name = "crypto"}, + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.array"}, + {org = "ballerina", name = "lang.string"}, + {org = "ballerina", name = "log"} +] + +[[package]] +org = "ballerina" +name = "cache" +version = "3.7.0" +dependencies = [ + {org = "ballerina", name = "constraint"}, + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "task"}, + {org = "ballerina", name = "time"} +] + +[[package]] +org = "ballerina" +name = "constraint" +version = "1.5.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"} +] + +[[package]] +org = "ballerina" +name = "crypto" +version = "2.5.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "time"} +] + +[[package]] +org = "ballerina" +name = "file" +version = "1.9.0" +dependencies = [ + {org = "ballerina", name = "io"}, + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "os"}, + {org = "ballerina", name = "time"} +] + +[[package]] +org = "ballerina" +name = "http" +version = "2.10.3" +dependencies = [ + {org = "ballerina", name = "auth"}, + {org = "ballerina", name = "cache"}, + {org = "ballerina", name = "constraint"}, + {org = "ballerina", name = "crypto"}, + {org = "ballerina", name = "file"}, + {org = "ballerina", name = "io"}, + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "jwt"}, + {org = "ballerina", name = "lang.array"}, + {org = "ballerina", name = "lang.decimal"}, + {org = "ballerina", name = "lang.int"}, + {org = "ballerina", name = "lang.regexp"}, + {org = "ballerina", name = "lang.runtime"}, + {org = "ballerina", name = "lang.string"}, + {org = "ballerina", name = "lang.value"}, + {org = "ballerina", name = "log"}, + {org = "ballerina", name = "mime"}, + {org = "ballerina", name = "oauth2"}, + {org = "ballerina", name = "observe"}, + {org = "ballerina", name = "time"}, + {org = "ballerina", name = "url"} +] +modules = [ + {org = "ballerina", packageName = "http", moduleName = "http"}, + {org = "ballerina", packageName = "http", moduleName = "http.httpscerr"} +] + +[[package]] +org = "ballerina" +name = "io" +version = "1.6.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.value"} +] + +[[package]] +org = "ballerina" +name = "jballerina.java" +version = "0.0.0" + +[[package]] +org = "ballerina" +name = "jwt" +version = "2.10.0" +dependencies = [ + {org = "ballerina", name = "cache"}, + {org = "ballerina", name = "crypto"}, + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.int"}, + {org = "ballerina", name = "lang.string"}, + {org = "ballerina", name = "log"}, + {org = "ballerina", name = "time"} +] + +[[package]] +org = "ballerina" +name = "lang.__internal" +version = "0.0.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.object"} +] + +[[package]] +org = "ballerina" +name = "lang.array" +version = "0.0.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.__internal"} +] + +[[package]] +org = "ballerina" +name = "lang.decimal" +version = "0.0.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"} +] + +[[package]] +org = "ballerina" +name = "lang.error" +version = "0.0.0" +scope = "testOnly" +dependencies = [ + {org = "ballerina", name = "jballerina.java"} +] + +[[package]] +org = "ballerina" +name = "lang.int" +version = "0.0.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.__internal"}, + {org = "ballerina", name = "lang.object"} +] + +[[package]] +org = "ballerina" +name = "lang.object" +version = "0.0.0" + +[[package]] +org = "ballerina" +name = "lang.regexp" +version = "0.0.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"} +] + +[[package]] +org = "ballerina" +name = "lang.runtime" +version = "0.0.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"} +] + +[[package]] +org = "ballerina" +name = "lang.string" +version = "0.0.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.regexp"} +] + +[[package]] +org = "ballerina" +name = "lang.value" +version = "0.0.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"} +] + +[[package]] +org = "ballerina" +name = "log" +version = "2.9.0" +dependencies = [ + {org = "ballerina", name = "io"}, + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.value"}, + {org = "ballerina", name = "observe"} +] +modules = [ + {org = "ballerina", packageName = "log", moduleName = "log"} +] + +[[package]] +org = "ballerina" +name = "mime" +version = "2.9.0" +dependencies = [ + {org = "ballerina", name = "io"}, + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.int"} +] + +[[package]] +org = "ballerina" +name = "oauth2" +version = "2.10.0" +dependencies = [ + {org = "ballerina", name = "cache"}, + {org = "ballerina", name = "crypto"}, + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "log"}, + {org = "ballerina", name = "time"}, + {org = "ballerina", name = "url"} +] + +[[package]] +org = "ballerina" +name = "observe" +version = "1.2.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"} +] + +[[package]] +org = "ballerina" +name = "os" +version = "1.8.0" +dependencies = [ + {org = "ballerina", name = "io"}, + {org = "ballerina", name = "jballerina.java"} +] +modules = [ + {org = "ballerina", packageName = "os", moduleName = "os"} +] + +[[package]] +org = "ballerina" +name = "task" +version = "2.5.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "time"} +] + +[[package]] +org = "ballerina" +name = "test" +version = "0.0.0" +scope = "testOnly" +dependencies = [ + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.error"} +] +modules = [ + {org = "ballerina", packageName = "test", moduleName = "test"} +] + +[[package]] +org = "ballerina" +name = "time" +version = "2.4.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"} +] + +[[package]] +org = "ballerina" +name = "url" +version = "2.4.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"} +] +modules = [ + {org = "ballerina", packageName = "url", moduleName = "url"} +] + +[[package]] +org = "ballerinax" +name = "candid" +version = "0.1.0" +dependencies = [ + {org = "ballerina", name = "http"}, + {org = "ballerina", name = "log"}, + {org = "ballerina", name = "os"}, + {org = "ballerina", name = "test"}, + {org = "ballerina", name = "url"} +] +modules = [ + {org = "ballerinax", packageName = "candid", moduleName = "candid"}, + {org = "ballerinax", packageName = "candid", moduleName = "candid.charitycheckpdf"}, + {org = "ballerinax", packageName = "candid", moduleName = "candid.essentials"}, + {org = "ballerinax", packageName = "candid", moduleName = "candid.premier"} +] + diff --git a/ballerina/Module.md b/ballerina/Module.md new file mode 100644 index 0000000..ae48fed --- /dev/null +++ b/ballerina/Module.md @@ -0,0 +1,67 @@ +## Overview + +Candid.org is a non-profit organization that provides a comprehensive database of information about nonprofits, foundations, grantmakers, and philanthropists. Their mission is to connect people who want to change the world to the resources they need to do it. + +The `ballerinax/candid` module provides APIs to allow to access Candid's database that includes information on over 2 million nonprofits, including their mission, programs, finances, and leadership. And also provides information on over 100,000 foundations and grantmakers, as well as data on individual philanthropists. + +Currently, the following Candid.org APIs are supported through this module + +- Charity Check PDF API + - The Charity Check PDF API is a powerful tool that allows to download formatted Charity Check PDF reports for individual nonprofits. +- Essentials API + - The Essentials API is a lightweight API that provides basic information about nonprofits, such as their name, address, EIN, and mission statement. It is ideal for applications that need to quickly and easily identify and access basic nonprofit data. +- Premier API + - The Premier API is a more comprehensive API that provides access to a wider range of nonprofit data, including financial information, staffing data, grantmaking data, and DEI data. It is ideal for applications that need to deep dive into the data of individual nonprofits or perform complex analyses of nonprofit data. + +## Samples + +### Charity Check PDF API + +The following Ballerina program generates a PDF report to validate nonprofit status and eligibility with a 100% IRS-compliant charity check. + +```ballerina +import ballerinax/candid.charitycheckpdf; + +charitycheckpdf:ApiKeysConfig apiKeyConfig = {subscriptionKey: "ENTER-THE-SUBSCRIPTION-KEY"}; +charitycheckpdf:Client charitycheckpdf = check new charitycheckpdf:Client(apiKeyConfig); + +function getCharityCheckPDF() returns http:Response|error { + http:Response|error result = charitycheckpdf->/v1/pdf/["EMP-ID-NUM"]; + return result; +} +``` + +### Essentials API + +The following Ballerina program finds nonprofits using search criterias and explore essential information. + +```ballerina +import ballerinax/candid.essentials; + +essentials:ApiKeysConfig apiKeyConfig = {subscriptionKey: "ENTER-THE-SUBSCRIPTION-KEY"}; +essentials:Client essentials = check new essentials:Client(apiKeyConfig); + +function getV3Essesntials() returns essentials:V3EssentialsResponse|error { + essentials:V3Query query = { + search_terms: "13-1837418" + }; + essentials:V3EssentialsResponse|error result = essentials->/v3.post(query); + return result; +} +``` + +### Premier API + +The following Ballerina program retrieves data on a nonprofit's financials, people, DEI, and IRS compliance validation for the given employer id number. + +```ballerina +import ballerinax/candid.premier; + +premier:ApiKeysConfig apiKeyConfig = {subscriptionKey: "ENTER-THE-SUBSCRIPTION-KEY"}; +premier:Client premier = check new premier:Client(apiKeyConfig); + +function getV3Premier() returns V3PublicProfile|error { + premier:V3PublicProfile|error result = check premier->/v3/["EMP-ID-NUM"]; + return result; +} +``` diff --git a/ballerina/Package.md b/ballerina/Package.md new file mode 100644 index 0000000..3f27128 --- /dev/null +++ b/ballerina/Package.md @@ -0,0 +1,67 @@ +## Overview + +Candid.org is a non-profit organization that provides a comprehensive database of information about nonprofits, foundations, grantmakers, and philanthropists. Their mission is to connect people who want to change the world to the resources they need to do it. + +The `ballerinax/candid` package provides APIs to allow to access Candid's database that includes information on over 2 million nonprofits, including their mission, programs, finances, and leadership. And also provides information on over 100,000 foundations and grantmakers, as well as data on individual philanthropists. + +Currently, the following Candid.org APIs are supported through this module + +- Charity Check PDF API + - The Charity Check PDF API is a powerful tool that allows to download formatted Charity Check PDF reports for individual nonprofits. +- Essentials API + - The Essentials API is a lightweight API that provides basic information about nonprofits, such as their name, address, EIN, and mission statement. It is ideal for applications that need to quickly and easily identify and access basic nonprofit data. +- Premier API + - The Premier API is a more comprehensive API that provides access to a wider range of nonprofit data, including financial information, staffing data, grantmaking data, and DEI data. It is ideal for applications that need to deep dive into the data of individual nonprofits or perform complex analyses of nonprofit data. + +## Samples + +### Charity Check PDF API + +The following Ballerina program generates a PDF report to validate nonprofit status and eligibility with a 100% IRS-compliant charity check. + +```ballerina +import ballerinax/candid.charitycheckpdf; + +charitycheckpdf:ApiKeysConfig apiKeyConfig = {subscriptionKey: "ENTER-THE-SUBSCRIPTION-KEY"}; +charitycheckpdf:Client charitycheckpdf = check new charitycheckpdf:Client(apiKeyConfig); + +function getCharityCheckPDF() returns http:Response|error { + http:Response|error result = charitycheckpdf->/v1/pdf/["EMP-ID-NUM"]; + return result; +} +``` + +### Essentials API + +The following Ballerina program finds nonprofits using search criterias and explore essential information. + +```ballerina +import ballerinax/candid.essentials; + +essentials:ApiKeysConfig apiKeyConfig = {subscriptionKey: "ENTER-THE-SUBSCRIPTION-KEY"}; +essentials:Client essentials = check new essentials:Client(apiKeyConfig); + +function getV3Essesntials() returns essentials:V3EssentialsResponse|error { + essentials:V3Query query = { + search_terms: "13-1837418" + }; + essentials:V3EssentialsResponse|error result = essentials->/v3.post(query); + return result; +} +``` + +### Premier API + +The following Ballerina program retrieves data on a nonprofit's financials, people, DEI, and IRS compliance validation for the given employer id number. + +```ballerina +import ballerinax/candid.premier; + +premier:ApiKeysConfig apiKeyConfig = {subscriptionKey: "ENTER-THE-SUBSCRIPTION-KEY"}; +premier:Client premier = check new premier:Client(apiKeyConfig); + +function getV3Premier() returns V3PublicProfile|error { + premier:V3PublicProfile|error result = check premier->/v3/["EMP-ID-NUM"]; + return result; +} +``` diff --git a/ballerina/build.gradle b/ballerina/build.gradle new file mode 100644 index 0000000..f91b3d0 --- /dev/null +++ b/ballerina/build.gradle @@ -0,0 +1,79 @@ +/* + * Copyright (c) 2023, WSO2 LLC. (http://www.wso2.com) + * + * WSO2 LLC. licenses this file to you under the Apache License, + * Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import org.apache.tools.ant.taskdefs.condition.Os + +plugins { + id 'io.ballerina.plugin' +} + +description = 'Ballerina - Candid Ballerina' + +def packageName = "candid" +def packageOrg = "ballerinax" +def tomlVersion = stripBallerinaExtensionVersion("${project.version}") +def ballerinaTomlFilePlaceHolder = new File("${project.rootDir}/build-config/resources/Ballerina.toml") +def ballerinaTomlFile = new File("$project.projectDir/Ballerina.toml") + +def stripBallerinaExtensionVersion(String extVersion) { + if (extVersion.matches(project.ext.timestampedVersionRegex)) { + def splitVersion = extVersion.split('-') + if (splitVersion.length > 3) { + def strippedValues = splitVersion[0..-4] + return strippedValues.join('-') + } else { + return extVersion + } + } else { + return extVersion.replace("${project.ext.snapshotVersion}", "") + } +} + +ballerina { + packageOrganization = packageOrg + module = packageName + testCoverageParam = "--code-coverage --coverage-format=xml" + buildOnDockerImage = "nightly" +} + +task updateTomlFiles { + doLast { + def newBallerinaToml = ballerinaTomlFilePlaceHolder.text.replace("@project.version@", project.version) + newBallerinaToml = newBallerinaToml.replace("@toml.version@", tomlVersion) + ballerinaTomlFile.text = newBallerinaToml + } +} + +task commitTomlFiles { + doLast { + project.exec { + ignoreExitValue true + if (Os.isFamily(Os.FAMILY_WINDOWS)) { + commandLine 'cmd', '/c', "git commit -m \"[Automated] Update the toml files\" Ballerina.toml Dependencies.toml" + } else { + commandLine 'sh', '-c', "git commit -m '[Automated] Update the toml files' Ballerina.toml Dependencies.toml" + } + } + } +} + +clean { + delete 'build' +} + +publish.dependsOn build diff --git a/ballerina/icon.png b/ballerina/icon.png new file mode 100644 index 0000000..218a751 Binary files /dev/null and b/ballerina/icon.png differ diff --git a/ballerina/modules/charitycheckpdf/client.bal b/ballerina/modules/charitycheckpdf/client.bal new file mode 100644 index 0000000..86a3cce --- /dev/null +++ b/ballerina/modules/charitycheckpdf/client.bal @@ -0,0 +1,71 @@ +// AUTO-GENERATED FILE. DO NOT MODIFY. +// This file is auto-generated by the Ballerina OpenAPI tool. + +// Copyright (c) 2023 WSO2 LLC. (http://www.wso2.org) All Rights Reserved. +// +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +import ballerina/http; + +# This end-point will allow you to retrieve organization's Charity Check information in PDF format. API returns the byte stream. +public isolated client class Client { + final http:Client clientEp; + final readonly & ApiKeysConfig apiKeyConfig; + # Gets invoked to initialize the `connector`. + # + # + apiKeyConfig - API keys for authorization + # + config - The configurations to be used when initializing the `connector` + # + serviceUrl - URL of the target service + # + return - An error if connector initialization failed + public isolated function init(ApiKeysConfig apiKeyConfig, ConnectionConfig config = {}, string serviceUrl = "https://apidata.guidestar.org/charitycheckpdf") returns error? { + http:ClientConfiguration httpClientConfig = {httpVersion: config.httpVersion, timeout: config.timeout, forwarded: config.forwarded, poolConfig: config.poolConfig, compression: config.compression, circuitBreaker: config.circuitBreaker, retryConfig: config.retryConfig, validation: config.validation}; + do { + if config.http1Settings is ClientHttp1Settings { + ClientHttp1Settings settings = check config.http1Settings.ensureType(ClientHttp1Settings); + httpClientConfig.http1Settings = {...settings}; + } + if config.http2Settings is http:ClientHttp2Settings { + httpClientConfig.http2Settings = check config.http2Settings.ensureType(http:ClientHttp2Settings); + } + if config.cache is http:CacheConfig { + httpClientConfig.cache = check config.cache.ensureType(http:CacheConfig); + } + if config.responseLimits is http:ResponseLimitConfigs { + httpClientConfig.responseLimits = check config.responseLimits.ensureType(http:ResponseLimitConfigs); + } + if config.secureSocket is http:ClientSecureSocket { + httpClientConfig.secureSocket = check config.secureSocket.ensureType(http:ClientSecureSocket); + } + if config.proxy is http:ProxyConfig { + httpClientConfig.proxy = check config.proxy.ensureType(http:ProxyConfig); + } + } + http:Client httpEp = check new (serviceUrl, httpClientConfig); + self.clientEp = httpEp; + self.apiKeyConfig = apiKeyConfig.cloneReadOnly(); + return; + } + # /charitycheckpdf/v1/pdf + # + # + ein - Employer Identification Number. + # + return - OK + resource isolated function get v1/pdf/[string ein]() returns http:Response|error { + string resourcePath = string `/v1/pdf/${getEncodedUri(ein)}`; + map headerValues = {"Subscription-Key": self.apiKeyConfig.subscriptionKey}; + map httpHeaders = getMapForHeaders(headerValues); + http:Response response = check self.clientEp->get(resourcePath, httpHeaders); + return response; + } +} diff --git a/ballerina/modules/charitycheckpdf/tests/test.bal b/ballerina/modules/charitycheckpdf/tests/test.bal new file mode 100644 index 0000000..8220674 --- /dev/null +++ b/ballerina/modules/charitycheckpdf/tests/test.bal @@ -0,0 +1,39 @@ +// AUTO-GENERATED FILE. DO NOT MODIFY. +// This file is auto-generated by the Ballerina OpenAPI tool. + +// Copyright (c) 2023 WSO2 LLC. (http://www.wso2.org) All Rights Reserved. +// +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +import ballerina/log; +import ballerina/http; +import ballerina/os; +import ballerina/test; + +configurable string apiKey = os:getEnv("CHARITYCHECKPDF_API_KEY"); + +const EIN = "13-1837418"; + +ApiKeysConfig apiKeyConfig = { + subscriptionKey: apiKey +}; +Client charityCheckPDF = check new Client(apiKeyConfig, serviceUrl = "https://apidata.guidestar.org/charitycheckpdf"); + +@test:Config +function testCharitycheckpdf() returns error? { + log:printInfo("charityCheckPDF -> testCharitycheckpdf()"); + http:Response result = check charityCheckPDF->/v1/pdf/[EIN]; + test:assertEquals(result.getContentType(), "application/pdf"); +} diff --git a/ballerina/modules/charitycheckpdf/types.bal b/ballerina/modules/charitycheckpdf/types.bal new file mode 100644 index 0000000..54b24f3 --- /dev/null +++ b/ballerina/modules/charitycheckpdf/types.bal @@ -0,0 +1,130 @@ +// AUTO-GENERATED FILE. DO NOT MODIFY. +// This file is auto-generated by the Ballerina OpenAPI tool. + +// Copyright (c) 2023 WSO2 LLC. (http://www.wso2.org) All Rights Reserved. +// +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +import ballerina/http; + +# Provides a set of configurations for controlling the behaviours when communicating with a remote HTTP endpoint. +@display {label: "Connection Config"} +public type ConnectionConfig record {| + # The HTTP version understood by the client + http:HttpVersion httpVersion = http:HTTP_2_0; + # Configurations related to HTTP/1.x protocol + ClientHttp1Settings http1Settings?; + # Configurations related to HTTP/2 protocol + http:ClientHttp2Settings http2Settings?; + # The maximum time to wait (in seconds) for a response before closing the connection + decimal timeout = 60; + # The choice of setting `forwarded`/`x-forwarded` header + string forwarded = "disable"; + # Configurations associated with request pooling + http:PoolConfiguration poolConfig?; + # HTTP caching related configurations + http:CacheConfig cache?; + # Specifies the way of handling compression (`accept-encoding`) header + http:Compression compression = http:COMPRESSION_AUTO; + # Configurations associated with the behaviour of the Circuit Breaker + http:CircuitBreakerConfig circuitBreaker?; + # Configurations associated with retrying + http:RetryConfig retryConfig?; + # Configurations associated with inbound response size limits + http:ResponseLimitConfigs responseLimits?; + # SSL/TLS-related options + http:ClientSecureSocket secureSocket?; + # Proxy server related options + http:ProxyConfig proxy?; + # Enables the inbound payload validation functionality which provided by the constraint package. Enabled by default + boolean validation = true; +|}; + +# Provides settings related to HTTP/1.x protocol. +public type ClientHttp1Settings record {| + # Specifies whether to reuse a connection for multiple requests + http:KeepAlive keepAlive = http:KEEPALIVE_AUTO; + # The chunking behaviour of the request + http:Chunking chunking = http:CHUNKING_AUTO; + # Proxy server related options + ProxyConfig proxy?; +|}; + +# Proxy server configurations to be used with the HTTP client endpoint. +public type ProxyConfig record {| + # Host name of the proxy server + string host = ""; + # Proxy server port + int port = 0; + # Proxy server username + string userName = ""; + # Proxy server password + @display {label: "", kind: "password"} + string password = ""; +|}; + +# Provides API key configurations needed when communicating with a remote HTTP endpoint. +public type ApiKeysConfig record {| + string subscriptionKey; +|}; + +public type BadRequest record { + # HTTP response status code. + string? code?; + # Diagnostic message for response status + string? message?; +}; + +public type TooManyRequests record { + # HTTP response status code. + string? code?; + # Diagnostic message for response status + string? message?; +}; + +public type Unauthorized record { + # HTTP response status code. + string? code?; + # Diagnostic message for response status + string? message?; +}; + +public type Forbidden record { + # HTTP response status code. + string? code?; + # Diagnostic message for response status + string? message?; +}; + +public type NotAcceptable record { + # HTTP response status code. + string? code?; + # Diagnostic message for response status + string? message?; +}; + +public type InternalServerError record { + # HTTP response status code. + string? code?; + # Diagnostic message for response status + string? message?; +}; + +public type NotFound record { + # HTTP response status code. + string? code?; + # Diagnostic message for response status + string? message?; +}; diff --git a/ballerina/modules/charitycheckpdf/utils.bal b/ballerina/modules/charitycheckpdf/utils.bal new file mode 100644 index 0000000..e7edd59 --- /dev/null +++ b/ballerina/modules/charitycheckpdf/utils.bal @@ -0,0 +1,57 @@ +// AUTO-GENERATED FILE. DO NOT MODIFY. +// This file is auto-generated by the Ballerina OpenAPI tool. + +// Copyright (c) 2023 WSO2 LLC. (http://www.wso2.org) All Rights Reserved. +// +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +import ballerina/url; + +type SimpleBasicType string|boolean|int|float|decimal; + +# Get Encoded URI for a given value. +# +# + value - Value to be encoded +# + return - Encoded string +isolated function getEncodedUri(anydata value) returns string { + string|error encoded = url:encode(value.toString(), "UTF8"); + if (encoded is string) { + return encoded; + } else { + return value.toString(); + } +} + +# Generate header map for given header values. +# +# + headerParam - Headers map +# + return - Returns generated map or error at failure of client initialization +isolated function getMapForHeaders(map headerParam) returns map { + map headerMap = {}; + foreach var [key, value] in headerParam.entries() { + if value is string || value is string[] { + headerMap[key] = value; + } else if value is int[] { + string[] stringArray = []; + foreach int intValue in value { + stringArray.push(intValue.toString()); + } + headerMap[key] = stringArray; + } else if value is SimpleBasicType { + headerMap[key] = value.toString(); + } + } + return headerMap; +} diff --git a/ballerina/modules/essentials/client.bal b/ballerina/modules/essentials/client.bal new file mode 100644 index 0000000..a738e5a --- /dev/null +++ b/ballerina/modules/essentials/client.bal @@ -0,0 +1,134 @@ +// AUTO-GENERATED FILE. DO NOT MODIFY. +// This file is auto-generated by the Ballerina OpenAPI tool. + +// Copyright (c) 2023 WSO2 LLC. (http://www.wso2.org) All Rights Reserved. +// +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +import ballerina/http; + +# Search GuideStar’s most common set of data about nonprofits to quickly find organizations most relevant to your users, and use those results to get more data from our other APIs. API returns search result in JSON format. +public isolated client class Client { + final http:Client clientEp; + final readonly & ApiKeysConfig apiKeyConfig; + # Gets invoked to initialize the `connector`. + # + # + apiKeyConfig - API keys for authorization + # + config - The configurations to be used when initializing the `connector` + # + serviceUrl - URL of the target service + # + return - An error if connector initialization failed + public isolated function init(ApiKeysConfig apiKeyConfig, ConnectionConfig config = {}, string serviceUrl = "https://api.candid.org/essentials") returns error? { + http:ClientConfiguration httpClientConfig = {httpVersion: config.httpVersion, timeout: config.timeout, forwarded: config.forwarded, poolConfig: config.poolConfig, compression: config.compression, circuitBreaker: config.circuitBreaker, retryConfig: config.retryConfig, validation: config.validation}; + do { + if config.http1Settings is ClientHttp1Settings { + ClientHttp1Settings settings = check config.http1Settings.ensureType(ClientHttp1Settings); + httpClientConfig.http1Settings = {...settings}; + } + if config.http2Settings is http:ClientHttp2Settings { + httpClientConfig.http2Settings = check config.http2Settings.ensureType(http:ClientHttp2Settings); + } + if config.cache is http:CacheConfig { + httpClientConfig.cache = check config.cache.ensureType(http:CacheConfig); + } + if config.responseLimits is http:ResponseLimitConfigs { + httpClientConfig.responseLimits = check config.responseLimits.ensureType(http:ResponseLimitConfigs); + } + if config.secureSocket is http:ClientSecureSocket { + httpClientConfig.secureSocket = check config.secureSocket.ensureType(http:ClientSecureSocket); + } + if config.proxy is http:ProxyConfig { + httpClientConfig.proxy = check config.proxy.ensureType(http:ProxyConfig); + } + } + http:Client httpEp = check new (serviceUrl, httpClientConfig); + self.clientEp = httpEp; + self.apiKeyConfig = apiKeyConfig.cloneReadOnly(); + return; + } + # /essentials/v1 + # + # + payload - Below JSON request body is an example showing all available elements. Please use the examples from the API Documentation. + # + return - OK + resource isolated function post v1(Query payload) returns V1EssentialsResponse|error { + string resourcePath = string `/v1`; + map headerValues = {"Subscription-Key": self.apiKeyConfig.subscriptionKey}; + map httpHeaders = getMapForHeaders(headerValues); + http:Request request = new; + json jsonBody = payload.toJson(); + request.setPayload(jsonBody, "application/json"); + V1EssentialsResponse response = check self.clientEp->post(resourcePath, request, httpHeaders); + return response; + } + # /essentials/v2 + # + # + payload - Below JSON request body is an example showing all available elements. Please use the examples from the API Documentation. + # + return - OK + resource isolated function post v2(Query payload) returns V2EssentialsResponse|error { + string resourcePath = string `/v2`; + map headerValues = {"Subscription-Key": self.apiKeyConfig.subscriptionKey}; + map httpHeaders = getMapForHeaders(headerValues); + http:Request request = new; + json jsonBody = payload.toJson(); + request.setPayload(jsonBody, "application/json"); + V2EssentialsResponse response = check self.clientEp->post(resourcePath, request, httpHeaders); + return response; + } + # /essentials/v3 + # + # + payload - Below JSON request body is an example showing all available elements. Please use the examples from the API Documentation. + # + return - OK + resource isolated function post v3(V3Query payload) returns V3EssentialsResponse|error { + string resourcePath = string `/v3`; + map headerValues = {"Subscription-Key": self.apiKeyConfig.subscriptionKey}; + map httpHeaders = getMapForHeaders(headerValues); + http:Request request = new; + json jsonBody = payload.toJson(); + request.setPayload(jsonBody, "application/json"); + V3EssentialsResponse response = check self.clientEp->post(resourcePath, request, httpHeaders); + return response; + } + # /essentials/lookup + # + # + return - OK + resource isolated function get lookup() returns EssentialsLookupResponse|error { + string resourcePath = string `/lookup`; + map headerValues = {"Subscription-Key": self.apiKeyConfig.subscriptionKey}; + map httpHeaders = getMapForHeaders(headerValues); + EssentialsLookupResponse response = check self.clientEp->get(resourcePath, httpHeaders); + return response; + } + # /essentials/lookup/{filter_name} + # + # + return - OK + resource isolated function get lookup/[string filter_name]() returns EssentialsFilteredLookupResponse|error { + string resourcePath = string `/lookup/${getEncodedUri(filter_name)}`; + map headerValues = {"Subscription-Key": self.apiKeyConfig.subscriptionKey}; + map httpHeaders = getMapForHeaders(headerValues); + EssentialsFilteredLookupResponse response = check self.clientEp->get(resourcePath, httpHeaders); + return response; + } + # /essentials/lookup/{filter_name}/{key_or_value} + # + # + filter_name - A list of all filters that can be used in Essentials endpoints. Found in the response of /essentials/lookup. + # + key_or_value - Key of filterable items. Found in the response of /essentials/lookup/{filter_name} + # + return - OK + resource isolated function get lookup/[string filter_name]/[string key_or_value]() returns EssentialsFilteredLookupResponse|error { + string resourcePath = string `/lookup/${getEncodedUri(filter_name)}/${getEncodedUri(key_or_value)}`; + map headerValues = {"Subscription-Key": self.apiKeyConfig.subscriptionKey}; + map httpHeaders = getMapForHeaders(headerValues); + EssentialsFilteredLookupResponse response = check self.clientEp->get(resourcePath, httpHeaders); + return response; + } +} diff --git a/ballerina/modules/essentials/tests/test.bal b/ballerina/modules/essentials/tests/test.bal new file mode 100644 index 0000000..d76e240 --- /dev/null +++ b/ballerina/modules/essentials/tests/test.bal @@ -0,0 +1,124 @@ +// AUTO-GENERATED FILE. DO NOT MODIFY. +// This file is auto-generated by the Ballerina OpenAPI tool. + +// Copyright (c) 2023 WSO2 LLC. (http://www.wso2.org) All Rights Reserved. +// +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +import ballerina/log; +import ballerina/os; +import ballerina/test; + +configurable string apiKey = os:getEnv("ESSENTIALS_API_KEY"); + +const SEARCH_TERM = "candid"; +const FILTER_NAME = "ntee_major"; +const KEY_OR_VALUE = "C00"; + +ApiKeysConfig apiKeyConfig = { + subscriptionKey: apiKey +}; +Client essentials = check new Client(apiKeyConfig, serviceUrl = "https://api.candid.org/essentials"); + +@test:Config +function testEssentialsV1() returns error? { + log:printInfo("essentials -> testEssentialsV1()"); + Query query = { + search_terms: SEARCH_TERM + }; + V1EssentialsResponse result = check essentials->/v1.post(query); + V1EssentialsResponse_data? data = result?.data; + if data is V1EssentialsResponse_data { + V1EssentialsResponse_data_hits[]? hits = data?.hits; + if hits is V1EssentialsResponse_data_hits[] { + test:assertEquals(hits.length(), 25); + } else { + test:assertFail(); + } + } else { + test:assertFail(); + } +} + +@test:Config +function testEssentialsV2() returns error? { + log:printInfo("essentials -> testEssentialsV2()"); + Query query = { + search_terms: SEARCH_TERM + }; + V2EssentialsResponse result = check essentials->/v2.post(query); + V2EssentialsResponse_data? data = result?.data; + if data is V2EssentialsResponse_data { + V2EssentialsResponse_data_hits[]? hits = data?.hits; + if hits is V2EssentialsResponse_data_hits[] { + test:assertEquals(hits.length(), 25); + } else { + test:assertFail(); + } + } else { + test:assertFail(); + } +} + +@test:Config +function testEssentialsV3() returns error? { + log:printInfo("essentials -> testEssentialsV3()"); + V3Query query = { + search_terms: SEARCH_TERM + }; + V3EssentialsResponse result = check essentials->/v3.post(query); + V3EssentialsResponse_hits[]? hits = result?.hits; + if hits is V3EssentialsResponse_hits[] { + test:assertEquals(hits.length(), 25); + } else { + test:assertFail(); + } +} + +@test:Config +function testEssentialsLookup() returns error? { + log:printInfo("essentials -> testEssentialsLookup()"); + EssentialsLookupResponse result = check essentials->/lookup; + string[]? data = result?.data; + if data is string[] { + test:assertTrue(data.some(val => val == FILTER_NAME)); + } else { + test:assertFail(); + } +} + +@test:Config +function testEssentialsLookupFilterName() returns error? { + log:printInfo("essentials -> testEssentialsLookupFilterName()"); + EssentialsFilteredLookupResponse result = check essentials->/lookup/[FILTER_NAME]; + EssentialsFilteredLookupResponse_data[]? data = result?.data; + if data is EssentialsFilteredLookupResponse_data[] { + test:assertTrue(data.some(val => val?.'key == KEY_OR_VALUE)); + } else { + test:assertFail(); + } +} + +@test:Config +function testEssentialsLookupFilterNameKeyOrValue() returns error? { + log:printInfo("essentials -> testEssentialsLookupFilterNameKeyOrValue()"); + EssentialsFilteredLookupResponse result = check essentials->/lookup/[FILTER_NAME]/[KEY_OR_VALUE]; + EssentialsFilteredLookupResponse_data[]? data = result?.data; + if data is EssentialsFilteredLookupResponse_data[] { + test:assertTrue(data.some(val => val?.'key == KEY_OR_VALUE)); + } else { + test:assertFail(); + } +} diff --git a/ballerina/modules/essentials/types.bal b/ballerina/modules/essentials/types.bal new file mode 100644 index 0000000..ed9357e --- /dev/null +++ b/ballerina/modules/essentials/types.bal @@ -0,0 +1,773 @@ +// AUTO-GENERATED FILE. DO NOT MODIFY. +// This file is auto-generated by the Ballerina OpenAPI tool. + +// Copyright (c) 2023 WSO2 LLC. (http://www.wso2.org) All Rights Reserved. +// +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +import ballerina/http; + +# Provides a set of configurations for controlling the behaviours when communicating with a remote HTTP endpoint. +@display {label: "Connection Config"} +public type ConnectionConfig record {| + # The HTTP version understood by the client + http:HttpVersion httpVersion = http:HTTP_2_0; + # Configurations related to HTTP/1.x protocol + ClientHttp1Settings http1Settings?; + # Configurations related to HTTP/2 protocol + http:ClientHttp2Settings http2Settings?; + # The maximum time to wait (in seconds) for a response before closing the connection + decimal timeout = 60; + # The choice of setting `forwarded`/`x-forwarded` header + string forwarded = "disable"; + # Configurations associated with request pooling + http:PoolConfiguration poolConfig?; + # HTTP caching related configurations + http:CacheConfig cache?; + # Specifies the way of handling compression (`accept-encoding`) header + http:Compression compression = http:COMPRESSION_AUTO; + # Configurations associated with the behaviour of the Circuit Breaker + http:CircuitBreakerConfig circuitBreaker?; + # Configurations associated with retrying + http:RetryConfig retryConfig?; + # Configurations associated with inbound response size limits + http:ResponseLimitConfigs responseLimits?; + # SSL/TLS-related options + http:ClientSecureSocket secureSocket?; + # Proxy server related options + http:ProxyConfig proxy?; + # Enables the inbound payload validation functionality which provided by the constraint package. Enabled by default + boolean validation = true; +|}; + +# Provides settings related to HTTP/1.x protocol. +public type ClientHttp1Settings record {| + # Specifies whether to reuse a connection for multiple requests + http:KeepAlive keepAlive = http:KEEPALIVE_AUTO; + # The chunking behaviour of the request + http:Chunking chunking = http:CHUNKING_AUTO; + # Proxy server related options + ProxyConfig proxy?; +|}; + +# Proxy server configurations to be used with the HTTP client endpoint. +public type ProxyConfig record {| + # Host name of the proxy server + string host = ""; + # Proxy server port + int port = 0; + # Proxy server username + string userName = ""; + # Proxy server password + @display {label: "", kind: "password"} + string password = ""; +|}; + +# Provides API key configurations needed when communicating with a remote HTTP endpoint. +public type ApiKeysConfig record {| + string subscriptionKey; +|}; + +public type V3EssentialsResponse_taxonomies_ntee_codes record { + # National Taxonomy of Exempt Entities + string? ntee_code?; + # Description of NTEE code + string? ntee_code_description?; +}; + +public type V3EssentialsResponse_taxonomies_foundation_code record { + # Foundation code that describes the organization + string? foundation_code?; + # Description of foundation code + string? foundation_code_description?; +}; + +public type Query record { + # Can be any string you'd like to search on, including EIN, organization name, keywords, etc. + string? search_terms?; + # The offset from the first result. Defaults to 0. + int? 'from?; + # The maximum number of hits to be returned. Defaults to 25. The maximum number allowed is 25. + int? size?; + Sort? sort?; + Filters? filters?; +}; + +public type OrganizationFilter record { + # GuideStar seal levels, comma separated. + string[]? profile_levels?; + # National Taxonomy of Exempt Entities (NTEE) major codes, comma separated. + string[]? ntee_major_codes?; + # National Taxonomy of Exempt Entities (NTEE) minor codes, comma separated. + string[]? ntee_minor_codes?; + # IRS subsection codes and/or descriptions, comma separated. + string[]? subsection_codes?; + # Foundation codes and/or descriptions, comma separated. + string[]? foundation_codes?; + # Flag indicating the organization has the most recent IRS BMF. Defaults to null. Otherwise true or false. + boolean? bmf_status?; + # Flag indicating the organization is pub78 verified. Value set as true or false. + boolean? pub78_verified?; + AffiliationTypeFilter? affiliation_type?; + SpecificExclusionsFilter? specific_exclusions?; + NumberRangeFilter? number_of_employees_range?; + IrsFormTypesFilter? form_types?; + AuditsFilter? audits?; +}; + +public type V3FinancialsFilter record { + V3FinancialsFilter_most_recent_year? most_recent_year?; + # Flag indicating the organization is required to file a 990-T. Value set as true or false. + boolean? required_to_file_990t?; + # Flag indicating the organization performed A-133 audit. Value set as true or false. + boolean? a_133_audit_performed?; +}; + +public type V3OrgProperties record { + # Flag indicating the organization has the most recent IRS BMF. Defaults to null. Otherwise true or false. + boolean? bmf_status?; + # Flag indicating the organization is pub78 verified. Value set as true or false. + boolean? pub78_verified?; + # Flag indicating the organization allows online giving. Value set as true or false. + boolean? allow_online_giving?; + # Flag indicating the organization has submitted demographics information. Value set as true or false. + boolean? dei_submitted?; + # Flag to exclude revoked organizations. Value set as true or false. + boolean? exclude_revoked_organizations?; + # Flag to exclude defunct or merged organizations. Value set as true or false. + boolean? exclude_defunct_or_merged_organizations?; + AffiliationTypeFilter? relationship_type?; +}; + +public type NumberRangeFilter record { + # Minimum number + int? min?; + # Maximum number + int? max?; +}; + +public type GeographyFilter record { + string[]? state?; + # Five digit ZIP code + string? zip?; + # Radius from the specified ZIP code in miles. Allowed range is between 1 and 50 miles. Values exceeding 50 will default to a radius of 50 miles. + int? radius?; + string[]? msa?; + string[]? city?; + string[]? county?; +}; + +public type IrsFormTypesFilter record { + # Flag indicating the organization files a form 990. Value set as true or false. + boolean? f990?; + # Flag indicating the organization files a form 990-PF. Value set as true or false. + boolean? f990pf?; + # Flag indicating the organization files a form 990 EZ. Value set as true or false. + boolean? f990ez?; + # Flag indicating the organization files a form 990N. Value set as true or false. + boolean? f990n?; + # Flag indicating the organization is required to file a 990-T. Value set as true or false. + boolean? required_to_file_990t?; +}; + +public type V3EssentialsResponse_geography record { + # Address line 1 of the organization + string? address_line_1?; + # Address line 2 of the organization + string? address_line_2?; + # City of the organization's address + string? city?; + # State (Abbreviation) of the organization's address + string? state?; + # Zip code of the organization's address + decimal|string? zip?; + # Metropolitan statistical area of the organization's adresss + string? msa?; + # Congressional district of the organization's address + string? congressional_district?; + # County of the organization's address + string? county?; + # latitude of the organization's adress + decimal? latitude?; + # longitude of the organization's adress + decimal? longitude?; +}; + +public type V3EssentialsResponse_properties_relationship_type record { + # If the organization is a parent + boolean? parent?; + # If the organization is a subordinate + boolean? subordinate?; + # If the organization is independent + boolean? independent?; + # If the organization is a national headquarter + boolean? headquarters?; +}; + +public type Filters record { + GeographyFilter? geography?; + OrganizationFilter? organization?; + FinancialsFilter? financials?; +}; + +public type V3FinancialsFilter_most_recent_year record { + V3FinancialsFilter_most_recent_year_form_types? form_types?; + NumberRangeFilter? total_revenue?; + NumberRangeFilter? total_expenses?; + NumberRangeFilter? total_assets?; +}; + +public type V3EssentialsResponse_financials record { + V3EssentialsResponse_financials_most_recent_year? most_recent_year?; + # Gross receipts of the organization reported on the BMF + decimal? bmf_gross_receipts?; + # Assets of the organization reported on the BMF + decimal? bmf_assets?; + # Flag indicating the organization is required to file a 990-T. + boolean? required_to_file_990t?; + # Flag indicating the organization performed A-133 audit. + boolean? a_133_audit_performed?; +}; + +public type Sort record { + # Leave blank to sort by relevance. + "organization_name"|"bmf_gross_receipts"|"bmf_assets" sort_by?; + # Default value is true (ascending). Set to false to sort by descending value. + boolean? 'ascending?; +}; + +public type LastUpdated record { + # A filter, along with end_date, defines a range on date_type, in the format yyyy-MM-ddTHH:mm:ss. + string? start_date?; + # A filter, along with start_date, defines a range on date_type, in the format yyyy-MM-ddTHH:mm:ss. + string? end_date?; + # A filter, to specify updates made to a organization over the specified end_date and start_date. + "seal_last_modified"|"profile_last_modified"|"dei_last_modified"|"financials_last_modified"|"last_modified" date_type?; +}; + +public type V3EssentialsResponse_properties record { + # If the organization is present on the BMF + boolean? bmf_status?; + # If the organization is Pub78 verified + boolean? pub78_verified?; + # If the organization allows online giving + boolean? allow_online_giving?; + # If the organization has submitted demographics information + boolean? dei_submitted?; + # If the organization is revoked + boolean? revoked?; + # If the organization is defuncted or merged + boolean? defuncted_or_merged?; + V3EssentialsResponse_properties_relationship_type? relationship_type?; + # Organization's relation with other organizations. + V3EssentialsResponse_properties_relationship_details? relationship_details?; +}; + +public type EssentialsFilteredLookupResponse record { + # HTTP response status code. + int? code?; + string? message?; + int? took?; + string[]? errors?; + # A list of all the tables used as a filter_name with the Essentials Lookup endpoints + EssentialsFilteredLookupResponse_data[]? data?; +}; + +public type V2EssentialsResponse_data_hits record { + # A unique number identifying organizations and organizational entities + string? organization_id?; + # Deprecated Bridge ID + string? bridge_id?; + # Employer Identification Number + string? ein?; + # The public name recognized by the IRS + string? organization_name?; + # Organization name Also Known As + string? also_known_as?; + # Mission statement for the organization + string? mission?; + # Address line 1 of the organization + string? address_line_1?; + # Address line 2 of the organization + string? address_line_2?; + # City of the organization's address + string? city?; + # State (Abbreviation) of the organization's address + string? state?; + # Zip code of the organization's address + string? zip?; + # County of the organization's address + string? county?; + # Metropolitan statistical area of the organization's adresss + string? msa?; + # latitude and longitude of the organization's adress + string? lat_long?; + # National Taxonomy of Exempt Entities + string? ntee_code?; + # GuideStar seal levels. + "BRONZE"|"SILVER"|"GOLD"|"PLATINUM"|"NONE" profile_level?; + # GuideStar's public profile URL + string? public_report?; + # IRS subsection code of the organization + string? subsection_code?; + # Number of employees at the organization + string? number_of_employees?; + # Tax form filing type. + string? form_type?; + # URL for the organization's website + string? website_url?; + # URL for the organization's logo + string? logo_url?; + # Foundation code that describes the organization + string? foundation_code?; + # Names of parent organizations, comma seperated + string? parent_orgs?; + # Gross receipts of the organization reported on the BMF + string? bmf_gross_receipts?; + # Assets of the organization reported on the BMF + string? bmf_assets?; + # Total revenue filed on the most recent Form 990, 990-PF, or 990-EZ filing + string? form990_total_revenue?; + # Total expenses filed on the most recent Form 990, 990-PF, or 990-EZ filing + string? form990_total_expenses?; + # Total assets filed on the most recent Form 990, 990-PF, or 990-EZ filing + string? form990_total_assets?; + # Email of the primary contact at the organization + string? contact_email?; + # Name of the primary contact at the organization + string? contact_name?; + # Phone number of the primary contact at the organization + string? contact_phone?; + # Title of the primary contact at the organization + string? contact_title?; + V1EssentialsResponse_data_properties? properties?; +}; + +public type V3Query record { + # Can be any string you'd like to search on, including EIN, organization name, keywords, etc. + string? search_terms?; + # The offset from the first result. Defaults to 0. + int? 'from?; + # The maximum number of hits to be returned. Defaults to 25. The maximum number allowed is 25. + int? size?; + V3Sort? sort?; + V3Filters? filters?; +}; + +public type V3EssentialsResponse_taxonomies record { + V3EssentialsResponse_taxonomies_subject_codes[]? subject_codes?; + V3EssentialsResponse_taxonomies_population_served_codes[]? population_served_codes?; + V3EssentialsResponse_taxonomies_ntee_codes[]? ntee_codes?; + V3EssentialsResponse_taxonomies_subsection_code? subsection_code?; + V3EssentialsResponse_taxonomies_foundation_code? foundation_code?; +}; + +public type AffiliationTypeFilter record { + # Flag indicating the organization is a parent. Value set as true or false. + boolean? parent?; + # Flag indicating the organization is a subordinate. Value set as true or false. + boolean? subordinate?; + # Flag indicating the organization is independent. Value set as true or false. + boolean? independent?; + # Flag indicating the organization is a headquarter. Value set as true or false. + boolean? headquarter?; +}; + +public type BadRequest record { + # HTTP response status code. + string? code?; + string? message?; +}; + +public type V3EssentialsResponse_hits record { + V3EssentialsResponse_organization? organization?; + V3EssentialsResponse_properties? properties?; + V3EssentialsResponse_geography? geography?; + V3EssentialsResponse_taxonomies? taxonomies?; + V3EssentialsResponse_financials? financials?; + V3EssentialsResponse_dates? dates?; +}; + +public type V3Filters record { + GeographyFilter? geography?; + V3OrganizationFilter? organization?; + V3FinancialsFilter? financials?; + LastUpdated? last_updated?; +}; + +public type NotAcceptable record { + # HTTP response status code. + string? code?; + string? message?; +}; + +public type V3EssentialsResponse_taxonomies_population_served_codes record { + # Population served code + string? population_served_code?; + # Description of Population served code + string? population_served_description?; +}; + +public type V3EssentialsResponse_financials_most_recent_year record { + # Tax form filing type + string? form_types?; + # Fiscal year of the most recent tax filing + decimal? fiscal_year?; + # Most recent year total revenue + decimal? total_revenue?; + # Most recent year total expenses + decimal? total_expenses?; + # Most recent year total assets + decimal? total_assets?; +}; + +public type V1EssentialsResponse_data_properties record { + # If the organization is a parent + boolean? parent?; + # If the organization is a subordinate + boolean? subordinate?; + # If the organization is independent + boolean? independent?; + # If the organization is a national headquarter + boolean? national_hq?; + # If the organization is revoked + boolean? revoked?; + # If the organization is defuncted or merged + boolean? defuncted_or_merged?; + # If the organization performed a A-133 audit + boolean? audit_a133_performed?; + # If the organization is present on the BMF + boolean? bmf_status?; + # If the organization is Pub78 verified + boolean? pub78_verified?; + # If the organization allows online giving + boolean? allow_online_giving?; +}; + +public type V3EssentialsResponse record { + # Response Code + int? code?; + # Diagnostic message for response status + string? message?; + # Time taken for request to process + int? took?; + # Time of API call. + string? time?; + # Number of results returned by search + int? results_count?; + # Number of pages returned by the search. + int? page_count?; + # List of errors encountered + string[]? errors?; + V3EssentialsResponse_hits[]? hits?; +}; + +public type V2EssentialsResponse_data record { + # Elapsed time to calculate results + int? took?; + # Number of results returned by search + int? total_hits?; + V2EssentialsResponse_data_hits[]? hits?; +}; + +public type FinancialsFilter record { + NumberRangeFilter? total_revenue?; + NumberRangeFilter? total_expenses?; + NumberRangeFilter? total_assets?; +}; + +public type EssentialsLookupResponse record { + # Response Code + int? code?; + # Diagnostic message for response status + string? message?; + # Time taken for request to process + int? took?; + # List of errors encountered + string[]? errors?; + string[]? data?; +}; + +public type V3EssentialsResponse_taxonomies_subsection_code record { + # IRS subsection code of the organization + string? subsection_code?; + # Description of IRS subsection code + string? subsection_code_description?; +}; + +# Key value pair for filter name, value, and search_value +public type EssentialsFilteredLookupResponse_data record { + # Code for the filter_name results + string? 'key?; + # Text for the filter_name results + string? value?; + # Value to pass in Essential's API filters + string? search_value?; +}; + +public type Forbidden record { + # HTTP response status code. + string? code?; + string? message?; +}; + +public type V3FinancialsFilter_most_recent_year_form_types record { + # Flag indicating the organization files a form 990. Value set as true or false. + boolean? f990?; + # Flag indicating the organization files a form 990-PF. Value set as true or false. + boolean? f990pf?; + # Flag indicating the organization files a form 990ez. Value set as true or false. + boolean? f990ez?; + # Flag indicating the organization files a form 990n. Value set as true or false. + boolean? f990n?; +}; + +public type InternalServerError record { + # HTTP response status code. + string? code?; + string? message?; +}; + +public type V3EssentialsResponse_taxonomies_subject_codes record { + # Subject code + string? subject_code?; + # Description of subject code + string? subject_code_description?; +}; + +public type Unauthorized record { + # HTTP response status code. + string? code?; + string? message?; +}; + +public type V2EssentialsResponse record { + # Response Code + int? code?; + # Diagnostic message for response status + string? message?; + # Time taken for request to process + int? took?; + # List of errors encountered + string[]? errors?; + V2EssentialsResponse_data? data?; +}; + +public type V3EssentialsResponse_organization record { + # A unique number identifying organizations and organizational entities + string? organization_id?; + # Employer Identification Number + string? ein?; + # The public name recognized by the IRS + string? organization_name?; + # Organization name Also Known As + string? also_known_as?; + # Four-digit number assigned to a group of organizations falling under a central/parent organization holding group exemption letters. + string? group_exemption?; + # Mission statement for the organization + string? mission?; + # URL for the organization's website + string? website_url?; + # URL for the organization's logo + string? logo_url?; + # GuideStar seal level + string? profile_level?; + # GuideStar seal year + decimal? profile_year?; + # GuideStar's public profile URL + string? profile_link?; + # GuideStar's seal logo + string? profile_logo?; + # Name of leader + string? leader_name?; + # Leader's title + string? leader_title?; + # Name of the primary contact at the organization + string? contact_name?; + # Email of the primary contact at the organization + string? contact_email?; + # Phone number of the primary contact at the organization + string? contact_phone?; + # Title of the primary contact at the organization + string? contact_title?; + # Number of employees at the organization + decimal|string? number_of_employees?; + # The year the IRS granted organization tax exempt status (a.k.a. Ruling Year) + decimal? ruling_year?; +}; + +public type SpecificExclusionsFilter record { + # Flag to exclude revoked organizations. Value set as true or false. + boolean? exclude_revoked_organizations?; + # Flag to exclude defunct or merged organizations. Value set as true or false. + boolean? exclude_defunct_or_merged_organizations?; +}; + +public type V1EssentialsResponse_data_hits record { + # A unique number identifying organizations and organizational entities + string? organization_id?; + # Deprecated Bridge ID + string? bridge_id?; + # Employer Identification Number + string? ein?; + # The public name recognized by the IRS + string? organization_name?; + # Organization name Also Known As + string? also_known_as?; + # Mission statement for the organization + string? mission?; + # Address line 1 of the organization + string? address_line_1?; + # Address line 2 of the organization + string? address_line_2?; + # City of the organization's address + string? city?; + # State (Abbreviation) of the organization's address + string? state?; + # Zip code of the organization's address + string? zip?; + # County of the organization's address + string? county?; + # Metropolitan statistical area of the organization's adresss + string? msa?; + # latitude and longitude of the organization's adress + string? lat_long?; + # National Taxonomy of Exempt Entities + string? ntee_code?; + # GuideStar seal levels. + "BRONZE"|"SILVER"|"GOLD"|"PLATINUM"|"NONE" profile_level?; + # GuideStar's public profile URL + string? public_report?; + # IRS subsection code of the organization + string? subsection_code?; + # Number of employees at the organization + string? number_of_employees?; + # Tax form filing type. + string? form_type?; + # URL for the organization's website + string? website_url?; + # Foundation code that describes the organization + string? foundation_code?; + # Names of parent organizations, comma seperated + string? parent_orgs?; + # Gross receipts of the organization reported on the BMF + string? bmf_gross_receipts?; + # Assets of the organization reported on the BMF + string? bmf_assets?; + # Total revenue filed on the most recent Form 990, 990-PF, or 990-EZ filing + string? form990_total_revenue?; + # Total expenses filed on the most recent Form 990, 990-PF, or 990-EZ filing + string? form990_total_expenses?; + # Total assets filed on the most recent Form 990, 990-PF, or 990-EZ filing + string? form990_total_assets?; + # Email of the primary contact at the organization + string? contact_email?; + # Name of the primary contact at the organization + string? contact_name?; + # Phone number of the primary contact at the organization + string? contact_phone?; + # Title of the primary contact at the organization + string? contact_title?; + V1EssentialsResponse_data_properties? properties?; +}; + +public type V3EssentialsResponse_dates record { + # Date when Candid seal status was last modified. + string? seal_last_modified?; + # Datetime of last update to Candid profile. + string? profile_last_modified?; + # Datetime of last update to organization demographics information + string? dei_last_modified?; + # Datetime of last update to organization's financial information + string? financials_last_modified?; + # Datetime of organization's last publication + string? last_published?; +}; + +public type V1EssentialsResponse_data record { + # Elapsed time to calculate results + int? took?; + # Number of results returned by search + int? total_hits?; + V1EssentialsResponse_data_hits[]? hits?; +}; + +public type V3Sort record { + # Leave blank to sort by relevance. + "organization_name"|"bmf_gross_receipts"|"bmf_assets"|"distance"|"year_founded" sort_by?; + # Default value is ascending. Allowed values are "asc" (ascending) and "desc" (descending). + "asc"|"desc" sort_order?; +}; + +# Organization's relation with other organizations. +public type V3EssentialsResponse_properties_relationship_details record { + # Relationship type of organization. + "parent"|"subordinate" relationship_type?; + # Name of organization. + string? organization_name?; + # Employer Identification Number + string? ein?; +}; + +public type V1EssentialsResponse record { + # Response Code + int? code?; + # Diagnostic message for response status + string? message?; + # Time taken for request to process + int? took?; + # List of errors encountered + string[]? errors?; + V1EssentialsResponse_data? data?; +}; + +public type V3OrganizationFilter record { + # GuideStar seal levels, comma separated. + string[]? profile_levels?; + # Subject codes, comma separated. + string[]? subject_codes?; + # Population served codes, comma separated. + string[]? population_served_codes?; + # National Taxonomy of Exempt Entities (NTEE) major codes, comma separated. + string[]? ntee_major_codes?; + # National Taxonomy of Exempt Entities (NTEE) minor codes, comma separated. + string[]? ntee_minor_codes?; + # IRS subsection codes and/or descriptions, comma separated. + string[]? subsection_codes?; + # Foundation codes and/or descriptions, comma separated. + string[]? foundation_codes?; + # Group exemption codes, comma separated. + string[]? group_exemption?; + NumberRangeFilter? number_of_employees?; + NumberRangeFilter? ruling_year?; + V3OrgProperties? properties?; +}; + +public type AuditsFilter record { + # Flag indicating the organization performed A-133 audit. Value set as true or false. + boolean? a_133_audit_performed?; +}; + +public type TooManyRequests record { + # HTTP response status code. + string? code?; + string? message?; +}; + +public type NotFound record { + # HTTP response status code. + string? code?; + string? message?; +}; diff --git a/ballerina/modules/essentials/utils.bal b/ballerina/modules/essentials/utils.bal new file mode 100644 index 0000000..e7edd59 --- /dev/null +++ b/ballerina/modules/essentials/utils.bal @@ -0,0 +1,57 @@ +// AUTO-GENERATED FILE. DO NOT MODIFY. +// This file is auto-generated by the Ballerina OpenAPI tool. + +// Copyright (c) 2023 WSO2 LLC. (http://www.wso2.org) All Rights Reserved. +// +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +import ballerina/url; + +type SimpleBasicType string|boolean|int|float|decimal; + +# Get Encoded URI for a given value. +# +# + value - Value to be encoded +# + return - Encoded string +isolated function getEncodedUri(anydata value) returns string { + string|error encoded = url:encode(value.toString(), "UTF8"); + if (encoded is string) { + return encoded; + } else { + return value.toString(); + } +} + +# Generate header map for given header values. +# +# + headerParam - Headers map +# + return - Returns generated map or error at failure of client initialization +isolated function getMapForHeaders(map headerParam) returns map { + map headerMap = {}; + foreach var [key, value] in headerParam.entries() { + if value is string || value is string[] { + headerMap[key] = value; + } else if value is int[] { + string[] stringArray = []; + foreach int intValue in value { + stringArray.push(intValue.toString()); + } + headerMap[key] = stringArray; + } else if value is SimpleBasicType { + headerMap[key] = value.toString(); + } + } + return headerMap; +} diff --git a/ballerina/modules/premier/client.bal b/ballerina/modules/premier/client.bal new file mode 100644 index 0000000..1cc4563 --- /dev/null +++ b/ballerina/modules/premier/client.bal @@ -0,0 +1,121 @@ +// AUTO-GENERATED FILE. DO NOT MODIFY. +// This file is auto-generated by the Ballerina OpenAPI tool. + +// Copyright (c) 2023 WSO2 LLC. (http://www.wso2.org) All Rights Reserved. +// +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +import ballerina/http; + +# Enhance your apps, records, or experience with robust nonprofit profile financials, people, DEI, and IRS compliance validation. +public isolated client class Client { + final http:Client clientEp; + final readonly & ApiKeysConfig apiKeyConfig; + # Gets invoked to initialize the `connector`. + # + # + apiKeyConfig - API keys for authorization + # + config - The configurations to be used when initializing the `connector` + # + serviceUrl - URL of the target service + # + return - An error if connector initialization failed + public isolated function init(ApiKeysConfig apiKeyConfig, ConnectionConfig config = {}, string serviceUrl = "https://api.candid.org/premier") returns error? { + http:ClientConfiguration httpClientConfig = {httpVersion: config.httpVersion, timeout: config.timeout, forwarded: config.forwarded, poolConfig: config.poolConfig, compression: config.compression, circuitBreaker: config.circuitBreaker, retryConfig: config.retryConfig, validation: config.validation}; + do { + if config.http1Settings is ClientHttp1Settings { + ClientHttp1Settings settings = check config.http1Settings.ensureType(ClientHttp1Settings); + httpClientConfig.http1Settings = {...settings}; + } + if config.http2Settings is http:ClientHttp2Settings { + httpClientConfig.http2Settings = check config.http2Settings.ensureType(http:ClientHttp2Settings); + } + if config.cache is http:CacheConfig { + httpClientConfig.cache = check config.cache.ensureType(http:CacheConfig); + } + if config.responseLimits is http:ResponseLimitConfigs { + httpClientConfig.responseLimits = check config.responseLimits.ensureType(http:ResponseLimitConfigs); + } + if config.secureSocket is http:ClientSecureSocket { + httpClientConfig.secureSocket = check config.secureSocket.ensureType(http:ClientSecureSocket); + } + if config.proxy is http:ProxyConfig { + httpClientConfig.proxy = check config.proxy.ensureType(http:ProxyConfig); + } + } + http:Client httpEp = check new (serviceUrl, httpClientConfig); + self.clientEp = httpEp; + self.apiKeyConfig = apiKeyConfig.cloneReadOnly(); + return; + } + # /premier/v1 + # + # + ein - Employer Identification Number. + # + return - OK + # + # # Deprecated + @deprecated + resource isolated function get v1/[string ein]() returns V1PublicProfile|error { + string resourcePath = string `/v1/${getEncodedUri(ein)}`; + map headerValues = {"Subscription-Key": self.apiKeyConfig.subscriptionKey}; + map httpHeaders = getMapForHeaders(headerValues); + V1PublicProfile response = check self.clientEp->get(resourcePath, httpHeaders); + return response; + } + # /premier/v1/propdf + # + # + ein - Employer Identification Number. + # + return - OK + resource isolated function get v1/propdf/[string ein]() returns http:Response|error { + string resourcePath = string `/v1/propdf/${getEncodedUri(ein)}`; + map headerValues = {"Subscription-Key": self.apiKeyConfig.subscriptionKey}; + map httpHeaders = getMapForHeaders(headerValues); + http:Response response = check self.clientEp->get(resourcePath, httpHeaders); + return response; + } + # /premier/v1/ftapdf + # + # + ein - Employer Identification Number. + # + return - OK + resource isolated function get v1/ftapdf/[string ein]() returns http:Response|error { + string resourcePath = string `/v1/ftapdf/${getEncodedUri(ein)}`; + map headerValues = {"Subscription-Key": self.apiKeyConfig.subscriptionKey}; + map httpHeaders = getMapForHeaders(headerValues); + http:Response response = check self.clientEp->get(resourcePath, httpHeaders); + return response; + } + # /premier/v2 + # + # + ein - Employer Identification Number. + # + return - OK + # + # # Deprecated + @deprecated + resource isolated function get v2/[string ein]() returns V2PublicProfile|error { + string resourcePath = string `/v2/${getEncodedUri(ein)}`; + map headerValues = {"Subscription-Key": self.apiKeyConfig.subscriptionKey}; + map httpHeaders = getMapForHeaders(headerValues); + V2PublicProfile response = check self.clientEp->get(resourcePath, httpHeaders); + return response; + } + # /premier/v3 + # + # + ein - Employer Identification Number. + # + return - OK + resource isolated function get v3/[string ein]() returns V3PublicProfile|error { + string resourcePath = string `/v3/${getEncodedUri(ein)}`; + map headerValues = {"Subscription-Key": self.apiKeyConfig.subscriptionKey}; + map httpHeaders = getMapForHeaders(headerValues); + V3PublicProfile response = check self.clientEp->get(resourcePath, httpHeaders); + return response; + } +} diff --git a/ballerina/modules/premier/tests/test.bal b/ballerina/modules/premier/tests/test.bal new file mode 100644 index 0000000..565f980 --- /dev/null +++ b/ballerina/modules/premier/tests/test.bal @@ -0,0 +1,63 @@ +// AUTO-GENERATED FILE. DO NOT MODIFY. +// This file is auto-generated by the Ballerina OpenAPI tool. + +// Copyright (c) 2023 WSO2 LLC. (http://www.wso2.org) All Rights Reserved. +// +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +import ballerina/log; +import ballerina/http; +import ballerina/os; +import ballerina/test; + +configurable string apiKey = os:getEnv("PREMIER_API_KEY"); + +const EIN = "13-1837418"; + +ApiKeysConfig apiKeyConfig = { + subscriptionKey: apiKey +}; +Client premier = check new Client(apiKeyConfig, serviceUrl = "https://api.candid.org/premier"); + +@test:Config +function testPremierV1Propdf() returns error? { + log:printInfo("premier -> testPremierV1Propdf()"); + http:Response result = check premier->/v1/propdf/[EIN]; + test:assertEquals(result.getContentType(), "application/pdf"); +} + +@test:Config +function testPremierV1ftapdf() returns error? { + log:printInfo("premier -> testPremierV1ftapdf()"); + http:Response result = check premier->/v1/ftapdf/[EIN]; + test:assertEquals(result.getContentType(), "application/pdf"); +} + +@test:Config +function testPremierV3() returns error? { + log:printInfo("premier -> testPremierV3()"); + V3PublicProfile result = check premier->/v3/[EIN]; + V3PublicProfile_data? data = result?.data; + if data is V3PublicProfile_data { + Summary3? summary = data?.summary; + if summary is Summary3 { + test:assertEquals(summary?.ein, EIN); + } else { + test:assertFail(); + } + } else { + test:assertFail(); + } +} diff --git a/ballerina/modules/premier/types.bal b/ballerina/modules/premier/types.bal new file mode 100644 index 0000000..654cdff --- /dev/null +++ b/ballerina/modules/premier/types.bal @@ -0,0 +1,2601 @@ +// AUTO-GENERATED FILE. DO NOT MODIFY. +// This file is auto-generated by the Ballerina OpenAPI tool. + +// Copyright (c) 2023 WSO2 LLC. (http://www.wso2.org) All Rights Reserved. +// +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +import ballerina/http; + +# Provides a set of configurations for controlling the behaviours when communicating with a remote HTTP endpoint. +@display {label: "Connection Config"} +public type ConnectionConfig record {| + # The HTTP version understood by the client + http:HttpVersion httpVersion = http:HTTP_2_0; + # Configurations related to HTTP/1.x protocol + ClientHttp1Settings http1Settings?; + # Configurations related to HTTP/2 protocol + http:ClientHttp2Settings http2Settings?; + # The maximum time to wait (in seconds) for a response before closing the connection + decimal timeout = 60; + # The choice of setting `forwarded`/`x-forwarded` header + string forwarded = "disable"; + # Configurations associated with request pooling + http:PoolConfiguration poolConfig?; + # HTTP caching related configurations + http:CacheConfig cache?; + # Specifies the way of handling compression (`accept-encoding`) header + http:Compression compression = http:COMPRESSION_AUTO; + # Configurations associated with the behaviour of the Circuit Breaker + http:CircuitBreakerConfig circuitBreaker?; + # Configurations associated with retrying + http:RetryConfig retryConfig?; + # Configurations associated with inbound response size limits + http:ResponseLimitConfigs responseLimits?; + # SSL/TLS-related options + http:ClientSecureSocket secureSocket?; + # Proxy server related options + http:ProxyConfig proxy?; + # Enables the inbound payload validation functionality which provided by the constraint package. Enabled by default + boolean validation = true; +|}; + +# Provides settings related to HTTP/1.x protocol. +public type ClientHttp1Settings record {| + # Specifies whether to reuse a connection for multiple requests + http:KeepAlive keepAlive = http:KEEPALIVE_AUTO; + # The chunking behaviour of the request + http:Chunking chunking = http:CHUNKING_AUTO; + # Proxy server related options + ProxyConfig proxy?; +|}; + +# Proxy server configurations to be used with the HTTP client endpoint. +public type ProxyConfig record {| + # Host name of the proxy server + string host = ""; + # Proxy server port + int port = 0; + # Proxy server username + string userName = ""; + # Proxy server password + @display {label: "", kind: "password"} + string password = ""; +|}; + +# Provides API key configurations needed when communicating with a remote HTTP endpoint. +public type ApiKeysConfig record {| + string subscriptionKey; +|}; + +# IRS letter of determination information +public type LetterOfDetermination record { + # Document name of the letter of determination + string? letter_of_determination_doc_name?; + # URL to the letter of determination + string? letter_of_determination_url?; +}; + +# Information about the non-profit, such as name and address +public type Summary1 record { + # GuideStar internal organization ID + int? organization_id?; + # Organization name + string? organization_name?; + # Employee identification number + string? ein?; + # DEPRECATED + string? bridge_id?; + # Organization address street name + string? address_line_1?; + # Organization address Suite or Apartment number + string? address_line_2?; + # Organization address city + string? city?; + # Organization address state + string? state?; + # Organization address zip code + string? zip?; + # Organization fax number + string? fax?; + # Legal organization name + string? govt_registered_name?; + # Comma separated string of names associated with the organization + string? also_known_as?; + # When the fiscal year ends for the organization + string? fiscal_year_end?; + # When the fiscal year begins for the organization + string? fiscal_year_start?; + # Single digit code designating the type of organization (Central, Intermediate, or Independent) if there is no group exemption or (Central, Intermediate, Independent, or Subordinate) if there is a group exemption. + string? affiliation_code?; + # Description of what the affiliation code means + string? affiliation_description?; + # Primary contact name + string? contact_name?; + # Primary contact title + string? contact_title?; + # Primary contact email + string? contact_email?; + # Primary contact phone number + string? contact_phone?; + # Primary contact fax number + string? contact_fax?; + # Guidestar.org organization profile seal of transparency level + string? gs_profile_update_level?; + # Url to Guidestar.org seal image + string? gs_profile_update_level_logo?; + # Deductibility code signifies whether contributions made to an organization are deductible + string? deductibility_code?; + # Deductibility code description + string? deductibility_description?; + # EIN that should be used for charitable donations + string? donation_to_ein?; + # Organization name that should be used for charitable donations + string? donation_to_name?; + # DEPRECATED + string? areas_served_narrative?; + # Year that organization started operating as a non-profit + string? ruling_year?; + # Guidestar.org organization profile URL + string? gs_public_report?; + # URL of API call to the Pro PDF API endpoint to download the organization's profile PDF + string? gs_pro_pdf?; + # DEPRECATED + string? impact_statement?; + # Subsection Codes are the codes shown under section 501(c) of the Internal Revenue Code of 1986, which define the category under which an organization may be exempt. + string? subsection_code?; + # Description of organization subsection code + string? subsection_description?; + # Keywords added by the organization to their profile + string? keywords?; + # Organization logo URL + string? logo_url?; + # Organization mission statement + string? mission?; + # Whether or not this organization is the national headquarters + boolean? is_national_hq?; + # National Taxonomy of Exempt Entities (NTEE) Code + string? ntee_code?; + # Organization website URL + string? website_url?; + # Year that an organization was founded + string? year_founded?; + # Year that an organization was incorporated + string? year_incorporated?; + Address[]? addresses?; + Affiliation[]? affiliations?; + Award[]? awards?; + FormerName[]? formerly_known_as?; + string[]? forms_1023_1024?; + LetterOfDetermination[]? letters_of_determination?; + LetterOfDissolution[]? letters_of_dissolution?; + NteeCode[]? ntee_codes?; + # North American Industry Classification System (NAICS) information + NAICSCode? naics_code?; + SICCode[]? sic_codes?; + OtherDocument[]? other_documents?; + PhotoLink[]? photos?; + string[]? social_media_urls?; + TelephoneNumber[]? telephone_numbers?; + Video[]? videos?; +}; + +# Information about the non-profit, such as name and address +public type Summary2 record { + # GuideStar internal organization ID + int? organization_id?; + # Organization name + string? organization_name?; + # Employee identification number + string? ein?; + # DEPRECATED + string? bridge_id?; + # Organization address street name + string? address_line_1?; + # Organization address Suite or Apartment number + string? address_line_2?; + # Organization address city + string? city?; + # Organization address state + string? state?; + # Organization address zip code + string? zip?; + # Organization fax number + string? fax?; + # Legal organization name + string? govt_registered_name?; + # Comma separated string of names associated with the organization + string? also_known_as?; + # When the fiscal year ends for the organization + string? fiscal_year_end?; + # When the fiscal year begins for the organization + string? fiscal_year_start?; + # Single digit code designating the type of organization (Central, Intermediate, or Independent) if there is no group exemption or (Central, Intermediate, Independent, or Subordinate) if there is a group exemption. + string? affiliation_code?; + # Description of what the affiliation code means + string? affiliation_description?; + # Primary contact name + string? contact_name?; + # Primary contact title + string? contact_title?; + # Primary contact email + string? contact_email?; + # Primary contact phone number + string? contact_phone?; + # Primary contact fax number + string? contact_fax?; + # Guidestar.org organization profile seal of transparency level + string? gs_profile_update_level?; + # Url to Guidestar.org seal image + string? gs_profile_update_level_logo?; + # Deductibility code signifies whether contributions made to an organization are deductible + string? deductibility_code?; + # Deductibility code description + string? deductibility_description?; + # EIN that should be used for charitable donations + string? donation_to_ein?; + # Organization name that should be used for charitable donations + string? donation_to_name?; + # DEPRECATED + string? areas_served_narrative?; + # Year that organization started operating as a non-profit + string? ruling_year?; + # Guidestar.org organization profile URL + string? gs_public_report?; + # URL of API call to the Pro PDF API endpoint to download the organization's profile PDF + string? gs_pro_pdf?; + # URL of API call to the FTA PDF API endpoint to download the organization's financial trends analysis PDF + string? gs_financial_trends_analysis_pdf?; + # DEPRECATED + string? impact_statement?; + # Subsection Codes are the codes shown under section 501(c) of the Internal Revenue Code of 1986, which define the category under which an organization may be exempt. + string? subsection_code?; + # Description of organization subsection code + string? subsection_description?; + # Keywords added by the organization to their profile + string? keywords?; + # Organization logo URL + string? logo_url?; + # Organization mission statement + string? mission?; + # Whether or not this organization is the national headquarters + boolean? is_national_hq?; + # National Taxonomy of Exempt Entities (NTEE) Code + string? ntee_code?; + # Organization website URL + string? website_url?; + # Year that an organization was founded + string? year_founded?; + # Year that an organization was incorporated + string? year_incorporated?; + # Is the organization not on the BMF + boolean? is_non_bmf_org?; + # First time organization appeared on the BMF + string? first_on_bmf_date?; + # Last time an organization appeared on the BMF + string? last_on_bmf_date?; + # Contains the last change datetimes for several key data values + ProfileDataChangeDates? profile_data_change_dates?; + Address[]? addresses?; + Affiliation[]? affiliations?; + Award[]? awards?; + FormerName[]? formerly_known_as?; + string[]? forms_1023_1024?; + LetterOfDetermination[]? letters_of_determination?; + LetterOfDissolution[]? letters_of_dissolution?; + NteeCode[]? ntee_codes?; + # North American Industry Classification System (NAICS) information + NAICSCode? naics_code?; + SICCode[]? sic_codes?; + PlatinumEvaluationDocument[]? platinum_evaluation_documents?; + OtherDocument[]? other_documents?; + PhotoLink[]? photos?; + string[]? social_media_urls?; + TelephoneNumber[]? telephone_numbers?; + Video[]? videos?; +}; + +# Address entry in summary.addresses. Usually an office of an organization. +public type Address record { + # Address line 1 + string? address_line_1?; + # Address line 2 + string? address_line_2?; + # Address city + string? city?; + # Address state + string? state?; + # Address postal code + string? postal_code?; + # Address country + string? country?; + # Address type + string? address_type?; +}; + +public type FinancialStatement record { + # DEPRECATED + string? fiscal_year_begin?; + # When the fiscal year ends. + string? fiscal_year_end?; + # The company that audited the financials. + string? auditing_company?; + # The name of the uploaded document + string? doc_name?; + # The url of the document + string? document_url?; +}; + +# Information about the non-profit, such as name and address +public type Summary3 record { + # GuideStar internal organization ID + int? organization_id?; + # Organization name + string? organization_name?; + # Employee identification number + string? ein?; + # DEPRECATED + string? bridge_id?; + # Organization address street name + string? address_line_1?; + # Organization address Suite or Apartment number + string? address_line_2?; + # Organization address city + string? city?; + # Organization address state + string? state?; + # Organization address zip code + string? zip?; + # Organization address county + string? county?; + # Latitude of the center of the zip code of an organizations mailing address + string? latitude?; + # Longitude of the center of the zip code of an organizations mailing address + string? longitude?; + # Organization fax number + string? fax?; + # Legal organization name + string? govt_registered_name?; + # Comma separated string of names associated with the organization + string? also_known_as?; + # When the fiscal year ends for the organization + string? fiscal_year_end?; + # When the fiscal year begins for the organization + string? fiscal_year_start?; + # Single digit code designating the type of organization (Central, Intermediate, or Independent) if there is no group exemption or (Central, Intermediate, Independent, or Subordinate) if there is a group exemption. + string? affiliation_code?; + # Description of what the affiliation code means + string? affiliation_description?; + # Primary contact name + string? contact_name?; + # Primary contact title + string? contact_title?; + # Primary contact email + string? contact_email?; + # Primary contact phone number + string? contact_phone?; + # Primary contact fax number + string? contact_fax?; + # Guidestar.org organization profile seal of transparency level + string? gs_profile_update_level?; + # Url to Guidestar.org seal image + string? gs_profile_update_level_logo?; + # Deductibility code signifies whether contributions made to an organization are deductible + string? deductibility_code?; + # Deductibility code description + string? deductibility_description?; + # EIN that should be used for charitable donations + string? donation_to_ein?; + # Organization name that should be used for charitable donations + string? donation_to_name?; + # DEPRECATED + string? areas_served_narrative?; + # Year that organization started operating as a non-profit + string? ruling_year?; + # Guidestar.org organization profile URL + string? gs_public_report?; + # URL of API call to the Pro PDF API endpoint to download the organization's profile PDF + string? gs_pro_pdf?; + # URL of API call to the FTA PDF API endpoint to download the organization's financial trends analysis PDF + string? gs_financial_trends_analysis_pdf?; + # DEPRECATED + string? impact_statement?; + # Subsection Codes are the codes shown under section 501(c) of the Internal Revenue Code of 1986, which define the category under which an organization may be exempt. + string? subsection_code?; + # Description of organization subsection code + string? subsection_description?; + # Keywords added by the organization to their profile + string? keywords?; + # Organization logo URL + string? logo_url?; + # Organization mission statement + string? mission?; + # Whether or not this organization is the national headquarters + boolean? is_national_hq?; + # Description of demographics status that can be displayed to a funder or donor + string? demographics_status?; + # Description of demographics status that can be displayed to a nonprofit + string? demographics_status_nonprofit?; + # National Taxonomy of Exempt Entities (NTEE) Code + string? ntee_code?; + # UN sustainable development goals + SDG? sdg?; + # Organization website URL + string? website_url?; + # Year that an organization was founded + string? year_founded?; + # Year that an organization was incorporated + string? year_incorporated?; + # Is the organization not on the BMF + boolean? is_non_bmf_org?; + # First time organization appeared on the BMF + string? first_on_bmf_date?; + # Last time an organization appeared on the BMF + string? last_on_bmf_date?; + # Contains the last change datetimes for several key data values + ProfileDataChangeDates? profile_data_change_dates?; + Address[]? addresses?; + Affiliation[]? affiliations?; + Award[]? awards?; + FormerName[]? formerly_known_as?; + string[]? forms_1023_1024?; + LetterOfDetermination[]? letters_of_determination?; + LetterOfDissolution[]? letters_of_dissolution?; + NteeCode[]? ntee_codes?; + # North American Industry Classification System (NAICS) information + NAICSCode? naics_code?; + SICCode[]? sic_codes?; + PlatinumEvaluationDocument[]? platinum_evaluation_documents?; + OtherDocument[]? other_documents?; + PhotoLink[]? photos?; + string[]? social_media_urls?; + TelephoneNumber[]? telephone_numbers?; + Video[]? videos?; + # Has this organization filled the 'How we listen' section of their profile + boolean? org_collect_feedback?; + # Response to 'How is your organization collecting feedback?' + string? org_feedback_example?; + # Did the organization indicate they had an interest in taking guidestar's feedback quiz + boolean? org_quiz_interest?; + # Did the organization indicate they had an interest in learning more about feedback practices + boolean? org_learn_more?; + FBResponseText[]? feedback_responses?; + PCS[]? pcs_codes?; + SDG[]? profile_sdg_codes?; +}; + +# IRS 990 form Part VIII dealing with revenue +public type PartVIII record { + # revenue from federated campaigns + decimal? federated_campaigns?; + # revenue from membership dues + decimal? membership_dues?; + # revenue from fundraising events + decimal? fundraising_events?; + # revenue from related orgs + decimal? related_orgs?; + # revenue from government grants + decimal? government_grants?; + # revenue from other contributions + decimal? contributions_other?; + # revenue from other noncash contributions + decimal? contributions_noncash?; + # total revenue from other contributions + decimal? contributions_all?; + # revenue from services + decimal? service_revenue?; + # revenue from income investments + decimal? income_investment?; + # revenue from income bonds + decimal? income_bonds?; + # revenue from royalties + decimal? royalties?; + # Gross Rent-real + decimal? rents_real?; + # Gross Rent -personal + decimal? rents_personal?; + # Real rental expense + decimal? rent_expenses_real?; + # Personal rental expense + decimal? rent_expenses_personal?; + # Rental Income-real + decimal? rent_income_real?; + # Rental Income-personal + decimal? rent_income_personal?; + # Net Rental Income + decimal? net_rental?; + # Gross sales of Assets-securities + decimal? gross_securities?; + # Gross sales of assets-other + decimal? gross_other?; + # Less cost of sale of assets-securities + decimal? cost_securities?; + # Less cost of sales of assets-other + decimal? cost_other?; + # Gain or loss on sale of assets-securities + decimal? gain_securities?; + # Gain or loss on sale of assets-other + decimal? gain_other?; + # net revenue from sales + decimal? net_sales?; + # revenue from contributions + decimal? contributions?; + # gross special revenue + decimal? gross_special?; + # direct expenses for the organization + decimal? direct_expenses?; + # net special revenue + decimal? net_special?; + # Gross income from gaming + decimal? gaming_income?; + # Less expenses from gaming + decimal? gaming_expenses?; + # Net income from gaming + decimal? gaming_net?; + # gross revenue from sales + decimal? gross_sales?; + # cost of goods + decimal? cost_goods?; + # gross profit earned + decimal? gross_profit?; + # other revenue + decimal? revenue_other?; + # total revenue + decimal? revenue_total?; + # first specially declared revenue-providing service + string? service_description_a?; + # Program service code (a) + decimal? service_code_a?; + # second specially declared revenue-providing service + string? service_description_b?; + # revenue from service a + decimal? service_amount_a?; + # Program service code (b) + decimal? service_code_b?; + # revenue from service b + decimal? service_amount_b?; + # third specially declared revenue-providing service + string? service_description_c?; + # Program service code (c) + decimal? service_code_c?; + # revenue from service c + decimal? service_amount_c?; + # fourth specially declared revenue-providing service + string? service_description_d?; + # Program service code (d) + decimal? service_code_d?; + # revenue from service d + decimal? service_amount_d?; + # fifth specially declared revenue-providing service + string? service_description_e?; + # Program service code (e) + decimal? service_code_e?; + # revenue from service e + decimal? service_amount_e?; + # sixth specially declared revenue-providing service + string? service_description_f?; + # Program service code (f) + decimal? service_code_f?; + # revenue from service f + decimal? service_amount_f?; +}; + +# UN sustainable development goals +public type SDG record { + # UN sustainable development goal number + int:Signed32? id?; + # UN sustainable development goal description + string? description?; +}; + +public type BoardMember record { + # The board member's first and last name. + string? name?; + # DEPRECATED + string? title?; + # The company the board member works for. + string? company?; +}; + +# expense composition section of financial trends analysis +public type Expense_Composition record { + # total expenses before depreciation + int? total_expenses_before_depreciation?; + # total expenses percent change over the prior year + string? total_expenses_percent_change_over_prior_year?; + # personnel expenses + string? personnel?; + # professional fees expenses + string? professional_fees?; + # occupancy expenses + string? occupancy?; + # expenses from interest + string? interest_expense?; + # Pass through expenses + string? pass_through?; + # all other expenses + string? all_other_expenses?; +}; + +@deprecated +public type Accreditation record { + # DEPRECATED + string? accreditation?; + # DEPRECATED + string? year?; +}; + +# Category for demographics +# +# # Deprecated +@deprecated +public type DemographicsCategory record { + # DEPRECATED + string? category?; + record {|boolean?...;|}? org_does_not_collect_for?; + # DEPRECATED + DemographicsSubCategory[]? subcategories?; +}; + +public type V3PublicProfile record { + # HTTP response status code. + int? code?; + # Diagnostic message for response status + string? message?; + # Time taken for request to process + int? took?; + # List of errors encountered + string[]? errors?; + V3PublicProfile_data? data?; +}; + +# DEPRECATED +# +# # Deprecated +@deprecated +public type Affiliation record { + # DEPRECATED + string? affiliation?; + # DEPRECATED + string? year?; +}; + +public type Form990T record { + # The name of the file. + string? form990t_name?; + # URL for the organization's Form 990 T + string? form990t_url?; +}; + +public type ParentOrganization record { + # The parent organizations EIN. + string? ein?; + # The parent organizations name. + string? organization_name?; + # The exemption code. + string? group_exemption?; +}; + +# Program metrics entered by the organization +public type PlatinumMetrics record { + # Metric name + string? metric?; + # The years this metric was captured and the values for a given year + MetricYear[]? years?; + # The target populations that the metric supports + string[]? target_population_served?; + # How this metric is being measured + string? type_of_metric?; + # How to determine if this metric is showing a successful trend + string? direction_of_success?; +}; + +# Collection of an organizations programs and program metrics +public type Programs2 record { + Program2[]? programs?; + PlatinumMetrics[]? platinum_metrics?; + Question[]? charting_impact_answers?; +}; + +# IRS 990 form Part X, Balance Sheet +public type PartX record { + # beginning of year cash + decimal? cash_boy?; + # end of year cash + decimal? cash_eoy?; + # beginning of year savings + decimal? savings_boy?; + # end of year savings + decimal? savings_eoy?; + # Net pledges and grants receivable: beginning of year + decimal? pledges_grants_boy?; + # Net pledges and grants receivable: end of year + decimal? pledges_grants_eoy?; + # beginning of year accounts receivable + decimal? accounts_receivable_boy?; + # end of year accounts receivable + decimal? accounts_receivable_eoy?; + # beginning of year qualified receivable + decimal? qualified_receivable_boy?; + # end of year qualified receivable + decimal? qualified_receivable_eoy?; + # beginning of year disqualified receivable + decimal? disqualified_receivable_boy?; + # end of year disqualified receivable + decimal? disqualified_receivable_eoy?; + # beginning of year loans receivable + decimal? loans_receivable_boy?; + # end of year loans receivable + decimal? loans_receivable_eoy?; + # beginning of year inventory + decimal? inventory_boy?; + # end of year inventory + decimal? inventory_eoy?; + # beginning of year prepaid + decimal? prepaid_boy?; + # end of year prepaid + decimal? prepaid_eoy?; + # Land, buildings, and equipment: cost basis + decimal? lbe_base?; + # Less: accumulated depreciation + decimal? less_depreciation?; + # Land and buildings BOY + decimal? lbe_boy?; + # Land and buildings EOY + decimal? lbe_eoy?; + # beginning of year public securities + decimal? public_securities_boy?; + # end of year public securities + decimal? public_securities_eoy?; + # beginning of year other securities + decimal? other_securities_boy?; + # end ofyear other securities + decimal? other_securities_eoy?; + # beginning of year investment programs + decimal? investment_programs_boy?; + # end of year investment programs + decimal? investment_programs_eoy?; + # beginning of year intangible assets + decimal? intangible_assets_boy?; + # end of year intangible assets + decimal? intangible_assets_eoy?; + # beginning of year other assets + decimal? other_assets_boy?; + # end of year other assets + decimal? other_assets_eoy?; + # beginning of year total assets + decimal? assets_total_boy?; + # end of year total asstes + decimal? assets_total_eoy?; + # beginning of year accounts payable + decimal? accounts_payable_boy?; + # end of year accounts payable + decimal? accounts_payable_eoy?; + # beginning of year grants payable + decimal? grants_payable_boy?; + # end of year grants payable + decimal? grants_payable_eoy?; + # beginning of year deferred revenue + decimal? deferred_revenue_boy?; + # end of year deferred revenue + decimal? deferred_revenue_eoy?; + # beginning of year tax exempt bonds + decimal? tax_exempt_bonds_boy?; + # end of year tax exempt bonds + decimal? tax_exempt_bonds_eoy?; + # beginning of year escrow liability + decimal? escrow_liability_boy?; + # end of year escrow liability + decimal? escrow_liability_eoy?; + # beginning of year payable officiers + decimal? payable_officiers_boy?; + # end of year payable officiers + decimal? payable_officiers_eoy?; + # beginning of year secured notes payable + decimal? secured_notes_payable_boy?; + # end of year secured notes payable + decimal? secured_notes_payable_eoy?; + # beginning of year unsecured notes payable + decimal? unsecured_notes_payable_boy?; + # end of year unsecured notes payable + decimal? unsecured_notes_payable_eoy?; + # beginning of year other liability + decimal? liability_other_boy?; + # end of year other liability + decimal? liability_other_eoy?; + # beginning of year total liability + decimal? liability_total_boy?; + # end of year total liability + decimal? liability_total_eoy?; + # Unrestricted net assets: beginning of year + decimal? unrestricted_boy?; + # Unrestricted net assets: end of year + decimal? unrestricted_eoy?; + # Temporarily restricted net assets: Beginning of year + decimal? temporarily_restricted_boy?; + # Temporarily restricted net assets: End of year + decimal? temporarily_restricted_eoy?; + # Permanently restricted net assets: Beginning of year + decimal? permanently_restricted_boy?; + # Permanently restricted net assets: End of year + decimal? permanently_restricted_eoy?; + # Temporarily restricted net assets: Beginning of year + Permanently restricted net assets: Beginning of year + decimal? restricted_boy?; + # Temporarily restricted net assets: End of year + Permanently restricted net assets: Beginning of year + decimal? restricted_eoy?; + # beginning of year capital + decimal? capital_boy?; + # end of year capital + decimal? capital_eoy?; + # Paid-in or capital surplus, or land, building, or equipment fund: beginning of year + decimal? paid_in_boy?; + # Paid-in or capital surplus, or land, building, or equipment fund: end of year + decimal? paid_in_eoy?; + # Retained earnings, endowment, accumulated income, or other funds: beginning of year + decimal? retained_boy?; + # Retained earnings, endowment, accumulated income, or other funds: end of year + decimal? retained_eoy?; + # beginning of year net total + decimal? net_total_boy?; + # end of year net total + decimal? net_total_eoy?; + # beginning of year balances + decimal? balances_boy?; + # end of year balances + decimal? balances_eoy?; +}; + +# Collection of an organizations programs and program metrics +public type Programs1 record { + Program2[]? programs?; + PlatinumMetrics1[]? platinum_metrics?; + Question[]? charting_impact_answers?; +}; + +# Collection of an organizations programs and program metrics +public type Programs3 record { + Program3[]? programs?; + PlatinumMetrics[]? platinum_metrics?; + Question[]? charting_impact_answers?; +}; + +# liquidity capital structure indicator +public type Liquidity record { + # months worth of cash + decimal? months_of_cash?; + # months worth of cash and investments + decimal? months_of_cash_and_investments?; + # estimated months worth of liquid unrestricted net assets + decimal? months_of_estimated_liquid_unrestricted_net_assets?; +}; + +public type Object record { +}; + +@deprecated +public type FundingSource record { + # DEPRECATED + string? funding_source?; + # DEPRECATED + string? funding_amount?; +}; + +public type CharityCheck_parent_organizations record { + # EIN of parent organization. + string? ein?; + # Name of Parent Organization. + string? organization_name?; + # This is a four-digit internal number assigned to parent organizations holding group exemption letters. + string? group_exemption?; +}; + +public type NotAcceptable record { + # HTTP response status code. + string? code?; + string? message?; +}; + +# Standard Industrial Classification (SIC) information +public type SICCode record { + # SIC code + string? sic_code?; + # SIC code description + string? sic_description?; +}; + +public type Person record { + # The board member's first and last name. + string? name?; + # The board member's title. + string? title?; + string[]? 'type?; + # The salary for the staff member's position. + decimal? compensation?; + # Salary from other related organizations. + decimal? related_compensation?; + # Benefits provided by the organization. + decimal? other_compensation?; + # Hours spent on their position. + string? hours?; + # DEPRECATED + string? benefits?; +}; + +# IRS letter of dissolution information +public type LetterOfDissolution record { + # Document name of the letter of dissolution + string? name?; + # Year of dissolution + string? year?; + # URL to letter of dissolution + string? letter_of_dissolution_url?; +}; + +# North American Industry Classification System (NAICS) information +public type NAICSCode record { + # NAICS code + string? naics_code?; + # NAICS code description + string? naics_description?; +}; + +public type MetricYear record { + # The year for the metric. + int:Signed32? year?; + # The value for the metric. + decimal? value?; +}; + +# profitability section of financial trends analysis +public type Profitability record { + # unrestricted surplus or deficit before depreciation + int? Unrestricted_surplus_\(deficit\)_before_depreciation?; + # surplus as a percent of expenses before depreciation + string? surplus_as_percent_of_expenses_before_depreciation?; + # unrestricted surplus or deficit after depreciation + int? Unrestricted_surplus_\(deficit\)_after_depreciation?; + # surplus as a percent of expenses after depreciation + string? surplus_as_percent_of_expenses_after_depreciation?; +}; + +# External evaluations support your organization's progress or results +public type PlatinumEvaluationDocument record { + # Name of evaluation document + string? document_name?; + # Year of evaluation document + string? document_year?; + # URL of evaluation document + string? document_url?; + # DEPRECATED + string? document_type?; +}; + +public type AnnualReport record { + # The document's name. + string? doc_name?; + # DEPRECATED + string? contents?; + # The year the document is from. + string? year?; + # The url for the document. + string? url?; +}; + +public type V3PublicProfile_data record { + # Information about the non-profit, such as name and address + Summary3? summary?; + # Collection of an organizations programs and program metrics + Programs3? programs?; + # Organization financial information + Financials3? financials?; + # Organization operations information + Operations2? operations?; + # Organization Charity Check information + CharityCheck? charitycheck?; +}; + +public type InternalServerError record { + # HTTP response status code. + string? code?; + string? message?; +}; + +# Demographics, Equity, and Inclusion 2 sub category +public type DEI2SubCategory record { + # subcategory description + string? subcategory?; + # board members in demographic group + int:Signed32? board_members?; + # staff members in demographic group + int:Signed32? staff?; + # senior staff members in demographic group + int:Signed32? senior_staff?; + # whether or not reported by CEO + boolean? reported_by_ceo?; + # whether or not reported by co CEO + boolean? reported_by_coceo?; +}; + +# full cost components section of financial trends analysis +public type Full_Cost_Components record { + # total expenses after depreciation + int? total_expenses_after_depreciation?; + # one month of savings + int? one_month_of_savings?; + # Debt principal payment + int? debt_principal_payment?; + # Fixed asset additions + int? fixed_asset_additions?; + # estimated total full costs + int? total_full_costs_estimated?; +}; + +public type V2PublicProfile record { + # HTTP response status code. + int? code?; + # Diagnostic message for response status + string? message?; + # Time taken for request to process + int? took?; + # List of errors encountered + string[]? errors?; + V2PublicProfile_data? data?; +}; + +# General question and answer pair, used in multiple places +public type Question record { + # Question text + string? question?; + # Answer text + string? answer?; +}; + +# Information about an organization's program as entered by the organization +public type Program3 record { + # Program name + string? name?; + # Program description + string? description?; + # First target population that the program is targeting + string? target_population?; + # Second target population that the program is targeting + string? target_population2?; + # Program budget in dollars + string? budget?; + # Geographic area served by program + string[]? areas_served?; +}; + +# Information about an organization's program as entered by the organization +public type Program2 record { + # Program name + string? name?; + # Program description + string? description?; + # First target population that the program is targeting + string? target_population?; + # Program budget in dollars + string? budget?; + # Geographic area served by program + string[]? areas_served?; +}; + +# revenue composition section of financial trends analysis +public type Revenue_Composition record { + # total revenu, unrestricted and restricted + int? total_revenue_unrestricted_and_restricted?; + # total percent change in revenue over prior year + string? total_revenue_percent_change_over_prior_year?; + # total revenue prior + decimal? total_revenue_prior?; + # programs/services revenue + string? program_svcs_revenue?; + # membership dues revenue + string? membership_dues?; + # investment income revenue + string? investment_income?; + # government grants revenue + string? government_grants?; + # other grants/contributions revenue + string? other_grants_contributions?; + # other revenue + string? other_revenue?; +}; + +# DEPRECATED +# +# # Deprecated +@deprecated +public type DemographicsStaffLevel record { + # DEPRECATED + string? staff_level?; + # DEPRECATED + int:Signed32? count?; +}; + +# Program metrics entered by the organization +public type PlatinumMetrics1 record { + # Metric name + string? metric?; + # The years this metric was captured and the values for a given year + MetricYear[]? years?; + # The target populations that the metric supports + string[]? target_population_served?; +}; + +# Demographics and Equity Information Section +public type DEI2Category record { + # category description + string? category?; + # presence of board member data collected in category + boolean? board_members_not_collected?; + # presence of staff data collected in category + boolean? staff_not_collected?; + # presence of senior staff data collected in category + boolean? senior_staff_not_collected?; + # subcategory descriptions + DEI2SubCategory[]? subcategories?; +}; + +# DEPRECATED +# +# # Deprecated +@deprecated +public type FormerName record { + # DEPRECATED + string? former_name?; + # DEPRECATED + string? year?; +}; + +public type V1PublicProfile_data record { + # Information about the non-profit, such as name and address + Summary1? summary?; + # Collection of an organizations programs and program metrics + Programs1? programs?; + # Organization financial information + Financials2? financials?; + # Organization operations information + Operations1? operations?; + # Organization Charity Check information + CharityCheck? charitycheck?; +}; + +# Organization financial information +public type Financials1 record { + # Current, or most recent, fiscal year (FY) financial information. Since this could come from multiple 990 form types, many of the fields are normalized. + CurrentFinancial1? most_recent_year_financials?; + FinancialF990_1[]? f990_financials?; + Financial990PF[]? pf990_financials?; + Fin_Doc[]? financial_documents?; + Form990T[]? forms_990T?; + FundingNeed[]? funding_needs?; + FundingSource[]? funding_sources?; + FinancialStatement[]? financial_statements?; + AnnualReport[]? annual_reports?; + Ratios[]? accounting_ratios?; +}; + +@deprecated +public type SeniorStaff record { + # DEPRECATED + string? name?; + # DEPRECATED + string? title?; + # DEPRECATED + string? experience?; +}; + +@deprecated +public type FundingNeed record { + # DEPRECATED + string? funding_need?; + # DEPRECATED + string? amount_needed?; +}; + +# Organization financial information +public type Financials2 record { + # Current, or most recent, fiscal year (FY) financial information. Since this could come from multiple 990 form types, many of the fields are normalized. + CurrentFinancial? most_recent_year_financials?; + FinancialF990_2[]? f990_financials?; + Financial990PF[]? pf990_financials?; + FinancialF990EZ[]? f990ez_financials?; + FinancialTrends[]? financial_trends_analysis?; + Fin_Doc[]? financial_documents?; + Form990T[]? forms_990T?; + FundingNeed[]? funding_needs?; + FundingSource[]? funding_sources?; + FinancialStatement[]? financial_statements?; + AnnualReport[]? annual_reports?; + Ratios[]? accounting_ratios?; +}; + +# Organization financial information +public type Financials3 record { + # Current, or most recent, fiscal year (FY) financial information. Since this could come from multiple 990 form types, many of the fields are normalized. + CurrentFinancial? most_recent_year_financials?; + FinancialF990_3[]? f990_financials?; + Financial990PF[]? pf990_financials?; + FinancialF990EZ[]? f990ez_financials?; + FinancialTrends[]? financial_trends_analysis?; + Fin_Doc[]? financial_documents?; + Form990T[]? forms_990T?; + FundingNeed[]? funding_needs?; + FundingSource[]? funding_sources?; + FinancialStatement[]? financial_statements?; + AnnualReport[]? annual_reports?; + Ratios[]? accounting_ratios?; +}; + +# Organization operations information +public type Operations1 record { + # Organization leader name + string? leader_name?; + # Organization leader profile + string? leader_profile?; + # Organization co-leader name + string? co_leader_name?; + # Organization co-leader profile + string? co_leader_profile?; + # Number of employees of the organization + int:Signed32? no_of_employees?; + # Number of volunteers at an organization + int:Signed32? no_of_volunteers?; + # DEPRECATED + string? organization_email?; + # The year details in operations are from + int:Signed32? organization_details_year?; + Person[]? officers_directors_key_employees?; + Person[]? highest_paid_employees?; + # Number of employees that are paid at least $100k + int:Signed32? employees_greater_than_100K?; + # Name of the board chairperson + string? board_chair_name?; + # Company board chairperson is associated with + string? board_chair_affiliation?; + # Start year of board chair term + string? board_chair_term_start?; + # End year of board chair term + string? board_chair_term_end?; + # Name of board co-chairperson + string? board_co_chair_name?; + # Company board co-chairperson is associated with + string? board_co_chair_affiliation?; + # Start year of board co-chair term + string? board_co_chair_term_start?; + # End year of board co-chair term + string? board_co_chair_term_end?; + BoardMember[]? board_of_directors?; + Question[]? board_leadership_practices?; + OrganizationDemographics? organization_demographics?; + Contractor[]? contractors?; + # URL of organization blog + string? blog_url?; + # Name of primary fundraising contact + string? fundraising_contact_name?; + # Title of primary fundraising contact + string? fundraising_contact_title?; + # Email address of primary fundraising contact + string? fundraising_contact_email?; + # Phone number of primary fundraising contact + string? fundraising_contact_phone?; + # Tax preparation firm name + string? preparer_firm_name?; + # Tax preparation firm address + string? preparer_firm_address?; + # Tax preparation firm EIN + string? preparer_firm_ein?; + # Tax preparation firm phone number + string? preparer_firm_phone?; + SeniorStaff[]? senior_staff?; + OtherStaff[]? other_staff?; + Accreditation[]? accreditations?; +}; + +# Organization operations information +public type Operations2 record { + # Organization leader name + string? leader_name?; + # Organization leader profile + string? leader_profile?; + # Organization co-leader name + string? co_leader_name?; + # Organization co-leader profile + string? co_leader_profile?; + # Number of employees of the organization + int:Signed32? no_of_employees?; + # Number of volunteers at an organization + int:Signed32? no_of_volunteers?; + # DEPRECATED + string? organization_email?; + # The year details in operations are from + int:Signed32? organization_details_year?; + Person[]? officers_directors_key_employees?; + Person[]? highest_paid_employees?; + # Number of employees that are paid at least $100k + int:Signed32? employees_greater_than_100K?; + # Name of the board chairperson + string? board_chair_name?; + # Company board chairperson is associated with + string? board_chair_affiliation?; + # Start year of board chair term + string? board_chair_term_start?; + # End year of board chair term + string? board_chair_term_end?; + # Name of board co-chairperson + string? board_co_chair_name?; + # Company board co-chairperson is associated with + string? board_co_chair_affiliation?; + # Start year of board co-chair term + string? board_co_chair_term_start?; + # End year of board co-chair term + string? board_co_chair_term_end?; + BoardMember[]? board_of_directors?; + Question[]? board_leadership_practices?; + OrganizationDemographics? organization_demographics?; + DEI2Demographics? demographics?; + Contractor[]? contractors?; + # URL of organization blog + string? blog_url?; + # Name of primary fundraising contact + string? fundraising_contact_name?; + # Title of primary fundraising contact + string? fundraising_contact_title?; + # Email address of primary fundraising contact + string? fundraising_contact_email?; + # Phone number of primary fundraising contact + string? fundraising_contact_phone?; + # Tax preparation firm name + string? preparer_firm_name?; + # Tax preparation firm address + string? preparer_firm_address?; + # Tax preparation firm EIN + string? preparer_firm_ein?; + # Tax preparation firm phone number + string? preparer_firm_phone?; + SeniorStaff[]? senior_staff?; + OtherStaff[]? other_staff?; + Accreditation[]? accreditations?; +}; + +# list of business model indicators enumerated below +public type Business_Model_Indicators record { + # profitability section of financial trends analysis + Profitability? profitability?; + # revenue composition section of financial trends analysis + Revenue_Composition? revenue_composition?; + # expense composition section of financial trends analysis + Expense_Composition? expense_composition?; + # full cost components section of financial trends analysis + Full_Cost_Components? full_cost_components?; +}; + +# Telephone number associated with organization +public type TelephoneNumber record { + # Telephone number entered by organization + string? telephone_number?; + # Description of telephone number + string? telephone_type?; +}; + +# IRS form 990 financials +public type FinancialF990_1 record { + # Start date of the FY that this current financial object covers + string? period_begin?; + # End date of the fiscal year that this current financial object covers + string? period_end?; + # Revenue from recurring membership dues + decimal? membership_dues?; + # Contributions revenue, i.e. donations, in USD + decimal? revenue_contributions?; + # Government grants revenue, in USD + decimal? revenue_govt_grants?; + # Revenue derived from fees for program services + decimal? revenue_program_services?; + # Revenue from investments + decimal? revenue_investments?; + # Revenue from special events + decimal? revenue_special_events?; + # Revenue from sales of tangible items + decimal? revenue_sales?; + # Other revenue sources, not recorded elsewhere + decimal? revenue_other?; + # Total FY revenue + decimal? revenue_total?; + # Payments to affiliate organizations + decimal? affiliate_net_payments?; + # Expenses incurred from program services + decimal? expense_program_services?; + # Administration expenses + decimal? expense_administration?; + # Fundraising expenses + decimal? expense_fundraising?; + # Total FY expenses + decimal? expenses_total?; + # Difference between total revenue and total expenses + decimal? net_gain_loss?; + # Accounting expenses + decimal? expense_accounting?; + # Advertising/promotional expenses + decimal? expense_advertising_promotion?; + # IT expenses + decimal? expense_info_technology?; + # Insurance expenses + decimal? expense_insurance?; + # Interest expenses + decimal? expense_interest?; + # Investment management expenses + decimal? expense_investment_management?; + # Legal expenses + decimal? expense_legal?; + # Pension plan expenses + decimal? expense_pension_plan?; + # Publications expenses + decimal? expense_publications?; + # Professional fundraising expenses + decimal? expense_profesional_fundraising?; + # Net assets at the end of year + decimal? net_assets_eoy?; + # Total assets + decimal? assets_total?; + # Expenses not recorded elsewhere + decimal? other_expense?; + # Total liabilities at the end of year + decimal? liabilities_total?; + # A measurement of how long an organization can operate using cash and cash reserves at current expense levels. Calculated using the formula - Cash plus Savings divided by Total Expenses minus Depreciation divided by 12 months. + string? months_of_cash?; +}; + +# IRS form 990 financials +public type FinancialF990_2 record { + # Start date of the FY that this current financial object covers + string? period_begin?; + # End date of the fiscal year that this current financial object covers + string? period_end?; + # Revenue from recurring membership dues + decimal? membership_dues?; + # Contributions revenue, i.e. donations, in USD + decimal? revenue_contributions?; + # Government grants revenue, in USD + decimal? revenue_govt_grants?; + # Revenue derived from fees for program services + decimal? revenue_program_services?; + # Revenue from investments + decimal? revenue_investments?; + # Revenue from special events + decimal? revenue_special_events?; + # Revenue from sales of tangible items + decimal? revenue_sales?; + # Other revenue sources, not recorded elsewhere + decimal? revenue_other?; + # Total FY revenue + decimal? revenue_total?; + # Payments to affiliate organizations + decimal? affiliate_net_payments?; + # Expenses incurred from program services + decimal? expense_program_services?; + # Administration expenses + decimal? expense_administration?; + # Fundraising expenses + decimal? expense_fundraising?; + # Total FY expenses + decimal? expenses_total?; + # Difference between total revenue and total expenses + decimal? net_gain_loss?; + # Accounting expenses + decimal? expense_accounting?; + # Advertising/promotional expenses + decimal? expense_advertising_promotion?; + # IT expenses + decimal? expense_info_technology?; + # Insurance expenses + decimal? expense_insurance?; + # Interest expenses + decimal? expense_interest?; + # Investment management expenses + decimal? expense_investment_management?; + # Legal expenses + decimal? expense_legal?; + # Pension plan expenses + decimal? expense_pension_plan?; + # Publications expenses + decimal? expense_publications?; + # Professional fundraising expenses + decimal? expense_profesional_fundraising?; + # Total assets + decimal? assets_total?; + # Unrestricted new assets + decimal? unrestricted_net_assets?; + # Net fixed assets (Land, Buildings, equipment) + decimal? net_fixed_assets_LBE?; + # Net assets at the end of year + decimal? net_assets_end_of_year?; + # Expenses not recorded elsewhere + decimal? other_expense?; + # total amount of secured mortgages and notes payable to unrelated third parties that are secured by the organization's assets + decimal? notes_payable_mortgages?; + # Total liabilities at the end of year + decimal? liabilities_total?; + # A measurement of how long an organization can operate using cash and cash reserves at current expense levels. Calculated using the formula - Cash plus Savings divided by Total Expenses minus Depreciation divided by 12 months. + string? months_of_cash?; +}; + +public type Ratios record { + # The fiscal year. + int:Signed32? year?; + # A measurement of how long an organization can operate using cash and cash reserves at current expense levels. Calculated using the formula: Cash plus Savings divided by Total Expenses minus Depreciation divided by 12 months. + string? months_of_cash?; + # The ratio of an organization's capacity to repay its current liabilities through cash and cash equivalents. Metric calculated using the 'Quick Ratio' (Cash + Savings + Short Term Investments + Accounts Receivable) / Total Liabilities. + string? liquidity?; + # The cost of employee benefits divided by the wages paid to employees. Calculated using the formula: Pensions plus Benefits plus Payroll Tax Totals divided by Current Compensation plus Total Wages. + string? fringe_rate?; + # The amount of net gain or net loss. + string? net_gain_loss?; +}; + +# IRS 990 form Part IX dealing with expenses +public type PartIX record { + # expenses from grants issued to US organizations + decimal? grants_orgs_us?; + # expenses from grants issued to US individuals + decimal? grants_individuals_us?; + # expenses from grants issued to non US organizations + decimal? grants_orgs_non_us?; + # total expenses from benefits programs + decimal? benefits_total?; + # current expenses from employee compensation + decimal? compensation_current?; + # expenses from disqualified employee compensation + decimal? compensation_disqualified?; + # total expenses from employee wages + decimal? wages_total?; + # expenses from employee pensions + decimal? pension_total?; + # total expenses from employee benefits + decimal? employee_benefits_total?; + # total expenses from tax on payroll + decimal? payroll_tax_total?; + # expenses from management fees + decimal? fees_management?; + # expenses from legal fees + decimal? fees_legal?; + # total expenses from accounting fees + decimal? accounting_fees_total?; + # expenses from lobbying fees + decimal? fees_lobbying?; + # total fundraising expenses + decimal? fundraising_total?; + # expenses from investment fees + decimal? fees_investments?; + # expenses from other fees + decimal? fees_other?; + # expenses from promotional advertising + decimal? ads_promo?; + # office expenses + decimal? office?; + # IT expenses + decimal? information_technology?; + # expenses from royalties + decimal? expense_royalties?; + # Occupancy + decimal? occupancy_total?; + # total expenses from travel + decimal? travel_total?; + # Payment of travel for officials + decimal? entertain_officials?; + # total expenses from meetings + decimal? meetings_total?; + # total expenses from interest accrued + decimal? interest_total?; + # expenses from payments + decimal? payments?; + # Depreciation, depletion, and amortization + decimal? depreciation_total?; + # expenses from insurance + decimal? insurance?; + # expenses from specially declared source a + decimal? expense_a_total?; + # expenses from specially declared source b + decimal? expense_b_total?; + # expenses from specially declared source c + decimal? expense_c_total?; + # expenses from specially declared source d + decimal? expense_d_total?; + # expenses from specially declared source e + decimal? expense_e_total?; + # total expenses + decimal? expenses_total?; + # total expenses from program services + decimal? total_program_services?; + # total management expenses + decimal? total_management?; + # total fundraising expenses + decimal? total_fundraising?; + # total joint expenses + decimal? expense_joint_total?; + # expenses from joint services + decimal? joint_services?; + # general joint expenses + decimal? joint_general?; + # joint fundraising expenses + decimal? joint_fundraising?; + # expenses from all other sources + decimal? all_other_expenses?; + # first specially declared source of expense + string? expense_a_description?; + # second specially declared source of expense + string? expense_b_description?; + # third specially declared source of expense + string? expense_c_description?; + # fourth specially declared source of expense + string? expense_d_description?; +}; + +# IRS form 990 financials +public type FinancialF990_3 record { + # Start date of the FY that this current financial object covers + string? period_begin?; + # End date of the fiscal year that this current financial object covers + string? period_end?; + # Revenue from recurring membership dues + decimal? membership_dues?; + # Contributions revenue, i.e. donations, in USD + decimal? revenue_contributions?; + # Government grants revenue, in USD + decimal? revenue_govt_grants?; + # Revenue derived from fees for program services + decimal? revenue_program_services?; + # Revenue from investments + decimal? revenue_investments?; + # Revenue from special events + decimal? revenue_special_events?; + # Revenue from sales of tangible items + decimal? revenue_sales?; + # Other revenue sources, not recorded elsewhere + decimal? revenue_other?; + # Total FY revenue + decimal? revenue_total?; + # Payments to affiliate organizations + decimal? affiliate_net_payments?; + # Expenses incurred from program services + decimal? expense_program_services?; + # Administration expenses + decimal? expense_administration?; + # Fundraising expenses + decimal? expense_fundraising?; + # Total FY expenses + decimal? expenses_total?; + # Difference between total revenue and total expenses + decimal? net_gain_loss?; + # Accounting expenses + decimal? expense_accounting?; + # Advertising/promotional expenses + decimal? expense_advertising_promotion?; + # IT expenses + decimal? expense_info_technology?; + # Insurance expenses + decimal? expense_insurance?; + # Interest expenses + decimal? expense_interest?; + # Investment management expenses + decimal? expense_investment_management?; + # Legal expenses + decimal? expense_legal?; + # Pension plan expenses + decimal? expense_pension_plan?; + # Publications expenses + decimal? expense_publications?; + # Professional fundraising expenses + decimal? expense_profesional_fundraising?; + # Total assets + decimal? assets_total?; + # Unrestricted new assets + decimal? unrestricted_net_assets?; + # Net fixed assets (Land, Buildings, equipment) + decimal? net_fixed_assets_LBE?; + # Net assets at the end of year + decimal? net_assets_end_of_year?; + # Expenses not recorded elsewhere + decimal? other_expense?; + # total amount of secured mortgages and notes payable to unrelated third parties that are secured by the organization's assets + decimal? notes_payable_mortgages?; + # Total liabilities at the end of year + decimal? liabilities_total?; + # A measurement of how long an organization can operate using cash and cash reserves at current expense levels. Calculated using the formula - Cash plus Savings divided by Total Expenses minus Depreciation divided by 12 months. + string? months_of_cash?; + # IRS 990 form Part VIII dealing with revenue + PartVIII? part_8_revenue?; + # IRS 990 form Part IX dealing with expenses + PartIX? part_9_expenses?; + # IRS 990 form Part X, Balance Sheet + PartX? part_10_balance_sheet?; +}; + +public type Contractor record { + # The contractors name. + string? name?; + # The contractors address. + string? address?; + # The contractors compensation. + string? compensation?; + # The type of service the contractor provided. + string? service_type?; +}; + +# list of key data checks enumerated below +public type Key_Data_Checks record { + # presence of data check errors + boolean? data_check_errors?; +}; + +# list of capital structure indicators enumerated below +public type Capital_Structure_Indicators record { + # liquidity capital structure indicator + Liquidity? liquidity?; + # balance sheet composition + Balance_Sheet_Composition? balance_sheet_composition?; +}; + +public type CharityCheck_organization_types record { + # Type of organization and use of contribution as it appears in the Publication 78. + string? organization_type?; + # In general, an individual who itemizes deductions may deduct contributions to most charitable organizations up to 50% of his or her adjusted gross income computed without regard to net operating loss carrybacks. Individuals generally may deduct charitable contributions to other organizations up to 30% of their adjusted gross income (computed without regard to net operating loss carrybacks). These limitations (and organizational status) are indicated. + string? deductibility_limitation?; + # Deductibility Status Codes. + string? deductibility_status_description?; +}; + +# IRS form 990-EZ financials +public type FinancialF990EZ record { + # Tax year begin date + string? period_begin?; + # Tax year end date + string? period_end?; + # Accounting Method + string? accounting_method?; + # Tax-exempt status + string? organization_type?; + # Candid use only + string? date_last_modified?; + # Contributions, gifts, grants, and similar amounts received . + decimal? revenue_contributions?; + # Program service revenue including government fees and contracts + decimal? revenue_program_services?; + # Membership dues and assessments revenues + decimal? revenue_membership_dues?; + # Investment income + decimal? revenue_investments?; + # Gain or (loss) from sale of assets other than inventory + decimal? revenue_sales_other?; + # Net income or (loss) from gaming and fundraising events + decimal? revenue_special_events?; + # Gross sales of inventory, less returns and allowances + decimal? revenue_sales_inventory?; + # Gross sales of inventory, less returns and allowances + decimal? revenue_sales?; + # Total all other revenue + decimal? revenue_other?; + # Total revenue - Current Year + decimal? total_revenue?; + # Grants and similar amounts paid + decimal? expense_grants?; + # Benefits paid to or for members + decimal? expense_benefits?; + # Salaries, other compensation, and employee benefits + decimal? expense_salaries_employee_benefits?; + # Professional fees and other payments to independent contractors + decimal? expense_professional_fees?; + # Occupancy, rent, utilities, and maintenance + decimal? expense_occupancy?; + # Printing, publications, postage, and shipping + decimal? expense_printing_publications_postage?; + # Other expenses + decimal? expense_other?; + # Total functional expenses + decimal? total_expenses?; + # Excess or (deficit) for the year + decimal? net_gain_loss?; + # Other changes in net assets or fund balances + decimal? other_changes?; + # Beginning of year cash, savings, and investments + decimal? cash_savings_investments_boy?; + # Beginning of year land and buildings assets + decimal? land_and_buidings_boy?; + # Beginning of year other assets + decimal? other_assets_boy?; + # Beginning of year total assets + decimal? total_assets_boy?; + # Beginning of year total liabilities + decimal? total_liabilities_boy?; + # Net assets or fund balances at the beginning of the year + decimal? net_assets_boy?; + # End of year cash, savings, and investments + decimal? cash_savings_investments_eoy?; + # End of year land and buildings assets + decimal? land_and_buidings_eoy?; + # End of year other assets + decimal? other_assets_eoy?; + # End of year total assets + decimal? total_assets_eoy?; + # End of year total liabilities + decimal? total_liabilities_eoy?; + # Net assets or fund balances at the end of the year + decimal? net_assets_eoy?; + # IRS Form 990 EZ Financials Part I, Revenue, Expenses, and Changes in Net Assets or Fund Balances + EZFinancialsPartI? part_1_revenue_expenses?; + # IRS Form 990 EZ Financials Part II, Balance Sheet + EZFinancialsPartII? part_2_balance_sheet?; +}; + +@deprecated +public type OtherStaff record { + # DEPRECATED + string? name?; + # DEPRECATED + string? title?; + # DEPRECATED + string? 'type?; +}; + +# IRS 990 document, possibly uploaded by the organization +public type Fin_Doc record { + # File name document uploaded as + string? form990_name?; + # Year file pertains to + string? form990_year?; + # URL to access this document + string? form990_url?; + # Source of document + string? form990_source?; +}; + +public type OK_PublicProfile3_ record { + # HTTP response status code. + string? code?; + # Description of the HTTP response status code. + string? status?; +}; + +# Contains the last change datetimes for several key data values +public type ProfileDataChangeDates record { + # Datetime of last update to primary address + string? primary_address_last_modified?; + # Datetime of last update to payment address + string? payment_address_last_modified?; + # Datetime of last update to primary contact email address + string? primary_contact_email_last_modified?; + # Datetime of last update to fundraising contact email address + string? fundraising_contact_email_last_modified?; + # Datetime of last update to organization website address + string? org_website_last_modified?; + # Datetime of last update to organization seal level + string? seal_last_modified?; + # Datetime of last update to organization demographics information + string? dei_last_modified?; +}; + +# A document the organization uploaded to GuideStar +public type OtherDocument record { + # Document name entered by organization + string? document_name?; + # Year document is associated with + string? document_year?; + # DEPRECATED + string? otherdocument_contents?; + # URL to document + string? document_url?; +}; + +# Financial Trends Analysis for 990 filers +public type FinancialTrends record { + # The fiscal year as a number + string? fiscal_year?; + # list of business model indicators enumerated below + Business_Model_Indicators? business_model_indicators?; + # list of capital structure indicators enumerated below + Capital_Structure_Indicators? capital_structure_indicators?; + # list of key data checks enumerated below + Key_Data_Checks? key_data_checks?; +}; + +# balance sheet composition +public type Balance_Sheet_Composition record { + # total cash + int? cash?; + # total investments + int? investments?; + # total receivables + int? receivables?; + # gross land buildings and equipment amount + int? gross_land_buildings_and_equipment_lbe?; + # accumulated depreciation as percent of land and buildings + string? accumulated_depreciation_as_percent_of_lbe?; + # liabilities as a percent of net assets + string? liabilities_as_percent_of_net_assets?; + # unrestrited net assets total + int? unrestricted_net_assets?; + # temporarily restricted net assets total + int? temporarily_restricted_net_assets?; + # permanently restricted net assets total + int? permanently_restricted_net_assets?; + # restricted net assets total + int? restricted_net_assets?; + # total net assets + int? total_net_assets?; +}; + +public type BadRequest record { + # HTTP response status code. + string? code?; + string? message?; +}; + +# demographic totals for staff +public type StaffLevelTotals record { + # total number of board members + string? total_board_members?; + # total number of staff + string? total_staff?; + # total number of senior staff + string? total_senior_staff?; +}; + +# Video information added by organization +public type Video record { + # Caption of video + string? video_caption?; + # URL to video + string? video_url?; +}; + +# DEPRECATED +# +# # Deprecated +@deprecated +public type DemographicsSubCategory record { + # DEPRECATED + string? subcategory?; + # DEPRECATED + DemographicsStaffLevel[]? staff_levels?; +}; + +# IRS form 990-PF financials +public type Financial990PF record { + # Candid use only + decimal? investments_us_state_government?; + # Tax year begin date + string? period_begin?; + # Tax year end date + string? period_end?; + # Cash—non-interest-bearing, Fair Market Value + Savings and temporary cash investments, Fair Market Value + decimal? cash_equivalent_investible_assets?; + # Net investment income + decimal? net_investment_income?; + # Adjusted Net Income + decimal? adjusted_net_income?; + # Total operating and administrative expenses + decimal? total_operating_expenses?; + # Contributions not included in 8a + decimal? contributions?; + # Total functional expenses + decimal? total_expenses?; + # Accounting fees + decimal? expense_accounting?; + # Interest expenses + decimal? expense_interest?; + # Legal fees + decimal? expense_legal?; + # Other professional fees + decimal? expense_professional_fees?; + # Pension plans, employee benefits expenses + decimal? expense_pension_plans?; + # Printing and publications expenses + decimal? expense_publications?; + # Investments—U.S. and state government obligations + decimal? investments_us_state_govt?; + # Investments—corporate stock + decimal? investments_stocks?; + # Investments—corporate bonds + decimal? investments_bonds?; + # Investments—other + decimal? investments_other?; + # Land, buildings, and equipment: basis + decimal? land_buildings_equipment?; + # Other assets + decimal? other_assets?; + # Total assets + decimal? total_assets?; + # Total liabilities + decimal? total_liabilities?; + # Total assets, Fair Market Value - Total liabilities, Book Value + decimal? net_assets?; + # Total revenue - Current Year + decimal? income_total?; +}; + +# Current, or most recent, fiscal year (FY) financial information. Since this could come from multiple 990 form types, many of the fields are normalized. +public type CurrentFinancial1 record { + # The FY as a number + int:Signed32? fiscal_year?; + # The IRS 990 form type the data in this CurrentFinancial object is based off of. + string? form_type?; + # Source of current financial information + string? data_source?; + # Total monetary amount of assets, in USD + decimal? assets_total?; + # Total monetary value of liabilities, in USD + decimal? total_liabilities?; + # Contributions revenue, i.e. donations, in USD + decimal? revenue_contributions?; + # Government grants revenue, in USD + decimal? revenue_govt_grants?; + # Program services revenue, in USD + decimal? revenue_program_services?; + # Investments revenue, in USD + decimal? revenue_investments?; + # Special events revenue, in USD + decimal? revenue_special_events?; + # Sales revenue, in USD + decimal? revenue_sales?; + # Other revenue, in USD + decimal? revenue_other?; + # Total revenue,, in USD + decimal? total_revenue?; + # Administration expenses, in USD + decimal? expense_administration?; + # Program services expenses, in USD + decimal? expense_program_services?; + # Fundraising expenses, in USD + decimal? expense_fundraising?; + # Accounting expenses, in USD + decimal? expense_accounting?; + # Advertising expenses, in USD + decimal? expense_advertising_promotion?; + # IT expenses, in USD + decimal? expense_info_technology?; + # Insurance expenses, in USD + decimal? expense_insurance?; + # Interest expenses, in USD + decimal? expense_interest?; + # Investment management expenses, in USD + decimal? expense_investment_management?; + # Legal expenses, in USD + decimal? expense_legal?; + # Pension plan expenses, in USD + decimal? expense_pension_plan?; + # Professional fundraising expenses, in USD + decimal? expense_professional_fundraising?; + # Professional fees expenses, in USD + decimal? expense_professional_fees?; + # Publication expenses, in USD + decimal? expense_publications?; + # Admin operating expenses, in USD + decimal? expense_operating_admin?; + # Gifts and grants paid expenses, in USD + decimal? expense_gifts_grants_paid?; + # Disbursement expenses, in USD + decimal? total_expense_disbursements?; + # Total expenses, in USD + decimal? expenses_total?; + # Net gain/loos this FY, in USD + decimal? net_gain_loss?; + # Cash and equivalent assets, in USD + decimal? cash_and_equivalent_assets?; + # U.S. bond investment gain/loss, in USD + decimal? investments_us_government?; + # Stock investment gain/loss, in USD + decimal? investments_stock?; + # Bond investments gain/loss, in USD + decimal? investments_bonds?; + # Other investments gain/loss, in USD + decimal? investments_other?; + # Land, buildings, equipment end of year value, in USD + decimal? land_buildings_equipment?; + # Other assets end of year value, in USD + decimal? other_assets?; +}; + +# The Philanthropy Classification System (PCS) is Candid’s (formerly Foundation Center and GuideStar) taxonomy, describing the work of grantmakers, recipient organizations and the philanthropic transactions between those entities. Candid’s Classification System is based on the National Taxonomy of Exempt Entities (NTEE) and has been expanded over the last three decades to include the emerging work we have evidenced while capturing and indexing the work of the sector on a global scale. +public type PCS record { + # PCS facet name + string? pcs_facet?; + # PCS code + string? pcs_code?; + # PCS code description + string? pcs_description?; + # PCS parent code + string? pcs_parent_code?; + # PCS parent code description + string? pcs_parent_description?; +}; + +# Current, or most recent, fiscal year (FY) financial information. Since this could come from multiple 990 form types, many of the fields are normalized. +public type CurrentFinancial record { + # Start date of the FY that this current financial object covers + string? period_begin?; + # End date of the fiscal year that this current financial object covers + string? period_end?; + # The FY as a number + int:Signed32? fiscal_year?; + # The IRS 990 form type the data in this CurrentFinancial object is based off of. + string? form_type?; + # Source of current financial information + string? data_source?; + # Total monetary amount of assets, in USD + decimal? assets_total?; + # Total monetary value of liabilities, in USD + decimal? total_liabilities?; + # Contributions revenue, i.e. donations, in USD + decimal? revenue_contributions?; + # Government grants revenue, in USD + decimal? revenue_govt_grants?; + # Program services revenue, in USD + decimal? revenue_program_services?; + # Investments revenue, in USD + decimal? revenue_investments?; + # Special events revenue, in USD + decimal? revenue_special_events?; + # Sales revenue, in USD + decimal? revenue_sales?; + # Other revenue, in USD + decimal? revenue_other?; + # Total revenue,, in USD + decimal? total_revenue?; + # Administration expenses, in USD + decimal? expense_administration?; + # Program services expenses, in USD + decimal? expense_program_services?; + # Fundraising expenses, in USD + decimal? expense_fundraising?; + # Accounting expenses, in USD + decimal? expense_accounting?; + # Advertising expenses, in USD + decimal? expense_advertising_promotion?; + # IT expenses, in USD + decimal? expense_info_technology?; + # Insurance expenses, in USD + decimal? expense_insurance?; + # Interest expenses, in USD + decimal? expense_interest?; + # Investment management expenses, in USD + decimal? expense_investment_management?; + # Legal expenses, in USD + decimal? expense_legal?; + # Pension plan expenses, in USD + decimal? expense_pension_plan?; + # Professional fundraising expenses, in USD + decimal? expense_professional_fundraising?; + # Unrestricted net asset, in USD + decimal? unrestricted_net_assets?; + # Land, buildings and equipment fixed assets, in USD + decimal? net_fixed_assets_LBE?; + # mortgages and notes payable to unrelated 3rd parties, in USD + decimal? notes_payable_mortgages?; + # A measurement of how long an organization can operate using cash and cash reserves at current expense levels. Calculated using the formula - Cash plus Savings divided by Total Expenses minus Depreciation divided by 12 months. + string? months_of_cash?; + # Professional fees expenses, in USD + decimal? expense_professional_fees?; + # Publication expenses, in USD + decimal? expense_publications?; + # Admin operating expenses, in USD + decimal? expense_operating_admin?; + # Gifts and grants paid expenses, in USD + decimal? expense_gifts_grants_paid?; + # Disbursement expenses, in USD + decimal? total_expense_disbursements?; + # Total expenses, in USD + decimal? expenses_total?; + # Net gain/loos this FY, in USD + decimal? net_gain_loss?; + # Salary and other employee benefit expense, in USD + decimal? expense_salaries_employee_benefits?; + # Cash and equivalent assets, in USD + decimal? cash_and_equivalent_assets?; + # U.S. bond investment gain/loss, in USD + decimal? investments_us_government?; + # Stock investment gain/loss, in USD + decimal? investments_stock?; + # Bond investments gain/loss, in USD + decimal? investments_bonds?; + # Other investments gain/loss, in USD + decimal? investments_other?; + # Land, buildings, equipment end of year value, in USD + decimal? land_buildings_equipment?; + # Other assets end of year value, in USD + decimal? other_assets?; +}; + +public type Forbidden record { + # HTTP response status code. + string? code?; + string? message?; +}; + +public type DEI2Demographics record { + # demographic totals for staff + StaffLevelTotals? staff_level_totals?; + # list of equity strategy items enumerated below + EquityStrategy? equity_strategies?; + DEI2Category[]? categories?; +}; + +# Organization Charity Check information +public type CharityCheck record { + # A unique number identifying organizations and organizational entities. + string? organization_id?; + # Date the organization’s information was last updated. + string? organization_info_last_modified?; + # Employer Identification Number. + string? ein?; + # The public name recognized by the IRS. + string? organization_name?; + # Organization name "Also Known As" + string? organization_name_aka?; + # Address of the organization. + string? address_line1?; + # Additional address information. + string? address_line2?; + # City of the organization's address. + string? city?; + # State (Abbreviation) of the organization's address. + string? state?; + # State (Full Name) of the organization's address. + string? state_name?; + # Zip code of the organization's address. + string? zip?; + # This indicates the primary return(s) the organization is required to file. + string? filing_req_code?; + # Date the Charity Check report was last modified. + string? charity_check_last_modified?; + # A message indicating that although the organization is not on the Pub78, their filing requirement code shows that they are a religious organization and are therefore not required to appear on the Pub78 to establish their status. + string? pub78_church_message?; + # Organization name as it appears in the Publication 78 data. + string? pub78_organization_name?; + # EIN (Employer Identification Number) as it appears in the Publication 78 data. + string? pub78_ein?; + # Whether the organization is listed on the most current Publication 78. Also known as the Cumulative List of Organizations, IRS Publication 78 lists all organizations to which charitable contributions are tax deductible. The Publication 78 record for each organization includes the organization's name, its city, and its current tax-exempt status, including what percentage of contributions to it are tax deductible. Subordinate organizations in group exemptions inherit the Pub78 status of the parent organization. + string? pub78_verified?; + # City of the organization as it appears in the Publication 78 data. + string? pub78_city?; + # State of the organization as it appears in the Publication 78 data. + string? pub78_state?; + # Indicator for understanding an organization’s Publication 78 data. Subordinate organizations in group exemptions inherit the Pub78 status of the parent organization. + string? pub78_indicator?; + CharityCheck_organization_types[]? organization_types?; + # Date of most recent Publication 78. + string? most_recent_pub78?; + # Date of the most recent Internal Revenue Bulletin. + string? most_recent_irb?; + # A message indicating that although the organization is not on the IRS BF, their filing requirement code shows that they are a church or religious organization and are therefore not required to appear on the IRS BMF to establish their status. + string? bmf_church_message?; + # Organization name as it appears in the Business Master File. + string? bmf_organization_name?; + # EIN (Employer Identification Number) as it appears in the Business Master File. + string? bmf_ein?; + # If the organization appears in the Business Master File. + string? bmf_status?; + # Date of the most recent IRS Business Master File. + string? most_recent_bmf?; + # Subsection code as it appears in Business Master File. This code identifies the type of tax-exempt organization. This is often used to determine if contributions to them are tax deductible. + string? bmf_subsection?; + # Subsection code description as it relates to the subsection code that appears in Business Master File. This code identifies the type of tax-exempt organization. This is often used to determine if contributions to them are tax deductible. + string? subsection_description?; + # Organizations can select IRS foundation codes to describe their organization type. + string? foundation_code?; + # Textual description of the foundation code. + string? foundation_code_description?; + # This is the month on a ruling or determination letter recognizing the organization's exempt status. + string? ruling_month?; + # This is the year on a ruling or determination letter recognizing the organization's exempt status. + string? ruling_year?; + # This is the month on an advanced ruling recognizing the organization’s exempt status. A section 501(c)(3) organization that has received an advance ruling with an expiration date on or after June 9, 2008, is classified as a publicly supported charity during its first five years. Such an organization and its donors may rely on the organization's advance ruling and the organization no longer needs to file Form 8734 with the IRS. Beginning with the organization's sixth year, it must establish that it met the public support test by showing that it is publicly supported on its Form 990, Return of Organization Exempt From Income Tax.On September 9, 2008, the IRS issued temporary Income Tax Regulations, which eliminated the advance ruling process for a section 501(c)(3) organization. Under the new regulations, a new 501(c)(3) organization will be classified as a publicly supported charity, and not a private foundation, if it can show that it reasonably can be expected to be publicly supported when it applies for tax-exempt status. + string? adv_ruling_month?; + # This is the year on an advanced ruling recognizing the organization’s exempt status. A section 501(c)(3) organization that has received an advance ruling with an expiration date on or after June 9, 2008, is classified as a publicly supported charity during its first five years. Such an organization and its donors may rely on the organization's advance ruling and the organization no longer needs to file Form 8734 with the IRS. Beginning with the organization's sixth year, it must establish that it met the public support test by showing that it is publicly supported on its Form 990, Return of Organization Exempt From Income Tax. On September 9, 2008, the IRS issued temporary Income Tax Regulations, which eliminated the advance ruling process for a section 501(c)(3) organization. Under the new regulations, a new 501(c)(3) organization will be classified as a publicly supported charity, and not a private foundation, if it can show that it reasonably can be expected to be publicly supported when it applies for tax-exempt status. + string? adv_ruling_year?; + # This is a 4-digit IRS-internal number assigned to parent organizations holding group exemption letters. Subordinate organizations in group exemptions inherit the Pub78 status of the parent organization. + string? group_exemption?; + # The EO Status Code defines the type of exemption held by the organization. + string? exempt_status_code?; + # Indicates whether this organization has been listed by OFAC on the Specially Designated National (SDN) List. Also known as the “Terrorist Watch List”. + string? ofac_status?; + # Indicates the revocation code provided by the IRS in the Automatic Revocation file. + string? revocation_code?; + # Date of revocation. + string? revocation_date?; + # Date of reinstatement, if any. + string? reinstatement_date?; + # Indicates whether the Business Master File and Publication 78 data are reporting the organization differently regarding its classification as a private foundation. + string? irs_bmf_pub78_conflict?; + # Non-private foundation status. + string? foundation_509a_status?; + # Candid Internal Use Only (Removed in Future API Versions). + string? irb_organization_id?; + # If the organization was listed in an Internal Revenue Bulletin, the bulletin number is listed here. + string? bulletin_number?; + # URL link to the IRB. + string? bulletin_url?; + # Effective date of the IRB. + string? effective_date?; + # The date that GuideStar IRB last modification date. + string? irb_last_modified?; + # Date and time the Charity Check API returned the result. Reported in Greenwich Mean Time (GMT). + string? report_date?; + # Organizations can select IRS foundation codes to describe their organization type. + string? foundation_type_code?; + # Textual description of the foundation code. + string? foundation_type_description?; + CharityCheck_parent_organizations[]? parent_organizations?; +}; + +# Images uploaded by organization +public type PhotoLink record { + # URL to image + string? picture_url?; + # Image caption + string? caption?; +}; + +public type Unauthorized record { + # HTTP response status code. + string? code?; + string? message?; +}; + +# list of equity strategy items enumerated below +public type EquityStrategy record { + # presence of compensation information + boolean? data_compensation?; + # presence of data disparities information + boolean? data_disparities?; + # presence of root cause information + boolean? data_root_cause?; + # presence of programming goals information + boolean? data_programming_goals?; + # presence of feedback information + boolean? data_feedback?; + # presence of demographics information + boolean? data_demographics?; + # presence of strategic plan information + boolean? data_strategic_plan?; + # presence of policy standards information + boolean? policy_standards?; + # presence of promotion policy information + boolean? policy_promotion?; + # presence of evaluation policy information + boolean? policy_evaluation?; + # presence of community policy information + boolean? policy_community?; + # presence of leadership policy information + boolean? policy_leadership?; + # presence of satisfaction policy information + boolean? policy_satisfaction?; + # presence of equity policy information + boolean? policy_equity?; + # equity strategy section's last modified date for the organization + string? equity_strategy_last_modified?; +}; + +public type V1PublicProfile record { + # HTTP response status code. + int? code?; + # Diagnostic message for response status + string? message?; + # Time taken for request to process + int? took?; + # List of errors encountered + string[]? errors?; + V1PublicProfile_data? data?; +}; + +# National taxonomy of exempt Entities (NTEE) code information +public type NteeCode record { + # NTEE code + string? ntee_code?; + # NTEE primary code + string? primary_code?; + # NTEE Primary description + string? primary_description?; + # NTEE subcode + string? sub_code?; + # NTEE subcode description + string? sub_description?; +}; + +public type V2PublicProfile_data record { + # Information about the non-profit, such as name and address + Summary2? summary?; + # Collection of an organizations programs and program metrics + Programs2? programs?; + # Organization financial information + Financials2? financials?; + # Organization operations information + Operations1? operations?; + # Organization Charity Check information + CharityCheck? charitycheck?; +}; + +public type Error record { + string? 'resource?; + string? reason?; +}; + +# Specific feedback response questions answered by organization +public type FBResponseText record { + # Feedback response question text + string? question_text?; + # Feedback response answer text + string? response_text?; +}; + +public type OrganizationType record { + # The type of organization it is. + string? organization_type?; + # The amount you can deduct from your taxes for donations towards this organization. + string? deductibility_limitation?; + # The code for the type of organization. + string? deductibility_status_description?; +}; + +@deprecated +public type OrganizationDemographics record { + # DEPRECATED + int:Signed32? total_board_members?; + # DEPRECATED + int:Signed32? total_fulltime_staff?; + # DEPRECATED + int:Signed32? total_parttime_staff?; + # DEPRECATED + int:Signed32? total_staff?; + # DEPRECATED + int:Signed32? total_senior_staff?; + # DEPRECATED + boolean? tracks_staffboardvol_retention?; + # DEPRECATED + boolean? tracks_staffboard_income?; + # DEPRECATED + boolean? tracks_staffboard_age?; + # DEPRECATED + boolean? tracks_vendor_diversity?; + # DEPRECATED + boolean? has_diversity_committee?; + # DEPRECATED + boolean? has_diversity_manager?; + # DEPRECATED + boolean? diversity_manager_fulltime?; + # DEPRECATED + boolean? diversity_plan?; + # DEPRECATED + boolean? supports_diversity_via_other_methods?; + # list of equity strategy items enumerated below + EquityStrategy? equity_strategies?; + # DEPRECATED + DemographicsCategory[]? categories?; +}; + +# IRS Form 990 EZ Financials Part I, Revenue, Expenses, and Changes in Net Assets or Fund Balances +public type EZFinancialsPartI record { + # total contributions + decimal? contributions_total?; + # service revenue + decimal? service_revenue?; + # revenue from membership dues + decimal? membership_dues?; + # revenue from income investments + decimal? income_investments?; + # gross revenue from other sources + decimal? gross_other?; + # Less cost of sales of assets- other + decimal? cost_other?; + # Gain or loss on sale of assets-other + decimal? gain_other?; + # gross gaming revenue + decimal? gross_gaming?; + # gross fundraising revenue + decimal? gross_fundraising?; + # gross special revenue + decimal? gross_special?; + # direct expenses + decimal? direct_expenses?; + # net special revenue + decimal? net_special?; + # gross revenue from sales + decimal? gross_sales?; + # cost of goods + decimal? cost_goods?; + # gross profit + decimal? gross_profit?; + # revenue from other sources + decimal? revenue_other?; + # total revenue + decimal? revenue_total?; + # total grants paid + decimal? grants_total?; + # total benefits paid + decimal? benefits_total?; + # total compensation expenses + decimal? compensation_total?; + # total fundraising expenses + decimal? fundraising_total?; + # total expenses from occupancy, rent, utilities, and maintenance + decimal? occupancy_total?; + # total printing expenses + decimal? printing_total?; + # total expenses from other sources + decimal? other_expenses_total?; + # total functional expenses + decimal? functional_expenses_total?; + # excess (or deficit) for the year + decimal? year_excess?; + # beginning of year net assets + decimal? net_assets_boy?; + # changes in assets + decimal? assets_change?; + # end of year net assets + decimal? net_assets_eoy?; +}; + +# DEPRECATED +# +# # Deprecated +@deprecated +public type Award record { + # DEPRECATED + string? awarding_external_org?; + # DEPRECATED + string? award_name?; + # Year award received + string? award_year?; +}; + +public type TooManyRequests record { + # HTTP response status code. + string? code?; + string? message?; +}; + +# IRS Form 990 EZ Financials Part II, Balance Sheet +public type EZFinancialsPartII record { + # beginning of year cash + decimal? cash_boy?; + # beginning of year land and buildings + decimal? lbe_boy?; + # beginning of year other assets + decimal? assets_other_boy?; + # beginning of year total assets + decimal? assets_total_boy?; + # beginning of year total liability + decimal? liability_total_boy?; + # beginning of year net total + decimal? net_total_boy?; + # end of year cash + decimal? cash_eoy?; + # end of year land and buildings + decimal? lbe_eoy?; + # end of year other assets + decimal? assets_other_eoy?; + # end of year total assets + decimal? assets_total_eoy?; + # end of year total liability + decimal? liability_total_eoy?; + # end of year net total + decimal? net_total_eoy?; +}; + +public type NotFound record { + # HTTP response status code. + string? code?; + string? message?; +}; diff --git a/ballerina/modules/premier/utils.bal b/ballerina/modules/premier/utils.bal new file mode 100644 index 0000000..e7edd59 --- /dev/null +++ b/ballerina/modules/premier/utils.bal @@ -0,0 +1,57 @@ +// AUTO-GENERATED FILE. DO NOT MODIFY. +// This file is auto-generated by the Ballerina OpenAPI tool. + +// Copyright (c) 2023 WSO2 LLC. (http://www.wso2.org) All Rights Reserved. +// +// WSO2 LLC. licenses this file to you under the Apache License, +// Version 2.0 (the "License"); you may not use this file except +// in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +import ballerina/url; + +type SimpleBasicType string|boolean|int|float|decimal; + +# Get Encoded URI for a given value. +# +# + value - Value to be encoded +# + return - Encoded string +isolated function getEncodedUri(anydata value) returns string { + string|error encoded = url:encode(value.toString(), "UTF8"); + if (encoded is string) { + return encoded; + } else { + return value.toString(); + } +} + +# Generate header map for given header values. +# +# + headerParam - Headers map +# + return - Returns generated map or error at failure of client initialization +isolated function getMapForHeaders(map headerParam) returns map { + map headerMap = {}; + foreach var [key, value] in headerParam.entries() { + if value is string || value is string[] { + headerMap[key] = value; + } else if value is int[] { + string[] stringArray = []; + foreach int intValue in value { + stringArray.push(intValue.toString()); + } + headerMap[key] = stringArray; + } else if value is SimpleBasicType { + headerMap[key] = value.toString(); + } + } + return headerMap; +} diff --git a/build-config/resources/Ballerina.toml b/build-config/resources/Ballerina.toml new file mode 100644 index 0000000..b31e558 --- /dev/null +++ b/build-config/resources/Ballerina.toml @@ -0,0 +1,11 @@ +[package] +org = "ballerinax" +name = "candid" +version = "@toml.version@" +authors = ["Ballerina"] +export = ["candid.charitycheckpdf", "candid.essentials", "candid.premier"] +keywords = ["Candid", "Nonprofit Data", "Philanthropy Data", "Nonprofit APIs"] +repository = "https://github.com/ballerina-platform/module-ballerinax-candid" +icon = "icon.png" +license = ["Apache-2.0"] +distribution = "2201.8.0" diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..ce6e8cd --- /dev/null +++ b/build.gradle @@ -0,0 +1,88 @@ +/* + * Copyright (c) 2023, WSO2 LLC. (http://www.wso2.com) + * + * WSO2 LLC. licenses this file to you under the Apache License, + * Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +plugins { + id 'com.github.spotbugs' + id 'com.github.johnrengelman.shadow' + id 'de.undercouch.download' + id 'net.researchgate.release' + id 'jacoco' +} + +allprojects { + apply plugin: 'maven-publish' + + group = project.group + version = project.version + + repositories { + mavenLocal() + maven { + url = 'https://maven.wso2.org/nexus/content/repositories/releases/' + } + + maven { + url = 'https://mvnrepository.com/artifact/org.testng/testng' + } + + maven { + url = 'https://maven.wso2.org/nexus/content/groups/wso2-public/' + } + + maven { + url = 'https://repo.maven.apache.org/maven2' + } + + maven { + url = 'https://maven.pkg.github.com/ballerina-platform/*' + credentials { + username System.getenv("packageUser") + password System.getenv("packagePAT") + } + } + } + + ext { + snapshotVersion= '-SNAPSHOT' + timestampedVersionRegex = '.*-\\d{8}-\\d{6}-\\w.*\$' + } +} + +subprojects { + configurations { + ballerinaStdLibs + jbalTools + } +} + +def moduleVersion = project.version.replace("-SNAPSHOT", "") + +task build { + dependsOn(':candid-ballerina:build') +} + +release { + buildTasks = ['build'] + failOnSnapshotDependencies = true + versionPropertyFile = 'gradle.properties' + tagTemplate = 'v${version}' + git { + requireBranch = "release-${moduleVersion}" + pushToRemote = 'origin' + } +} diff --git a/docs/CharityCheckPdf_v1.0.json b/docs/CharityCheckPdf_v1.0.json new file mode 100644 index 0000000..4a99dc4 --- /dev/null +++ b/docs/CharityCheckPdf_v1.0.json @@ -0,0 +1,284 @@ +{ + "openapi":"3.0.1", + "info":{ + "title":"CharityCheckPdf", + "description":"This end-point will allow you to retrieve organization's Charity Check information in PDF format. API returns the byte stream.", + "version":"1.0" + }, + "servers":[ + { + "url":"https://apidata.guidestar.org/charitycheckpdf" + }, + { + "url":"https://api.candid.org/charitycheckpdf" + } + ], + "paths":{ + "/v1/pdf/{ein}":{ + "get":{ + "summary":"/charitycheckpdf/v1/pdf", + "description":"Generate a PDF report to validate nonprofit status and eligibility with a 100% IRS-compliant charity check.", + "operationId":"charitycheckpdf_v1", + "parameters":[ + { + "name":"ein", + "in":"path", + "description":"Employer Identification Number.", + "example":"13-1837418", + "required":true, + "schema":{ + "type":"string", + "default":"13-1837418" + } + } + ], + "responses":{ + "200":{ + "description":"OK", + "content":{ + "application/pdf":{ + "schema":{ + "type":"object", + "description":"PDF containing charity check information for the organization with the given ein" + } + } + } + }, + "400":{ + "description":"Bad Request", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/BadRequest" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/BadRequest" + } + } + } + }, + "401":{ + "description":"Unauthorized", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/Unauthorized" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/Unauthorized" + } + } + } + }, + "403":{ + "description":"Forbidden", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/Forbidden" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/Forbidden" + } + } + } + }, + "404":{ + "description":"No Results Found", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/NotFound" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/NotFound" + } + } + } + }, + "406":{ + "description":"Not Acceptable", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/NotAcceptable" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/NotAcceptable" + } + } + } + }, + "429":{ + "description":"Too Many Requests", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/TooManyRequests" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/TooManyRequests" + } + } + } + }, + "500":{ + "description":"Internal Server Error", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/InternalServerError" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/InternalServerError" + } + } + } + } + } + } + } + }, + "components":{ + "schemas":{ + "BadRequest":{ + "type":"object", + "properties":{ + "code":{ + "type":"string", + "description":"HTTP response status code.", + "example":400 + }, + "message":{ + "type":"string", + "description":"Diagnostic message for response status", + "example":"The request cannot be fulfilled due to bad syntax." + } + } + }, + "Unauthorized":{ + "type":"object", + "properties":{ + "code":{ + "type":"string", + "description":"HTTP response status code.", + "example":401 + }, + "message":{ + "type":"string", + "description":"Diagnostic message for response status", + "example":"Access denied due to missing subscription key. Make sure to include subscription key when making requests to an API." + } + } + }, + "Forbidden":{ + "type":"object", + "properties":{ + "code":{ + "type":"string", + "description":"HTTP response status code.", + "example":403 + }, + "message":{ + "type":"string", + "description":"Diagnostic message for response status", + "example":"Forbidden, we found insufficient permissions to grant access to the resources. Please check the detailed message of the response." + } + } + }, + "NotFound":{ + "type":"object", + "properties":{ + "code":{ + "type":"string", + "description":"HTTP response status code.", + "example":404 + }, + "message":{ + "type":"string", + "description":"Diagnostic message for response status", + "example":"Request was processed successfully but we could not find the resource ein" + } + } + }, + "NotAcceptable":{ + "type":"object", + "properties":{ + "code":{ + "type":"string", + "description":"HTTP response status code.", + "example":406 + }, + "message":{ + "type":"string", + "description":"Diagnostic message for response status", + "example":"The requested resource is capable of generating only content not acceptable according to the Accept headers sent in the request." + } + } + }, + "TooManyRequests":{ + "type":"object", + "properties":{ + "code":{ + "type":"string", + "description":"HTTP response status code.", + "example":429 + }, + "message":{ + "type":"string", + "description":"Diagnostic message for response status", + "example":"Rate limit is exceeded. Try again later." + } + } + }, + "InternalServerError":{ + "type":"object", + "properties":{ + "code":{ + "type":"string", + "description":"HTTP response status code.", + "example":500 + }, + "message":{ + "type":"string", + "description":"Diagnostic message for response status", + "example":"Oh no!, this is bad, something went wrong... please contact API support!" + } + } + } + }, + "securitySchemes":{ + "apiKeyHeader":{ + "type":"apiKey", + "name":"Subscription-Key", + "in":"header" + } + } + }, + "security":[ + { + "apiKeyHeader":[ + + ] + } + ], + "x-readme":{ + "explorer-enabled":true, + "proxy-enabled":true, + "samples-enabled":true + } +} diff --git a/docs/Essentials_v1.0.json b/docs/Essentials_v1.0.json new file mode 100644 index 0000000..a513fa0 --- /dev/null +++ b/docs/Essentials_v1.0.json @@ -0,0 +1,2677 @@ +{ + "openapi":"3.0.0", + "info":{ + "title":"Essentials", + "description":"Search GuideStar’s most common set of data about nonprofits to quickly find organizations most relevant to your users, and use those results to get more data from our other APIs. API returns search result in JSON format.", + "version":"1.0" + }, + "servers":[ + { + "url":"https://api.candid.org/essentials" + }, + { + "url":"https://apidata.guidestar.org/essentials" + } + ], + "paths":{ + "/v1":{ + "post":{ + "summary":"/essentials/v1", + "description":"Find nonprofits using variable search criteria and explore essential information.", + "operationId":"essentials_v1", + "requestBody":{ + "description":"Below JSON request body is an example showing all available elements. Please use the examples from the API Documentation.", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/Query" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/Query" + } + }, + "application/x-www-form-urlencoded":{ + + } + } + }, + "responses":{ + "200":{ + "description":"OK", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/V1EssentialsResponse" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/V1EssentialsResponse" + } + } + } + }, + "400":{ + "description":"Bad Request", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/BadRequest" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/BadRequest" + } + } + } + }, + "401":{ + "description":"Unauthorized", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/Unauthorized" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/Unauthorized" + } + } + } + }, + "403":{ + "description":"Forbidden", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/Forbidden" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/Forbidden" + } + } + } + }, + "404":{ + "description":"No Results Found", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/NotFound" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/NotFound" + } + } + } + }, + "406":{ + "description":"Not Acceptable", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/NotAcceptable" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/NotAcceptable" + } + } + } + }, + "429":{ + "description":"Too Many Requests", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/TooManyRequests" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/TooManyRequests" + } + } + } + }, + "500":{ + "description":"Internal Server Error", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/InternalServerError" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/InternalServerError" + } + } + } + } + } + } + }, + "/v2":{ + "post":{ + "summary":"/essentials/v2", + "description":"Find nonprofits using variable search criteria and explore essential information.", + "operationId":"essentials_v2", + "requestBody":{ + "description":"Below JSON request body is an example showing all available elements. Please use the examples from the API Documentation.", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/Query" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/Query" + } + }, + "application/x-www-form-urlencoded":{ + + } + } + }, + "responses":{ + "200":{ + "description":"OK", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/V2EssentialsResponse" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/V2EssentialsResponse" + } + } + } + }, + "400":{ + "description":"Bad Request", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/BadRequest" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/BadRequest" + } + } + } + }, + "401":{ + "description":"Unauthorized", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/Unauthorized" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/Unauthorized" + } + } + } + }, + "403":{ + "description":"Forbidden", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/Forbidden" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/Forbidden" + } + } + } + }, + "404":{ + "description":"No Results Found", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/NotFound" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/NotFound" + } + } + } + }, + "406":{ + "description":"Not Acceptable", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/NotAcceptable" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/NotAcceptable" + } + } + } + }, + "429":{ + "description":"Too Many Requests", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/TooManyRequests" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/TooManyRequests" + } + } + } + }, + "500":{ + "description":"Internal Server Error", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/InternalServerError" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/InternalServerError" + } + } + } + } + } + } + }, + "/v3":{ + "post":{ + "summary":"/essentials/v3", + "description":"Make your searches more relevant and real-time with access to new filters and fields.", + "operationId":"essentials_v3", + "requestBody":{ + "description":"Below JSON request body is an example showing all available elements. Please use the examples from the API Documentation.", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/v3Query" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/v3Query" + } + }, + "application/x-www-form-urlencoded":{ + + } + } + }, + "responses":{ + "200":{ + "description":"OK", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/V3EssentialsResponse" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/V3EssentialsResponse" + } + } + } + }, + "400":{ + "description":"Bad Request", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/BadRequest" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/BadRequest" + } + } + } + }, + "401":{ + "description":"Unauthorized", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/Unauthorized" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/Unauthorized" + } + } + } + }, + "403":{ + "description":"Forbidden", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/Forbidden" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/Forbidden" + } + } + } + }, + "404":{ + "description":"No Results Found", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/NotFound" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/NotFound" + } + } + } + }, + "406":{ + "description":"Not Acceptable", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/NotAcceptable" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/NotAcceptable" + } + } + } + }, + "429":{ + "description":"Too Many Requests", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/TooManyRequests" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/TooManyRequests" + } + } + } + }, + "500":{ + "description":"Internal Server Error", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/InternalServerError" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/InternalServerError" + } + } + } + } + } + } + }, + "/lookup":{ + "get":{ + "summary":"/essentials/lookup", + "description":"Use the /lookup endpoint to retrieve a list of the tables that can be passed as a filter_name to the lookup detail endpoints. The tables and their contents can be used to generate dropdowns and filters in your system when using the Essentials API.", + "operationId":"essentials_lookup", + "responses":{ + "200":{ + "description":"OK", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/EssentialsLookupResponse" + } + } + } + }, + "400":{ + "description":"Bad Request", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/BadRequest" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/BadRequest" + } + } + } + }, + "401":{ + "description":"Unauthorized", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/Unauthorized" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/Unauthorized" + } + } + } + }, + "403":{ + "description":"Forbidden", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/Forbidden" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/Forbidden" + } + } + } + }, + "404":{ + "description":"No Results Found", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/NotFound" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/NotFound" + } + } + } + }, + "406":{ + "description":"Not Acceptable", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/NotAcceptable" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/NotAcceptable" + } + } + } + }, + "429":{ + "description":"Too Many Requests", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/TooManyRequests" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/TooManyRequests" + } + } + } + }, + "500":{ + "description":"Internal Server Error", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/InternalServerError" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/InternalServerError" + } + } + } + } + } + } + }, + "/lookup/{filter_name}":{ + "get":{ + "summary":"/essentials/lookup/{filter_name}", + "description":"Provides a list of all the human-readable search values within a specific filter_name table, which can then be used in search queries with the Essentials endpoints. Each array contains a table key, name value, and search value. The resulting search_value(s) can be passed as search values in the Essentials API.", + "operationId":"essentials_lookup_{filter_name}", + "responses":{ + "200":{ + "description":"OK", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/EssentialsFilteredLookupResponse" + } + } + } + }, + "400":{ + "description":"Bad Request", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/BadRequest" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/BadRequest" + } + } + } + }, + "401":{ + "description":"Unauthorized", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/Unauthorized" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/Unauthorized" + } + } + } + }, + "403":{ + "description":"Forbidden", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/Forbidden" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/Forbidden" + } + } + } + }, + "404":{ + "description":"No Results Found", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/NotFound" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/NotFound" + } + } + } + }, + "406":{ + "description":"Not Acceptable", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/NotAcceptable" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/NotAcceptable" + } + } + } + }, + "429":{ + "description":"Too Many Requests", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/TooManyRequests" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/TooManyRequests" + } + } + } + }, + "500":{ + "description":"Internal Server Error", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/InternalServerError" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/InternalServerError" + } + } + } + } + }, + "parameters":[ + { + "name":"filter_name", + "x-global":true, + "in":"path", + "example":"ntee_major", + "required":true, + "schema":{ + "type":"string" + } + } + ] + } + }, + "/lookup/{filter_name}/{key_or_value}":{ + "get":{ + "summary":"/essentials/lookup/{filter_name}/{key_or_value}", + "description":"Lookup details on a specific filter using the known filter_name and key_or_value. The resulting search_value can be passed as a search value in the Essentials API.", + "operationId":"essentials_lookup_{filter_name}_{key_or_value}", + "responses":{ + "200":{ + "description":"OK", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/EssentialsFilteredLookupResponse" + } + } + } + }, + "400":{ + "description":"Bad Request", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/BadRequest" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/BadRequest" + } + } + } + }, + "401":{ + "description":"Unauthorized", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/Unauthorized" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/Unauthorized" + } + } + } + }, + "403":{ + "description":"Forbidden", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/Forbidden" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/Forbidden" + } + } + } + }, + "404":{ + "description":"No Results Found", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/NotFound" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/NotFound" + } + } + } + }, + "406":{ + "description":"Not Acceptable", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/NotAcceptable" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/NotAcceptable" + } + } + } + }, + "429":{ + "description":"Too Many Requests", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/TooManyRequests" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/TooManyRequests" + } + } + } + }, + "500":{ + "description":"Internal Server Error", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/InternalServerError" + } + }, + "text/json":{ + "schema":{ + "$ref":"#/components/schemas/InternalServerError" + } + } + } + } + }, + "parameters":[ + { + "name":"filter_name", + "x-global":true, + "in":"path", + "description":"A list of all filters that can be used in Essentials endpoints. Found in the response of /essentials/lookup.", + "example":"ntee_major", + "required":true, + "schema":{ + "type":"string" + } + }, + { + "name":"key_or_value", + "x-global":true, + "in":"path", + "description":"Key of filterable items. Found in the response of /essentials/lookup/{filter_name}", + "example":"C00", + "required":true, + "schema":{ + "type":"string" + } + } + ] + } + } + }, + "components":{ + "schemas":{ + "Query":{ + "type":"object", + "properties":{ + "search_terms":{ + "type":"string", + "description":"Can be any string you'd like to search on, including EIN, organization name, keywords, etc.", + "example":"candid" + }, + "from":{ + "type":"integer", + "description":"The offset from the first result. Defaults to 0.", + "example":0 + }, + "size":{ + "type":"integer", + "description":"The maximum number of hits to be returned. Defaults to 25. The maximum number allowed is 25.", + "example":25 + }, + "sort":{ + "$ref":"#/components/schemas/Sort" + }, + "filters":{ + "$ref":"#/components/schemas/Filters" + } + } + }, + "v3Query":{ + "type":"object", + "properties":{ + "search_terms":{ + "type":"string", + "description":"Can be any string you'd like to search on, including EIN, organization name, keywords, etc.", + "example":"candid" + }, + "from":{ + "type":"integer", + "description":"The offset from the first result. Defaults to 0.", + "example":0 + }, + "size":{ + "type":"integer", + "description":"The maximum number of hits to be returned. Defaults to 25. The maximum number allowed is 25.", + "example":25 + }, + "sort":{ + "$ref":"#/components/schemas/v3Sort" + }, + "filters":{ + "$ref":"#/components/schemas/v3Filters" + } + } + }, + "Sort":{ + "type":"object", + "properties":{ + "sort_by":{ + "type":"string", + "description":"Leave blank to sort by relevance.", + "enum":[ + "organization_name", + "bmf_gross_receipts", + "bmf_assets" + ], + "example":"organization_name" + }, + "ascending":{ + "type":"boolean", + "description":"Default value is true (ascending). Set to false to sort by descending value.", + "example":true + } + } + }, + "v3Sort":{ + "type":"object", + "properties":{ + "sort_by":{ + "type":"string", + "description":"Leave blank to sort by relevance.", + "enum":[ + "organization_name", + "bmf_gross_receipts", + "bmf_assets", + "distance", + "year_founded" + ], + "example":"organization_name" + }, + "sort_order":{ + "type":"string", + "description":"Default value is ascending. Allowed values are \"asc\" (ascending) and \"desc\" (descending).", + "enum":[ + "asc", + "desc" + ], + "example":"asc" + } + } + }, + "Filters":{ + "type":"object", + "properties":{ + "geography":{ + "$ref":"#/components/schemas/GeographyFilter" + }, + "organization":{ + "$ref":"#/components/schemas/OrganizationFilter" + }, + "financials":{ + "$ref":"#/components/schemas/FinancialsFilter" + } + } + }, + "v3Filters":{ + "type":"object", + "properties":{ + "geography":{ + "$ref":"#/components/schemas/GeographyFilter" + }, + "organization":{ + "$ref":"#/components/schemas/v3OrganizationFilter" + }, + "financials":{ + "$ref":"#/components/schemas/v3FinancialsFilter" + }, + "last_updated":{ + "$ref":"#/components/schemas/LastUpdated" + } + } + }, + "GeographyFilter":{ + "type":"object", + "properties":{ + "state":{ + "type":"array", + "items":{ + "type":"string", + "description":"State code, comma separated", + "example":"NY" + } + }, + "zip":{ + "type":"string", + "description":"Five digit ZIP code", + "example":10005 + }, + "radius":{ + "type":"integer", + "description":"Radius from the specified ZIP code in miles. Allowed range is between 1 and 50 miles. Values exceeding 50 will default to a radius of 50 miles.", + "example":50 + }, + "msa":{ + "type":"array", + "items":{ + "type":"string", + "description":"Metropolitan statistical area, comma separated", + "example":"NY-NJ" + } + }, + "city":{ + "type":"array", + "items":{ + "type":"string", + "description":"US cities, comma separated", + "example":"New York" + } + }, + "county":{ + "type":"array", + "items":{ + "type":"string", + "description":"US counties, comma separated", + "example":"New York, NY" + } + } + } + }, + "OrganizationFilter":{ + "type":"object", + "properties":{ + "profile_levels":{ + "type":"array", + "description":"GuideStar seal levels, comma separated.", + "enum":[ + "bronze", + "silver", + "gold", + "platinum" + ], + "items":{ + "type":"string", + "example":"platinum" + } + }, + "ntee_major_codes":{ + "type":"array", + "description":"National Taxonomy of Exempt Entities (NTEE) major codes, comma separated.", + "items":{ + "type":"string", + "example":"T" + } + }, + "ntee_minor_codes":{ + "type":"array", + "description":"National Taxonomy of Exempt Entities (NTEE) minor codes, comma separated.", + "items":{ + "type":"string", + "example":"50" + } + }, + "subsection_codes":{ + "type":"array", + "description":"IRS subsection codes and/or descriptions, comma separated.", + "items":{ + "type":"string", + "example":"501(c)(3) Public Charity" + } + }, + "foundation_codes":{ + "type":"array", + "description":"Foundation codes and/or descriptions, comma separated.", + "items":{ + "type":"string", + "example":"15" + } + }, + "bmf_status":{ + "type":"boolean", + "description":"Flag indicating the organization has the most recent IRS BMF. Defaults to null. Otherwise true or false.", + "example":true + }, + "pub78_verified":{ + "type":"boolean", + "description":"Flag indicating the organization is pub78 verified. Value set as true or false.", + "example":true + }, + "affiliation_type":{ + "$ref":"#/components/schemas/AffiliationTypeFilter" + }, + "specific_exclusions":{ + "$ref":"#/components/schemas/SpecificExclusionsFilter" + }, + "number_of_employees_range":{ + "$ref":"#/components/schemas/NumberRangeFilter" + }, + "form_types":{ + "$ref":"#/components/schemas/IrsFormTypesFilter" + }, + "audits":{ + "$ref":"#/components/schemas/AuditsFilter" + } + } + }, + "v3OrganizationFilter":{ + "type":"object", + "properties":{ + "profile_levels":{ + "type":"array", + "description":"GuideStar seal levels, comma separated.", + "enum":[ + "bronze", + "silver", + "gold", + "platinum" + ], + "items":{ + "type":"string", + "example":"platinum" + } + }, + "subject_codes":{ + "type":"array", + "description":"Subject codes, comma separated.", + "items":{ + "type":"string", + "example":"SN04" + } + }, + "population_served_codes":{ + "type":"array", + "description":"Population served codes, comma separated.", + "items":{ + "type":"string", + "example":"PG0302" + } + }, + "ntee_major_codes":{ + "type":"array", + "description":"National Taxonomy of Exempt Entities (NTEE) major codes, comma separated.", + "items":{ + "type":"string", + "example":"T" + } + }, + "ntee_minor_codes":{ + "type":"array", + "description":"National Taxonomy of Exempt Entities (NTEE) minor codes, comma separated.", + "items":{ + "type":"string", + "example":"50" + } + }, + "subsection_codes":{ + "type":"array", + "description":"IRS subsection codes and/or descriptions, comma separated.", + "items":{ + "type":"string", + "example":"501(c)(3) Public Charity" + } + }, + "foundation_codes":{ + "type":"array", + "description":"Foundation codes and/or descriptions, comma separated.", + "items":{ + "type":"string", + "example":"15" + } + }, + "group_exemption":{ + "type":"array", + "description":"Group exemption codes, comma separated.", + "items":{ + "type":"string", + "example":"9334" + } + }, + "number_of_employees":{ + "$ref":"#/components/schemas/NumberRangeFilter" + }, + "ruling_year":{ + "type":"object", + "description":"Range specifying the year the granted organization tax exempt status (a.k.a. Ruling Year)", + "$ref":"#/components/schemas/NumberRangeFilter" + }, + "properties":{ + "$ref":"#/components/schemas/v3OrgProperties" + } + } + }, + "v3OrgProperties":{ + "type":"object", + "properties":{ + "bmf_status":{ + "type":"boolean", + "description":"Flag indicating the organization has the most recent IRS BMF. Defaults to null. Otherwise true or false.", + "example":true + }, + "pub78_verified":{ + "type":"boolean", + "description":"Flag indicating the organization is pub78 verified. Value set as true or false.", + "example":true + }, + "allow_online_giving":{ + "type":"boolean", + "description":"Flag indicating the organization allows online giving. Value set as true or false.", + "example":true + }, + "dei_submitted":{ + "type":"boolean", + "description":"Flag indicating the organization has submitted demographics information. Value set as true or false.", + "example":false + }, + "exclude_revoked_organizations":{ + "type":"boolean", + "description":"Flag to exclude revoked organizations. Value set as true or false.", + "example":false + }, + "exclude_defunct_or_merged_organizations":{ + "type":"boolean", + "description":"Flag to exclude defunct or merged organizations. Value set as true or false.", + "example":false + }, + "relationship_type":{ + "$ref":"#/components/schemas/AffiliationTypeFilter" + } + } + }, + "v3FinancialsFilter":{ + "type":"object", + "properties":{ + "most_recent_year":{ + "type":"object", + "properties":{ + "form_types":{ + "type":"object", + "properties":{ + "f990":{ + "type":"boolean", + "description":"Flag indicating the organization files a form 990. Value set as true or false.", + "example":true + }, + "f990pf":{ + "type":"boolean", + "description":"Flag indicating the organization files a form 990-PF. Value set as true or false.", + "example":false + }, + "f990ez":{ + "type":"boolean", + "description":"Flag indicating the organization files a form 990ez. Value set as true or false.", + "example":true + }, + "f990n":{ + "type":"boolean", + "description":"Flag indicating the organization files a form 990n. Value set as true or false.", + "example":false + } + } + }, + "total_revenue":{ + "$ref":"#/components/schemas/NumberRangeFilter" + }, + "total_expenses":{ + "$ref":"#/components/schemas/NumberRangeFilter" + }, + "total_assets":{ + "$ref":"#/components/schemas/NumberRangeFilter" + } + } + }, + "required_to_file_990t":{ + "type":"boolean", + "description":"Flag indicating the organization is required to file a 990-T. Value set as true or false.", + "example":false + }, + "a_133_audit_performed":{ + "type":"boolean", + "description":"Flag indicating the organization performed A-133 audit. Value set as true or false.", + "example":false + } + } + }, + "FinancialsFilter":{ + "type":"object", + "properties":{ + "total_revenue":{ + "$ref":"#/components/schemas/NumberRangeFilter" + }, + "total_expenses":{ + "$ref":"#/components/schemas/NumberRangeFilter" + }, + "total_assets":{ + "$ref":"#/components/schemas/NumberRangeFilter" + } + } + }, + "AffiliationTypeFilter":{ + "type":"object", + "properties":{ + "parent":{ + "type":"boolean", + "description":"Flag indicating the organization is a parent. Value set as true or false.", + "example":false + }, + "subordinate":{ + "type":"boolean", + "description":"Flag indicating the organization is a subordinate. Value set as true or false.", + "example":false + }, + "independent":{ + "type":"boolean", + "description":"Flag indicating the organization is independent. Value set as true or false.", + "example":true + }, + "headquarter":{ + "type":"boolean", + "description":"Flag indicating the organization is a headquarter. Value set as true or false.", + "example":false + } + } + }, + "SpecificExclusionsFilter":{ + "type":"object", + "properties":{ + "exclude_revoked_organizations":{ + "type":"boolean", + "description":"Flag to exclude revoked organizations. Value set as true or false.", + "example":false + }, + "exclude_defunct_or_merged_organizations":{ + "type":"boolean", + "description":"Flag to exclude defunct or merged organizations. Value set as true or false.", + "example":false + } + } + }, + "NumberRangeFilter":{ + "type":"object", + "properties":{ + "min":{ + "type":"integer", + "description":"Minimum number", + "example":5 + }, + "max":{ + "type":"integer", + "description":"Maximum number", + "example":987654321 + } + } + }, + "IrsFormTypesFilter":{ + "type":"object", + "properties":{ + "f990":{ + "type":"boolean", + "description":"Flag indicating the organization files a form 990. Value set as true or false.", + "example":true + }, + "f990pf":{ + "type":"boolean", + "description":"Flag indicating the organization files a form 990-PF. Value set as true or false.", + "example":false + }, + "f990ez":{ + "type":"boolean", + "description":"Flag indicating the organization files a form 990 EZ. Value set as true or false.", + "example":false + }, + "f990n":{ + "type":"boolean", + "description":"Flag indicating the organization files a form 990N. Value set as true or false.", + "example":false + }, + "required_to_file_990t":{ + "type":"boolean", + "description":"Flag indicating the organization is required to file a 990-T. Value set as true or false.", + "example":false + } + } + }, + "AuditsFilter":{ + "type":"object", + "properties":{ + "a_133_audit_performed":{ + "type":"boolean", + "description":"Flag indicating the organization performed A-133 audit. Value set as true or false.", + "example":false + } + } + }, + "LastUpdated":{ + "type":"object", + "properties":{ + "start_date":{ + "type":"string", + "description":"A filter, along with end_date, defines a range on date_type, in the format yyyy-MM-ddTHH:mm:ss.", + "example":"2020-01-01T01:01:01:01" + }, + "end_date":{ + "type":"string", + "description":"A filter, along with start_date, defines a range on date_type, in the format yyyy-MM-ddTHH:mm:ss.", + "example":"2020-01-01T01:01:01:01" + }, + "date_type":{ + "type":"string", + "description":"A filter, to specify updates made to a organization over the specified end_date and start_date.", + "enum":[ + "seal_last_modified", + "profile_last_modified", + "dei_last_modified", + "financials_last_modified", + "last_modified" + ], + "example":"seal_last_modified" + } + } + }, + "V1EssentialsResponse":{ + "type":"object", + "properties":{ + "code":{ + "type":"integer", + "description":"Response Code", + "example":200 + }, + "message":{ + "type":"string", + "description":"Diagnostic message for response status", + "example":"Request was processed successfully!" + }, + "took":{ + "type":"integer", + "description":"Time taken for request to process", + "example":24 + }, + "errors":{ + "type":"array", + "description":"List of errors encountered", + "items":{ + "type":"string" + } + }, + "data":{ + "type":"object", + "properties":{ + "took":{ + "type":"integer", + "description":"Elapsed time to calculate results", + "example":22 + }, + "total_hits":{ + "type":"integer", + "description":"Number of results returned by search", + "example":1 + }, + "hits":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "organization_id":{ + "type":"string", + "description":"A unique number identifying organizations and organizational entities", + "example":"9938979" + }, + "bridge_id":{ + "type":"string", + "description":"Deprecated Bridge ID", + "example":null + }, + "ein":{ + "type":"string", + "description":"Employer Identification Number", + "example":"82-4267025" + }, + "organization_name":{ + "type":"string", + "description":"The public name recognized by the IRS", + "example":"Illinois Youth Rugby Association" + }, + "also_known_as":{ + "type":"string", + "description":"Organization name Also Known As", + "example":"chillicothe rugby football club" + }, + "mission":{ + "type":"string", + "description":"Mission statement for the organization", + "example":"To assist those in need" + }, + "address_line_1":{ + "type":"string", + "description":"Address line 1 of the organization", + "example":"123 West 1st Street" + }, + "address_line_2":{ + "type":"string", + "description":"Address line 2 of the organization", + "example":"Suite 201" + }, + "city":{ + "type":"string", + "description":"City of the organization's address", + "example":"Chicago" + }, + "state":{ + "type":"string", + "description":"State (Abbreviation) of the organization's address", + "example":"IL" + }, + "zip":{ + "type":"string", + "description":"Zip code of the organization's address", + "example":"23185" + }, + "county":{ + "type":"string", + "description":"County of the organization's address", + "example":"Peoria, IL" + }, + "msa":{ + "type":"string", + "description":"Metropolitan statistical area of the organization's adresss", + "example":"IL - Peoria-Pekin" + }, + "lat_long":{ + "type":"string", + "description":"latitude and longitude of the organization's adress", + "example":"40.9052,-89.5866" + }, + "ntee_code":{ + "type":"string", + "description":"National Taxonomy of Exempt Entities", + "example":"N60 Amateur Sports Clubs, Leagues, N.E.C." + }, + "profile_level":{ + "type":"string", + "description":"GuideStar seal levels.", + "enum":[ + "BRONZE", + "SILVER", + "GOLD", + "PLATINUM", + "NONE" + ], + "example":"BRONZE" + }, + "public_report":{ + "type":"string", + "description":"GuideStar's public profile URL", + "example":"https://www.guidestar.org/profile/82-4267025" + }, + "subsection_code":{ + "type":"string", + "description":"IRS subsection code of the organization", + "example":"501(c)(3) Public Charity" + }, + "number_of_employees":{ + "type":"string", + "description":"Number of employees at the organization", + "example":"55" + }, + "form_type":{ + "type":"string", + "description":"Tax form filing type. ", + "example":"990" + }, + "website_url":{ + "type":"string", + "description":"URL for the organization's website", + "example":"candid.org" + }, + "foundation_code":{ + "type":"string", + "description":"Foundation code that describes the organization", + "example":"15" + }, + "parent_orgs":{ + "type":"string", + "description":"Names of parent organizations, comma seperated", + "example":"Parent Org, Parent Org 2" + }, + "bmf_gross_receipts":{ + "type":"string", + "description":"Gross receipts of the organization reported on the BMF", + "example":"2349999" + }, + "bmf_assets":{ + "type":"string", + "description":"Assets of the organization reported on the BMF", + "example":"1849900" + }, + "form990_total_revenue":{ + "type":"string", + "description":"Total revenue filed on the most recent Form 990, 990-PF, or 990-EZ filing", + "example":"2349999" + }, + "form990_total_expenses":{ + "type":"string", + "description":"Total expenses filed on the most recent Form 990, 990-PF, or 990-EZ filing", + "example":"22224499" + }, + "form990_total_assets":{ + "type":"string", + "description":"Total assets filed on the most recent Form 990, 990-PF, or 990-EZ filing", + "example":"12348855" + }, + "contact_email":{ + "type":"string", + "description":"Email of the primary contact at the organization", + "example":"help@orgname.org" + }, + "contact_name":{ + "type":"string", + "description":"Name of the primary contact at the organization", + "example":"John Smith" + }, + "contact_phone":{ + "type":"string", + "description":"Phone number of the primary contact at the organization", + "example":"(555) 111-5555" + }, + "contact_title":{ + "type":"string", + "description":"Title of the primary contact at the organization", + "example":"Support Lead" + }, + "properties":{ + "type":"object", + "properties":{ + "parent":{ + "type":"boolean", + "description":"If the organization is a parent", + "example":true + }, + "subordinate":{ + "type":"boolean", + "description":"If the organization is a subordinate", + "example":false + }, + "independent":{ + "type":"boolean", + "description":"If the organization is independent", + "example":false + }, + "national_hq":{ + "type":"boolean", + "description":"If the organization is a national headquarter", + "example":true + }, + "revoked":{ + "type":"boolean", + "description":"If the organization is revoked", + "example":false + }, + "defuncted_or_merged":{ + "type":"boolean", + "description":"If the organization is defuncted or merged", + "example":false + }, + "audit_a133_performed":{ + "type":"boolean", + "description":"If the organization performed a A-133 audit", + "example":true + }, + "bmf_status":{ + "type":"boolean", + "description":"If the organization is present on the BMF", + "example":true + }, + "pub78_verified":{ + "type":"boolean", + "description":"If the organization is Pub78 verified", + "example":true + }, + "allow_online_giving":{ + "type":"boolean", + "description":"If the organization allows online giving", + "example":true + } + } + } + } + } + } + } + } + } + }, + "V2EssentialsResponse":{ + "type":"object", + "properties":{ + "code":{ + "type":"integer", + "description":"Response Code", + "example":200 + }, + "message":{ + "type":"string", + "description":"Diagnostic message for response status", + "example":"Request was processed successfully!" + }, + "took":{ + "type":"integer", + "description":"Time taken for request to process", + "example":24 + }, + "errors":{ + "type":"array", + "description":"List of errors encountered", + "items":{ + "type":"string" + } + }, + "data":{ + "type":"object", + "properties":{ + "took":{ + "type":"integer", + "description":"Elapsed time to calculate results", + "example":22 + }, + "total_hits":{ + "type":"integer", + "description":"Number of results returned by search", + "example":1 + }, + "hits":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "organization_id":{ + "type":"string", + "description":"A unique number identifying organizations and organizational entities", + "example":"9938979" + }, + "bridge_id":{ + "type":"string", + "description":"Deprecated Bridge ID", + "example":null + }, + "ein":{ + "type":"string", + "description":"Employer Identification Number", + "example":"82-4267025" + }, + "organization_name":{ + "type":"string", + "description":"The public name recognized by the IRS", + "example":"Illinois Youth Rugby Association" + }, + "also_known_as":{ + "type":"string", + "description":"Organization name Also Known As", + "example":"chillicothe rugby football club" + }, + "mission":{ + "type":"string", + "description":"Mission statement for the organization", + "example":"To assist those in need" + }, + "address_line_1":{ + "type":"string", + "description":"Address line 1 of the organization", + "example":"123 West 1st Street" + }, + "address_line_2":{ + "type":"string", + "description":"Address line 2 of the organization", + "example":"Suite 201" + }, + "city":{ + "type":"string", + "description":"City of the organization's address", + "example":"Chicago" + }, + "state":{ + "type":"string", + "description":"State (Abbreviation) of the organization's address", + "example":"IL" + }, + "zip":{ + "type":"string", + "description":"Zip code of the organization's address", + "example":"23185" + }, + "county":{ + "type":"string", + "description":"County of the organization's address", + "example":"Peoria, IL" + }, + "msa":{ + "type":"string", + "description":"Metropolitan statistical area of the organization's adresss", + "example":"IL - Peoria-Pekin" + }, + "lat_long":{ + "type":"string", + "description":"latitude and longitude of the organization's adress", + "example":"40.9052,-89.5866" + }, + "ntee_code":{ + "type":"string", + "description":"National Taxonomy of Exempt Entities", + "example":"N60 Amateur Sports Clubs, Leagues, N.E.C." + }, + "profile_level":{ + "type":"string", + "description":"GuideStar seal levels.", + "enum":[ + "BRONZE", + "SILVER", + "GOLD", + "PLATINUM", + "NONE" + ], + "example":"BRONZE" + }, + "public_report":{ + "type":"string", + "description":"GuideStar's public profile URL", + "example":"https://www.guidestar.org/profile/82-4267025" + }, + "subsection_code":{ + "type":"string", + "description":"IRS subsection code of the organization", + "example":"501(c)(3) Public Charity" + }, + "number_of_employees":{ + "type":"string", + "description":"Number of employees at the organization", + "example":"55" + }, + "form_type":{ + "type":"string", + "description":"Tax form filing type. ", + "example":"990" + }, + "website_url":{ + "type":"string", + "description":"URL for the organization's website", + "example":"candid.org" + }, + "logo_url":{ + "type":"string", + "description":"URL for the organization's logo", + "example":"candid.org" + }, + "foundation_code":{ + "type":"string", + "description":"Foundation code that describes the organization", + "example":"15" + }, + "parent_orgs":{ + "type":"string", + "description":"Names of parent organizations, comma seperated", + "example":"Parent Org, Parent Org 2" + }, + "bmf_gross_receipts":{ + "type":"string", + "description":"Gross receipts of the organization reported on the BMF", + "example":"2349999" + }, + "bmf_assets":{ + "type":"string", + "description":"Assets of the organization reported on the BMF", + "example":"1849900" + }, + "form990_total_revenue":{ + "type":"string", + "description":"Total revenue filed on the most recent Form 990, 990-PF, or 990-EZ filing", + "example":"2349999" + }, + "form990_total_expenses":{ + "type":"string", + "description":"Total expenses filed on the most recent Form 990, 990-PF, or 990-EZ filing", + "example":"22224499" + }, + "form990_total_assets":{ + "type":"string", + "description":"Total assets filed on the most recent Form 990, 990-PF, or 990-EZ filing", + "example":"12348855" + }, + "contact_email":{ + "type":"string", + "description":"Email of the primary contact at the organization", + "example":"help@orgname.org" + }, + "contact_name":{ + "type":"string", + "description":"Name of the primary contact at the organization", + "example":"John Smith" + }, + "contact_phone":{ + "type":"string", + "description":"Phone number of the primary contact at the organization", + "example":"(555) 111-5555" + }, + "contact_title":{ + "type":"string", + "description":"Title of the primary contact at the organization", + "example":"Support Lead" + }, + "properties":{ + "type":"object", + "properties":{ + "parent":{ + "type":"boolean", + "description":"If the organization is a parent", + "example":true + }, + "subordinate":{ + "type":"boolean", + "description":"If the organization is a subordinate", + "example":false + }, + "independent":{ + "type":"boolean", + "description":"If the organization is independent", + "example":false + }, + "national_hq":{ + "type":"boolean", + "description":"If the organization is a national headquarter", + "example":true + }, + "revoked":{ + "type":"boolean", + "description":"If the organization is revoked", + "example":false + }, + "defuncted_or_merged":{ + "type":"boolean", + "description":"If the organization is defuncted or merged", + "example":false + }, + "audit_a133_performed":{ + "type":"boolean", + "description":"If the organization performed a A-133 audit", + "example":true + }, + "bmf_status":{ + "type":"boolean", + "description":"If the organization is present on the BMF", + "example":true + }, + "pub78_verified":{ + "type":"boolean", + "description":"If the organization is Pub78 verified", + "example":true + }, + "allow_online_giving":{ + "type":"boolean", + "description":"If the organization allows online giving", + "example":true + } + } + } + } + } + } + } + } + } + }, + "V3EssentialsResponse":{ + "type":"object", + "properties":{ + "code":{ + "type":"integer", + "description":"Response Code", + "example":200 + }, + "message":{ + "type":"string", + "description":"Diagnostic message for response status", + "example":"Request was processed successfully!" + }, + "took":{ + "type":"integer", + "description":"Time taken for request to process", + "example":24 + }, + "time":{ + "type":"string", + "description":"Time of API call.", + "example":"2020-01-01T01:01:01:01.000Z" + }, + "results_count":{ + "type":"integer", + "description":"Number of results returned by search", + "example":2541 + }, + "page_count":{ + "type":"integer", + "description":"Number of pages returned by the search.", + "example":67 + }, + "errors":{ + "type":"array", + "description":"List of errors encountered", + "items":{ + "type":"string" + } + }, + "hits":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "organization":{ + "type":"object", + "properties":{ + "organization_id":{ + "type":"string", + "description":"A unique number identifying organizations and organizational entities", + "example":"7578046" + }, + "ein":{ + "type":"string", + "description":"Employer Identification Number", + "example":"39-1731296" + }, + "organization_name":{ + "type":"string", + "description":"The public name recognized by the IRS", + "example":"Candid" + }, + "also_known_as":{ + "type":"string", + "description":"Organization name Also Known As", + "example":"Foundation Center, Guidestar" + }, + "group_exemption":{ + "type":"string", + "description":"Four-digit number assigned to a group of organizations falling under a central/parent organization holding group exemption letters.", + "example":"3297" + }, + "mission":{ + "type":"string", + "description":"Mission statement for the organization", + "example":"Get you the information to do good" + }, + "website_url":{ + "type":"string", + "description":"URL for the organization's website", + "example":"candid.org" + }, + "logo_url":{ + "type":"string", + "description":"URL for the organization's logo", + "example":"candid.org" + }, + "profile_level":{ + "type":"string", + "description":"GuideStar seal level", + "example":"Platinum" + }, + "profile_year":{ + "type":"number", + "description":"GuideStar seal year", + "example":2020 + }, + "profile_link":{ + "type":"string", + "description":"GuideStar's public profile URL", + "example":"https://www.guidestar.org/profile/82-4267025" + }, + "profile_logo":{ + "type":"string", + "description":"GuideStar's seal logo", + "example":"https://www.guidestar.org/App_Themes/MainSite2/images/ProfilePageSvgs/profile-PLATINUM2021-seal.svg" + }, + "leader_name":{ + "type":"string", + "description":"Name of leader", + "example":"Ann Mei Chang" + }, + "leader_title":{ + "type":"string", + "description":"Leader's title", + "example":"CEO" + }, + "contact_name":{ + "type":"string", + "description":"Name of the primary contact at the organization", + "example":"John smith" + }, + "contact_email":{ + "type":"string", + "description":"Email of the primary contact at the organization", + "example":"help@orgnam.org" + }, + "contact_phone":{ + "type":"string", + "description":"Phone number of the primary contact at the organization", + "example":"(555) 111-5555" + }, + "contact_title":{ + "type":"string", + "description":"Title of the primary contact at the organization", + "example":"Support lead" + }, + "number_of_employees":{ + "oneOf": [ + { "type": "number" }, + { "type": "string" } + ], + "description":"Number of employees at the organization", + "example":55 + }, + "ruling_year":{ + "type":"number", + "description":"The year the IRS granted organization tax exempt status (a.k.a. Ruling Year)", + "example":2019 + } + } + }, + "properties":{ + "type":"object", + "properties":{ + "bmf_status":{ + "type":"boolean", + "description":"If the organization is present on the BMF", + "example":false + }, + "pub78_verified":{ + "type":"boolean", + "description":"If the organization is Pub78 verified", + "example":false + }, + "allow_online_giving":{ + "type":"boolean", + "description":"If the organization allows online giving", + "example":true + }, + "dei_submitted":{ + "type":"boolean", + "description":"If the organization has submitted demographics information", + "example":false + }, + "revoked":{ + "type":"boolean", + "description":"If the organization is revoked", + "example":false + }, + "defuncted_or_merged":{ + "type":"boolean", + "description":"If the organization is defuncted or merged", + "example":false + }, + "relationship_type":{ + "type":"object", + "properties":{ + "parent":{ + "type":"boolean", + "description":"If the organization is a parent", + "example":true + }, + "subordinate":{ + "type":"boolean", + "description":"If the organization is a subordinate", + "example":false + }, + "independent":{ + "type":"boolean", + "description":"If the organization is independent", + "example":false + }, + "headquarters":{ + "type":"boolean", + "description":"If the organization is a national headquarter", + "example":true + } + } + }, + "relationship_details":{ + "type":"object", + "description":"Organization's relation with other organizations.", + "properties":{ + "relationship_type":{ + "type":"string", + "description":"Relationship type of organization.", + "enum":[ + "parent", + "subordinate" + ], + "example":"parent" + }, + "organization_name":{ + "type":"string", + "description":"Name of organization.", + "example":"Candid 2" + }, + "ein":{ + "type":"string", + "description":"Employer Identification Number", + "example":"12-4566789" + } + } + } + } + }, + "geography":{ + "type":"object", + "properties":{ + "address_line_1":{ + "type":"string", + "description":"Address line 1 of the organization", + "example":"1 Financial Sq" + }, + "address_line_2":{ + "type":"string", + "description":"Address line 2 of the organization", + "example":"Floor 24" + }, + "city":{ + "type":"string", + "description":"City of the organization's address", + "example":"New York" + }, + "state":{ + "type":"string", + "description":"State (Abbreviation) of the organization's address", + "example":"NY" + }, + "zip":{ + "oneOf": [ + { "type": "number" }, + { "type": "string" } + ], + "description":"Zip code of the organization's address", + "example":10005 + }, + "msa":{ + "type":"string", + "description":"Metropolitan statistical area of the organization's adresss", + "example":"IL - Peoria-Pekin" + }, + "congressional_district":{ + "type":"string", + "description":"Congressional district of the organization's address", + "example":"District 45, CA" + }, + "county":{ + "type":"string", + "description":"County of the organization's address", + "example":"Peoria, IL" + }, + "latitude":{ + "type":"number", + "description":"latitude of the organization's adress", + "example":40.9052 + }, + "longitude":{ + "type":"number", + "description":"longitude of the organization's adress", + "example":-89.5866 + } + } + }, + "taxonomies":{ + "type":"object", + "properties":{ + "subject_codes":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "subject_code":{ + "type":"string", + "description":"Subject code", + "example":"SP030000" + }, + "subject_code_description":{ + "type":"string", + "description":"Description of subject code", + "example":"SP030000" + } + } + } + }, + "population_served_codes":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "population_served_code":{ + "type":"string", + "description":"Population served code", + "example":"PG030000" + }, + "population_served_description":{ + "type":"string", + "description":"Description of Population served code", + "example":"People with Physical Disabilities " + } + } + } + }, + "ntee_codes":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "ntee_code":{ + "type":"string", + "description":"National Taxonomy of Exempt Entities", + "example":"A00" + }, + "ntee_code_description":{ + "type":"string", + "description":"Description of NTEE code", + "example":"Humanities" + } + } + } + }, + "subsection_code":{ + "type":"object", + "properties":{ + "subsection_code":{ + "type":"string", + "description":"IRS subsection code of the organization", + "example":"03" + }, + "subsection_code_description":{ + "type":"string", + "description":"Description of IRS subsection code", + "example":"501(c)(3) Public Charity" + } + } + }, + "foundation_code":{ + "type":"object", + "properties":{ + "foundation_code":{ + "type":"string", + "description":"Foundation code that describes the organization", + "example":"15" + }, + "foundation_code_description":{ + "type":"string", + "description":"Description of foundation code", + "example":"50% tax deductible" + } + } + } + } + }, + "financials":{ + "type":"object", + "properties":{ + "most_recent_year":{ + "type":"object", + "properties":{ + "form_types":{ + "type":"string", + "description":"Tax form filing type", + "example":"990" + }, + "fiscal_year":{ + "type":"number", + "description":"Fiscal year of the most recent tax filing", + "example":2020 + }, + "total_revenue":{ + "type":"number", + "description":"Most recent year total revenue", + "example":2349999 + }, + "total_expenses":{ + "type":"number", + "description":"Most recent year total expenses", + "example":22224499 + }, + "total_assets":{ + "type":"number", + "description":"Most recent year total assets", + "example":57426592 + } + } + }, + "bmf_gross_receipts":{ + "type":"number", + "description":"Gross receipts of the organization reported on the BMF", + "example":2349999 + }, + "bmf_assets":{ + "type":"number", + "description":"Assets of the organization reported on the BMF", + "example":1849900 + }, + "required_to_file_990t":{ + "type":"boolean", + "description":"Flag indicating the organization is required to file a 990-T.", + "example":false + }, + "a_133_audit_performed":{ + "type":"boolean", + "description":"Flag indicating the organization performed A-133 audit.", + "example":false + } + } + }, + "dates":{ + "type":"object", + "properties":{ + "seal_last_modified":{ + "type":"string", + "description":"Date when Candid seal status was last modified.", + "example":"2020-01-01T01:01:01:01.000Z" + }, + "profile_last_modified":{ + "type":"string", + "description":"Datetime of last update to Candid profile.", + "example":"2020-01-01T01:01:01:01.000Z" + }, + "dei_last_modified":{ + "type":"string", + "description":"Datetime of last update to organization demographics information", + "example":"2020-01-01T01:01:01:01.000Z" + }, + "financials_last_modified":{ + "type":"string", + "description":"Datetime of last update to organization's financial information", + "example":"2020-01-01T01:01:01:01.000Z" + }, + "last_published":{ + "type":"string", + "description":"Datetime of organization's last publication", + "example":"2020-01-01T01:01:01:01.000Z" + } + } + } + } + } + } + } + }, + "EssentialsLookupResponse":{ + "type":"object", + "properties":{ + "code":{ + "type":"integer", + "description":"Response Code", + "example":200 + }, + "message":{ + "type":"string", + "description":"Diagnostic message for response status", + "example":"Request was processed successfully!" + }, + "took":{ + "type":"integer", + "description":"Time taken for request to process", + "example":20 + }, + "errors":{ + "type":"array", + "description":"List of errors encountered", + "example":[ + + ], + "items":{ + "type":"string", + "description":"error messaging" + } + }, + "data":{ + "type":"array", + "items":{ + "type":"string", + "description":"field names and values", + "example":[ + "ntee_minor", + "msa_codes", + "ntee_major", + "subsections", + "filing_type", + "foundation_type" + ] + } + } + } + }, + "EssentialsFilteredLookupResponse":{ + "type":"object", + "properties":{ + "code":{ + "type":"integer", + "description":"HTTP response status code.", + "example":200 + }, + "message":{ + "type":"string", + "example":"Request was processed successfully!" + }, + "took":{ + "type":"integer", + "example":20 + }, + "errors":{ + "type":"array", + "example":[ + + ], + "items":{ + "type":"string", + "description":"error messaging" + } + }, + "data":{ + "type":"array", + "description":"A list of all the tables used as a filter_name with the Essentials Lookup endpoints", + "items":{ + "type":"object", + "description":"Key value pair for filter name, value, and search_value", + "properties":{ + "key":{ + "type":"string", + "description":"Code for the filter_name results", + "example":"A00" + }, + "value":{ + "type":"string", + "description":"Text for the filter_name results", + "example":"Arts, Culture, and Humanities" + }, + "search_value":{ + "type":"string", + "description":"Value to pass in Essential's API filters", + "example":"A_artsCulturesAndHumanities" + } + } + } + } + } + }, + "BadRequest":{ + "type":"object", + "properties":{ + "code":{ + "type":"string", + "description":"HTTP response status code.", + "example":400 + }, + "message":{ + "type":"string", + "example":"The request cannot be fulfilled due to bad syntax." + } + } + }, + "Unauthorized":{ + "type":"object", + "properties":{ + "code":{ + "type":"string", + "description":"HTTP response status code.", + "example":401 + }, + "message":{ + "type":"string", + "example":"Access denied due to missing subscription key. Make sure to include subscription key when making requests to an API." + } + } + }, + "Forbidden":{ + "type":"object", + "properties":{ + "code":{ + "type":"string", + "description":"HTTP response status code.", + "example":403 + }, + "message":{ + "type":"string", + "example":"Forbidden, we found insufficient permissions to grant access to the resources. Please check the detailed message of the response." + } + } + }, + "NotFound":{ + "type":"object", + "properties":{ + "code":{ + "type":"string", + "description":"HTTP response status code.", + "example":404 + }, + "message":{ + "type":"string", + "example":"Request was processed successfully but we could not find the resource ein" + } + } + }, + "NotAcceptable":{ + "type":"object", + "properties":{ + "code":{ + "type":"string", + "description":"HTTP response status code.", + "example":406 + }, + "message":{ + "type":"string", + "example":"The requested resource is capable of generating only content not acceptable according to the Accept headers sent in the request." + } + } + }, + "TooManyRequests":{ + "type":"object", + "properties":{ + "code":{ + "type":"string", + "description":"HTTP response status code.", + "example":429 + }, + "message":{ + "type":"string", + "example":"Rate limit is exceeded. Try again later." + } + } + }, + "InternalServerError":{ + "type":"object", + "properties":{ + "code":{ + "type":"string", + "description":"HTTP response status code.", + "example":500 + }, + "message":{ + "type":"string", + "example":"Oh no!, this is bad, something went wrong... please contact API support!" + } + } + } + }, + "securitySchemes":{ + "apiKeyHeader":{ + "type":"apiKey", + "name":"Subscription-Key", + "in":"header" + } + } + }, + "security":[ + { + "apiKeyHeader":[ + + ] + } + ], + "x-readme":{ + "explorer-enabled":true, + "proxy-enabled":true, + "samples-enabled":true + } +} diff --git a/docs/Premier_v1.0.json b/docs/Premier_v1.0.json new file mode 100644 index 0000000..8079db9 --- /dev/null +++ b/docs/Premier_v1.0.json @@ -0,0 +1,7347 @@ +{ + "openapi":"3.0.1", + "info":{ + "version":"1.0", + "title":"Premier API", + "description":"Enhance your apps, records, or experience with robust nonprofit profile financials, people, DEI, and IRS compliance validation.", + "license":{ + "name":"Candid API License Agreement" + } + }, + "servers":[ + { + "url":"https://api.candid.org/premier" + }, + { + "url":"https://apidata.guidestar.org/premier" + } + ], + "paths":{ + "/v1/{ein}":{ + "get":{ + "summary":"/premier/v1", + "description":"Use an EIN in the path parameter to retrieve data on a nonprofit's financials, people, DEI, and IRS compliance validation. This endpoint is deprecated; use /premier/v3 instead.", + "operationId":"premier_v1", + "parameters":[ + { + "name":"ein", + "in":"path", + "description":"Employer Identification Number.", + "example":"13-1837418", + "required":true, + "schema":{ + "type":"string" + } + } + ], + "responses":{ + "200":{ + "description":"OK", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/V1PublicProfile" + } + } + } + }, + "400":{ + "description":"Bad Request", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/BadRequest" + } + } + } + }, + "401":{ + "description":"Unauthorized", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/Unauthorized" + } + } + } + }, + "403":{ + "description":"Forbidden", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/Forbidden" + } + } + } + }, + "404":{ + "description":"No Results Found", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/NotFound" + } + } + } + }, + "406":{ + "description":"Not Acceptable", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/NotAcceptable" + } + } + } + }, + "429":{ + "description":"Too Many Requests", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/TooManyRequests" + } + } + } + }, + "500":{ + "description":"Internal Server Error", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/InternalServerError" + } + } + } + } + }, + "deprecated":true + } + }, + "/v1/propdf/{ein}":{ + "get":{ + "summary":"/premier/v1/propdf", + "description":"Use an EIN in the path parameter to retrieve a PDF of a nonprofit's financials, people, DEI, and IRS compliance validation.", + "operationId":"premier_v1_propdf", + "parameters":[ + { + "name":"ein", + "in":"path", + "description":"Employer Identification Number.", + "example":"13-1837418", + "required":true, + "schema":{ + "type":"string" + } + } + ], + "responses":{ + "200":{ + "description":"OK", + "content":{ + "application/pdf":{ + "schema":{ + "type":"object", + "description":"PDF containing information for the organization with the given ein" + } + } + } + }, + "400":{ + "description":"Bad Request", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/BadRequest" + } + } + } + }, + "401":{ + "description":"Unauthorized", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/Unauthorized" + } + } + } + }, + "403":{ + "description":"Forbidden", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/Forbidden" + } + } + } + }, + "404":{ + "description":"No Results Found", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/NotFound" + } + } + } + }, + "406":{ + "description":"Not Acceptable", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/NotAcceptable" + } + } + } + }, + "429":{ + "description":"Too Many Requests", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/TooManyRequests" + } + } + } + }, + "500":{ + "description":"Internal Server Error", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/InternalServerError" + } + } + } + } + } + } + }, + "/v1/ftapdf/{ein}":{ + "get":{ + "summary":"/premier/v1/ftapdf", + "description":"Use an EIN in the path parameter to get a PDF of a nonprofit's financial trends analysis.", + "operationId":"premier_v1_ftapdf", + "parameters":[ + { + "name":"ein", + "in":"path", + "description":"Employer Identification Number.", + "example":"13-1837418", + "required":true, + "schema":{ + "type":"string" + } + } + ], + "responses":{ + "200":{ + "description":"OK", + "content":{ + "application/pdf":{ + "schema":{ + "type":"object", + "description":"PDF containing financial analysis trend for the organization with the given ein" + } + } + } + }, + "400":{ + "description":"Bad Request", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/BadRequest" + } + } + } + }, + "401":{ + "description":"Unauthorized", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/Unauthorized" + } + } + } + }, + "403":{ + "description":"Forbidden", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/Forbidden" + } + } + } + }, + "404":{ + "description":"No Results Found", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/NotFound" + } + } + } + }, + "406":{ + "description":"Not Acceptable", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/NotAcceptable" + } + } + } + }, + "429":{ + "description":"Too Many Requests", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/TooManyRequests" + } + } + } + }, + "500":{ + "description":"Internal Server Error", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/InternalServerError" + } + } + } + } + } + } + }, + "/v2/{ein}":{ + "get":{ + "summary":"/premier/v2", + "description":"Use an EIN in the path parameter to retrieve data on a nonprofit's financials, people, DEI, and IRS compliance validation. This endpoint is deprecated; use /premier/v3 instead.", + "operationId":"premier_v2", + "parameters":[ + { + "name":"ein", + "in":"path", + "description":"Employer Identification Number.", + "example":"13-1837418", + "required":true, + "schema":{ + "type":"string" + } + } + ], + "responses":{ + "200":{ + "description":"OK", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/V2PublicProfile" + } + } + } + }, + "400":{ + "description":"Bad Request", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/BadRequest" + } + } + } + }, + "401":{ + "description":"Unauthorized", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/Unauthorized" + } + } + } + }, + "403":{ + "description":"Forbidden", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/Forbidden" + } + } + } + }, + "404":{ + "description":"No Results Found", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/NotFound" + } + } + } + }, + "406":{ + "description":"Not Acceptable", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/NotAcceptable" + } + } + } + }, + "429":{ + "description":"Too Many Requests", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/TooManyRequests" + } + } + } + }, + "500":{ + "description":"Internal Server Error", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/InternalServerError" + } + } + } + } + }, + "deprecated":true + } + }, + "/v3/{ein}":{ + "get":{ + "summary":"/premier/v3", + "description":"Use an EIN in the path parameter to retrieve data on a nonprofit's financials, people, DEI, and IRS compliance validation.", + "operationId":"premier_v3", + "parameters":[ + { + "name":"ein", + "in":"path", + "description":"Employer Identification Number.", + "example":"13-1837418", + "required":true, + "schema":{ + "type":"string", + "example":null + } + } + ], + "responses":{ + "200":{ + "description":"OK", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/V3PublicProfile" + } + } + } + }, + "400":{ + "description":"Bad Request", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/BadRequest" + } + } + } + }, + "401":{ + "description":"Unauthorized", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/Unauthorized" + } + } + } + }, + "403":{ + "description":"Forbidden", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/Forbidden" + } + } + } + }, + "404":{ + "description":"No Results Found", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/NotFound" + } + } + } + }, + "406":{ + "description":"Not Acceptable", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/NotAcceptable" + } + } + } + }, + "429":{ + "description":"Too Many Requests", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/TooManyRequests" + } + } + } + }, + "500":{ + "description":"Internal Server Error", + "content":{ + "application/json":{ + "schema":{ + "$ref":"#/components/schemas/InternalServerError" + } + } + } + } + }, + "deprecated":false + } + } + }, + "components":{ + "securitySchemes":{ + "apiKeyHeader":{ + "type":"apiKey", + "name":"Subscription-Key", + "in":"header" + } + }, + "schemas":{ + "Object":{ + "type":"object", + "properties":{ + + } + }, + "Error":{ + "type":"object", + "properties":{ + "resource":{ + "type":"string" + }, + "reason":{ + "type":"string" + } + } + }, + "V1PublicProfile":{ + "type":"object", + "properties":{ + "code":{ + "type":"integer", + "description":"HTTP response status code.", + "example":200 + }, + "message":{ + "type":"string", + "description":"Diagnostic message for response status", + "example":"Request was processed successfully!" + }, + "took":{ + "type":"integer", + "description":"Time taken for request to process", + "example":24 + }, + "errors":{ + "type":"array", + "description":"List of errors encountered", + "items":{ + "type":"string" + } + }, + "data":{ + "type":"object", + "properties":{ + "summary":{ + "$ref":"#/components/schemas/Summary1" + }, + "programs":{ + "$ref":"#/components/schemas/Programs1" + }, + "financials":{ + "$ref":"#/components/schemas/Financials2" + }, + "operations":{ + "$ref":"#/components/schemas/Operations1" + }, + "charitycheck":{ + "$ref":"#/components/schemas/CharityCheck" + } + } + } + } + }, + "V2PublicProfile":{ + "type":"object", + "properties":{ + "code":{ + "type":"integer", + "description":"HTTP response status code.", + "example":200 + }, + "message":{ + "type":"string", + "description":"Diagnostic message for response status", + "example":"Request was processed successfully!" + }, + "took":{ + "type":"integer", + "description":"Time taken for request to process", + "example":24 + }, + "errors":{ + "type":"array", + "description":"List of errors encountered", + "items":{ + "type":"string" + } + }, + "data":{ + "type":"object", + "properties":{ + "summary":{ + "$ref":"#/components/schemas/Summary2" + }, + "programs":{ + "$ref":"#/components/schemas/Programs2" + }, + "financials":{ + "$ref":"#/components/schemas/Financials2" + }, + "operations":{ + "$ref":"#/components/schemas/Operations1" + }, + "charitycheck":{ + "$ref":"#/components/schemas/CharityCheck" + } + } + } + } + }, + "V3PublicProfile":{ + "type":"object", + "properties":{ + "code":{ + "type":"integer", + "description":"HTTP response status code.", + "example":200 + }, + "message":{ + "type":"string", + "description":"Diagnostic message for response status", + "example":"Request was processed successfully!" + }, + "took":{ + "type":"integer", + "description":"Time taken for request to process", + "example":24 + }, + "errors":{ + "type":"array", + "description":"List of errors encountered", + "items":{ + "type":"string" + } + }, + "data":{ + "type":"object", + "properties":{ + "summary":{ + "$ref":"#/components/schemas/Summary3" + }, + "programs":{ + "$ref":"#/components/schemas/Programs3" + }, + "financials":{ + "$ref":"#/components/schemas/Financials3" + }, + "operations":{ + "$ref":"#/components/schemas/Operations2" + }, + "charitycheck":{ + "$ref":"#/components/schemas/CharityCheck" + } + } + } + } + }, + "Programs1":{ + "type":"object", + "description":"Collection of an organizations programs and program metrics", + "properties":{ + "programs":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/Program2" + } + }, + "platinum_metrics":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/PlatinumMetrics1" + } + }, + "charting_impact_answers":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/Question" + } + } + } + }, + "Summary1":{ + "type":"object", + "description":"Information about the non-profit, such as name and address", + "properties":{ + "organization_id":{ + "type":"integer", + "description":"GuideStar internal organization ID", + "example":6908122 + }, + "organization_name":{ + "type":"string", + "description":"Organization name", + "example":"Candid" + }, + "ein":{ + "type":"string", + "description":"Employee identification number", + "example":"13-1837418" + }, + "bridge_id":{ + "type":"string", + "description":"DEPRECATED", + "example":"", + "deprecated":true + }, + "address_line_1":{ + "type":"string", + "description":"Organization address street name", + "example":"32 Old Slip" + }, + "address_line_2":{ + "type":"string", + "description":"Organization address Suite or Apartment number", + "example":"24th Floor" + }, + "city":{ + "type":"string", + "description":"Organization address city", + "example":"New York" + }, + "state":{ + "type":"string", + "description":"Organization address state", + "example":"NY" + }, + "zip":{ + "type":"string", + "description":"Organization address zip code", + "example":"10005" + }, + "fax":{ + "type":"string", + "description":"Organization fax number", + "example":"(212)807-3677" + }, + "govt_registered_name":{ + "type":"string", + "description":"Legal organization name", + "example":"Candid" + }, + "also_known_as":{ + "type":"string", + "description":"Comma separated string of names associated with the organization", + "example":"The Foundation Center, Foundation Center, GuideStar, GuideStar USA" + }, + "fiscal_year_end":{ + "type":"string", + "description":"When the fiscal year ends for the organization", + "example":"Dec 31" + }, + "fiscal_year_start":{ + "type":"string", + "description":"When the fiscal year begins for the organization", + "example":"Jan 1" + }, + "affiliation_code":{ + "type":"string", + "description":"Single digit code designating the type of organization (Central, Intermediate, or Independent) if there is no group exemption or (Central, Intermediate, Independent, or Subordinate) if there is a group exemption.", + "example":"3" + }, + "affiliation_description":{ + "type":"string", + "description":"Description of what the affiliation code means", + "example":"This code is used if the organization is an independent organization or an independent auxiliary (i.e., not affiliated with a a National, Regional, or Geographic grouping of organizations)." + }, + "contact_name":{ + "type":"string", + "description":"Primary contact name", + "example":"Gabe Cohen" + }, + "contact_title":{ + "type":"string", + "description":"Primary contact title", + "example":"Senior Director of Brand and Marketing" + }, + "contact_email":{ + "type":"string", + "description":"Primary contact email", + "example":"answers@candid.org" + }, + "contact_phone":{ + "type":"string", + "description":"Primary contact phone number", + "example":"212-620-4230" + }, + "contact_fax":{ + "type":"string", + "description":"Primary contact fax number", + "example":"212-807-3677" + }, + "gs_profile_update_level":{ + "type":"string", + "description":"Guidestar.org organization profile seal of transparency level", + "example":"Platinum 2021" + }, + "gs_profile_update_level_logo":{ + "type":"string", + "description":"Url to Guidestar.org seal image", + "example":"https://www.guidestar.org/App_Themes/MainSite2/images/ProfilePageSvgs/profile-PLATINUM2021-seal.svg" + }, + "deductibility_code":{ + "type":"string", + "description":"Deductibility code signifies whether contributions made to an organization are deductible", + "example":"1" + }, + "deductibility_description":{ + "type":"string", + "description":"Deductibility code description", + "example":"Contributions are deductible, as provided by law" + }, + "donation_to_ein":{ + "type":"string", + "description":"EIN that should be used for charitable donations", + "example":"13-1837418" + }, + "donation_to_name":{ + "type":"string", + "description":"Organization name that should be used for charitable donations", + "example":"Candid" + }, + "areas_served_narrative":{ + "type":"string", + "description":"DEPRECATED", + "example":"", + "deprecated":true + }, + "ruling_year":{ + "type":"string", + "description":"Year that organization started operating as a non-profit", + "example":"1957" + }, + "gs_public_report":{ + "type":"string", + "description":"Guidestar.org organization profile URL", + "example":"https://www.guidestar.org/profile/13-1837418" + }, + "gs_pro_pdf":{ + "type":"string", + "description":"URL of API call to the Pro PDF API endpoint to download the organization's profile PDF", + "example":"https://apidata.guidestar.org/premier/v1/propdf/13-1837418" + }, + "impact_statement":{ + "type":"string", + "description":"DEPRECATED", + "example":"", + "deprecated":true + }, + "subsection_code":{ + "type":"string", + "description":"Subsection Codes are the codes shown under section 501(c) of the Internal Revenue Code of 1986, which define the category under which an organization may be exempt.", + "example":"03" + }, + "subsection_description":{ + "type":"string", + "description":"Description of organization subsection code", + "example":"501(c)(3) Public Charity" + }, + "keywords":{ + "type":"string", + "description":"Keywords added by the organization to their profile", + "example":"philanthropy, data, transparency, capacity building, research, education, foundations, foundation, charitable giving, data driven decisions, nonprofits, transparency, nonprofit sector, organizational effectiveness, organizational efficiency, nonprofit information hub, Forms 990, GuideStar, Foundation Center" + }, + "logo_url":{ + "type":"string", + "description":"Organization logo URL", + "example":"https://www.guidestar.org/ViewEdoc.aspx?eDocId=6645385&approved=True" + }, + "mission":{ + "type":"string", + "description":"Organization mission statement", + "example":"Candid gets you the information you need to do good." + }, + "is_national_hq":{ + "type":"boolean", + "description":"Whether or not this organization is the national headquarters", + "example":false + }, + "ntee_code":{ + "type":"string", + "description":"National Taxonomy of Exempt Entities (NTEE) Code", + "example":"T50 - Philanthropy, Voluntarism, and Grantmaking" + }, + "website_url":{ + "type":"string", + "description":"Organization website URL", + "example":"candid.org" + }, + "year_founded":{ + "type":"string", + "description":"Year that an organization was founded", + "example":"1956" + }, + "year_incorporated":{ + "type":"string", + "description":"Year that an organization was incorporated", + "example":"1956" + }, + "addresses":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/Address" + } + }, + "affiliations":{ + "type":"array", + "deprecated":true, + "items":{ + "$ref":"#/components/schemas/Affiliation" + } + }, + "awards":{ + "type":"array", + "deprecated":true, + "items":{ + "$ref":"#/components/schemas/Award" + } + }, + "formerly_known_as":{ + "type":"array", + "deprecated":true, + "items":{ + "$ref":"#/components/schemas/FormerName" + } + }, + "forms_1023_1024":{ + "type":"array", + "items":{ + "type":"string", + "description":"Application for the organization to gain tax-exempt status", + "example":[ + "https://www.guidestar.org/ViewEdoc.aspx?eDocId=7077922&approved=True" + ] + } + }, + "letters_of_determination":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/LetterOfDetermination" + } + }, + "letters_of_dissolution":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/LetterOfDissolution" + } + }, + "ntee_codes":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/nteeCode" + } + }, + "naics_code":{ + "$ref":"#/components/schemas/NAICSCode" + }, + "sic_codes":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/SICCode" + } + }, + "other_documents":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/OtherDocument" + } + }, + "photos":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/PhotoLink" + } + }, + "social_media_urls":{ + "type":"array", + "items":{ + "type":"string", + "description":"A social media URL related to the organization", + "example":"https://www.facebook.com/CandidDotOrg/" + } + }, + "telephone_numbers":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/TelephoneNumber" + } + }, + "videos":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/Video" + } + } + } + }, + "Summary2":{ + "type":"object", + "description":"Information about the non-profit, such as name and address", + "properties":{ + "organization_id":{ + "type":"integer", + "description":"GuideStar internal organization ID", + "example":6908122 + }, + "organization_name":{ + "type":"string", + "description":"Organization name", + "example":"Candid" + }, + "ein":{ + "type":"string", + "description":"Employee identification number", + "example":"13-1837418" + }, + "bridge_id":{ + "type":"string", + "description":"DEPRECATED", + "example":"", + "deprecated":true + }, + "address_line_1":{ + "type":"string", + "description":"Organization address street name", + "example":"32 Old Slip" + }, + "address_line_2":{ + "type":"string", + "description":"Organization address Suite or Apartment number", + "example":"24th Floor" + }, + "city":{ + "type":"string", + "description":"Organization address city", + "example":"New York" + }, + "state":{ + "type":"string", + "description":"Organization address state", + "example":"NY" + }, + "zip":{ + "type":"string", + "description":"Organization address zip code", + "example":"10005" + }, + "fax":{ + "type":"string", + "description":"Organization fax number", + "example":"(212)807-3677" + }, + "govt_registered_name":{ + "type":"string", + "description":"Legal organization name", + "example":"Candid" + }, + "also_known_as":{ + "type":"string", + "description":"Comma separated string of names associated with the organization", + "example":"The Foundation Center, Foundation Center, GuideStar, GuideStar USA" + }, + "fiscal_year_end":{ + "type":"string", + "description":"When the fiscal year ends for the organization", + "example":"Dec 31" + }, + "fiscal_year_start":{ + "type":"string", + "description":"When the fiscal year begins for the organization", + "example":"Jan 1" + }, + "affiliation_code":{ + "type":"string", + "description":"Single digit code designating the type of organization (Central, Intermediate, or Independent) if there is no group exemption or (Central, Intermediate, Independent, or Subordinate) if there is a group exemption.", + "example":"3" + }, + "affiliation_description":{ + "type":"string", + "description":"Description of what the affiliation code means", + "example":"This code is used if the organization is an independent organization or an independent auxiliary (i.e., not affiliated with a a National, Regional, or Geographic grouping of organizations)." + }, + "contact_name":{ + "type":"string", + "description":"Primary contact name", + "example":"Gabe Cohen" + }, + "contact_title":{ + "type":"string", + "description":"Primary contact title", + "example":"Senior Director of Brand and Marketing" + }, + "contact_email":{ + "type":"string", + "description":"Primary contact email", + "example":"answers@candid.org" + }, + "contact_phone":{ + "type":"string", + "description":"Primary contact phone number", + "example":"212-620-4230" + }, + "contact_fax":{ + "type":"string", + "description":"Primary contact fax number", + "example":"212-807-3677" + }, + "gs_profile_update_level":{ + "type":"string", + "description":"Guidestar.org organization profile seal of transparency level", + "example":"Platinum 2021" + }, + "gs_profile_update_level_logo":{ + "type":"string", + "description":"Url to Guidestar.org seal image", + "example":"https://www.guidestar.org/App_Themes/MainSite2/images/ProfilePageSvgs/profile-PLATINUM2021-seal.svg" + }, + "deductibility_code":{ + "type":"string", + "description":"Deductibility code signifies whether contributions made to an organization are deductible", + "example":"1" + }, + "deductibility_description":{ + "type":"string", + "description":"Deductibility code description", + "example":"Contributions are deductible, as provided by law" + }, + "donation_to_ein":{ + "type":"string", + "description":"EIN that should be used for charitable donations", + "example":"13-1837418" + }, + "donation_to_name":{ + "type":"string", + "description":"Organization name that should be used for charitable donations", + "example":"Candid" + }, + "areas_served_narrative":{ + "type":"string", + "description":"DEPRECATED", + "example":"", + "deprecated":true + }, + "ruling_year":{ + "type":"string", + "description":"Year that organization started operating as a non-profit", + "example":"1957" + }, + "gs_public_report":{ + "type":"string", + "description":"Guidestar.org organization profile URL", + "example":"https://www.guidestar.org/profile/13-1837418" + }, + "gs_pro_pdf":{ + "type":"string", + "description":"URL of API call to the Pro PDF API endpoint to download the organization's profile PDF", + "example":"https://apidata.guidestar.org/premier/v1/propdf/13-1837418" + }, + "gs_financial_trends_analysis_pdf":{ + "type":"string", + "description":"URL of API call to the FTA PDF API endpoint to download the organization's financial trends analysis PDF", + "example":"https://apidata.guidestar.org/premier/v1/ftapdf/13-1837418" + }, + "impact_statement":{ + "type":"string", + "description":"DEPRECATED", + "example":"", + "deprecated":true + }, + "subsection_code":{ + "type":"string", + "description":"Subsection Codes are the codes shown under section 501(c) of the Internal Revenue Code of 1986, which define the category under which an organization may be exempt.", + "example":"03" + }, + "subsection_description":{ + "type":"string", + "description":"Description of organization subsection code", + "example":"501(c)(3) Public Charity" + }, + "keywords":{ + "type":"string", + "description":"Keywords added by the organization to their profile", + "example":"philanthropy, data, transparency, capacity building, research, education, foundations, foundation, charitable giving, data driven decisions, nonprofits, transparency, nonprofit sector, organizational effectiveness, organizational efficiency, nonprofit information hub, Forms 990, GuideStar, Foundation Center" + }, + "logo_url":{ + "type":"string", + "description":"Organization logo URL", + "example":"https://www.guidestar.org/ViewEdoc.aspx?eDocId=6645385&approved=True" + }, + "mission":{ + "type":"string", + "description":"Organization mission statement", + "example":"Candid gets you the information you need to do good." + }, + "is_national_hq":{ + "type":"boolean", + "description":"Whether or not this organization is the national headquarters", + "example":false + }, + "ntee_code":{ + "type":"string", + "description":"National Taxonomy of Exempt Entities (NTEE) Code", + "example":"T50 - Philanthropy, Voluntarism, and Grantmaking" + }, + "website_url":{ + "type":"string", + "description":"Organization website URL", + "example":"candid.org" + }, + "year_founded":{ + "type":"string", + "description":"Year that an organization was founded", + "example":"1956" + }, + "year_incorporated":{ + "type":"string", + "description":"Year that an organization was incorporated", + "example":"1956" + }, + "is_non_bmf_org":{ + "type":"boolean", + "description":"Is the organization not on the BMF", + "example":false + }, + "first_on_bmf_date":{ + "format":"date-time", + "type":"string", + "description":"First time organization appeared on the BMF", + "example":"1998-07-31T04:00:00Z" + }, + "last_on_bmf_date":{ + "format":"date-time", + "type":"string", + "description":"Last time an organization appeared on the BMF", + "example":"2021-04-12T04:00:00Z" + }, + "profile_data_change_dates":{ + "$ref":"#/components/schemas/ProfileDataChangeDates" + }, + "addresses":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/Address" + } + }, + "affiliations":{ + "type":"array", + "deprecated":true, + "items":{ + "$ref":"#/components/schemas/Affiliation" + } + }, + "awards":{ + "type":"array", + "deprecated":true, + "items":{ + "$ref":"#/components/schemas/Award" + } + }, + "formerly_known_as":{ + "type":"array", + "deprecated":true, + "items":{ + "$ref":"#/components/schemas/FormerName" + } + }, + "forms_1023_1024":{ + "type":"array", + "items":{ + "type":"string", + "description":"Application for the organization to gain tax-exempt status", + "example":[ + "https://www.guidestar.org/ViewEdoc.aspx?eDocId=7077922&approved=True" + ] + } + }, + "letters_of_determination":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/LetterOfDetermination" + } + }, + "letters_of_dissolution":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/LetterOfDissolution" + } + }, + "ntee_codes":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/nteeCode" + } + }, + "naics_code":{ + "$ref":"#/components/schemas/NAICSCode" + }, + "sic_codes":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/SICCode" + } + }, + "platinum_evaluation_documents":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/PlatinumEvaluationDocument" + } + }, + "other_documents":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/OtherDocument" + } + }, + "photos":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/PhotoLink" + } + }, + "social_media_urls":{ + "type":"array", + "items":{ + "type":"string", + "description":"A social media URL related to the organization", + "example":"https://www.facebook.com/CandidDotOrg/" + } + }, + "telephone_numbers":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/TelephoneNumber" + } + }, + "videos":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/Video" + } + } + } + }, + "Programs2":{ + "type":"object", + "description":"Collection of an organizations programs and program metrics", + "properties":{ + "programs":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/Program2" + } + }, + "platinum_metrics":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/PlatinumMetrics" + } + }, + "charting_impact_answers":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/Question" + } + } + } + }, + "Program2":{ + "type":"object", + "description":"Information about an organization's program as entered by the organization", + "properties":{ + "name":{ + "type":"string", + "description":"Program name", + "example":"Knowledge Tools" + }, + "description":{ + "type":"string", + "description":"Program description", + "example":"Through data, research, and our collective experience, Candid provides our users with the knowledge they need to make strategic decisions and develop practical solutions to achieve their missions. \n\nOur GuideStar searchable database currently includes data on 1.9 million 501c3 entities, making it easier to understand who they are and what they do. We support ongoing learning and research by gathering, indexing, and sharing the sector’s collective knowledge on IssueLab while also producing our own research that shares insights on issues affecting the social sector. We provide data and knowledge to the philanthropic field by creating new issue-based web portals known as “Foundation Landscapes” on the topics that matter most to the sector. Through Glasspockets we provide the data, resources, examples, and action steps foundations need to understand the value of transparency, be more open in their own communications, and help shed more light on how private organizations are serving the public good. Candid works closely with organizations around the globe to assist them in collecting and organizing their region’s philanthropy data by sharing what we have learned over the past 60 years about data acquisition and data architecture. \n\nCandid’s CF Insights program is the leader in data collection and research for the community foundation field in the U.S. with a reputation for benchmarking and analysis of trends. Through CF Insights, we continue to deliver a high level of service to our members and worked with partners to release groundbreaking research on the need for increased collaboration amongst leaders of community foundations.\n\nWe also have a number of blogs across our platforms (including the GuideStar blog, GrantSpace blog, GrantCraft blog, GlassPockets blog, Philanthropy News Digest Blog, and more!) that shine a light on relevant topics and trends affecting the sector." + }, + "target_population":{ + "type":"string", + "description":"First target population that the program is targeting", + "example":"General/Unspecified" + }, + "budget":{ + "type":"string", + "description":"Program budget in dollars", + "example":"3002061" + }, + "areas_served":{ + "type":"array", + "description":"Geographic area served by program", + "items":{ + "type":"string", + "description":"Name of the geographic area served by the program", + "example":"United States" + } + } + } + }, + "Summary3":{ + "type":"object", + "description":"Information about the non-profit, such as name and address", + "properties":{ + "organization_id":{ + "type":"integer", + "description":"GuideStar internal organization ID", + "example":6908122 + }, + "organization_name":{ + "type":"string", + "description":"Organization name", + "example":"Candid" + }, + "ein":{ + "type":"string", + "description":"Employee identification number", + "example":"13-1837418" + }, + "bridge_id":{ + "type":"string", + "description":"DEPRECATED", + "example":"", + "deprecated":true + }, + "address_line_1":{ + "type":"string", + "description":"Organization address street name", + "example":"32 Old Slip" + }, + "address_line_2":{ + "type":"string", + "description":"Organization address Suite or Apartment number", + "example":"24th Floor" + }, + "city":{ + "type":"string", + "description":"Organization address city", + "example":"New York" + }, + "state":{ + "type":"string", + "description":"Organization address state", + "example":"NY" + }, + "zip":{ + "type":"string", + "description":"Organization address zip code", + "example":"10005" + }, + "county":{ + "type":"string", + "description":"Organization address county", + "example":"New York" + }, + "latitude":{ + "type":"string", + "description":"Latitude of the center of the zip code of an organizations mailing address", + "example":"40.705966" + }, + "longitude":{ + "type":"string", + "description":"Longitude of the center of the zip code of an organizations mailing address", + "example":"-74.008849" + }, + "fax":{ + "type":"string", + "description":"Organization fax number", + "example":"(212)807-3677" + }, + "govt_registered_name":{ + "type":"string", + "description":"Legal organization name", + "example":"Candid" + }, + "also_known_as":{ + "type":"string", + "description":"Comma separated string of names associated with the organization", + "example":"The Foundation Center, Foundation Center, GuideStar, GuideStar USA" + }, + "fiscal_year_end":{ + "type":"string", + "description":"When the fiscal year ends for the organization", + "example":"Dec 31" + }, + "fiscal_year_start":{ + "type":"string", + "description":"When the fiscal year begins for the organization", + "example":"Jan 1" + }, + "affiliation_code":{ + "type":"string", + "description":"Single digit code designating the type of organization (Central, Intermediate, or Independent) if there is no group exemption or (Central, Intermediate, Independent, or Subordinate) if there is a group exemption.", + "example":"3" + }, + "affiliation_description":{ + "type":"string", + "description":"Description of what the affiliation code means", + "example":"This code is used if the organization is an independent organization or an independent auxiliary (i.e., not affiliated with a a National, Regional, or Geographic grouping of organizations)." + }, + "contact_name":{ + "type":"string", + "description":"Primary contact name", + "example":"Gabe Cohen" + }, + "contact_title":{ + "type":"string", + "description":"Primary contact title", + "example":"Senior Director of Brand and Marketing" + }, + "contact_email":{ + "type":"string", + "description":"Primary contact email", + "example":"answers@candid.org" + }, + "contact_phone":{ + "type":"string", + "description":"Primary contact phone number", + "example":"212-620-4230" + }, + "contact_fax":{ + "type":"string", + "description":"Primary contact fax number", + "example":"212-807-3677" + }, + "gs_profile_update_level":{ + "type":"string", + "description":"Guidestar.org organization profile seal of transparency level", + "example":"Platinum 2021" + }, + "gs_profile_update_level_logo":{ + "type":"string", + "description":"Url to Guidestar.org seal image", + "example":"https://www.guidestar.org/App_Themes/MainSite2/images/ProfilePageSvgs/profile-PLATINUM2021-seal.svg" + }, + "deductibility_code":{ + "type":"string", + "description":"Deductibility code signifies whether contributions made to an organization are deductible", + "example":"1" + }, + "deductibility_description":{ + "type":"string", + "description":"Deductibility code description", + "example":"Contributions are deductible, as provided by law" + }, + "donation_to_ein":{ + "type":"string", + "description":"EIN that should be used for charitable donations", + "example":"13-1837418" + }, + "donation_to_name":{ + "type":"string", + "description":"Organization name that should be used for charitable donations", + "example":"Candid" + }, + "areas_served_narrative":{ + "type":"string", + "description":"DEPRECATED", + "example":"", + "deprecated":true + }, + "ruling_year":{ + "type":"string", + "description":"Year that organization started operating as a non-profit", + "example":"1957" + }, + "gs_public_report":{ + "type":"string", + "description":"Guidestar.org organization profile URL", + "example":"https://www.guidestar.org/profile/13-1837418" + }, + "gs_pro_pdf":{ + "type":"string", + "description":"URL of API call to the Pro PDF API endpoint to download the organization's profile PDF", + "example":"https://apidata.guidestar.org/premier/v1/propdf/13-1837418" + }, + "gs_financial_trends_analysis_pdf":{ + "type":"string", + "description":"URL of API call to the FTA PDF API endpoint to download the organization's financial trends analysis PDF", + "example":"https://apidata.guidestar.org/premier/v1/ftapdf/13-1837418" + }, + "impact_statement":{ + "type":"string", + "description":"DEPRECATED", + "example":"", + "deprecated":true + }, + "subsection_code":{ + "type":"string", + "description":"Subsection Codes are the codes shown under section 501(c) of the Internal Revenue Code of 1986, which define the category under which an organization may be exempt.", + "example":"03" + }, + "subsection_description":{ + "type":"string", + "description":"Description of organization subsection code", + "example":"501(c)(3) Public Charity" + }, + "keywords":{ + "type":"string", + "description":"Keywords added by the organization to their profile", + "example":"philanthropy, data, transparency, capacity building, research, education, foundations, foundation, charitable giving, data driven decisions, nonprofits, transparency, nonprofit sector, organizational effectiveness, organizational efficiency, nonprofit information hub, Forms 990, GuideStar, Foundation Center" + }, + "logo_url":{ + "type":"string", + "description":"Organization logo URL", + "example":"https://www.guidestar.org/ViewEdoc.aspx?eDocId=6645385&approved=True" + }, + "mission":{ + "type":"string", + "description":"Organization mission statement", + "example":"Candid gets you the information you need to do good." + }, + "is_national_hq":{ + "type":"boolean", + "description":"Whether or not this organization is the national headquarters", + "example":false + }, + "demographics_status":{ + "type":"string", + "description":"Description of demographics status that can be displayed to a funder or donor", + "example":"This organization has provided Candid demographics data on 06/23/2023" + }, + "demographics_status_nonprofit":{ + "type":"string", + "description":"Description of demographics status that can be displayed to a nonprofit", + "example":"Your organization has provided Candid demographics data on 06/23/2023" + }, + "ntee_code":{ + "type":"string", + "description":"National Taxonomy of Exempt Entities (NTEE) Code", + "example":"T50 - Philanthropy, Voluntarism, and Grantmaking" + }, + "sdg":{ + "$ref":"#/components/schemas/SDG" + }, + "website_url":{ + "type":"string", + "description":"Organization website URL", + "example":"candid.org" + }, + "year_founded":{ + "type":"string", + "description":"Year that an organization was founded", + "example":"1956" + }, + "year_incorporated":{ + "type":"string", + "description":"Year that an organization was incorporated", + "example":"1956" + }, + "is_non_bmf_org":{ + "type":"boolean", + "description":"Is the organization not on the BMF", + "example":false + }, + "first_on_bmf_date":{ + "format":"date-time", + "type":"string", + "description":"First time organization appeared on the BMF", + "example":"1998-07-31T04:00:00Z" + }, + "last_on_bmf_date":{ + "format":"date-time", + "type":"string", + "description":"Last time an organization appeared on the BMF", + "example":"2021-04-12T04:00:00Z" + }, + "profile_data_change_dates":{ + "$ref":"#/components/schemas/ProfileDataChangeDates" + }, + "addresses":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/Address" + } + }, + "affiliations":{ + "type":"array", + "deprecated":true, + "items":{ + "$ref":"#/components/schemas/Affiliation" + } + }, + "awards":{ + "type":"array", + "deprecated":true, + "items":{ + "$ref":"#/components/schemas/Award" + } + }, + "formerly_known_as":{ + "type":"array", + "deprecated":true, + "items":{ + "$ref":"#/components/schemas/FormerName" + } + }, + "forms_1023_1024":{ + "type":"array", + "items":{ + "type":"string", + "description":"Application for the organization to gain tax-exempt status", + "example":[ + "https://www.guidestar.org/ViewEdoc.aspx?eDocId=7077922&approved=True" + ] + } + }, + "letters_of_determination":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/LetterOfDetermination" + } + }, + "letters_of_dissolution":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/LetterOfDissolution" + } + }, + "ntee_codes":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/nteeCode" + } + }, + "naics_code":{ + "$ref":"#/components/schemas/NAICSCode" + }, + "sic_codes":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/SICCode" + } + }, + "platinum_evaluation_documents":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/PlatinumEvaluationDocument" + } + }, + "other_documents":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/OtherDocument" + } + }, + "photos":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/PhotoLink" + } + }, + "social_media_urls":{ + "type":"array", + "items":{ + "type":"string", + "description":"A social media URL related to the organization", + "example":"https://www.facebook.com/CandidDotOrg/" + } + }, + "telephone_numbers":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/TelephoneNumber" + } + }, + "videos":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/Video" + } + }, + "org_collect_feedback":{ + "type":"boolean", + "description":"Has this organization filled the 'How we listen' section of their profile", + "example":true + }, + "org_feedback_example":{ + "type":"string", + "description":"Response to 'How is your organization collecting feedback?'", + "example":"We collect org feedback through customer surveys" + }, + "org_quiz_interest":{ + "type":"boolean", + "description":"Did the organization indicate they had an interest in taking guidestar's feedback quiz", + "example":false + }, + "org_learn_more":{ + "type":"boolean", + "description":"Did the organization indicate they had an interest in learning more about feedback practices", + "example":false + }, + "feedback_responses":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/FBResponseText" + } + }, + "pcs_codes":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/PCS" + } + }, + "profile_sdg_codes":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/SDG" + } + } + } + }, + "Programs3":{ + "type":"object", + "description":"Collection of an organizations programs and program metrics", + "properties":{ + "programs":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/Program3" + } + }, + "platinum_metrics":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/PlatinumMetrics" + } + }, + "charting_impact_answers":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/Question" + } + } + } + }, + "Financials3":{ + "type":"object", + "description":"Organization financial information", + "properties":{ + "most_recent_year_financials":{ + "$ref":"#/components/schemas/CurrentFinancial" + }, + "f990_financials":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/FinancialF990_3" + } + }, + "pf990_financials":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/Financial990PF" + } + }, + "f990ez_financials":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/FinancialF990EZ" + } + }, + "financial_trends_analysis":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/FinancialTrends" + } + }, + "financial_documents":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/Fin_Doc" + } + }, + "forms_990T":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/Form990T" + } + }, + "funding_needs":{ + "type":"array", + "deprecated":true, + "items":{ + "$ref":"#/components/schemas/FundingNeed" + } + }, + "funding_sources":{ + "type":"array", + "deprecated":true, + "items":{ + "$ref":"#/components/schemas/FundingSource" + } + }, + "financial_statements":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/FinancialStatement" + } + }, + "annual_reports":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/AnnualReport" + } + }, + "accounting_ratios":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/Ratios" + } + } + } + }, + "Financials2":{ + "type":"object", + "description":"Organization financial information", + "properties":{ + "most_recent_year_financials":{ + "$ref":"#/components/schemas/CurrentFinancial" + }, + "f990_financials":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/FinancialF990_2" + } + }, + "pf990_financials":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/Financial990PF" + } + }, + "f990ez_financials":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/FinancialF990EZ" + } + }, + "financial_trends_analysis":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/FinancialTrends" + } + }, + "financial_documents":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/Fin_Doc" + } + }, + "forms_990T":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/Form990T" + } + }, + "funding_needs":{ + "type":"array", + "deprecated":true, + "items":{ + "$ref":"#/components/schemas/FundingNeed" + } + }, + "funding_sources":{ + "type":"array", + "deprecated":true, + "items":{ + "$ref":"#/components/schemas/FundingSource" + } + }, + "financial_statements":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/FinancialStatement" + } + }, + "annual_reports":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/AnnualReport" + } + }, + "accounting_ratios":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/Ratios" + } + } + } + }, + "Financials1":{ + "type":"object", + "description":"Organization financial information", + "properties":{ + "most_recent_year_financials":{ + "$ref":"#/components/schemas/CurrentFinancial1" + }, + "f990_financials":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/FinancialF990_1" + } + }, + "pf990_financials":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/Financial990PF" + } + }, + "financial_documents":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/Fin_Doc" + } + }, + "forms_990T":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/Form990T" + } + }, + "funding_needs":{ + "type":"array", + "deprecated":true, + "items":{ + "$ref":"#/components/schemas/FundingNeed" + } + }, + "funding_sources":{ + "type":"array", + "deprecated":true, + "items":{ + "$ref":"#/components/schemas/FundingSource" + } + }, + "financial_statements":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/FinancialStatement" + } + }, + "annual_reports":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/AnnualReport" + } + }, + "accounting_ratios":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/Ratios" + } + } + } + }, + "Operations1":{ + "type":"object", + "description":"Organization operations information", + "properties":{ + "leader_name":{ + "type":"string", + "description":"Organization leader name", + "example":"Mr. Bradford K. Smith" + }, + "leader_profile":{ + "type":"string", + "description":"Organization leader profile", + "example":"Bradford K. Smith leads Candid as its President. Mr. Smith joined Candid (formerly Foundation Center) as President in October 2008.\n\nPreviously, he was president of the Oak Foundation in Geneva, Switzerland. Prior to that, he developed and led Ford Foundation's Peace and Social Justice Program. During his 10-year tenure as vice president, he distributed hundreds of millions of dollars to organizations working on human rights, international cooperation, governance, and civil society in the U.S. and around the world.\n\nMr. Smith has devoted his entire career to the philanthropic and nonprofit sectors. He serves on the board of directors of the Tinker Foundation and the advisory board of the United Nations Trust Fund for Human Security. He holds an M.A. in economics from the New School for Social Research in New York and a B.A. in anthropology and ethnomusicology from the University of Michigan." + }, + "co_leader_name":{ + "type":"string", + "description":"Organization co-leader name", + "example":"" + }, + "co_leader_profile":{ + "type":"string", + "description":"Organization co-leader profile", + "example":"" + }, + "no_of_employees":{ + "format":"int32", + "type":"integer", + "description":"Number of employees of the organization", + "example":178 + }, + "no_of_volunteers":{ + "format":"int32", + "type":"integer", + "description":"Number of volunteers at an organization", + "example":15 + }, + "organization_email":{ + "type":"string", + "description":"DEPRECATED", + "example":"", + "deprecated":true + }, + "organization_details_year":{ + "format":"int32", + "type":"integer", + "description":"The year details in operations are from", + "example":2018 + }, + "officers_directors_key_employees":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/Person" + } + }, + "highest_paid_employees":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/Person" + } + }, + "employees_greater_than_100K":{ + "format":"int32", + "type":"integer", + "description":"Number of employees that are paid at least $100k", + "example":8 + }, + "board_chair_name":{ + "type":"string", + "description":"Name of the board chairperson", + "example":"T. Sylvester John" + }, + "board_chair_affiliation":{ + "type":"string", + "description":"Company board chairperson is associated with", + "example":"Walmart" + }, + "board_chair_term_start":{ + "type":"string", + "description":"Start year of board chair term", + "example":"2017" + }, + "board_chair_term_end":{ + "type":"string", + "description":"End year of board chair term", + "example":"2019" + }, + "board_co_chair_name":{ + "type":"string", + "description":"Name of board co-chairperson", + "example":"T. Sylvester John" + }, + "board_co_chair_affiliation":{ + "type":"string", + "description":"Company board co-chairperson is associated with", + "example":"Walmart" + }, + "board_co_chair_term_start":{ + "type":"string", + "description":"Start year of board co-chair term", + "example":"2017" + }, + "board_co_chair_term_end":{ + "type":"string", + "description":"End year of board co-chair term", + "example":"2019" + }, + "board_of_directors":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/BoardMember" + } + }, + "board_leadership_practices":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/Question" + } + }, + "organization_demographics":{ + "$ref":"#/components/schemas/OrganizationDemographics" + }, + "contractors":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/Contractor" + } + }, + "blog_url":{ + "type":"string", + "description":"URL of organization blog", + "example":"https://blog.candid.org/" + }, + "fundraising_contact_name":{ + "type":"string", + "description":"Name of primary fundraising contact", + "example":"Aleda Gagarin" + }, + "fundraising_contact_title":{ + "type":"string", + "description":"Title of primary fundraising contact", + "example":"Senior Director of Development" + }, + "fundraising_contact_email":{ + "type":"string", + "description":"Email address of primary fundraising contact", + "example":"donate@candid.org" + }, + "fundraising_contact_phone":{ + "type":"string", + "description":"Phone number of primary fundraising contact", + "example":"212 620-4230" + }, + "preparer_firm_name":{ + "type":"string", + "description":"Tax preparation firm name", + "example":"PKF O'CONNOR DAVIES LLP" + }, + "preparer_firm_address":{ + "type":"string", + "description":"Tax preparation firm address", + "example":"500 MAMARONECK AVENUE HARRISON NY 105281633" + }, + "preparer_firm_ein":{ + "type":"string", + "description":"Tax preparation firm EIN", + "example":"27-1728945" + }, + "preparer_firm_phone":{ + "type":"string", + "description":"Tax preparation firm phone number", + "example":"914-381-8900" + }, + "senior_staff":{ + "type":"array", + "deprecated":true, + "items":{ + "$ref":"#/components/schemas/SeniorStaff" + } + }, + "other_staff":{ + "type":"array", + "deprecated":true, + "items":{ + "$ref":"#/components/schemas/OtherStaff" + } + }, + "accreditations":{ + "type":"array", + "deprecated":true, + "items":{ + "$ref":"#/components/schemas/Accreditation" + } + } + } + }, + "Operations2":{ + "type":"object", + "description":"Organization operations information", + "properties":{ + "leader_name":{ + "type":"string", + "description":"Organization leader name", + "example":"Mr. Bradford K. Smith" + }, + "leader_profile":{ + "type":"string", + "description":"Organization leader profile", + "example":"Bradford K. Smith leads Candid as its President. Mr. Smith joined Candid (formerly Foundation Center) as President in October 2008.\n\nPreviously, he was president of the Oak Foundation in Geneva, Switzerland. Prior to that, he developed and led Ford Foundation's Peace and Social Justice Program. During his 10-year tenure as vice president, he distributed hundreds of millions of dollars to organizations working on human rights, international cooperation, governance, and civil society in the U.S. and around the world.\n\nMr. Smith has devoted his entire career to the philanthropic and nonprofit sectors. He serves on the board of directors of the Tinker Foundation and the advisory board of the United Nations Trust Fund for Human Security. He holds an M.A. in economics from the New School for Social Research in New York and a B.A. in anthropology and ethnomusicology from the University of Michigan." + }, + "co_leader_name":{ + "type":"string", + "description":"Organization co-leader name", + "example":"" + }, + "co_leader_profile":{ + "type":"string", + "description":"Organization co-leader profile", + "example":"" + }, + "no_of_employees":{ + "format":"int32", + "type":"integer", + "description":"Number of employees of the organization", + "example":178 + }, + "no_of_volunteers":{ + "format":"int32", + "type":"integer", + "description":"Number of volunteers at an organization", + "example":15 + }, + "organization_email":{ + "type":"string", + "description":"DEPRECATED", + "example":"", + "deprecated":true + }, + "organization_details_year":{ + "format":"int32", + "type":"integer", + "description":"The year details in operations are from", + "example":2018 + }, + "officers_directors_key_employees":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/Person" + } + }, + "highest_paid_employees":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/Person" + } + }, + "employees_greater_than_100K":{ + "format":"int32", + "type":"integer", + "description":"Number of employees that are paid at least $100k", + "example":8 + }, + "board_chair_name":{ + "type":"string", + "description":"Name of the board chairperson", + "example":"T. Sylvester John" + }, + "board_chair_affiliation":{ + "type":"string", + "description":"Company board chairperson is associated with", + "example":"Walmart" + }, + "board_chair_term_start":{ + "type":"string", + "description":"Start year of board chair term", + "example":"2017" + }, + "board_chair_term_end":{ + "type":"string", + "description":"End year of board chair term", + "example":"2019" + }, + "board_co_chair_name":{ + "type":"string", + "description":"Name of board co-chairperson", + "example":"T. Sylvester John" + }, + "board_co_chair_affiliation":{ + "type":"string", + "description":"Company board co-chairperson is associated with", + "example":"Walmart" + }, + "board_co_chair_term_start":{ + "type":"string", + "description":"Start year of board co-chair term", + "example":"2017" + }, + "board_co_chair_term_end":{ + "type":"string", + "description":"End year of board co-chair term", + "example":"2019" + }, + "board_of_directors":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/BoardMember" + } + }, + "board_leadership_practices":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/Question" + } + }, + "organization_demographics":{ + "$ref":"#/components/schemas/OrganizationDemographics" + }, + "demographics":{ + "$ref":"#/components/schemas/DEI2Demographics" + }, + "contractors":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/Contractor" + } + }, + "blog_url":{ + "type":"string", + "description":"URL of organization blog", + "example":"https://blog.candid.org/" + }, + "fundraising_contact_name":{ + "type":"string", + "description":"Name of primary fundraising contact", + "example":"Aleda Gagarin" + }, + "fundraising_contact_title":{ + "type":"string", + "description":"Title of primary fundraising contact", + "example":"Senior Director of Development" + }, + "fundraising_contact_email":{ + "type":"string", + "description":"Email address of primary fundraising contact", + "example":"donate@candid.org" + }, + "fundraising_contact_phone":{ + "type":"string", + "description":"Phone number of primary fundraising contact", + "example":"212 620-4230" + }, + "preparer_firm_name":{ + "type":"string", + "description":"Tax preparation firm name", + "example":"PKF O'CONNOR DAVIES LLP" + }, + "preparer_firm_address":{ + "type":"string", + "description":"Tax preparation firm address", + "example":"500 MAMARONECK AVENUE HARRISON NY 105281633" + }, + "preparer_firm_ein":{ + "type":"string", + "description":"Tax preparation firm EIN", + "example":"27-1728945" + }, + "preparer_firm_phone":{ + "type":"string", + "description":"Tax preparation firm phone number", + "example":"914-381-8900" + }, + "senior_staff":{ + "type":"array", + "deprecated":true, + "items":{ + "$ref":"#/components/schemas/SeniorStaff" + } + }, + "other_staff":{ + "type":"array", + "deprecated":true, + "items":{ + "$ref":"#/components/schemas/OtherStaff" + } + }, + "accreditations":{ + "type":"array", + "deprecated":true, + "items":{ + "$ref":"#/components/schemas/Accreditation" + } + } + } + }, + "CharityCheck":{ + "type":"object", + "description":"Organization Charity Check information", + "properties":{ + "organization_id":{ + "type":"string", + "description":"A unique number identifying organizations and organizational entities.", + "example":"6908122" + }, + "organization_info_last_modified":{ + "type":"string", + "description":"Date the organization’s information was last updated.", + "example":"4/15/2021 12:22:44 PM" + }, + "ein":{ + "type":"string", + "description":"Employer Identification Number.", + "example":"13-1837418" + }, + "organization_name":{ + "type":"string", + "description":"The public name recognized by the IRS.", + "example":"Candid" + }, + "organization_name_aka":{ + "type":"string", + "description":"Organization name \"Also Known As\" ", + "example":"The Foundation Center, Foundation Center, GuideStar, GuideStar USA" + }, + "address_line1":{ + "type":"string", + "description":"Address of the organization.", + "example":"32 Old Slip" + }, + "address_line2":{ + "type":"string", + "description":"Additional address information.", + "example":"24th Floor" + }, + "city":{ + "type":"string", + "description":"City of the organization's address. ", + "example":"New York" + }, + "state":{ + "type":"string", + "description":"State (Abbreviation) of the organization's address.", + "example":"NY" + }, + "state_name":{ + "type":"string", + "description":"State (Full Name) of the organization's address.", + "example":"New York" + }, + "zip":{ + "type":"string", + "description":"Zip code of the organization's address.", + "example":"10005" + }, + "filing_req_code":{ + "type":"string", + "description":"This indicates the primary return(s) the organization is required to file.", + "example":"010" + }, + "charity_check_last_modified":{ + "type":"string", + "description":"Date the Charity Check report was last modified.", + "example":"4/15/2021 12:19:28 PM" + }, + "pub78_church_message":{ + "type":"string", + "description":"A message indicating that although the organization is not on the Pub78, their filing requirement code shows that they are a religious organization and are therefore not required to appear on the Pub78 to establish their status.", + "example":"This organization is a church or religious organization. Churches and religious organizations qualify for exemption from federal income tax under IRC Section 501(c)(3) and are generally eligible to receive tax-deductible contributions." + }, + "pub78_organization_name":{ + "type":"string", + "description":"Organization name as it appears in the Publication 78 data.", + "example":"Candid" + }, + "pub78_ein":{ + "type":"string", + "description":"EIN (Employer Identification Number) as it appears in the Publication 78 data. ", + "example":"13-1837418" + }, + "pub78_verified":{ + "type":"string", + "description":"Whether the organization is listed on the most current Publication 78. Also known as the Cumulative List of Organizations, IRS Publication 78 lists all organizations to which charitable contributions are tax deductible. The Publication 78 record for each organization includes the organization's name, its city, and its current tax-exempt status, including what percentage of contributions to it are tax deductible. Subordinate organizations in group exemptions inherit the Pub78 status of the parent organization. ", + "example":"True" + }, + "pub78_city":{ + "type":"string", + "description":"City of the organization as it appears in the Publication 78 data.", + "example":"New York" + }, + "pub78_state":{ + "type":"string", + "description":"State of the organization as it appears in the Publication 78 data.", + "example":"NY" + }, + "pub78_indicator":{ + "type":"string", + "description":"Indicator for understanding an organization’s Publication 78 data. Subordinate organizations in group exemptions inherit the Pub78 status of the parent organization.", + "example":"0" + }, + "organization_types":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "organization_type":{ + "type":"string", + "description":"Type of organization and use of contribution as it appears in the Publication 78.", + "example":"A public charity (50% deductibility limitation)." + }, + "deductibility_limitation":{ + "type":"string", + "description":"In general, an individual who itemizes deductions may deduct contributions to most charitable organizations up to 50% of his or her adjusted gross income computed without regard to net operating loss carrybacks. Individuals generally may deduct charitable contributions to other organizations up to 30% of their adjusted gross income (computed without regard to net operating loss carrybacks). These limitations (and organizational status) are indicated.", + "example":"50%" + }, + "deductibility_status_description":{ + "type":"string", + "description":"Deductibility Status Codes.", + "example":"PC" + } + } + } + }, + "most_recent_pub78":{ + "type":"string", + "description":"Date of most recent Publication 78.", + "example":"4/13/2021 4:00:00 AM" + }, + "most_recent_irb":{ + "type":"string", + "description":"Date of the most recent Internal Revenue Bulletin.", + "example":"4/26/2021 12:00:00 AM" + }, + "bmf_church_message":{ + "type":"string", + "description":"A message indicating that although the organization is not on the IRS BF, their filing requirement code shows that they are a church or religious organization and are therefore not required to appear on the IRS BMF to establish their status.", + "example":"This organization is a church or religious organization. Churches and religious organizations qualify for exemption from federal income tax under IRC Section 501(c)(3) and are generally eligible to receive tax-deductible contributions." + }, + "bmf_organization_name":{ + "type":"string", + "description":"Organization name as it appears in the Business Master File.", + "example":"CANDID" + }, + "bmf_ein":{ + "type":"string", + "description":"EIN (Employer Identification Number) as it appears in the Business Master File.", + "example":"13-1837418" + }, + "bmf_status":{ + "type":"string", + "description":"If the organization appears in the Business Master File.", + "example":"True" + }, + "most_recent_bmf":{ + "type":"string", + "description":"Date of the most recent IRS Business Master File.", + "example":"4/12/2021 4:00:00 AM" + }, + "bmf_subsection":{ + "type":"string", + "description":"Subsection code as it appears in Business Master File. This code identifies the type of tax-exempt organization. This is often used to determine if contributions to them are tax deductible. ", + "example":"03" + }, + "subsection_description":{ + "type":"string", + "description":"Subsection code description as it relates to the subsection code that appears in Business Master File. This code identifies the type of tax-exempt organization. This is often used to determine if contributions to them are tax deductible.", + "example":"501(c)(3) Public Charity" + }, + "foundation_code":{ + "type":"string", + "description":"Organizations can select IRS foundation codes to describe their organization type.", + "example":"15" + }, + "foundation_code_description":{ + "type":"string", + "description":"Textual description of the foundation code. ", + "example":"Organization which receives a substantial part of its support from a governmental unit or the general public" + }, + "ruling_month":{ + "type":"string", + "description":"This is the month on a ruling or determination letter recognizing the organization's exempt status.", + "example":"06" + }, + "ruling_year":{ + "type":"string", + "description":"This is the year on a ruling or determination letter recognizing the organization's exempt status.", + "example":"1957" + }, + "adv_ruling_month":{ + "type":"string", + "description":"This is the month on an advanced ruling recognizing the organization’s exempt status. A section 501(c)(3) organization that has received an advance ruling with an expiration date on or after June 9, 2008, is classified as a publicly supported charity during its first five years. Such an organization and its donors may rely on the organization's advance ruling and the organization no longer needs to file Form 8734 with the IRS. Beginning with the organization's sixth year, it must establish that it met the public support test by showing that it is publicly supported on its Form 990, Return of Organization Exempt From Income Tax.On September 9, 2008, the IRS issued temporary Income Tax Regulations, which eliminated the advance ruling process for a section 501(c)(3) organization. Under the new regulations, a new 501(c)(3) organization will be classified as a publicly supported charity, and not a private foundation, if it can show that it reasonably can be expected to be publicly supported when it applies for tax-exempt status.", + "example":"00" + }, + "adv_ruling_year":{ + "type":"string", + "description":"This is the year on an advanced ruling recognizing the organization’s exempt status. A section 501(c)(3) organization that has received an advance ruling with an expiration date on or after June 9, 2008, is classified as a publicly supported charity during its first five years. Such an organization and its donors may rely on the organization's advance ruling and the organization no longer needs to file Form 8734 with the IRS. Beginning with the organization's sixth year, it must establish that it met the public support test by showing that it is publicly supported on its Form 990, Return of Organization Exempt From Income Tax. On September 9, 2008, the IRS issued temporary Income Tax Regulations, which eliminated the advance ruling process for a section 501(c)(3) organization. Under the new regulations, a new 501(c)(3) organization will be classified as a publicly supported charity, and not a private foundation, if it can show that it reasonably can be expected to be publicly supported when it applies for tax-exempt status. ", + "example":"0000" + }, + "group_exemption":{ + "type":"string", + "description":"This is a 4-digit IRS-internal number assigned to parent organizations holding group exemption letters. Subordinate organizations in group exemptions inherit the Pub78 status of the parent organization.", + "example":"0000" + }, + "exempt_status_code":{ + "type":"string", + "description":"The EO Status Code defines the type of exemption held by the organization.", + "example":"01" + }, + "ofac_status":{ + "type":"string", + "description":"Indicates whether this organization has been listed by OFAC on the Specially Designated National (SDN) List. Also known as the “Terrorist Watch List”. ", + "example":"This organization was not included in the Office of Foreign Assets Control Specially Designated Nationals(SDN) list." + }, + "revocation_code":{ + "type":"string", + "description":"Indicates the revocation code provided by the IRS in the Automatic Revocation file.", + "example":"F" + }, + "revocation_date":{ + "type":"string", + "description":"Date of revocation.", + "example":"1/12/2021 2:23:09 PM" + }, + "reinstatement_date":{ + "type":"string", + "description":"Date of reinstatement, if any.", + "example":"1/12/2021 2:23:09 PM" + }, + "irs_bmf_pub78_conflict":{ + "type":"string", + "description":"Indicates whether the Business Master File and Publication 78 data are reporting the organization differently regarding its classification as a private foundation. ", + "example":"False" + }, + "foundation_509a_status":{ + "type":"string", + "description":"Non-private foundation status. ", + "example":"Section 509(a)(1) organization as referred to in Section 170(b)(1)(A)(vi)" + }, + "irb_organization_id":{ + "type":"string", + "description":"Candid Internal Use Only (Removed in Future API Versions). ", + "example":"12345" + }, + "bulletin_number":{ + "type":"string", + "description":"If the organization was listed in an Internal Revenue Bulletin, the bulletin number is listed here.", + "example":"2020-05" + }, + "bulletin_url":{ + "type":"string", + "description":"URL link to the IRB.", + "example":"https://www.irs.gov/pub/irs-irbs/irb20-05.pdf" + }, + "effective_date":{ + "type":"string", + "description":"Effective date of the IRB.", + "example":"1/12/2021 2:23:09 PM" + }, + "irb_last_modified":{ + "type":"string", + "description":"The date that GuideStar IRB last modification date.", + "example":"1/12/2021 2:23:09 PM" + }, + "report_date":{ + "type":"string", + "description":"Date and time the Charity Check API returned the result. Reported in Greenwich Mean Time (GMT).", + "example":"4/27/2021 2:23:09 PM" + }, + "foundation_type_code":{ + "type":"string", + "description":"Organizations can select IRS foundation codes to describe their organization type. ", + "example":"PC" + }, + "foundation_type_description":{ + "type":"string", + "description":"Textual description of the foundation code.", + "example":"Public charity described in section 509(a)(1) or (2)" + }, + "parent_organizations":{ + "type":"array", + "items":{ + "type":"object", + "properties":{ + "ein":{ + "type":"string", + "description":"EIN of parent organization.", + "example":"13-1837418" + }, + "organization_name":{ + "type":"string", + "description":"Name of Parent Organization.", + "example":"Candid" + }, + "group_exemption":{ + "type":"string", + "description":"This is a four-digit internal number assigned to parent organizations holding group exemption letters.", + "example":"1234" + } + } + } + } + } + }, + "SDG":{ + "type":"object", + "description":"UN sustainable development goals", + "properties":{ + "id":{ + "format":"int32", + "type":"integer", + "description":"UN sustainable development goal number", + "example":17 + }, + "description":{ + "type":"string", + "description":"UN sustainable development goal description", + "example":"Partnerships for the Goals" + } + } + }, + "ProfileDataChangeDates":{ + "type":"object", + "description":"Contains the last change datetimes for several key data values", + "properties":{ + "primary_address_last_modified":{ + "format":"date-time", + "type":"string", + "description":"Datetime of last update to primary address", + "example":"2020-11-12T14:28:48" + }, + "payment_address_last_modified":{ + "format":"date-time", + "type":"string", + "description":"Datetime of last update to payment address", + "example":"2020-11-12T14:28:48" + }, + "primary_contact_email_last_modified":{ + "format":"date-time", + "type":"string", + "description":"Datetime of last update to primary contact email address", + "example":"2020-11-12T14:28:48" + }, + "fundraising_contact_email_last_modified":{ + "format":"date-time", + "type":"string", + "description":"Datetime of last update to fundraising contact email address", + "example":"2020-11-12T14:28:48" + }, + "org_website_last_modified":{ + "format":"date-time", + "type":"string", + "description":"Datetime of last update to organization website address", + "example":"2020-11-12T14:28:48" + }, + "seal_last_modified":{ + "format":"date-time", + "type":"string", + "description":"Datetime of last update to organization seal level", + "example":"2020-11-12T14:28:48" + }, + "dei_last_modified":{ + "format":"date-time", + "type":"string", + "description":"Datetime of last update to organization demographics information", + "example":"2020-11-12T14:28:48" + } + } + }, + "Address":{ + "type":"object", + "description":"Address entry in summary.addresses. Usually an office of an organization.", + "properties":{ + "address_line_1":{ + "type":"string", + "description":"Address line 1", + "example":"32 Old Slip" + }, + "address_line_2":{ + "type":"string", + "description":"Address line 2", + "example":"24th Floor" + }, + "city":{ + "type":"string", + "description":"Address city", + "example":"New York" + }, + "state":{ + "type":"string", + "description":"Address state", + "example":"NY" + }, + "postal_code":{ + "type":"string", + "description":"Address postal code", + "example":"10005" + }, + "country":{ + "type":"string", + "description":"Address country", + "example":"USA" + }, + "address_type":{ + "type":"string", + "description":"Address type", + "example":"Main Address" + } + } + }, + "Affiliation":{ + "type":"object", + "description":"DEPRECATED", + "deprecated":true, + "properties":{ + "affiliation":{ + "type":"string", + "description":"DEPRECATED", + "example":"" + }, + "year":{ + "type":"string", + "description":"DEPRECATED", + "example":"" + } + } + }, + "Award":{ + "type":"object", + "description":"DEPRECATED", + "deprecated":true, + "properties":{ + "awarding_external_org":{ + "type":"string", + "description":"DEPRECATED", + "example":"" + }, + "award_name":{ + "type":"string", + "description":"DEPRECATED", + "example":"" + }, + "award_year":{ + "type":"string", + "description":"Year award received", + "example":"2017" + } + } + }, + "FormerName":{ + "type":"object", + "description":"DEPRECATED", + "deprecated":true, + "properties":{ + "former_name":{ + "type":"string", + "description":"DEPRECATED", + "example":"" + }, + "year":{ + "type":"string", + "description":"DEPRECATED", + "example":"" + } + } + }, + "LetterOfDetermination":{ + "type":"object", + "description":"IRS letter of determination information", + "properties":{ + "letter_of_determination_doc_name":{ + "type":"string", + "description":"Document name of the letter of determination", + "example":"Candid IRS Letter of Determination" + }, + "letter_of_determination_url":{ + "type":"string", + "description":"URL to the letter of determination", + "example":"https://www.guidestar.org/ViewEdoc.aspx?eDocId=6645380&approved=True" + } + } + }, + "LetterOfDissolution":{ + "type":"object", + "description":"IRS letter of dissolution information", + "properties":{ + "name":{ + "type":"string", + "description":"Document name of the letter of dissolution", + "example":"Letter of Dissolution" + }, + "year":{ + "type":"string", + "description":"Year of dissolution", + "example":"2017" + }, + "letter_of_dissolution_url":{ + "type":"string", + "description":"URL to letter of dissolution", + "example":"https://www.guidestar.org/ViewEdoc.aspx?eDocId=6645380&approved=True" + } + } + }, + "nteeCode":{ + "type":"object", + "description":"National taxonomy of exempt Entities (NTEE) code information", + "properties":{ + "ntee_code":{ + "type":"string", + "description":"NTEE code", + "example":"T50" + }, + "primary_code":{ + "type":"string", + "description":"NTEE primary code", + "example":"T" + }, + "primary_description":{ + "type":"string", + "description":"NTEE Primary description", + "example":"Philanthropy, Voluntarism, and Grantmaking" + }, + "sub_code":{ + "type":"string", + "description":"NTEE subcode", + "example":"50" + }, + "sub_description":{ + "type":"string", + "description":"NTEE subcode description", + "example":"Philanthropy / Charity / Voluntarism Promotion (General)" + } + } + }, + "NAICSCode":{ + "type":"object", + "description":"North American Industry Classification System (NAICS) information", + "properties":{ + "naics_code":{ + "type":"string", + "description":"NAICS code", + "example":"813219" + }, + "naics_description":{ + "type":"string", + "description":"NAICS code description", + "example":"Other Grantmaking and Giving Services" + } + } + }, + "SICCode":{ + "type":"object", + "description":"Standard Industrial Classification (SIC) information", + "properties":{ + "sic_code":{ + "type":"string", + "description":"SIC code", + "example":"8399" + }, + "sic_description":{ + "type":"string", + "description":"SIC code description", + "example":"Social Services, NEC" + } + } + }, + "PlatinumEvaluationDocument":{ + "type":"object", + "description":"External evaluations support your organization's progress or results", + "properties":{ + "document_name":{ + "type":"string", + "description":"Name of evaluation document", + "example":"Evaluation.pdf" + }, + "document_year":{ + "type":"string", + "description":"Year of evaluation document", + "example":"2017" + }, + "document_url":{ + "type":"string", + "description":"URL of evaluation document", + "example":"https://www.guidestar.org/ViewEdoc.aspx?eDocId=6645380&approved=True" + }, + "document_type":{ + "type":"string", + "description":"DEPRECATED", + "example":"", + "deprecated":true + } + } + }, + "OtherDocument":{ + "type":"object", + "description":"A document the organization uploaded to GuideStar", + "properties":{ + "document_name":{ + "type":"string", + "description":"Document name entered by organization", + "example":"Candid's 2030 Vision" + }, + "document_year":{ + "type":"string", + "description":"Year document is associated with", + "example":"2020" + }, + "otherdocument_contents":{ + "type":"string", + "description":"DEPRECATED", + "deprecated":true, + "example":"" + }, + "document_url":{ + "type":"string", + "description":"URL to document", + "example":"https://www.guidestar.org/ViewEdoc.aspx?eDocId=6645386&approved=True" + } + } + }, + "PhotoLink":{ + "type":"object", + "description":"Images uploaded by organization", + "properties":{ + "picture_url":{ + "type":"string", + "description":"URL to image", + "example":"https://www.guidestar.org/ViewEdoc.aspx?eDocId=5449398&approved=True" + }, + "caption":{ + "type":"string", + "description":"Image caption", + "example":"Jacob Harold" + } + } + }, + "TelephoneNumber":{ + "type":"object", + "description":"Telephone number associated with organization", + "properties":{ + "telephone_number":{ + "type":"string", + "description":"Telephone number entered by organization", + "example":"757-941-1444" + }, + "telephone_type":{ + "type":"string", + "description":"Description of telephone number", + "example":"Preferred" + } + } + }, + "Video":{ + "type":"object", + "description":"Video information added by organization", + "properties":{ + "video_caption":{ + "type":"string", + "description":"Caption of video", + "example":"GuideStar: Better Data, for Better Decisions, for a Better World" + }, + "video_url":{ + "type":"string", + "description":"URL to video", + "example":"https://www.youtube.com/embed/W0rUzE6Yms4" + } + } + }, + "FBResponseText":{ + "type":"object", + "description":"Specific feedback response questions answered by organization", + "properties":{ + "question_text":{ + "type":"string", + "description":"Feedback response question text", + "example":"How is your organization collecting feedback from the people you serve?" + }, + "response_text":{ + "type":"string", + "description":"Feedback response answer text", + "example":"We regularly collect feedback through: Electronic surveys (by email, tablet, etc.), Focus groups or interviews (by phone or in person), Community meetings/Town halls, Constituent (client or resident, etc.) advisory committees, other: Online Chat" + } + } + }, + "PCS":{ + "type":"object", + "description":"The Philanthropy Classification System (PCS) is Candid’s (formerly Foundation Center and GuideStar) taxonomy, describing the work of grantmakers, recipient organizations and the philanthropic transactions between those entities. Candid’s Classification System is based on the National Taxonomy of Exempt Entities (NTEE) and has been expanded over the last three decades to include the emerging work we have evidenced while capturing and indexing the work of the sector on a global scale.", + "properties":{ + "pcs_facet":{ + "type":"string", + "description":"PCS facet name", + "example":"Population with Gender/Age" + }, + "pcs_code":{ + "type":"string", + "description":"PCS code", + "example":"PA020000" + }, + "pcs_description":{ + "type":"string", + "description":"PCS code description", + "example":"Adults" + }, + "pcs_parent_code":{ + "type":"string", + "description":"PCS parent code", + "example":"PA000000" + }, + "pcs_parent_description":{ + "type":"string", + "description":"PCS parent code description", + "example":"Age groups" + } + } + }, + "Program3":{ + "type":"object", + "description":"Information about an organization's program as entered by the organization", + "properties":{ + "name":{ + "type":"string", + "description":"Program name", + "example":"Knowledge Tools" + }, + "description":{ + "type":"string", + "description":"Program description", + "example":"Through data, research, and our collective experience, Candid provides our users with the knowledge they need to make strategic decisions and develop practical solutions to achieve their missions. \n\nOur GuideStar searchable database currently includes data on 1.9 million 501c3 entities, making it easier to understand who they are and what they do. We support ongoing learning and research by gathering, indexing, and sharing the sector’s collective knowledge on IssueLab while also producing our own research that shares insights on issues affecting the social sector. We provide data and knowledge to the philanthropic field by creating new issue-based web portals known as “Foundation Landscapes” on the topics that matter most to the sector. Through Glasspockets we provide the data, resources, examples, and action steps foundations need to understand the value of transparency, be more open in their own communications, and help shed more light on how private organizations are serving the public good. Candid works closely with organizations around the globe to assist them in collecting and organizing their region’s philanthropy data by sharing what we have learned over the past 60 years about data acquisition and data architecture. \n\nCandid’s CF Insights program is the leader in data collection and research for the community foundation field in the U.S. with a reputation for benchmarking and analysis of trends. Through CF Insights, we continue to deliver a high level of service to our members and worked with partners to release groundbreaking research on the need for increased collaboration amongst leaders of community foundations.\n\nWe also have a number of blogs across our platforms (including the GuideStar blog, GrantSpace blog, GrantCraft blog, GlassPockets blog, Philanthropy News Digest Blog, and more!) that shine a light on relevant topics and trends affecting the sector." + }, + "target_population":{ + "type":"string", + "description":"First target population that the program is targeting", + "example":"General/Unspecified" + }, + "target_population2":{ + "type":"string", + "description":"Second target population that the program is targeting", + "example":"General/Unspecified" + }, + "budget":{ + "type":"string", + "description":"Program budget in dollars", + "example":"3002061" + }, + "areas_served":{ + "type":"array", + "description":"Geographic area served by program", + "items":{ + "type":"string", + "description":"Name of the geographic area served by the program", + "example":"United States" + } + } + } + }, + "PlatinumMetrics1":{ + "type":"object", + "description":"Program metrics entered by the organization", + "properties":{ + "metric":{ + "type":"string", + "description":"Metric name", + "example":"Number of organizations you can find on GuideStar" + }, + "years":{ + "type":"array", + "description":"The years this metric was captured and the values for a given year", + "items":{ + "$ref":"#/components/schemas/MetricYear" + } + }, + "target_population_served":{ + "type":"array", + "description":"The target populations that the metric supports", + "items":{ + "type":"string", + "description":"A Target population", + "example":"General/Unspecified" + } + } + } + }, + "PlatinumMetrics":{ + "type":"object", + "description":"Program metrics entered by the organization", + "properties":{ + "metric":{ + "type":"string", + "description":"Metric name", + "example":"Number of organizations you can find on GuideStar" + }, + "years":{ + "type":"array", + "description":"The years this metric was captured and the values for a given year", + "items":{ + "$ref":"#/components/schemas/MetricYear" + } + }, + "target_population_served":{ + "type":"array", + "description":"The target populations that the metric supports", + "items":{ + "type":"string", + "description":"A Target population", + "example":"General/Unspecified" + } + }, + "type_of_metric":{ + "type":"string", + "description":"How this metric is being measured", + "example":"Output - describing our activities and reach" + }, + "direction_of_success":{ + "type":"string", + "description":"How to determine if this metric is showing a successful trend", + "example":"Increasing" + } + } + }, + "Question":{ + "type":"object", + "description":"General question and answer pair, used in multiple places", + "properties":{ + "question":{ + "type":"string", + "description":"Question text", + "example":"How would you summarize the problem or need your organization is working to address?" + }, + "answer":{ + "type":"string", + "description":"Answer text", + "example":"As of February 2019, GuideStar joined forces with Foundation Center to become a new organization called Candid. The below reflects GuideStar’s historical programs as of January 31, 2019.\n\nAcross the globe, nonprofits play an important role within the evolving social contract: they provide services, drive innovation, and shape political discourse. Unfortunately, the culture and systems of the nonprofit sector do not always drive excellence, learning, or collaboration. The whole is less than the sum of its parts. For example: \n\n- proven impact rarely draws additional capital; \n- failure seldom drives learning; \n- shared goals rarely inspire collaboration; \n- the voices of those we try to serve are lost. \n\nThese obstacles limit the overall impact of the field. Until we fix these problems the nonprofit sector will continue to underperform—with profound consequences across society." + } + } + }, + "CurrentFinancial1":{ + "type":"object", + "description":"Current, or most recent, fiscal year (FY) financial information. Since this could come from multiple 990 form types, many of the fields are normalized.", + "properties":{ + "fiscal_year":{ + "format":"int32", + "type":"integer", + "description":"The FY as a number", + "example":2019 + }, + "form_type":{ + "type":"string", + "description":"The IRS 990 form type the data in this CurrentFinancial object is based off of.", + "example":"F990" + }, + "data_source":{ + "type":"string", + "description":"Source of current financial information", + "example":"IRS Form 990" + }, + "assets_total":{ + "format":"double", + "type":"number", + "description":"Total monetary amount of assets, in USD", + "example":1096532 + }, + "total_liabilities":{ + "format":"double", + "type":"number", + "description":"Total monetary value of liabilities, in USD", + "example":37801 + }, + "revenue_contributions":{ + "format":"double", + "type":"number", + "description":"Contributions revenue, i.e. donations, in USD", + "example":87214 + }, + "revenue_govt_grants":{ + "format":"double", + "type":"number", + "description":"Government grants revenue, in USD", + "example":0 + }, + "revenue_program_services":{ + "format":"double", + "type":"number", + "description":"Program services revenue, in USD", + "example":1100117 + }, + "revenue_investments":{ + "format":"double", + "type":"number", + "description":"Investments revenue, in USD", + "example":9513 + }, + "revenue_special_events":{ + "format":"double", + "type":"number", + "description":"Special events revenue, in USD", + "example":0 + }, + "revenue_sales":{ + "format":"double", + "type":"number", + "description":"Sales revenue, in USD", + "example":0 + }, + "revenue_other":{ + "format":"double", + "type":"number", + "description":"Other revenue, in USD", + "example":0 + }, + "total_revenue":{ + "format":"double", + "type":"number", + "description":"Total revenue,, in USD", + "example":1196844 + }, + "expense_administration":{ + "format":"double", + "type":"number", + "description":"Administration expenses, in USD", + "example":589718 + }, + "expense_program_services":{ + "format":"double", + "type":"number", + "description":"Program services expenses, in USD", + "example":1011531 + }, + "expense_fundraising":{ + "format":"double", + "type":"number", + "description":"Fundraising expenses, in USD", + "example":38989 + }, + "expense_accounting":{ + "format":"double", + "type":"number", + "description":"Accounting expenses, in USD", + "example":49383 + }, + "expense_advertising_promotion":{ + "format":"double", + "type":"number", + "description":"Advertising expenses, in USD", + "example":15678 + }, + "expense_info_technology":{ + "format":"double", + "type":"number", + "description":"IT expenses, in USD", + "example":88971 + }, + "expense_insurance":{ + "format":"double", + "type":"number", + "description":"Insurance expenses, in USD", + "example":32213 + }, + "expense_interest":{ + "format":"double", + "type":"number", + "description":"Interest expenses, in USD", + "example":32213 + }, + "expense_investment_management":{ + "format":"double", + "type":"number", + "description":"Investment management expenses, in USD", + "example":73893 + }, + "expense_legal":{ + "format":"double", + "type":"number", + "description":"Legal expenses, in USD", + "example":90500 + }, + "expense_pension_plan":{ + "format":"double", + "type":"number", + "description":"Pension plan expenses, in USD", + "example":16922 + }, + "expense_professional_fundraising":{ + "format":"double", + "type":"number", + "description":"Professional fundraising expenses, in USD", + "example":83345 + }, + "expense_professional_fees":{ + "format":"double", + "type":"number", + "description":"Professional fees expenses, in USD", + "example":46753 + }, + "expense_publications":{ + "format":"double", + "type":"number", + "description":"Publication expenses, in USD", + "example":9857 + }, + "expense_operating_admin":{ + "format":"double", + "type":"number", + "description":"Admin operating expenses, in USD", + "example":86905 + }, + "expense_gifts_grants_paid":{ + "format":"double", + "type":"number", + "description":"Gifts and grants paid expenses, in USD", + "example":57493 + }, + "total_expense_disbursements":{ + "format":"double", + "type":"number", + "description":"Disbursement expenses, in USD", + "example":86734 + }, + "expenses_total":{ + "format":"double", + "type":"number", + "description":"Total expenses, in USD", + "example":1640238 + }, + "net_gain_loss":{ + "format":"double", + "type":"number", + "description":"Net gain/loos this FY, in USD", + "example":-443394 + }, + "cash_and_equivalent_assets":{ + "format":"double", + "type":"number", + "description":"Cash and equivalent assets, in USD", + "example":1081985 + }, + "investments_us_government":{ + "format":"double", + "type":"number", + "description":"U.S. bond investment gain/loss, in USD", + "example":583843 + }, + "investments_stock":{ + "format":"double", + "type":"number", + "description":"Stock investment gain/loss, in USD", + "example":28264 + }, + "investments_bonds":{ + "format":"double", + "type":"number", + "description":"Bond investments gain/loss, in USD", + "example":39567 + }, + "investments_other":{ + "format":"double", + "type":"number", + "description":"Other investments gain/loss, in USD", + "example":974785 + }, + "land_buildings_equipment":{ + "format":"double", + "type":"number", + "description":"Land, buildings, equipment end of year value, in USD", + "example":9840347 + }, + "other_assets":{ + "format":"double", + "type":"number", + "description":"Other assets end of year value, in USD", + "example":60948 + } + } + }, + "CurrentFinancial":{ + "type":"object", + "description":"Current, or most recent, fiscal year (FY) financial information. Since this could come from multiple 990 form types, many of the fields are normalized.", + "properties":{ + "period_begin":{ + "format":"date-time", + "type":"string", + "description":"Start date of the FY that this current financial object covers", + "example":"2019-01-01T05:00:00Z" + }, + "period_end":{ + "format":"date-time", + "type":"string", + "description":"End date of the fiscal year that this current financial object covers", + "example":"2019-12-31T05:00:00Z" + }, + "fiscal_year":{ + "format":"int32", + "type":"integer", + "description":"The FY as a number", + "example":2019 + }, + "form_type":{ + "type":"string", + "description":"The IRS 990 form type the data in this CurrentFinancial object is based off of.", + "example":"F990" + }, + "data_source":{ + "type":"string", + "description":"Source of current financial information", + "example":"IRS Form 990" + }, + "assets_total":{ + "format":"double", + "type":"number", + "description":"Total monetary amount of assets, in USD", + "example":1096532 + }, + "total_liabilities":{ + "format":"double", + "type":"number", + "description":"Total monetary value of liabilities, in USD", + "example":37801 + }, + "revenue_contributions":{ + "format":"double", + "type":"number", + "description":"Contributions revenue, i.e. donations, in USD", + "example":87214 + }, + "revenue_govt_grants":{ + "format":"double", + "type":"number", + "description":"Government grants revenue, in USD", + "example":0 + }, + "revenue_program_services":{ + "format":"double", + "type":"number", + "description":"Program services revenue, in USD", + "example":1100117 + }, + "revenue_investments":{ + "format":"double", + "type":"number", + "description":"Investments revenue, in USD", + "example":9513 + }, + "revenue_special_events":{ + "format":"double", + "type":"number", + "description":"Special events revenue, in USD", + "example":0 + }, + "revenue_sales":{ + "format":"double", + "type":"number", + "description":"Sales revenue, in USD", + "example":0 + }, + "revenue_other":{ + "format":"double", + "type":"number", + "description":"Other revenue, in USD", + "example":0 + }, + "total_revenue":{ + "format":"double", + "type":"number", + "description":"Total revenue,, in USD", + "example":1196844 + }, + "expense_administration":{ + "format":"double", + "type":"number", + "description":"Administration expenses, in USD", + "example":589718 + }, + "expense_program_services":{ + "format":"double", + "type":"number", + "description":"Program services expenses, in USD", + "example":1011531 + }, + "expense_fundraising":{ + "format":"double", + "type":"number", + "description":"Fundraising expenses, in USD", + "example":38989 + }, + "expense_accounting":{ + "format":"double", + "type":"number", + "description":"Accounting expenses, in USD", + "example":49383 + }, + "expense_advertising_promotion":{ + "format":"double", + "type":"number", + "description":"Advertising expenses, in USD", + "example":15678 + }, + "expense_info_technology":{ + "format":"double", + "type":"number", + "description":"IT expenses, in USD", + "example":88971 + }, + "expense_insurance":{ + "format":"double", + "type":"number", + "description":"Insurance expenses, in USD", + "example":32213 + }, + "expense_interest":{ + "format":"double", + "type":"number", + "description":"Interest expenses, in USD", + "example":32213 + }, + "expense_investment_management":{ + "format":"double", + "type":"number", + "description":"Investment management expenses, in USD", + "example":73893 + }, + "expense_legal":{ + "format":"double", + "type":"number", + "description":"Legal expenses, in USD", + "example":90500 + }, + "expense_pension_plan":{ + "format":"double", + "type":"number", + "description":"Pension plan expenses, in USD", + "example":16922 + }, + "expense_professional_fundraising":{ + "format":"double", + "type":"number", + "description":"Professional fundraising expenses, in USD", + "example":83345 + }, + "unrestricted_net_assets":{ + "format":"double", + "type":"number", + "description":"Unrestricted net asset, in USD", + "example":1058731 + }, + "net_fixed_assets_LBE":{ + "format":"double", + "type":"number", + "description":"Land, buildings and equipment fixed assets, in USD", + "example":0 + }, + "notes_payable_mortgages":{ + "format":"double", + "type":"number", + "description":"mortgages and notes payable to unrelated 3rd parties, in USD", + "example":0 + }, + "months_of_cash":{ + "type":"string", + "description":"A measurement of how long an organization can operate using cash and cash reserves at current expense levels. Calculated using the formula - Cash plus Savings divided by Total Expenses minus Depreciation divided by 12 months.", + "example":"8.1" + }, + "expense_professional_fees":{ + "format":"double", + "type":"number", + "description":"Professional fees expenses, in USD", + "example":46753 + }, + "expense_publications":{ + "format":"double", + "type":"number", + "description":"Publication expenses, in USD", + "example":9857 + }, + "expense_operating_admin":{ + "format":"double", + "type":"number", + "description":"Admin operating expenses, in USD", + "example":86905 + }, + "expense_gifts_grants_paid":{ + "format":"double", + "type":"number", + "description":"Gifts and grants paid expenses, in USD", + "example":57493 + }, + "total_expense_disbursements":{ + "format":"double", + "type":"number", + "description":"Disbursement expenses, in USD", + "example":86734 + }, + "expenses_total":{ + "format":"double", + "type":"number", + "description":"Total expenses, in USD", + "example":1640238 + }, + "net_gain_loss":{ + "format":"double", + "type":"number", + "description":"Net gain/loos this FY, in USD", + "example":-443394 + }, + "expense_salaries_employee_benefits":{ + "format":"double", + "type":"number", + "description":"Salary and other employee benefit expense, in USD", + "example":995858 + }, + "cash_and_equivalent_assets":{ + "format":"double", + "type":"number", + "description":"Cash and equivalent assets, in USD", + "example":1081985 + }, + "investments_us_government":{ + "format":"double", + "type":"number", + "description":"U.S. bond investment gain/loss, in USD", + "example":583843 + }, + "investments_stock":{ + "format":"double", + "type":"number", + "description":"Stock investment gain/loss, in USD", + "example":28264 + }, + "investments_bonds":{ + "format":"double", + "type":"number", + "description":"Bond investments gain/loss, in USD", + "example":39567 + }, + "investments_other":{ + "format":"double", + "type":"number", + "description":"Other investments gain/loss, in USD", + "example":974785 + }, + "land_buildings_equipment":{ + "format":"double", + "type":"number", + "description":"Land, buildings, equipment end of year value, in USD", + "example":9840347 + }, + "other_assets":{ + "format":"double", + "type":"number", + "description":"Other assets end of year value, in USD", + "example":60948 + } + } + }, + "FinancialF990_1":{ + "type":"object", + "description":"IRS form 990 financials", + "properties":{ + "period_begin":{ + "format":"date-time", + "type":"string", + "description":"Start date of the FY that this current financial object covers", + "example":"2019-01-01T05:00:00Z" + }, + "period_end":{ + "format":"date-time", + "type":"string", + "description":"End date of the fiscal year that this current financial object covers", + "example":"2019-12-31T05:00:00Z" + }, + "membership_dues":{ + "format":"double", + "type":"number", + "description":"Revenue from recurring membership dues", + "example":73764 + }, + "revenue_contributions":{ + "format":"double", + "type":"number", + "description":"Contributions revenue, i.e. donations, in USD", + "example":87214 + }, + "revenue_govt_grants":{ + "format":"double", + "type":"number", + "description":"Government grants revenue, in USD", + "example":0 + }, + "revenue_program_services":{ + "format":"double", + "type":"number", + "description":"Revenue derived from fees for program services", + "example":1100117 + }, + "revenue_investments":{ + "format":"double", + "type":"number", + "description":"Revenue from investments", + "example":9513 + }, + "revenue_special_events":{ + "format":"double", + "type":"number", + "description":"Revenue from special events", + "example":0 + }, + "revenue_sales":{ + "format":"double", + "type":"number", + "description":"Revenue from sales of tangible items", + "example":0 + }, + "revenue_other":{ + "format":"double", + "type":"number", + "description":"Other revenue sources, not recorded elsewhere", + "example":0 + }, + "revenue_total":{ + "format":"double", + "type":"number", + "description":"Total FY revenue", + "example":1196844 + }, + "affiliate_net_payments":{ + "format":"double", + "type":"number", + "description":"Payments to affiliate organizations", + "example":1038494 + }, + "expense_program_services":{ + "format":"double", + "type":"number", + "description":"Expenses incurred from program services", + "example":1011531 + }, + "expense_administration":{ + "format":"double", + "type":"number", + "description":"Administration expenses", + "example":589718 + }, + "expense_fundraising":{ + "format":"double", + "type":"number", + "description":"Fundraising expenses", + "example":38989 + }, + "expenses_total":{ + "format":"double", + "type":"number", + "description":"Total FY expenses", + "example":1640238 + }, + "net_gain_loss":{ + "format":"double", + "type":"number", + "description":"Difference between total revenue and total expenses", + "example":-443394 + }, + "expense_accounting":{ + "format":"double", + "type":"number", + "description":"Accounting expenses", + "example":49383 + }, + "expense_advertising_promotion":{ + "format":"double", + "type":"number", + "description":"Advertising/promotional expenses", + "example":15678 + }, + "expense_info_technology":{ + "format":"double", + "type":"number", + "description":"IT expenses", + "example":88971 + }, + "expense_insurance":{ + "format":"double", + "type":"number", + "description":"Insurance expenses", + "example":32213 + }, + "expense_interest":{ + "format":"double", + "type":"number", + "description":"Interest expenses", + "example":436352 + }, + "expense_investment_management":{ + "format":"double", + "type":"number", + "description":"Investment management expenses", + "example":366732 + }, + "expense_legal":{ + "format":"double", + "type":"number", + "description":"Legal expenses", + "example":90500 + }, + "expense_pension_plan":{ + "format":"double", + "type":"number", + "description":"Pension plan expenses", + "example":16922 + }, + "expense_publications":{ + "format":"double", + "type":"number", + "description":"Publications expenses", + "example":15678 + }, + "expense_profesional_fundraising":{ + "format":"double", + "type":"number", + "description":"Professional fundraising expenses", + "example":873753 + }, + "net_assets_eoy":{ + "format":"double", + "type":"number", + "description":"Net assets at the end of year", + "example":1058731 + }, + "assets_total":{ + "format":"double", + "type":"number", + "description":"Total assets", + "example":1096532 + }, + "other_expense":{ + "format":"double", + "type":"number", + "description":"Expenses not recorded elsewhere", + "example":0 + }, + "liabilities_total":{ + "format":"double", + "type":"number", + "description":"Total liabilities at the end of year", + "example":37801 + }, + "months_of_cash":{ + "type":"string", + "description":"A measurement of how long an organization can operate using cash and cash reserves at current expense levels. Calculated using the formula - Cash plus Savings divided by Total Expenses minus Depreciation divided by 12 months.", + "example":"8.1" + } + } + }, + "FinancialF990_2":{ + "type":"object", + "description":"IRS form 990 financials", + "properties":{ + "period_begin":{ + "format":"date-time", + "type":"string", + "description":"Start date of the FY that this current financial object covers", + "example":"2019-01-01T05:00:00Z" + }, + "period_end":{ + "format":"date-time", + "type":"string", + "description":"End date of the fiscal year that this current financial object covers", + "example":"2019-12-31T05:00:00Z" + }, + "membership_dues":{ + "format":"double", + "type":"number", + "description":"Revenue from recurring membership dues", + "example":73764 + }, + "revenue_contributions":{ + "format":"double", + "type":"number", + "description":"Contributions revenue, i.e. donations, in USD", + "example":87214 + }, + "revenue_govt_grants":{ + "format":"double", + "type":"number", + "description":"Government grants revenue, in USD", + "example":0 + }, + "revenue_program_services":{ + "format":"double", + "type":"number", + "description":"Revenue derived from fees for program services", + "example":1100117 + }, + "revenue_investments":{ + "format":"double", + "type":"number", + "description":"Revenue from investments", + "example":9513 + }, + "revenue_special_events":{ + "format":"double", + "type":"number", + "description":"Revenue from special events", + "example":0 + }, + "revenue_sales":{ + "format":"double", + "type":"number", + "description":"Revenue from sales of tangible items", + "example":0 + }, + "revenue_other":{ + "format":"double", + "type":"number", + "description":"Other revenue sources, not recorded elsewhere", + "example":0 + }, + "revenue_total":{ + "format":"double", + "type":"number", + "description":"Total FY revenue", + "example":1196844 + }, + "affiliate_net_payments":{ + "format":"double", + "type":"number", + "description":"Payments to affiliate organizations", + "example":1038494 + }, + "expense_program_services":{ + "format":"double", + "type":"number", + "description":"Expenses incurred from program services", + "example":1011531 + }, + "expense_administration":{ + "format":"double", + "type":"number", + "description":"Administration expenses", + "example":589718 + }, + "expense_fundraising":{ + "format":"double", + "type":"number", + "description":"Fundraising expenses", + "example":38989 + }, + "expenses_total":{ + "format":"double", + "type":"number", + "description":"Total FY expenses", + "example":1640238 + }, + "net_gain_loss":{ + "format":"double", + "type":"number", + "description":"Difference between total revenue and total expenses", + "example":-443394 + }, + "expense_accounting":{ + "format":"double", + "type":"number", + "description":"Accounting expenses", + "example":49383 + }, + "expense_advertising_promotion":{ + "format":"double", + "type":"number", + "description":"Advertising/promotional expenses", + "example":15678 + }, + "expense_info_technology":{ + "format":"double", + "type":"number", + "description":"IT expenses", + "example":88971 + }, + "expense_insurance":{ + "format":"double", + "type":"number", + "description":"Insurance expenses", + "example":32213 + }, + "expense_interest":{ + "format":"double", + "type":"number", + "description":"Interest expenses", + "example":436352 + }, + "expense_investment_management":{ + "format":"double", + "type":"number", + "description":"Investment management expenses", + "example":366732 + }, + "expense_legal":{ + "format":"double", + "type":"number", + "description":"Legal expenses", + "example":90500 + }, + "expense_pension_plan":{ + "format":"double", + "type":"number", + "description":"Pension plan expenses", + "example":16922 + }, + "expense_publications":{ + "format":"double", + "type":"number", + "description":"Publications expenses", + "example":15678 + }, + "expense_profesional_fundraising":{ + "format":"double", + "type":"number", + "description":"Professional fundraising expenses", + "example":873753 + }, + "assets_total":{ + "format":"double", + "type":"number", + "description":"Total assets", + "example":1096532 + }, + "unrestricted_net_assets":{ + "format":"double", + "type":"number", + "description":"Unrestricted new assets", + "example":1058731 + }, + "net_fixed_assets_LBE":{ + "format":"double", + "type":"number", + "description":"Net fixed assets (Land, Buildings, equipment)", + "example":323467 + }, + "net_assets_end_of_year":{ + "format":"double", + "type":"number", + "description":"Net assets at the end of year", + "example":1058731 + }, + "other_expense":{ + "format":"double", + "type":"number", + "description":"Expenses not recorded elsewhere", + "example":0 + }, + "notes_payable_mortgages":{ + "format":"double", + "type":"number", + "description":"total amount of secured mortgages and notes payable to unrelated third parties that are secured by the organization's assets", + "example":0 + }, + "liabilities_total":{ + "format":"double", + "type":"number", + "description":"Total liabilities at the end of year", + "example":37801 + }, + "months_of_cash":{ + "type":"string", + "description":"A measurement of how long an organization can operate using cash and cash reserves at current expense levels. Calculated using the formula - Cash plus Savings divided by Total Expenses minus Depreciation divided by 12 months.", + "example":"8.1" + } + } + }, + "FinancialF990_3":{ + "type":"object", + "description":"IRS form 990 financials", + "properties":{ + "period_begin":{ + "format":"date-time", + "type":"string", + "description":"Start date of the FY that this current financial object covers", + "example":"2019-01-01T05:00:00Z" + }, + "period_end":{ + "format":"date-time", + "type":"string", + "description":"End date of the fiscal year that this current financial object covers", + "example":"2019-12-31T05:00:00Z" + }, + "membership_dues":{ + "format":"double", + "type":"number", + "description":"Revenue from recurring membership dues", + "example":73764 + }, + "revenue_contributions":{ + "format":"double", + "type":"number", + "description":"Contributions revenue, i.e. donations, in USD", + "example":87214 + }, + "revenue_govt_grants":{ + "format":"double", + "type":"number", + "description":"Government grants revenue, in USD", + "example":0 + }, + "revenue_program_services":{ + "format":"double", + "type":"number", + "description":"Revenue derived from fees for program services", + "example":1100117 + }, + "revenue_investments":{ + "format":"double", + "type":"number", + "description":"Revenue from investments", + "example":9513 + }, + "revenue_special_events":{ + "format":"double", + "type":"number", + "description":"Revenue from special events", + "example":0 + }, + "revenue_sales":{ + "format":"double", + "type":"number", + "description":"Revenue from sales of tangible items", + "example":0 + }, + "revenue_other":{ + "format":"double", + "type":"number", + "description":"Other revenue sources, not recorded elsewhere", + "example":0 + }, + "revenue_total":{ + "format":"double", + "type":"number", + "description":"Total FY revenue", + "example":1196844 + }, + "affiliate_net_payments":{ + "format":"double", + "type":"number", + "description":"Payments to affiliate organizations", + "example":1038494 + }, + "expense_program_services":{ + "format":"double", + "type":"number", + "description":"Expenses incurred from program services", + "example":1011531 + }, + "expense_administration":{ + "format":"double", + "type":"number", + "description":"Administration expenses", + "example":589718 + }, + "expense_fundraising":{ + "format":"double", + "type":"number", + "description":"Fundraising expenses", + "example":38989 + }, + "expenses_total":{ + "format":"double", + "type":"number", + "description":"Total FY expenses", + "example":1640238 + }, + "net_gain_loss":{ + "format":"double", + "type":"number", + "description":"Difference between total revenue and total expenses", + "example":-443394 + }, + "expense_accounting":{ + "format":"double", + "type":"number", + "description":"Accounting expenses", + "example":49383 + }, + "expense_advertising_promotion":{ + "format":"double", + "type":"number", + "description":"Advertising/promotional expenses", + "example":15678 + }, + "expense_info_technology":{ + "format":"double", + "type":"number", + "description":"IT expenses", + "example":88971 + }, + "expense_insurance":{ + "format":"double", + "type":"number", + "description":"Insurance expenses", + "example":32213 + }, + "expense_interest":{ + "format":"double", + "type":"number", + "description":"Interest expenses", + "example":436352 + }, + "expense_investment_management":{ + "format":"double", + "type":"number", + "description":"Investment management expenses", + "example":366732 + }, + "expense_legal":{ + "format":"double", + "type":"number", + "description":"Legal expenses", + "example":90500 + }, + "expense_pension_plan":{ + "format":"double", + "type":"number", + "description":"Pension plan expenses", + "example":16922 + }, + "expense_publications":{ + "format":"double", + "type":"number", + "description":"Publications expenses", + "example":15678 + }, + "expense_profesional_fundraising":{ + "format":"double", + "type":"number", + "description":"Professional fundraising expenses", + "example":873753 + }, + "assets_total":{ + "format":"double", + "type":"number", + "description":"Total assets", + "example":1096532 + }, + "unrestricted_net_assets":{ + "format":"double", + "type":"number", + "description":"Unrestricted new assets", + "example":1058731 + }, + "net_fixed_assets_LBE":{ + "format":"double", + "type":"number", + "description":"Net fixed assets (Land, Buildings, equipment)", + "example":323467 + }, + "net_assets_end_of_year":{ + "format":"double", + "type":"number", + "description":"Net assets at the end of year", + "example":1058731 + }, + "other_expense":{ + "format":"double", + "type":"number", + "description":"Expenses not recorded elsewhere", + "example":0 + }, + "notes_payable_mortgages":{ + "format":"double", + "type":"number", + "description":"total amount of secured mortgages and notes payable to unrelated third parties that are secured by the organization's assets", + "example":0 + }, + "liabilities_total":{ + "format":"double", + "type":"number", + "description":"Total liabilities at the end of year", + "example":37801 + }, + "months_of_cash":{ + "type":"string", + "description":"A measurement of how long an organization can operate using cash and cash reserves at current expense levels. Calculated using the formula - Cash plus Savings divided by Total Expenses minus Depreciation divided by 12 months.", + "example":"8.1" + }, + "part_8_revenue":{ + "$ref":"#/components/schemas/PartVIII" + }, + "part_9_expenses":{ + "$ref":"#/components/schemas/PartIX" + }, + "part_10_balance_sheet":{ + "$ref":"#/components/schemas/PartX" + } + } + }, + "Financial990PF":{ + "type":"object", + "description":"IRS form 990-PF financials ", + "properties":{ + "investments_us_state_government":{ + "format":"double", + "type":"number", + "description":"Candid use only", + "example":892373 + }, + "period_begin":{ + "format":"date-time", + "type":"string", + "description":"Tax year begin date", + "example":"2017-08-01T04:00:00Z" + }, + "period_end":{ + "format":"date-time", + "type":"string", + "description":"Tax year end date", + "example":"2019-07-31T04:00:00Z" + }, + "cash_equivalent_investible_assets":{ + "format":"double", + "type":"number", + "description":"Cash—non-interest-bearing, Fair Market Value + Savings and temporary cash investments, Fair Market Value", + "example":3823794 + }, + "net_investment_income":{ + "format":"double", + "type":"number", + "description":"Net investment income", + "example":3983424 + }, + "adjusted_net_income":{ + "format":"double", + "type":"number", + "description":"Adjusted Net Income", + "example":4564354 + }, + "total_operating_expenses":{ + "format":"double", + "type":"number", + "description":"Total operating and administrative expenses", + "example":8689503 + }, + "contributions":{ + "format":"double", + "type":"number", + "description":"Contributions not included in 8a", + "example":678893 + }, + "total_expenses":{ + "format":"double", + "type":"number", + "description":"Total functional expenses", + "example":689233 + }, + "expense_accounting":{ + "format":"double", + "type":"number", + "description":"Accounting fees", + "example":767367 + }, + "expense_interest":{ + "format":"double", + "type":"number", + "description":"Interest expenses", + "example":588345 + }, + "expense_legal":{ + "format":"double", + "type":"number", + "description":"Legal fees", + "example":209348 + }, + "expense_professional_fees":{ + "format":"double", + "type":"number", + "description":"Other professional fees", + "example":88833 + }, + "expense_pension_plans":{ + "format":"double", + "type":"number", + "description":"Pension plans, employee benefits expenses", + "example":87573 + }, + "expense_publications":{ + "format":"double", + "type":"number", + "description":"Printing and publications expenses", + "example":0 + }, + "investments_us_state_govt":{ + "format":"double", + "type":"number", + "description":"Investments—U.S. and state government obligations", + "example":0 + }, + "investments_stocks":{ + "format":"double", + "type":"number", + "description":"Investments—corporate stock", + "example":4533 + }, + "investments_bonds":{ + "format":"double", + "type":"number", + "description":"Investments—corporate bonds", + "example":489579 + }, + "investments_other":{ + "format":"double", + "type":"number", + "description":"Investments—other", + "example":894584 + }, + "land_buildings_equipment":{ + "format":"double", + "type":"number", + "description":"Land, buildings, and equipment: basis", + "example":938083 + }, + "other_assets":{ + "format":"double", + "type":"number", + "description":"Other assets", + "example":943823 + }, + "total_assets":{ + "format":"double", + "type":"number", + "description":"Total assets", + "example":9387373 + }, + "total_liabilities":{ + "format":"double", + "type":"number", + "description":"Total liabilities", + "example":869590 + }, + "net_assets":{ + "format":"double", + "type":"number", + "description":"Total assets, Fair Market Value - Total liabilities, Book Value", + "example":75845 + }, + "income_total":{ + "format":"double", + "type":"number", + "description":"Total revenue - Current Year", + "example":29347485 + } + } + }, + "FinancialF990EZ":{ + "type":"object", + "description":"IRS form 990-EZ financials", + "properties":{ + "period_begin":{ + "type":"string", + "description":"Tax year begin date", + "example":2017 + }, + "period_end":{ + "type":"string", + "description":"Tax year end date", + "example":2019 + }, + "accounting_method":{ + "type":"string", + "description":"Accounting Method", + "example":"C" + }, + "organization_type":{ + "type":"string", + "description":"Tax-exempt status", + "example":"03" + }, + "date_last_modified":{ + "type":"string", + "description":"Candid use only", + "example":"Wednesday, July 7, 2021" + }, + "revenue_contributions":{ + "format":"double", + "type":"number", + "description":"Contributions, gifts, grants, and similar amounts received .", + "example":93474 + }, + "revenue_program_services":{ + "format":"double", + "type":"number", + "description":"Program service revenue including government fees and contracts", + "example":8374 + }, + "revenue_membership_dues":{ + "format":"double", + "type":"number", + "description":"Membership dues and assessments revenues", + "example":783489 + }, + "revenue_investments":{ + "format":"double", + "type":"number", + "description":"Investment income", + "example":83845 + }, + "revenue_sales_other":{ + "format":"double", + "type":"number", + "description":"Gain or (loss) from sale of assets other than inventory ", + "example":8769598 + }, + "revenue_special_events":{ + "format":"double", + "type":"number", + "description":"Net income or (loss) from gaming and fundraising events", + "example":94785 + }, + "revenue_sales_inventory":{ + "format":"double", + "type":"number", + "description":"Gross sales of inventory, less returns and allowances", + "example":849487 + }, + "revenue_sales":{ + "format":"double", + "type":"number", + "description":"Gross sales of inventory, less returns and allowances", + "example":973272 + }, + "revenue_other":{ + "format":"double", + "type":"number", + "description":"Total all other revenue", + "example":342345 + }, + "total_revenue":{ + "format":"double", + "type":"number", + "description":"Total revenue - Current Year", + "example":54523 + }, + "expense_grants":{ + "format":"double", + "type":"number", + "description":"Grants and similar amounts paid", + "example":56765 + }, + "expense_benefits":{ + "format":"double", + "type":"number", + "description":"Benefits paid to or for members", + "example":85748 + }, + "expense_salaries_employee_benefits":{ + "format":"double", + "type":"number", + "description":"Salaries, other compensation, and employee benefits", + "example":98393467 + }, + "expense_professional_fees":{ + "format":"double", + "type":"number", + "description":"Professional fees and other payments to independent contractors", + "example":435643 + }, + "expense_occupancy":{ + "format":"double", + "type":"number", + "description":"Occupancy, rent, utilities, and maintenance", + "example":0 + }, + "expense_printing_publications_postage":{ + "format":"double", + "type":"number", + "description":"Printing, publications, postage, and shipping", + "example":0 + }, + "expense_other":{ + "format":"double", + "type":"number", + "description":"Other expenses", + "example":0 + }, + "total_expenses":{ + "format":"double", + "type":"number", + "description":"Total functional expenses", + "example":0 + }, + "net_gain_loss":{ + "format":"double", + "type":"number", + "description":"Excess or (deficit) for the year", + "example":0 + }, + "other_changes":{ + "format":"double", + "type":"number", + "description":"Other changes in net assets or fund balances", + "example":0 + }, + "cash_savings_investments_boy":{ + "format":"double", + "type":"number", + "description":"Beginning of year cash, savings, and investments", + "example":0 + }, + "land_and_buidings_boy":{ + "format":"double", + "type":"number", + "description":"Beginning of year land and buildings assets", + "example":0 + }, + "other_assets_boy":{ + "format":"double", + "type":"number", + "description":"Beginning of year other assets", + "example":0 + }, + "total_assets_boy":{ + "format":"double", + "type":"number", + "description":"Beginning of year total assets", + "example":0 + }, + "total_liabilities_boy":{ + "format":"double", + "type":"number", + "description":"Beginning of year total liabilities", + "example":0 + }, + "net_assets_boy":{ + "format":"double", + "type":"number", + "description":"Net assets or fund balances at the beginning of the year", + "example":0 + }, + "cash_savings_investments_eoy":{ + "format":"double", + "type":"number", + "description":"End of year cash, savings, and investments", + "example":0 + }, + "land_and_buidings_eoy":{ + "format":"double", + "type":"number", + "description":"End of year land and buildings assets", + "example":0 + }, + "other_assets_eoy":{ + "format":"double", + "type":"number", + "description":"End of year other assets", + "example":0 + }, + "total_assets_eoy":{ + "format":"double", + "type":"number", + "description":"End of year total assets", + "example":0 + }, + "total_liabilities_eoy":{ + "format":"double", + "type":"number", + "description":"End of year total liabilities", + "example":0 + }, + "net_assets_eoy":{ + "format":"double", + "type":"number", + "description":"Net assets or fund balances at the end of the year", + "example":0 + }, + "part_1_revenue_expenses":{ + "$ref":"#/components/schemas/EZFinancialsPartI" + }, + "part_2_balance_sheet":{ + "$ref":"#/components/schemas/EZFinancialsPartII" + } + } + }, + "FinancialTrends":{ + "type":"object", + "description":"Financial Trends Analysis for 990 filers", + "properties":{ + "fiscal_year":{ + "type":"string", + "description":"The fiscal year as a number", + "example":"2019" + }, + "business_model_indicators":{ + "$ref":"#/components/schemas/Business_Model_Indicators" + }, + "capital_structure_indicators":{ + "$ref":"#/components/schemas/Capital_Structure_Indicators" + }, + "key_data_checks":{ + "$ref":"#/components/schemas/Key_Data_Checks" + } + } + }, + "Fin_Doc":{ + "type":"object", + "description":"IRS 990 document, possibly uploaded by the organization", + "properties":{ + "form990_name":{ + "type":"string", + "description":"File name document uploaded as", + "example":"2019 Form 990" + }, + "form990_year":{ + "type":"string", + "description":"Year file pertains to", + "example":"2019" + }, + "form990_url":{ + "type":"string", + "description":"URL to access this document", + "example":"https://pdf.guidestar.org/PDF_Images/2019/541/774/2019-541774039-202011259349301266-9.pdf" + }, + "form990_source":{ + "type":"string", + "description":"Source of document", + "example":"US IRS" + } + } + }, + "Form990T":{ + "type":"object", + "properties":{ + "form990t_name":{ + "type":"string", + "description":"The name of the file.", + "example":"2018 Form 990T" + }, + "form990t_url":{ + "type":"string", + "description":"URL for the organization's Form 990 T", + "example":"https://pdf.guidestar.org/PDF_Images/F990T/2015/131/837/2015-131837418-0d323c11-T.pdf" + } + } + }, + "FundingNeed":{ + "type":"object", + "deprecated":true, + "properties":{ + "funding_need":{ + "type":"string", + "description":"DEPRECATED", + "example":"" + }, + "amount_needed":{ + "type":"string", + "description":"DEPRECATED", + "example":"" + } + } + }, + "FundingSource":{ + "type":"object", + "deprecated":true, + "properties":{ + "funding_source":{ + "type":"string", + "description":"DEPRECATED", + "example":"" + }, + "funding_amount":{ + "type":"string", + "description":"DEPRECATED", + "example":"" + } + } + }, + "FinancialStatement":{ + "type":"object", + "properties":{ + "fiscal_year_begin":{ + "type":"string", + "description":"DEPRECATED", + "deprecated":true, + "example":"" + }, + "fiscal_year_end":{ + "type":"string", + "description":"When the fiscal year ends.", + "example":2017 + }, + "auditing_company":{ + "type":"string", + "description":"The company that audited the financials.", + "example":"KPMG" + }, + "doc_name":{ + "type":"string", + "description":"The name of the uploaded document", + "example":"Audited Financial Statements.pdf" + }, + "document_url":{ + "type":"string", + "description":"The url of the document", + "example":"https://www.guidestar.org/ViewEdoc.aspx?eDocId=6050448&approved=True" + } + } + }, + "AnnualReport":{ + "type":"object", + "properties":{ + "doc_name":{ + "type":"string", + "description":"The document's name.", + "example":"BMGF Annual Report 2019" + }, + "contents":{ + "type":"string", + "description":"DEPRECATED", + "deprecated":true, + "example":"" + }, + "year":{ + "type":"string", + "description":"The year the document is from.", + "example":2019 + }, + "url":{ + "type":"string", + "description":"The url for the document.", + "example":"https://www.guidestar.org/ViewEdoc.aspx?eDocId=6050447&approved=True" + } + } + }, + "Ratios":{ + "type":"object", + "properties":{ + "year":{ + "format":"int32", + "type":"integer", + "description":"The fiscal year.", + "example":2019 + }, + "months_of_cash":{ + "type":"string", + "description":"A measurement of how long an organization can operate using cash and cash reserves at current expense levels. Calculated using the formula: Cash plus Savings divided by Total Expenses minus Depreciation divided by 12 months.", + "example":7.37 + }, + "liquidity":{ + "type":"string", + "description":"The ratio of an organization's capacity to repay its current liabilities through cash and cash equivalents. Metric calculated using the 'Quick Ratio' (Cash + Savings + Short Term Investments + Accounts Receivable) / Total Liabilities.", + "example":15.54 + }, + "fringe_rate":{ + "type":"string", + "description":"The cost of employee benefits divided by the wages paid to employees. Calculated using the formula: Pensions plus Benefits plus Payroll Tax Totals divided by Current Compensation plus Total Wages.", + "example":8.4 + }, + "net_gain_loss":{ + "type":"string", + "description":"The amount of net gain or net loss.", + "example":1480973 + } + } + }, + "Person":{ + "type":"object", + "properties":{ + "name":{ + "type":"string", + "description":"The board member's first and last name.", + "example":"Bob Smith" + }, + "title":{ + "type":"string", + "description":"The board member's title.", + "example":"SECRETARY" + }, + "type":{ + "type":"array", + "items":{ + "type":"string", + "description":"The type of positions they have.", + "example":"Officer" + } + }, + "compensation":{ + "format":"double", + "type":"number", + "description":"The salary for the staff member's position.", + "example":500000 + }, + "related_compensation":{ + "format":"double", + "type":"number", + "description":"Salary from other related organizations.", + "example":100 + }, + "other_compensation":{ + "format":"double", + "type":"number", + "description":"Benefits provided by the organization.", + "example":20000 + }, + "hours":{ + "type":"string", + "description":"Hours spent on their position.", + "example":7 + }, + "benefits":{ + "type":"string", + "description":"DEPRECATED", + "deprecated":true, + "example":"" + } + } + }, + "BoardMember":{ + "type":"object", + "properties":{ + "name":{ + "type":"string", + "description":"The board member's first and last name.", + "example":"Bob Smith" + }, + "title":{ + "type":"string", + "description":"DEPRECATED", + "deprecated":true, + "example":"" + }, + "company":{ + "type":"string", + "description":"The company the board member works for.", + "example":"City of West Palm Beach, Housing and Community Development" + } + } + }, + "OrganizationDemographics":{ + "type":"object", + "deprecated":true, + "properties":{ + "total_board_members":{ + "format":"int32", + "type":"integer", + "description":"DEPRECATED" + }, + "total_fulltime_staff":{ + "format":"int32", + "type":"integer", + "description":"DEPRECATED" + }, + "total_parttime_staff":{ + "format":"int32", + "type":"integer", + "description":"DEPRECATED" + }, + "total_staff":{ + "format":"int32", + "type":"integer", + "description":"DEPRECATED" + }, + "total_senior_staff":{ + "format":"int32", + "type":"integer", + "description":"DEPRECATED" + }, + "tracks_staffboardvol_retention":{ + "type":"boolean", + "description":"DEPRECATED" + }, + "tracks_staffboard_income":{ + "type":"boolean", + "description":"DEPRECATED" + }, + "tracks_staffboard_age":{ + "type":"boolean", + "description":"DEPRECATED" + }, + "tracks_vendor_diversity":{ + "type":"boolean", + "description":"DEPRECATED" + }, + "has_diversity_committee":{ + "type":"boolean", + "description":"DEPRECATED" + }, + "has_diversity_manager":{ + "type":"boolean", + "description":"DEPRECATED" + }, + "diversity_manager_fulltime":{ + "type":"boolean", + "description":"DEPRECATED" + }, + "diversity_plan":{ + "type":"boolean", + "description":"DEPRECATED" + }, + "supports_diversity_via_other_methods":{ + "type":"boolean", + "description":"DEPRECATED" + }, + "equity_strategies":{ + "$ref":"#/components/schemas/EquityStrategy" + }, + "categories":{ + "type":"array", + "description":"DEPRECATED", + "deprecated":true, + "items":{ + "$ref":"#/components/schemas/DemographicsCategory" + } + } + } + }, + "DEI2Demographics":{ + "type":"object", + "properties":{ + "staff_level_totals":{ + "$ref":"#/components/schemas/StaffLevelTotals" + }, + "equity_strategies":{ + "$ref":"#/components/schemas/EquityStrategy" + }, + "categories":{ + "type":"array", + "items":{ + "$ref":"#/components/schemas/DEI2Category" + } + } + } + }, + "Contractor":{ + "type":"object", + "properties":{ + "name":{ + "type":"string", + "description":"The contractors name.", + "example":"RIZ CONSULTING" + }, + "address":{ + "type":"string", + "description":"The contractors address.", + "example":"123 Street Richmond VA 23223" + }, + "compensation":{ + "type":"string", + "description":"The contractors compensation.", + "example":30916528 + }, + "service_type":{ + "type":"string", + "description":"The type of service the contractor provided.", + "example":"STRATEGY EXECUTION" + } + } + }, + "SeniorStaff":{ + "type":"object", + "deprecated":true, + "properties":{ + "name":{ + "type":"string", + "description":"DEPRECATED", + "example":"" + }, + "title":{ + "type":"string", + "description":"DEPRECATED", + "example":"" + }, + "experience":{ + "type":"string", + "description":"DEPRECATED", + "example":"" + } + } + }, + "OtherStaff":{ + "deprecated":true, + "type":"object", + "properties":{ + "name":{ + "type":"string", + "description":"DEPRECATED", + "example":"" + }, + "title":{ + "type":"string", + "description":"DEPRECATED", + "example":"" + }, + "type":{ + "type":"string", + "description":"DEPRECATED", + "example":"" + } + } + }, + "Accreditation":{ + "type":"object", + "deprecated":true, + "properties":{ + "accreditation":{ + "type":"string", + "description":"DEPRECATED", + "example":"" + }, + "year":{ + "type":"string", + "description":"DEPRECATED", + "example":"" + } + } + }, + "OrganizationType":{ + "type":"object", + "properties":{ + "organization_type":{ + "type":"string", + "description":"The type of organization it is.", + "example":"A private foundation (30% deductibility limitation, generally)." + }, + "deductibility_limitation":{ + "type":"string", + "description":"The amount you can deduct from your taxes for donations towards this organization.", + "example":"30% (generally)" + }, + "deductibility_status_description":{ + "type":"string", + "description":"The code for the type of organization.", + "example":"PF" + } + } + }, + "ParentOrganization":{ + "type":"object", + "properties":{ + "ein":{ + "type":"string", + "description":"The parent organizations EIN.", + "example":"13-1837418" + }, + "organization_name":{ + "type":"string", + "description":"The parent organizations name.", + "example":"Candid" + }, + "group_exemption":{ + "type":"string", + "description":"The exemption code.", + "example":0 + } + } + }, + "MetricYear":{ + "type":"object", + "properties":{ + "year":{ + "format":"int32", + "type":"integer", + "description":"The year for the metric.", + "example":2019 + }, + "value":{ + "format":"double", + "type":"number", + "description":"The value for the metric.", + "example":4600000000 + } + } + }, + "PartVIII":{ + "type":"object", + "description":"IRS 990 form Part VIII dealing with revenue", + "properties":{ + "federated_campaigns":{ + "format":"double", + "type":"number", + "description":"revenue from federated campaigns", + "example":0 + }, + "membership_dues":{ + "format":"double", + "type":"number", + "description":"revenue from membership dues", + "example":0 + }, + "fundraising_events":{ + "format":"double", + "type":"number", + "description":"revenue from fundraising events", + "example":0 + }, + "related_orgs":{ + "format":"double", + "type":"number", + "description":"revenue from related orgs", + "example":0 + }, + "government_grants":{ + "format":"double", + "type":"number", + "description":"revenue from government grants", + "example":0 + }, + "contributions_other":{ + "format":"double", + "type":"number", + "description":"revenue from other contributions", + "example":1000000 + }, + "contributions_noncash":{ + "format":"double", + "type":"number", + "description":"revenue from other noncash contributions", + "example":0 + }, + "contributions_all":{ + "format":"double", + "type":"number", + "description":"total revenue from other contributions", + "example":1000000 + }, + "service_revenue":{ + "format":"double", + "type":"number", + "description":"revenue from services", + "example":1000000 + }, + "income_investment":{ + "format":"double", + "type":"number", + "description":"revenue from income investments", + "example":1000000 + }, + "income_bonds":{ + "format":"double", + "type":"number", + "description":"revenue from income bonds", + "example":0 + }, + "royalties":{ + "format":"double", + "type":"number", + "description":"revenue from royalties", + "example":0 + }, + "rents_real":{ + "format":"double", + "type":"number", + "description":"Gross Rent-real", + "example":100000 + }, + "rents_personal":{ + "format":"double", + "type":"number", + "description":"Gross Rent -personal", + "example":0 + }, + "rent_expenses_real":{ + "format":"double", + "type":"number", + "description":"Real rental expense", + "example":100000 + }, + "rent_expenses_personal":{ + "format":"double", + "type":"number", + "description":"Personal rental expense", + "example":0 + }, + "rent_income_real":{ + "format":"double", + "type":"number", + "description":"Rental Income-real", + "example":100000 + }, + "rent_income_personal":{ + "format":"double", + "type":"number", + "description":"Rental Income-personal", + "example":100000 + }, + "net_rental":{ + "format":"double", + "type":"number", + "description":"Net Rental Income", + "example":100000 + }, + "gross_securities":{ + "format":"double", + "type":"number", + "description":"Gross sales of Assets-securities", + "example":100000 + }, + "gross_other":{ + "format":"double", + "type":"number", + "description":"Gross sales of assets-other", + "example":0 + }, + "cost_securities":{ + "format":"double", + "type":"number", + "description":"Less cost of sale of assets-securities", + "example":100000 + }, + "cost_other":{ + "format":"double", + "type":"number", + "description":"Less cost of sales of assets-other", + "example":10000 + }, + "gain_securities":{ + "format":"double", + "type":"number", + "description":"Gain or loss on sale of assets-securities", + "example":10000 + }, + "gain_other":{ + "format":"double", + "type":"number", + "description":"Gain or loss on sale of assets-other", + "example":10000 + }, + "net_sales":{ + "format":"double", + "type":"number", + "description":"net revenue from sales", + "example":10000000 + }, + "contributions":{ + "format":"double", + "type":"number", + "description":"revenue from contributions", + "example":100000 + }, + "gross_special":{ + "format":"double", + "type":"number", + "description":"gross special revenue", + "example":100000 + }, + "direct_expenses":{ + "format":"double", + "type":"number", + "description":"direct expenses for the organization", + "example":100000 + }, + "net_special":{ + "format":"double", + "type":"number", + "description":"net special revenue", + "example":1000000 + }, + "gaming_income":{ + "format":"double", + "type":"number", + "description":"Gross income from gaming", + "example":100000 + }, + "gaming_expenses":{ + "format":"double", + "type":"number", + "description":"Less expenses from gaming", + "example":1000000 + }, + "gaming_net":{ + "format":"double", + "type":"number", + "description":"Net income from gaming", + "example":100000 + }, + "gross_sales":{ + "format":"double", + "type":"number", + "description":"gross revenue from sales", + "example":1000000 + }, + "cost_goods":{ + "format":"double", + "type":"number", + "description":"cost of goods", + "example":1000000 + }, + "gross_profit":{ + "format":"double", + "type":"number", + "description":"gross profit earned", + "example":100000 + }, + "revenue_other":{ + "format":"double", + "type":"number", + "description":"other revenue", + "example":100000 + }, + "revenue_total":{ + "format":"double", + "type":"number", + "description":"total revenue", + "example":100000 + }, + "service_description_a":{ + "type":"string", + "description":"first specially declared revenue-providing service", + "example":"PRODUCT REVENUE" + }, + "service_code_a":{ + "format":"double", + "type":"number", + "description":"Program service code (a)", + "example":10000000 + }, + "service_description_b":{ + "type":"string", + "description":"second specially declared revenue-providing service", + "example":"FUNDING INFO. NETWORK" + }, + "service_amount_a":{ + "format":"double", + "type":"number", + "description":"revenue from service a", + "example":1000000 + }, + "service_code_b":{ + "format":"double", + "type":"number", + "description":"Program service code (b)", + "example":100000 + }, + "service_amount_b":{ + "format":"double", + "type":"number", + "description":"revenue from service b", + "example":1000000 + }, + "service_description_c":{ + "type":"string", + "description":"third specially declared revenue-providing service", + "example":"SPECIAL REVENUE SERVICE" + }, + "service_code_c":{ + "format":"double", + "type":"number", + "description":"Program service code (c)", + "example":100000 + }, + "service_amount_c":{ + "format":"double", + "type":"number", + "description":"revenue from service c", + "example":100000 + }, + "service_description_d":{ + "type":"string", + "description":"fourth specially declared revenue-providing service", + "example":"ANOTHER SPECIAL REVENUE SERVICE" + }, + "service_code_d":{ + "format":"double", + "type":"number", + "description":"Program service code (d)", + "example":100000 + }, + "service_amount_d":{ + "format":"double", + "type":"number", + "description":"revenue from service d", + "example":100000 + }, + "service_description_e":{ + "type":"string", + "description":"fifth specially declared revenue-providing service", + "example":"YET ANOTHER SPECIAL REVENUE SERVICE" + }, + "service_code_e":{ + "format":"double", + "type":"number", + "description":"Program service code (e)", + "example":100000 + }, + "service_amount_e":{ + "format":"double", + "type":"number", + "description":"revenue from service e", + "example":100000 + }, + "service_description_f":{ + "type":"string", + "description":"sixth specially declared revenue-providing service", + "example":"A FINAL SPECIAL REVENUE SERVICE" + }, + "service_code_f":{ + "format":"double", + "type":"number", + "description":"Program service code (f)", + "example":100000 + }, + "service_amount_f":{ + "format":"double", + "type":"number", + "description":"revenue from service f", + "example":100000 + } + } + }, + "PartIX":{ + "type":"object", + "description":"IRS 990 form Part IX dealing with expenses", + "properties":{ + "grants_orgs_us":{ + "format":"double", + "type":"number", + "description":"expenses from grants issued to US organizations", + "example":10000000 + }, + "grants_individuals_us":{ + "format":"double", + "type":"number", + "description":"expenses from grants issued to US individuals", + "example":100000 + }, + "grants_orgs_non_us":{ + "format":"double", + "type":"number", + "description":"expenses from grants issued to non US organizations", + "example":100000 + }, + "benefits_total":{ + "format":"double", + "type":"number", + "description":"total expenses from benefits programs", + "example":10000000 + }, + "compensation_current":{ + "format":"double", + "type":"number", + "description":"current expenses from employee compensation", + "example":10000000 + }, + "compensation_disqualified":{ + "format":"double", + "type":"number", + "description":"expenses from disqualified employee compensation", + "example":1000000 + }, + "wages_total":{ + "format":"double", + "type":"number", + "description":"total expenses from employee wages", + "example":100000000 + }, + "pension_total":{ + "format":"double", + "type":"number", + "description":"expenses from employee pensions", + "example":100000 + }, + "employee_benefits_total":{ + "format":"double", + "type":"number", + "description":"total expenses from employee benefits", + "example":1000000 + }, + "payroll_tax_total":{ + "format":"double", + "type":"number", + "description":"total expenses from tax on payroll", + "example":100000 + }, + "fees_management":{ + "format":"double", + "type":"number", + "description":"expenses from management fees", + "example":100000 + }, + "fees_legal":{ + "format":"double", + "type":"number", + "description":"expenses from legal fees", + "example":100000 + }, + "accounting_fees_total":{ + "format":"double", + "type":"number", + "description":"total expenses from accounting fees", + "example":100000 + }, + "fees_lobbying":{ + "format":"double", + "type":"number", + "description":"expenses from lobbying fees", + "example":100000 + }, + "fundraising_total":{ + "format":"double", + "type":"number", + "description":"total fundraising expenses", + "example":100000 + }, + "fees_investments":{ + "format":"double", + "type":"number", + "description":"expenses from investment fees", + "example":100000 + }, + "fees_other":{ + "format":"double", + "type":"number", + "description":"expenses from other fees", + "example":10000000 + }, + "ads_promo":{ + "format":"double", + "type":"number", + "description":"expenses from promotional advertising", + "example":100000 + }, + "office":{ + "format":"double", + "type":"number", + "description":"office expenses", + "example":1000000 + }, + "information_technology":{ + "format":"double", + "type":"number", + "description":"IT expenses", + "example":1000000 + }, + "expense_royalties":{ + "format":"double", + "type":"number", + "description":"expenses from royalties", + "example":100000 + }, + "occupancy_total":{ + "format":"double", + "type":"number", + "description":"Occupancy", + "example":1000000 + }, + "travel_total":{ + "format":"double", + "type":"number", + "description":"total expenses from travel", + "example":1000000 + }, + "entertain_officials":{ + "format":"double", + "type":"number", + "description":"Payment of travel for officials", + "example":100000 + }, + "meetings_total":{ + "format":"double", + "type":"number", + "description":"total expenses from meetings", + "example":100000 + }, + "interest_total":{ + "format":"double", + "type":"number", + "description":"total expenses from interest accrued", + "example":100000 + }, + "payments":{ + "format":"double", + "type":"number", + "description":"expenses from payments", + "example":100000 + }, + "depreciation_total":{ + "format":"double", + "type":"number", + "description":"Depreciation, depletion, and amortization", + "example":100000 + }, + "insurance":{ + "format":"double", + "type":"number", + "description":"expenses from insurance", + "example":100000 + }, + "expense_a_total":{ + "format":"double", + "type":"number", + "description":"expenses from specially declared source a", + "example":1000000 + }, + "expense_b_total":{ + "format":"double", + "type":"number", + "description":"expenses from specially declared source b", + "example":100000 + }, + "expense_c_total":{ + "format":"double", + "type":"number", + "description":"expenses from specially declared source c", + "example":10000000 + }, + "expense_d_total":{ + "format":"double", + "type":"number", + "description":"expenses from specially declared source d", + "example":1000000 + }, + "expense_e_total":{ + "format":"double", + "type":"number", + "description":"expenses from specially declared source e", + "example":1000000 + }, + "expenses_total":{ + "format":"double", + "type":"number", + "description":"total expenses", + "example":1000000000 + }, + "total_program_services":{ + "format":"double", + "type":"number", + "description":"total expenses from program services", + "example":100000 + }, + "total_management":{ + "format":"double", + "type":"number", + "description":"total management expenses", + "example":100000 + }, + "total_fundraising":{ + "format":"double", + "type":"number", + "description":"total fundraising expenses", + "example":100000 + }, + "expense_joint_total":{ + "format":"double", + "type":"number", + "description":"total joint expenses", + "example":100000 + }, + "joint_services":{ + "format":"double", + "type":"number", + "description":"expenses from joint services", + "example":100000 + }, + "joint_general":{ + "format":"double", + "type":"number", + "description":"general joint expenses", + "example":100000 + }, + "joint_fundraising":{ + "format":"double", + "type":"number", + "description":"joint fundraising expenses", + "example":100000 + }, + "all_other_expenses":{ + "format":"double", + "type":"number", + "description":"expenses from all other sources", + "example":1000000 + }, + "expense_a_description":{ + "type":"string", + "description":"first specially declared source of expense", + "example":"SALES TAX EXPENSE" + }, + "expense_b_description":{ + "type":"string", + "description":"second specially declared source of expense", + "example":"REPAIRS AND MAINTENANCE" + }, + "expense_c_description":{ + "type":"string", + "description":"third specially declared source of expense", + "example":"RECRUITMENT COSTS" + }, + "expense_d_description":{ + "type":"string", + "description":"fourth specially declared source of expense", + "example":"SPECIAL EXPENSE SOURCE" + } + } + }, + "PartX":{ + "type":"object", + "description":"IRS 990 form Part X, Balance Sheet", + "properties":{ + "cash_boy":{ + "format":"double", + "type":"number", + "description":"beginning of year cash", + "example":1000000 + }, + "cash_eoy":{ + "format":"double", + "type":"number", + "description":"end of year cash", + "example":1000000 + }, + "savings_boy":{ + "format":"double", + "type":"number", + "description":"beginning of year savings", + "example":1000000 + }, + "savings_eoy":{ + "format":"double", + "type":"number", + "description":"end of year savings", + "example":10000000 + }, + "pledges_grants_boy":{ + "format":"double", + "type":"number", + "description":"Net pledges and grants receivable: beginning of year", + "example":100000 + }, + "pledges_grants_eoy":{ + "format":"double", + "type":"number", + "description":"Net pledges and grants receivable: end of year", + "example":1000000 + }, + "accounts_receivable_boy":{ + "format":"double", + "type":"number", + "description":"beginning of year accounts receivable", + "example":10000000 + }, + "accounts_receivable_eoy":{ + "format":"double", + "type":"number", + "description":"end of year accounts receivable", + "example":10000000 + }, + "qualified_receivable_boy":{ + "format":"double", + "type":"number", + "description":"beginning of year qualified receivable", + "example":1000000 + }, + "qualified_receivable_eoy":{ + "format":"double", + "type":"number", + "description":"end of year qualified receivable", + "example":1000000 + }, + "disqualified_receivable_boy":{ + "format":"double", + "type":"number", + "description":"beginning of year disqualified receivable", + "example":10000000 + }, + "disqualified_receivable_eoy":{ + "format":"double", + "type":"number", + "description":"end of year disqualified receivable", + "example":100000000 + }, + "loans_receivable_boy":{ + "format":"double", + "type":"number", + "description":"beginning of year loans receivable", + "example":10000000 + }, + "loans_receivable_eoy":{ + "format":"double", + "type":"number", + "description":"end of year loans receivable", + "example":10000000 + }, + "inventory_boy":{ + "format":"double", + "type":"number", + "description":"beginning of year inventory", + "example":10000000 + }, + "inventory_eoy":{ + "format":"double", + "type":"number", + "description":"end of year inventory", + "example":10000000 + }, + "prepaid_boy":{ + "format":"double", + "type":"number", + "description":"beginning of year prepaid", + "example":1000000 + }, + "prepaid_eoy":{ + "format":"double", + "type":"number", + "description":"end of year prepaid", + "example":1000000 + }, + "lbe_base":{ + "format":"double", + "type":"number", + "description":"Land, buildings, and equipment: cost basis", + "example":1000000 + }, + "less_depreciation":{ + "format":"double", + "type":"number", + "description":"Less: accumulated depreciation", + "example":10000000 + }, + "lbe_boy":{ + "format":"double", + "type":"number", + "description":"Land and buildings BOY", + "example":1000000 + }, + "lbe_eoy":{ + "format":"double", + "type":"number", + "description":"Land and buildings EOY", + "example":10000000 + }, + "public_securities_boy":{ + "format":"double", + "type":"number", + "description":"beginning of year public securities", + "example":10000000 + }, + "public_securities_eoy":{ + "format":"double", + "type":"number", + "description":"end of year public securities", + "example":1000000 + }, + "other_securities_boy":{ + "format":"double", + "type":"number", + "description":"beginning of year other securities", + "example":1000000 + }, + "other_securities_eoy":{ + "format":"double", + "type":"number", + "description":"end ofyear other securities", + "example":1000000 + }, + "investment_programs_boy":{ + "format":"double", + "type":"number", + "description":"beginning of year investment programs", + "example":1000000 + }, + "investment_programs_eoy":{ + "format":"double", + "type":"number", + "description":"end of year investment programs", + "example":10000000 + }, + "intangible_assets_boy":{ + "format":"double", + "type":"number", + "description":"beginning of year intangible assets", + "example":1000000 + }, + "intangible_assets_eoy":{ + "format":"double", + "type":"number", + "description":"end of year intangible assets", + "example":10000000 + }, + "other_assets_boy":{ + "format":"double", + "type":"number", + "description":"beginning of year other assets", + "example":1000000 + }, + "other_assets_eoy":{ + "format":"double", + "type":"number", + "description":"end of year other assets", + "example":1000000 + }, + "assets_total_boy":{ + "format":"double", + "type":"number", + "description":"beginning of year total assets", + "example":1000000 + }, + "assets_total_eoy":{ + "format":"double", + "type":"number", + "description":"end of year total asstes", + "example":10000000 + }, + "accounts_payable_boy":{ + "format":"double", + "type":"number", + "description":"beginning of year accounts payable", + "example":10000000 + }, + "accounts_payable_eoy":{ + "format":"double", + "type":"number", + "description":"end of year accounts payable", + "example":1000000 + }, + "grants_payable_boy":{ + "format":"double", + "type":"number", + "description":"beginning of year grants payable", + "example":1000000 + }, + "grants_payable_eoy":{ + "format":"double", + "type":"number", + "description":"end of year grants payable", + "example":1000000 + }, + "deferred_revenue_boy":{ + "format":"double", + "type":"number", + "description":"beginning of year deferred revenue", + "example":1000000 + }, + "deferred_revenue_eoy":{ + "format":"double", + "type":"number", + "description":"end of year deferred revenue", + "example":10000000 + }, + "tax_exempt_bonds_boy":{ + "format":"double", + "type":"number", + "description":"beginning of year tax exempt bonds", + "example":10000000 + }, + "tax_exempt_bonds_eoy":{ + "format":"double", + "type":"number", + "description":"end of year tax exempt bonds", + "example":1000000 + }, + "escrow_liability_boy":{ + "format":"double", + "type":"number", + "description":"beginning of year escrow liability", + "example":100000 + }, + "escrow_liability_eoy":{ + "format":"double", + "type":"number", + "description":"end of year escrow liability", + "example":1000000 + }, + "payable_officiers_boy":{ + "format":"double", + "type":"number", + "description":"beginning of year payable officiers", + "example":1000000 + }, + "payable_officiers_eoy":{ + "format":"double", + "type":"number", + "description":"end of year payable officiers", + "example":100000 + }, + "secured_notes_payable_boy":{ + "format":"double", + "type":"number", + "description":"beginning of year secured notes payable", + "example":10000 + }, + "secured_notes_payable_eoy":{ + "format":"double", + "type":"number", + "description":"end of year secured notes payable", + "example":100000 + }, + "unsecured_notes_payable_boy":{ + "format":"double", + "type":"number", + "description":"beginning of year unsecured notes payable", + "example":100000 + }, + "unsecured_notes_payable_eoy":{ + "format":"double", + "type":"number", + "description":"end of year unsecured notes payable", + "example":100000 + }, + "liability_other_boy":{ + "format":"double", + "type":"number", + "description":"beginning of year other liability", + "example":1000000 + }, + "liability_other_eoy":{ + "format":"double", + "type":"number", + "description":"end of year other liability", + "example":10000 + }, + "liability_total_boy":{ + "format":"double", + "type":"number", + "description":"beginning of year total liability", + "example":100000000 + }, + "liability_total_eoy":{ + "format":"double", + "type":"number", + "description":"end of year total liability", + "example":10000000 + }, + "unrestricted_boy":{ + "format":"double", + "type":"number", + "description":"Unrestricted net assets: beginning of year", + "example":100000 + }, + "unrestricted_eoy":{ + "format":"double", + "type":"number", + "description":"Unrestricted net assets: end of year", + "example":1000000 + }, + "temporarily_restricted_boy":{ + "format":"double", + "type":"number", + "description":"Temporarily restricted net assets: Beginning of year", + "example":1000000 + }, + "temporarily_restricted_eoy":{ + "format":"double", + "type":"number", + "description":"Temporarily restricted net assets: End of year", + "example":1000000 + }, + "permanently_restricted_boy":{ + "format":"double", + "type":"number", + "description":"Permanently restricted net assets: Beginning of year", + "example":1000000 + }, + "permanently_restricted_eoy":{ + "format":"double", + "type":"number", + "description":"Permanently restricted net assets: End of year", + "example":1000000 + }, + "restricted_boy":{ + "format":"double", + "type":"number", + "description":"Temporarily restricted net assets: Beginning of year + Permanently restricted net assets: Beginning of year", + "example":100000 + }, + "restricted_eoy":{ + "format":"double", + "type":"number", + "description":"Temporarily restricted net assets: End of year + Permanently restricted net assets: Beginning of year", + "example":1000000 + }, + "capital_boy":{ + "format":"double", + "type":"number", + "description":"beginning of year capital", + "example":100000 + }, + "capital_eoy":{ + "format":"double", + "type":"number", + "description":"end of year capital", + "example":1000000 + }, + "paid_in_boy":{ + "format":"double", + "type":"number", + "description":"Paid-in or capital surplus, or land, building, or equipment fund: beginning of year", + "example":10000 + }, + "paid_in_eoy":{ + "format":"double", + "type":"number", + "description":"Paid-in or capital surplus, or land, building, or equipment fund: end of year", + "example":100000 + }, + "retained_boy":{ + "format":"double", + "type":"number", + "description":"Retained earnings, endowment, accumulated income, or other funds: beginning of year", + "example":100000 + }, + "retained_eoy":{ + "format":"double", + "type":"number", + "description":"Retained earnings, endowment, accumulated income, or other funds: end of year", + "example":100000 + }, + "net_total_boy":{ + "format":"double", + "type":"number", + "description":"beginning of year net total", + "example":100000000 + }, + "net_total_eoy":{ + "format":"double", + "type":"number", + "description":"end of year net total", + "example":100000000 + }, + "balances_boy":{ + "format":"double", + "type":"number", + "description":"beginning of year balances", + "example":10000000 + }, + "balances_eoy":{ + "format":"double", + "type":"number", + "description":"end of year balances", + "example":10000000 + } + } + }, + "EZFinancialsPartI":{ + "type":"object", + "description":"IRS Form 990 EZ Financials Part I, Revenue, Expenses, and Changes in Net Assets or Fund Balances", + "properties":{ + "contributions_total":{ + "format":"double", + "type":"number", + "description":"total contributions", + "example":1000000 + }, + "service_revenue":{ + "format":"double", + "type":"number", + "description":"service revenue", + "example":1000000 + }, + "membership_dues":{ + "format":"double", + "type":"number", + "description":"revenue from membership dues", + "example":100000 + }, + "income_investments":{ + "format":"double", + "type":"number", + "description":"revenue from income investments", + "example":100000 + }, + "gross_other":{ + "format":"double", + "type":"number", + "description":"gross revenue from other sources", + "example":1000000 + }, + "cost_other":{ + "format":"double", + "type":"number", + "description":"Less cost of sales of assets- other", + "example":1000000 + }, + "gain_other":{ + "format":"double", + "type":"number", + "description":"Gain or loss on sale of assets-other", + "example":1000000 + }, + "gross_gaming":{ + "format":"double", + "type":"number", + "description":"gross gaming revenue", + "example":1000000 + }, + "gross_fundraising":{ + "format":"double", + "type":"number", + "description":"gross fundraising revenue", + "example":100000 + }, + "gross_special":{ + "format":"double", + "type":"number", + "description":"gross special revenue", + "example":100000 + }, + "direct_expenses":{ + "format":"double", + "type":"number", + "description":"direct expenses", + "example":1000000 + }, + "net_special":{ + "format":"double", + "type":"number", + "description":"net special revenue", + "example":100000 + }, + "gross_sales":{ + "format":"double", + "type":"number", + "description":"gross revenue from sales", + "example":100000 + }, + "cost_goods":{ + "format":"double", + "type":"number", + "description":"cost of goods", + "example":10000 + }, + "gross_profit":{ + "format":"double", + "type":"number", + "description":"gross profit", + "example":100000 + }, + "revenue_other":{ + "format":"double", + "type":"number", + "description":"revenue from other sources", + "example":1000000 + }, + "revenue_total":{ + "format":"double", + "type":"number", + "description":"total revenue", + "example":1000000000 + }, + "grants_total":{ + "format":"double", + "type":"number", + "description":"total grants paid", + "example":10000 + }, + "benefits_total":{ + "format":"double", + "type":"number", + "description":"total benefits paid", + "example":100000 + }, + "compensation_total":{ + "format":"double", + "type":"number", + "description":"total compensation expenses", + "example":100000 + }, + "fundraising_total":{ + "format":"double", + "type":"number", + "description":"total fundraising expenses", + "example":1000000 + }, + "occupancy_total":{ + "format":"double", + "type":"number", + "description":"total expenses from occupancy, rent, utilities, and maintenance", + "example":100000 + }, + "printing_total":{ + "format":"double", + "type":"number", + "description":"total printing expenses", + "example":100000 + }, + "other_expenses_total":{ + "format":"double", + "type":"number", + "description":"total expenses from other sources", + "example":1000000 + }, + "functional_expenses_total":{ + "format":"double", + "type":"number", + "description":"total functional expenses", + "example":1000000 + }, + "year_excess":{ + "format":"double", + "type":"number", + "description":"excess (or deficit) for the year", + "example":10000000 + }, + "net_assets_boy":{ + "format":"double", + "type":"number", + "description":"beginning of year net assets", + "example":100000 + }, + "assets_change":{ + "format":"double", + "type":"number", + "description":"changes in assets", + "example":100000 + }, + "net_assets_eoy":{ + "format":"double", + "type":"number", + "description":"end of year net assets", + "example":100000 + } + } + }, + "EZFinancialsPartII":{ + "type":"object", + "description":"IRS Form 990 EZ Financials Part II, Balance Sheet", + "properties":{ + "cash_boy":{ + "format":"double", + "type":"number", + "description":"beginning of year cash", + "example":10000000 + }, + "lbe_boy":{ + "format":"double", + "type":"number", + "description":"beginning of year land and buildings", + "example":100000 + }, + "assets_other_boy":{ + "format":"double", + "type":"number", + "description":"beginning of year other assets", + "example":1000000 + }, + "assets_total_boy":{ + "format":"double", + "type":"number", + "description":"beginning of year total assets", + "example":10000000 + }, + "liability_total_boy":{ + "format":"double", + "type":"number", + "description":"beginning of year total liability", + "example":1000000 + }, + "net_total_boy":{ + "format":"double", + "type":"number", + "description":"beginning of year net total", + "example":100000 + }, + "cash_eoy":{ + "format":"double", + "type":"number", + "description":"end of year cash", + "example":100000 + }, + "lbe_eoy":{ + "format":"double", + "type":"number", + "description":"end of year land and buildings", + "example":100000 + }, + "assets_other_eoy":{ + "format":"double", + "type":"number", + "description":"end of year other assets", + "example":1000000 + }, + "assets_total_eoy":{ + "format":"double", + "type":"number", + "description":"end of year total assets", + "example":1000000 + }, + "liability_total_eoy":{ + "format":"double", + "type":"number", + "description":"end of year total liability", + "example":100000 + }, + "net_total_eoy":{ + "format":"double", + "type":"number", + "description":"end of year net total", + "example":1000000 + } + } + }, + "Business_Model_Indicators":{ + "type":"object", + "description":"list of business model indicators enumerated below", + "properties":{ + "profitability":{ + "$ref":"#/components/schemas/Profitability" + }, + "revenue_composition":{ + "$ref":"#/components/schemas/Revenue_Composition" + }, + "expense_composition":{ + "$ref":"#/components/schemas/Expense_Composition" + }, + "full_cost_components":{ + "$ref":"#/components/schemas/Full_Cost_Components" + } + } + }, + "Capital_Structure_Indicators":{ + "type":"object", + "description":"list of capital structure indicators enumerated below", + "properties":{ + "liquidity":{ + "$ref":"#/components/schemas/Liquidity" + }, + "balance_sheet_composition":{ + "$ref":"#/components/schemas/Balance_Sheet_Composition" + } + } + }, + "Key_Data_Checks":{ + "type":"object", + "description":"list of key data checks enumerated below", + "properties":{ + "data_check_errors":{ + "type":"boolean", + "description":"presence of data check errors", + "example":false + } + } + }, + "EquityStrategy":{ + "type":"object", + "description":"list of equity strategy items enumerated below", + "properties":{ + "data_compensation":{ + "type":"boolean", + "description":"presence of compensation information", + "example":true + }, + "data_disparities":{ + "type":"boolean", + "description":"presence of data disparities information", + "example":true + }, + "data_root_cause":{ + "type":"boolean", + "description":"presence of root cause information", + "example":true + }, + "data_programming_goals":{ + "type":"boolean", + "description":"presence of programming goals information", + "example":true + }, + "data_feedback":{ + "type":"boolean", + "description":"presence of feedback information", + "example":true + }, + "data_demographics":{ + "type":"boolean", + "description":"presence of demographics information", + "example":true + }, + "data_strategic_plan":{ + "type":"boolean", + "description":"presence of strategic plan information", + "example":true + }, + "policy_standards":{ + "type":"boolean", + "description":"presence of policy standards information", + "example":true + }, + "policy_promotion":{ + "type":"boolean", + "description":"presence of promotion policy information", + "example":true + }, + "policy_evaluation":{ + "type":"boolean", + "description":"presence of evaluation policy information", + "example":true + }, + "policy_community":{ + "type":"boolean", + "description":"presence of community policy information", + "example":true + }, + "policy_leadership":{ + "type":"boolean", + "description":"presence of leadership policy information", + "example":true + }, + "policy_satisfaction":{ + "type":"boolean", + "description":"presence of satisfaction policy information", + "example":true + }, + "policy_equity":{ + "type":"boolean", + "description":"presence of equity policy information", + "example":true + }, + "equity_strategy_last_modified":{ + "type":"string", + "description":"equity strategy section's last modified date for the organization", + "example":"07/16/2020" + } + } + }, + "DemographicsCategory":{ + "type":"object", + "description":"Category for demographics", + "deprecated":true, + "properties":{ + "category":{ + "type":"string", + "description":"DEPRECATED", + "example":"" + }, + "org_does_not_collect_for":{ + "type":"object", + "deprecated":true, + "additionalProperties":{ + "type":"boolean", + "description":"DEPRECATED", + "deprecated":true, + "example":false + } + }, + "subcategories":{ + "type":"array", + "description":"DEPRECATED", + "deprecated":true, + "example":[ + + ], + "items":{ + "$ref":"#/components/schemas/DemographicsSubCategory" + } + } + } + }, + "StaffLevelTotals":{ + "type":"object", + "description":"demographic totals for staff", + "properties":{ + "total_board_members":{ + "type":"string", + "description":"total number of board members", + "example":"24" + }, + "total_staff":{ + "type":"string", + "description":"total number of staff", + "example":"223" + }, + "total_senior_staff":{ + "type":"string", + "description":"total number of senior staff", + "example":"8" + } + } + }, + "DEI2Category":{ + "type":"object", + "description":"Demographics and Equity Information Section", + "properties":{ + "category":{ + "type":"string", + "description":"category description", + "example":"Gender Identity" + }, + "board_members_not_collected":{ + "type":"boolean", + "description":"presence of board member data collected in category", + "example":false + }, + "staff_not_collected":{ + "type":"boolean", + "description":"presence of staff data collected in category", + "example":false + }, + "senior_staff_not_collected":{ + "type":"boolean", + "description":"presence of senior staff data collected in category", + "example":false + }, + "subcategories":{ + "type":"array", + "description":"subcategory descriptions", + "example":"Female", + "items":{ + "$ref":"#/components/schemas/DEI2SubCategory" + } + } + } + }, + "Profitability":{ + "type":"object", + "description":"profitability section of financial trends analysis", + "properties":{ + "Unrestricted_surplus_(deficit)_before_depreciation":{ + "format":"int64", + "type":"integer", + "description":"unrestricted surplus or deficit before depreciation", + "example":627973 + }, + "surplus_as_percent_of_expenses_before_depreciation":{ + "type":"string", + "description":"surplus as a percent of expenses before depreciation", + "example":"2.7%" + }, + "Unrestricted_surplus_(deficit)_after_depreciation":{ + "format":"int64", + "type":"integer", + "description":"unrestricted surplus or deficit after depreciation", + "example":-1501740 + }, + "surplus_as_percent_of_expenses_after_depreciation":{ + "type":"string", + "description":"surplus as a percent of expenses after depreciation", + "example":"-5.8%" + } + } + }, + "Revenue_Composition":{ + "type":"object", + "description":"revenue composition section of financial trends analysis", + "properties":{ + "total_revenue_unrestricted_and_restricted":{ + "format":"int64", + "type":"integer", + "description":"total revenu, unrestricted and restricted", + "example":10000000 + }, + "total_revenue_percent_change_over_prior_year":{ + "type":"string", + "description":"total percent change in revenue over prior year", + "example":"21.5%" + }, + "total_revenue_prior":{ + "format":"double", + "type":"number", + "description":"total revenue prior", + "example":100000000 + }, + "program_svcs_revenue":{ + "type":"string", + "description":"programs/services revenue", + "example":"52.2%" + }, + "membership_dues":{ + "type":"string", + "description":"membership dues revenue", + "example":"1.0%" + }, + "investment_income":{ + "type":"string", + "description":"investment income revenue", + "example":"0.9%" + }, + "government_grants":{ + "type":"string", + "description":"government grants revenue", + "example":"0.0%" + }, + "other_grants_contributions":{ + "type":"string", + "description":"other grants/contributions revenue", + "example":"45.6%" + }, + "other_revenue":{ + "type":"string", + "description":"other revenue", + "example":"0.3%" + } + } + }, + "Expense_Composition":{ + "type":"object", + "description":"expense composition section of financial trends analysis", + "properties":{ + "total_expenses_before_depreciation":{ + "format":"int64", + "type":"integer", + "description":"total expenses before depreciation", + "example":10000000 + }, + "total_expenses_percent_change_over_prior_year":{ + "type":"string", + "description":"total expenses percent change over the prior year", + "example":"5.8%" + }, + "personnel":{ + "type":"string", + "description":"personnel expenses", + "example":"71.5%" + }, + "professional_fees":{ + "type":"string", + "description":"professional fees expenses", + "example":"6.2%" + }, + "occupancy":{ + "type":"string", + "description":"occupancy expenses", + "example":"8.7%" + }, + "interest_expense":{ + "type":"string", + "description":"expenses from interest", + "example":"0.2%" + }, + "pass_through":{ + "type":"string", + "description":"Pass through expenses", + "example":"0.0%" + }, + "all_other_expenses":{ + "type":"string", + "description":"all other expenses", + "example":"13.4%" + } + } + }, + "Full_Cost_Components":{ + "type":"object", + "description":"full cost components section of financial trends analysis", + "properties":{ + "total_expenses_after_depreciation":{ + "format":"int64", + "type":"integer", + "description":"total expenses after depreciation", + "example":100000000 + }, + "one_month_of_savings":{ + "format":"int64", + "type":"integer", + "description":"one month of savings", + "example":100000000 + }, + "debt_principal_payment":{ + "format":"int64", + "type":"integer", + "description":"Debt principal payment", + "example":100000000 + }, + "fixed_asset_additions":{ + "format":"int64", + "type":"integer", + "description":"Fixed asset additions", + "example":10000000 + }, + "total_full_costs_estimated":{ + "format":"int64", + "type":"integer", + "description":"estimated total full costs", + "example":10000000 + } + } + }, + "Liquidity":{ + "type":"object", + "description":"liquidity capital structure indicator", + "properties":{ + "months_of_cash":{ + "format":"double", + "type":"number", + "description":"months worth of cash", + "example":7.2 + }, + "months_of_cash_and_investments":{ + "format":"double", + "type":"number", + "description":"months worth of cash and investments", + "example":16 + }, + "months_of_estimated_liquid_unrestricted_net_assets":{ + "format":"double", + "type":"number", + "description":"estimated months worth of liquid unrestricted net assets", + "example":4.8 + } + } + }, + "Balance_Sheet_Composition":{ + "type":"object", + "description":"balance sheet composition", + "properties":{ + "cash":{ + "format":"int64", + "type":"integer", + "description":"total cash", + "example":10000000 + }, + "investments":{ + "format":"int64", + "type":"integer", + "description":"total investments", + "example":100000000 + }, + "receivables":{ + "format":"int64", + "type":"integer", + "description":"total receivables", + "example":1000000 + }, + "gross_land_buildings_and_equipment_lbe":{ + "format":"int64", + "type":"integer", + "description":"gross land buildings and equipment amount", + "example":10000000 + }, + "accumulated_depreciation_as_percent_of_lbe":{ + "type":"string", + "description":"accumulated depreciation as percent of land and buildings", + "example":"57.9%" + }, + "liabilities_as_percent_of_net_assets":{ + "type":"string", + "description":"liabilities as a percent of net assets", + "example":"35.3%" + }, + "unrestricted_net_assets":{ + "format":"int64", + "type":"integer", + "description":"unrestrited net assets total", + "example":1000000 + }, + "temporarily_restricted_net_assets":{ + "format":"int64", + "type":"integer", + "description":"temporarily restricted net assets total", + "example":100000000 + }, + "permanently_restricted_net_assets":{ + "format":"int64", + "type":"integer", + "description":"permanently restricted net assets total", + "example":10000000 + }, + "restricted_net_assets":{ + "format":"int64", + "type":"integer", + "description":"restricted net assets total", + "example":10000000 + }, + "total_net_assets":{ + "format":"int64", + "type":"integer", + "description":"total net assets", + "example":1000000 + } + } + }, + "DemographicsSubCategory":{ + "type":"object", + "description":"DEPRECATED", + "deprecated":true, + "properties":{ + "subcategory":{ + "type":"string", + "description":"DEPRECATED", + "example":"" + }, + "staff_levels":{ + "type":"array", + "description":"DEPRECATED", + "deprecated":true, + "example":[ + + ], + "items":{ + "$ref":"#/components/schemas/DemographicsStaffLevel" + } + } + } + }, + "DEI2SubCategory":{ + "type":"object", + "description":"Demographics, Equity, and Inclusion 2 sub category", + "properties":{ + "subcategory":{ + "type":"string", + "description":"subcategory description", + "example":"Asian American/Pacific Islanders/Asian" + }, + "board_members":{ + "format":"int32", + "type":"integer", + "description":"board members in demographic group", + "example":3 + }, + "staff":{ + "format":"int32", + "type":"integer", + "description":"staff members in demographic group", + "example":3 + }, + "senior_staff":{ + "format":"int32", + "type":"integer", + "description":"senior staff members in demographic group", + "example":1 + }, + "reported_by_ceo":{ + "type":"boolean", + "description":"whether or not reported by CEO", + "example":false + }, + "reported_by_coceo":{ + "type":"boolean", + "description":"whether or not reported by co CEO", + "example":false + } + } + }, + "DemographicsStaffLevel":{ + "type":"object", + "description":"DEPRECATED", + "deprecated":true, + "properties":{ + "staff_level":{ + "type":"string", + "description":"DEPRECATED", + "example":"" + }, + "count":{ + "format":"int32", + "type":"integer", + "description":"DEPRECATED" + } + } + }, + "OK_PublicProfile3_":{ + "type":"object", + "example":null, + "properties":{ + "code":{ + "type":"string", + "description":"HTTP response status code.", + "example":200 + }, + "status":{ + "type":"string", + "description":"Description of the HTTP response status code.", + "example":"OK" + } + } + }, + "BadRequest":{ + "type":"object", + "properties":{ + "code":{ + "type":"string", + "description":"HTTP response status code.", + "example":400 + }, + "message":{ + "type":"string", + "example":"The request cannot be fulfilled due to bad syntax." + } + } + }, + "Unauthorized":{ + "type":"object", + "properties":{ + "code":{ + "type":"string", + "description":"HTTP response status code.", + "example":401 + }, + "message":{ + "type":"string", + "example":"Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription." + } + } + }, + "Forbidden":{ + "type":"object", + "properties":{ + "code":{ + "type":"string", + "description":"HTTP response status code.", + "example":403 + }, + "message":{ + "type":"string", + "example":"Forbidden, we found insufficient permissions to grant access to the resources. Please check the detailed message of the response." + } + } + }, + "NotFound":{ + "type":"object", + "properties":{ + "code":{ + "type":"string", + "description":"HTTP response status code.", + "example":404 + }, + "message":{ + "type":"string", + "example":"Request was processed successfully but we could not find the resource ein" + } + } + }, + "NotAcceptable":{ + "type":"object", + "properties":{ + "code":{ + "type":"string", + "description":"HTTP response status code.", + "example":406 + }, + "message":{ + "type":"string", + "example":"The requested resource is capable of generating only content not acceptable according to the Accept headers sent in the request." + } + } + }, + "TooManyRequests":{ + "type":"object", + "properties":{ + "code":{ + "type":"string", + "description":"HTTP response status code.", + "example":429 + }, + "message":{ + "type":"string", + "example":"Rate limit is exceeded. Try again later." + } + } + }, + "InternalServerError":{ + "type":"object", + "properties":{ + "code":{ + "type":"string", + "description":"HTTP response status code.", + "example":500 + }, + "message":{ + "type":"string", + "example":"Oh no!, this is bad, something went wrong... please contact API support!" + } + } + } + } + }, + "security":[ + { + "apiKeyHeader":[ + + ] + } + ], + "x-readme":{ + "explorer-enabled":true, + "proxy-enabled":true, + "samples-enabled":true + } +} diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..4fbe36b --- /dev/null +++ b/gradle.properties @@ -0,0 +1,15 @@ +org.gradle.caching=true +group=io.ballerina.lib +version=0.1.0-SNAPSHOT +ballerinaLangVersion=2201.8.0 + +checkstylePluginVersion=10.12.0 +spotbugsPluginVersion=5.0.14 +shadowJarPluginVersion=8.1.1 +downloadPluginVersion=5.4.0 +releasePluginVersion=2.8.0 +testngVersion=7.6.1 +eclipseLsp4jVersion=0.12.0 +ballerinaGradlePluginVersion=2.1.5 +extraJavaModuleInfoPluginVersion=1.5 +jacocoVersion=0.8.10 diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000..7454180 Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..9f4197d --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.2.1-bin.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew new file mode 100755 index 0000000..744e882 --- /dev/null +++ b/gradlew @@ -0,0 +1,185 @@ +#!/usr/bin/env sh + +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MSYS* | MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=`expr $i + 1` + done + case $i in + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=`save "$@"` + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..107acd3 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000..a3a25e2 --- /dev/null +++ b/settings.gradle @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2023, WSO2 LLC. (http://www.wso2.com). All Rights Reserved. + * + * WSO2 LLC. licenses this file to you under the Apache License, + * Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +pluginManagement { + plugins { + id "com.github.spotbugs" version "${spotbugsPluginVersion}" + id "com.github.johnrengelman.shadow" version "${shadowJarPluginVersion}" + id "de.undercouch.download" version "${downloadPluginVersion}" + id "net.researchgate.release" version "${releasePluginVersion}" + id "io.ballerina.plugin" version "${ballerinaGradlePluginVersion}" + } + + repositories { + gradlePluginPortal() + maven { + url = 'https://maven.pkg.github.com/ballerina-platform/*' + credentials { + username System.getenv("packageUser") + password System.getenv("packagePAT") + } + } + } +} + +plugins { + id "com.gradle.enterprise" version "3.2" +} + +rootProject.name = 'module-ballerinax-candid' + +include ':candid-ballerina' + +project(':candid-ballerina').projectDir = file("ballerina") + +gradleEnterprise { + buildScan { + termsOfServiceUrl = 'https://gradle.com/terms-of-service' + termsOfServiceAgree = 'yes' + } +}