# IRS Exempt Organizations Scraper | 501c Master File (`parseforge/irs-eo-master-file-scraper`) Actor

Export tax-exempt organizations from the IRS Exempt Organizations Business Master File. Pull EIN, name, address, NTEE code, subsection (501c3, c4, c6...), foundation type, deductibility, assets and income for every nonprofit in the chosen state. CSV, Excel, JSON, XML.

- **URL**: https://apify.com/parseforge/irs-eo-master-file-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Other, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-usage

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

![ParseForge Banner](https://github.com/ParseForge/apify-assets/blob/ad35ccc13ddd068b9d6cba33f323962e39aed5b2/banner.jpg?raw=true)

## 🇺🇸 IRS Exempt Organizations Scraper

> 🚀 **Export 501(c) tax-exempt organizations from the official IRS Master File in seconds.**

> 🕒 **Last updated:** 2026-05-26 · **📊 18 fields** per record · **1.5M+ nonprofits · all 50 states + DC + territories · 18 official fields**

The IRS publishes a Business Master File (BMF) listing every active tax-exempt organization in the United States. This Actor downloads the per-state BMF and structures it into a clean dataset, one row per organization and 18 official fields covering identification, address, classification, and finance.

| 🎯 Target Audience | 💡 Primary Use Cases |
|---|---|
| Nonprofit researchers | Build sector datasets |
| Grantmakers & foundations | Source candidate grantees |
| Compliance teams | Vet 501(c) status |
| Journalists | Investigate financial reporting |

### 📋 What the IRS Exempt Organizations Scraper does

- Queries the public IRS Exempt Organizations source and structures the response
- Returns one record per item with 18 normalized fields
- Supports pagination and optional filters
- Outputs to CSV, Excel, JSON, XML via Apify dataset
- Auto-limits to 10 items on the free plan; up to 1,000,000 on paid

> 💡 **Why it matters:** IRS Exempt Organizations data is public record. This Actor makes it usable.

### 🎬 Full Demo (_🚧 Coming soon_)

### ⚙️ Input

<table>
<thead><tr><th>Field</th><th>Type</th><th>Description</th></tr></thead>
<tbody><tr><td>state</td><td>enum</td><td>Two-letter US state code (e.g. CA, NY, DC)</td></tr><tr><td>maxItems</td><td>integer</td><td>Cap on rows (free: 10)</td></tr><tr><td>subsection</td><td>string</td><td>Optional IRS subsection (e.g. 03 for 501(c)(3))</td></tr></tbody>
</table>

```json
{ "state": "CA", "maxItems": 100 }
````

```json
{ "state": "NY", "subsection": "03", "maxItems": 500 }
```

> ⚠️ **Good to Know:** The IRS refreshes the BMF monthly. Some fields are blank for newly added organizations.

### 📊 Output

| Field | Type | Description |
|---|---|---|
| 🔹 ein | string | Employer Identification Number |
| 🔹 name | string | Organization legal name |
| 🔹 street | string | Street address |
| 🔹 city | string | City |
| 🔹 state | string | State |
| 🔹 zip | string | ZIP+4 |
| 🔹 subsection | string | IRC 501(c) subsection code |
| 🔹 classification | string | NTEE/IRS classification code |
| 🔹 ruling | string | IRS ruling date (YYYYMM) |
| 🔹 deductibility | string | Contribution deductibility code |
| 🔹 foundation | string | Foundation type code |
| 🔹 nteeCd | string | National Taxonomy of Exempt Entities code |
| 🔹 assetAmount | number | Reported assets (USD) |
| 🔹 incomeAmount | number | Reported income (USD) |
| 🔹 revenueAmount | number | Reported revenue (USD) |
| 🕒 scrapedAt | string | ISO timestamp of when the record was collected |
| ❌ error | string | null | Error message if extraction failed |

### ✨ Why choose this Actor

- Direct IRS Exempt Organizations source, no third-party caching
- Real-time data, never stale
- Pay-per-result pricing; only charged for what you keep
- Works with Make, Zapier, n8n, Airbyte, GitHub Actions, Google Sheets

### 📈 How it compares to alternatives

| Approach | Cost | Maintenance | Coverage |
|---|---|---|---|
| IRS BMF CSV manual | Free | Medium | Per-state files |
| Pro-WonProspera/Candid | $$$ | None | Curated, paywalled |
| This actor | Pay per result | None | Full BMF, structured |

### 🚀 How to use

1. [Create a free account w/ $5 credit](https://console.apify.com/sign-up?fpr=vmoqkp)
2. Open the Actor page
3. Set `maxItems` and any optional filters
4. Run
5. Download dataset as CSV, Excel, JSON, or XML

### 💼 Business use cases

#### Competitor & market intelligence

Track IRS Exempt Organizations entries relevant to your sector.

#### Compliance monitoring

Spot regulatory or enforcement signals in your industry feed.

#### Lead generation

Use IRS Exempt Organizations entries as a clean prospect list.

#### Risk & due diligence

Vet counterparties or candidates against the official record.

### 🔌 Automating IRS Exempt Organizations Scraper

Connects with Make, Zapier, n8n, Slack, Airbyte, GitHub Actions, and Google Drive via Apify's standard integrations.

### 🌟 Beyond business use cases

#### Research

Academic studies on regulation, public policy, and enforcement trends.

#### Personal

Citizens following developments in their communities.

#### Non-profit

Watchdog organizations and civic-tech projects auditing the record.

#### Experimentation

Train models on labeled regulatory data.

### 🤖 Ask an AI assistant about this scraper

ChatGPT, Claude, Perplexity, or Copilot can explain inputs, sample outputs, and integration patterns.

### ❓ Frequently Asked Questions

**Q: How fresh is the data?** A: IRS publishes monthly. We pull the latest CSV at run time.
**Q: Are 501(c)(3) only included?** A: Use the subsection filter (03 = 501(c)(3)).
**Q: Do you have territories?** A: Yes: PR and others via the state selector.
**Q: Are private foundations included?** A: Yes, via the foundation code.
**Q: Are dollar amounts USD?** A: Yes, nominal USD as reported to the IRS.
**Q: Is this affiliated with the IRS?** A: No. Independent tool using public Master File CSVs.
**Q: What about Forms 990?** A: BMF lists organizations. Form 990 data is a separate dataset.
**Q: Are revoked orgs included?** A: BMF reflects current active status only.
**Q: What is the NTEE code?** A: A taxonomy classifying nonprofit activity area.
**Q: Can I get all states at once?** A: Run per state and combine outputs.

### 🔌 Integrate with any app

Make, Zapier, n8n, Slack, Airbyte, GitHub Actions, Google Sheets, Webhooks, REST API.

### 🔗 Recommended Actors

| Actor | Description |
|---|---|
| [FTC Actions Scraper](https://apify.com/parseforge/ftc-actions-scraper) | FTC enforcement actions |
| [SEC Litigation Releases Scraper](https://apify.com/parseforge/sec-litigation-releases-scraper) | SEC enforcement actions |
| [USAspending Contracts Scraper](https://apify.com/parseforge/usaspending-contracts-scraper) | Federal contract awards |

> 💡 **Pro Tip:** browse the complete [ParseForge collection](https://apify.com/parseforge).

**🆘 Need Help?** [Open our contact form](https://tally.so/r/BzdKgA)

> **⚠️ Disclaimer:** independent tool, not affiliated with the IRS Exempt Organizations source agency or any government. Only publicly available data collected.

# Actor input Schema

## `state` (type: `string`):

Two-letter US state/territory code (e.g. CA, DC, PR). Defaults to DC for fast tests.

## `maxItems` (type: `integer`):

Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000

## `subsection` (type: `string`):

Optional. Filter by IRS subsection code (e.g. 03 for 501(c)(3)). Leave blank for all.

## Actor input object example

```json
{
  "state": "DC",
  "maxItems": 10
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/irs-eo-master-file-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "maxItems": 10 }

# Run the Actor and wait for it to finish
run = client.actor("parseforge/irs-eo-master-file-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "maxItems": 10
}' |
apify call parseforge/irs-eo-master-file-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=parseforge/irs-eo-master-file-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "IRS Exempt Organizations Scraper | 501c Master File",
        "description": "Export tax-exempt organizations from the IRS Exempt Organizations Business Master File. Pull EIN, name, address, NTEE code, subsection (501c3, c4, c6...), foundation type, deductibility, assets and income for every nonprofit in the chosen state. CSV, Excel, JSON, XML.",
        "version": "0.1",
        "x-build-id": "vAyZLaZciEmqzciGk"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/parseforge~irs-eo-master-file-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-parseforge-irs-eo-master-file-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/parseforge~irs-eo-master-file-scraper/runs": {
            "post": {
                "operationId": "runs-sync-parseforge-irs-eo-master-file-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/parseforge~irs-eo-master-file-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-parseforge-irs-eo-master-file-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "state": {
                        "title": "State",
                        "enum": [
                            "AL",
                            "AK",
                            "AZ",
                            "AR",
                            "CA",
                            "CO",
                            "CT",
                            "DE",
                            "DC",
                            "FL",
                            "GA",
                            "HI",
                            "ID",
                            "IL",
                            "IN",
                            "IA",
                            "KS",
                            "KY",
                            "LA",
                            "ME",
                            "MD",
                            "MA",
                            "MI",
                            "MN",
                            "MS",
                            "MO",
                            "MT",
                            "NE",
                            "NV",
                            "NH",
                            "NJ",
                            "NM",
                            "NY",
                            "NC",
                            "ND",
                            "OH",
                            "OK",
                            "OR",
                            "PA",
                            "PR",
                            "RI",
                            "SC",
                            "SD",
                            "TN",
                            "TX",
                            "UT",
                            "VT",
                            "VA",
                            "WA",
                            "WV",
                            "WI",
                            "WY"
                        ],
                        "type": "string",
                        "description": "Two-letter US state/territory code (e.g. CA, DC, PR). Defaults to DC for fast tests.",
                        "default": "DC"
                    },
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 1,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000"
                    },
                    "subsection": {
                        "title": "Subsection (501c)",
                        "type": "string",
                        "description": "Optional. Filter by IRS subsection code (e.g. 03 for 501(c)(3)). Leave blank for all."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
