CO Charity Registry - Nonprofit Filings & Financials avatar

CO Charity Registry - Nonprofit Filings & Financials

Pricing

from $0.03 / 1,000 filing records

Go to Apify Store
CO Charity Registry - Nonprofit Filings & Financials

CO Charity Registry - Nonprofit Filings & Financials

Colorado charitable-solicitation register (public open data): registration + annual financial filings for charities, paid solicitors and fundraising consultants - revenue/expense breakdown, year-end assets, program-service ratio, IRS exempt status, and the officers behind each organization.

Pricing

from $0.03 / 1,000 filing records

Rating

0.0

(0)

Developer

Wenhao Yang

Wenhao Yang

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 hours ago

Last modified

Categories

Share

Colorado Charity Registry - Nonprofit Filings & Financials

Colorado publishes its charitable-solicitation register as open data - the state's own file of every charity, paid solicitor and professional fundraising consultant registered to solicit in Colorado, together with their annual financial filings. This actor turns that register into a charged-per-record lookup, filter and aggregate tool: pull an organization's whole record, filter charities by name, county, status or size, read the financial statement behind a filing, or aggregate the register.

Built for: funders and grant-makers doing due diligence, nonprofit researchers and journalists, and anyone screening a charity's finances who wants the financial history and the people behind it in one query instead of reading PDFs one year at a time.

What it covers

272,689 filings across 29,604 organizations - a multi-year history, not a count of charities (one organization holds up to 36 annual filings). Four linked tables, all keyed by entity id:

  • 272,689 financial filings - registration plus the annual report, with a full 990-style financial statement on each
  • 3,413,247 associated persons - the officers, directors and contacts behind the filings
  • 261,177 stated charitable purposes
  • 3,203,830 other-state registrations - where else the charity is authorized to solicit

Depth beyond a bare registry:

  • the revenue split - contributions, government, program services, investments, special events, sales - and the expense split - program services, administrative, fundraising, affiliates - plus year-end assets and liabilities, the program-service ratio and the previous year's totals on the same filing
  • the IRS exempt status and code, the registration status (GOOD 194,094 / NOTICE 3 51,521 / WITHDRAWN 23,430 / EXEMPT / REVOKED / ...) and its date
  • the authorized officer and CFO who signed the report, the NTEE codes, the principal and mailing address with county, and the registration / renewal / expiration dates

The fine print that matters

Read the grain before quoting a number: the 272,689 figure is filings, and there are only 29,604 organizations behind them - this is a filing history per charity, which is exactly what makes it useful. mode=entity returns one organization's whole record in a single query: its filing history, its associated persons, its stated purpose and the other states it solicits in.

Two quirks are handled for you. Socrata omits null columns, so every record carries the full key set with empty fill across every table and mode - a downstream schema never shifts. And the reporting-period columns (reportingperiodbegin / reportingperiodend) hold only a month and day ("12-31"), never a year - they are passed through verbatim and never parsed into a fake date.

Typical questions

  • "One charity's whole record - every filing, officer, purpose and other-state registration."
  • "Charities in Denver County over $1M in revenue."
  • "Who sits on the board of a given nonprofit."
  • "Which charities are on NOTICE 3 (delinquent) status."
  • "Aggregate the register by county, registrant type or status."

Inputs

InputWhat it does
modefilings (default) / officers / purposes / otherStates / entity / aggregate
name / fein / entityIdidentify the organization
registrantType / filingType / status / taxExemptStatuswhat kind of registrant, filing or standing
county / citywhere (principal address)
stateother state it solicits in (mode=otherStates)
revenueMin/Max / expensesMin/Maxfinancial ranges
approvedFrom/To / signedFrom/Tofiling-approval and officer-signature dates
corpus / groupByaggregate table and dimension
maxResultscap records (default 50)

Default run = the 50 most recently approved filings - fast for the daily auto-test. For one organization use entity; for a broad view use aggregate.

Example inputs

One organisation's whole record - mode=entity returns its filing history, associated persons, stated purpose and other-state registrations in one query.

{ "mode": "entity", "entityId": "20093009043" }

One filing by its entity id - on the default filings corpus the id is an exact filter.

{ "entityId": "20263028392" }

Denver County charities over $1M in revenue - a county filter plus a financial bound.

{ "county": "DENVER", "revenueMin": 1000000, "maxResults": 50 }

The register by county - one count per group.

{ "mode": "aggregate", "groupBy": "county" }

Low cost

From $0.00005 per record, down to $0.00003 at Gold - billed only for the rows you use, at the low end of the store. Cost scales with what you pull, not with the size of the register, and each record is metered individually.

What a thin scraper misses is the join across four tables: the financial statement, the people who signed it, the stated purpose and the other-state registrations all hang off one entity id, and the register holds a filing history (up to 25 years of annual filings - as many as 36 filings for one organization) rather than a single snapshot. The financials are also filed as strings over the wire even though they are numbers - a text-ordered revenue column sorts $9 above $1,000,000 - and the reporting period is a month-and-day with no year. Normalizing the four-table join, the string-numbers and the yearless periods into a schema where a county / revenueMin / status query returns exactly the charity you mean is the actual product. Every pull is integrity-checked against the register's known shape, so a degraded source fails loudly instead of returning bad rows.

Example output

One filing - entityId=20263028392 returns that organisation's filings; each is a record like this one. Every record also carries platform, source, corpus, recordKind, mode, and the aggregate columns groupKey / groupCount / groupBy, which are "" outside aggregate mode:

{
"platform": "co-charity-registry",
"source": "co-charity-filings",
"corpus": "filings",
"recordKind": "filing",
"mode": "rows",
"groupKey": "", "groupCount": "", "groupBy": "",
"entityId": "20263028392",
"documentId": "20263028392",
"amendmentEntityId": "",
"name": "EANGUS 'WE CARE FOR AMERICA' FOUNDATION, INC.",
"fein": "54-1614300",
"registrantType": "Charitable Organization",
"filingType": "INITIAL REGISTRATION",
"actualFinancialsProvided": "Y",
"principalAddress": "1 MASSACHUSETTS AVENUE NW",
"principalAddress2": "SUITE 880",
"principalCity": "WASHINGTON",
"principalState": "DC",
"principalZipCode": "20001",
"principalCountry": "UNITED STATES",
"principalProvince": "",
"county": "DISTRICT OF COLUMBIA",
"mailingAddress": "4850 WRIGHT RD",
"mailingAddress2": "SUITE 168",
"mailingCity": "STAFFORD",
"mailingState": "TX",
"mailingZipCode": "77477",
"mailingCountry": "UNITED STATES",
"mailingProvince": "",
"phone": "703-519-3846",
"fax": "703-519-3849",
"website": "WWW.NGRELIEF.ORG",
"authorizedOfficerName": "KARI HEGG",
"authorizedOfficerSignedDate": "2026-09-11",
"cfoName": "",
"cfoSignedDate": "",
"registrationApprovedDate": "2026-09-14",
"paymentProcessedDate": "2026-09-10",
"nextRenewalRegistrationDate": "2027-05-15",
"nteecode1": "PUBLIC SAFETY,DISASTER PREPAREDNESS,& RELIEF",
"nteecode2": "",
"nteecode3": "",
"taxExemptStatus": "Y",
"taxExemptCode": "501(C)(3)",
"irsDeterminationDate": "1994-05-17",
"donationsTaxDeductible": "Y",
"extensionFiled": "N",
"consolidatedRegistrationStatement": "N",
"outsideProfessionalFundraiserFees": "0",
"totalContributionsRaisedPreviousYear": "534644",
"totalFundraisingExpensesPreviousYear": "6466",
"totalManagementGeneralExpensesPreviousYear": "94160",
"expensesDividedByContributions": "",
"totalExpensesPlusManagementGeneralDividedByContributions": "",
"relatedOrganizationsName": "ENLISTED ASSOCIATION OF THE NATIONAL GUARD OF THE UNITED STATES",
"relatedToOtherOrganization": "Y",
"relatedOrganizationTaxExempt": "Y",
"solicitedNonTaxDeductibleGifts": "N",
"statedGiftNotTaxDeductible": "N",
"revenueFromContributions": "534644",
"revenueFromGovernment": "0",
"programServiceRevenue": "0",
"revenueFromInvestments": "55292",
"revenueFromSpecialEvents": "0",
"revenueFromSales": "0",
"revenueFromOther": "1195",
"revenueTotal": "591131",
"expensesFromProgramServices": "384083",
"expensesFromAdministrativeOther": "94160",
"expensesFundraising": "6466",
"expensesAffiliates": "0",
"expensesOther": "0",
"expensesOtherComment": "",
"expensesTotal": "484709",
"endOfYearAssets": "2919224",
"endOfYearTotalLiabilities": "2496000",
"endOfYearAssetsMinusLiabilities": "423224",
"unrestrictedAssets": "0.00",
"temporarilyRestrictedAssets": "0",
"permanentlyRestrictedAssets": "0",
"publicBenefitCorporation": "N",
"pbcRecordingMethod": "",
"pbcPromotedBenefit": "",
"pbcBenefitReportSent": "",
"pbcAnnualBenefitReport": "",
"conflictOfInterest": "",
"conflictOfInterestAffirmation": "",
"legalBusinessFormation": "CORPORATION",
"currentStatus": "GOOD",
"statusDate": "2026-09-14",
"placeFormed": "OK",
"dateFormed": "1992-02-25",
"expirationDate": "2027-08-15",
"programServiceRatio": "0.7924",
"reportingPeriodBegin": "01-01",
"reportingPeriodEnd": "12-31",
"fiscalYearStartDate": "2025-01-01",
"fiscalYearEndDate": "2025-12-31",
"entityType": "",
"title": "",
"personType": "",
"businessName": "",
"firstName": "",
"middleName": "",
"lastName": "",
"subcontractor": "",
"inBusiness": "",
"statementOfPurpose": "",
"filingDate": "",
"stateAbbreviation": "",
"authorizedSoliciting": ""
}

mode=aggregate, groupBy=status - one row per status (the record fields are ""; the group lands in groupKey / groupCount):

GOOD 194,094
NOTICE 3 51,521
WITHDRAWN 23,430

Source