{
  "openapi": "3.0.1",
  "info": {
    "title": "Nonprofit 990 Scraper: US Charity Financials",
    "description": "Scrape IRS Form 990 data for US nonprofits by name, state, NTEE sector, 501(c) type or EIN: revenue, expenses, assets, liabilities, filing PDFs and up to 50 years of filing history per organization. Export CSV, Excel, JSON, XML. No login or API key needed.",
    "version": "0.1",
    "x-build-id": "yJfalJb7LD1vNGHvQ"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/recordsdata~nonprofit-financials-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-recordsdata-nonprofit-financials-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/recordsdata~nonprofit-financials-scraper/runs": {
      "post": {
        "operationId": "runs-sync-recordsdata-nonprofit-financials-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/recordsdata~nonprofit-financials-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-recordsdata-nonprofit-financials-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": {
          "searchTerms": {
            "title": "Search terms",
            "type": "array",
            "description": "Nonprofit name or keyword to search in the IRS 990 database, one search per term (for example \"food bank\", \"animal rescue\", \"Red Cross\"). Search operators work: put a phrase in double quotes (\"food bank\"), prefix a word with + to require it (+food +bank), with - to exclude it (food -pantry) or end it with * for a prefix match (foo*). Leave empty if you use EINs or filters.",
            "default": [
              "food bank"
            ],
            "items": {
              "type": "string"
            }
          },
          "eins": {
            "title": "Specific EINs",
            "type": "array",
            "description": "Exact organizations to fetch by 9-digit EIN (employer identification number, for example 131837418 or 13-1837418). Runs before any search and returns the same organization and filing rows. Shorter numbers are padded with leading zeros. An EIN that is not in the IRS master file returns one free error row.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Max Items",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Maximum number of organizations to return (each organization is one billed record, its filing rows are billed separately). Free users are limited to 10. Paid users can go up to 1,000,000. With Only new filings on, this is the number of organizations checked in one run, so a scheduled run never scans more than you set.",
            "default": 10
          },
          "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",
              "RI",
              "SC",
              "SD",
              "TN",
              "TX",
              "UT",
              "VT",
              "VA",
              "WA",
              "WV",
              "WI",
              "WY",
              "PR",
              "VI",
              "GU",
              "AS",
              "MP"
            ],
            "type": "string",
            "description": "Limit results to one US state or territory using its two-letter code. Leave on All states to search nationwide.",
            "default": ""
          },
          "nteeCategory": {
            "title": "NTEE category",
            "enum": [
              "",
              "1",
              "2",
              "3",
              "4",
              "5",
              "6",
              "7",
              "8",
              "9",
              "10"
            ],
            "type": "string",
            "description": "Limit results to one broad nonprofit sector from the National Taxonomy of Exempt Entities (NTEE), such as Education or Health.",
            "default": ""
          },
          "irsSubsection": {
            "title": "501(c) subsection",
            "enum": [
              "",
              "2",
              "3",
              "4",
              "5",
              "6",
              "7",
              "8",
              "9",
              "10",
              "11",
              "12",
              "13",
              "14",
              "15",
              "16",
              "17",
              "18",
              "19",
              "21",
              "22",
              "23",
              "25",
              "26",
              "27",
              "28",
              "92"
            ],
            "type": "string",
            "description": "Limit results to one IRS tax-code subsection, for example 3 for 501(c)(3) charities or 4 for 501(c)(4) social welfare organizations.",
            "default": ""
          },
          "includeFilings": {
            "title": "IRS 990 filings per organization",
            "type": "boolean",
            "description": "One extra row per 990 filing year (990, 990-EZ or 990-PF) with total revenue, expenses, assets, liabilities, net assets, contributions, program revenue, officer compensation, form-specific income and expense lines and the filing PDF when available. Billed as its own event.",
            "default": true
          },
          "maxFilingsPerOrg": {
            "title": "Max filings per organization",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Maximum number of IRS 990 filing rows per organization, newest tax year first, counted after the tax year and form filters below. Only used when IRS 990 filings is on.",
            "default": 10
          },
          "startYear": {
            "title": "Start tax year",
            "minimum": 1990,
            "maximum": 2100,
            "type": "integer",
            "description": "Only filings for this tax year or later (for example 2018). The tax year is the fiscal year the return covers. Leave empty for no limit. The organization row always shows the latest filing; this filter only applies to filing rows."
          },
          "endYear": {
            "title": "End tax year",
            "minimum": 1990,
            "maximum": 2100,
            "type": "integer",
            "description": "Only filings for this tax year or earlier (for example 2022). Leave empty for no limit. Must not be before the start tax year."
          },
          "formTypes": {
            "title": "Form types",
            "type": "array",
            "description": "Only return filings of these IRS forms: 990 (standard return), 990-EZ (short form for smaller organizations) or 990-PF (private foundations). Leave empty for every form. The set of financial columns that are filled depends on the form.",
            "items": {
              "type": "string",
              "enum": [
                "990",
                "990-EZ",
                "990-PF"
              ],
              "enumTitles": [
                "Form 990 (standard return)",
                "Form 990-EZ (short form)",
                "Form 990-PF (private foundations)"
              ]
            },
            "default": []
          },
          "onlyNew": {
            "title": "Only new filings",
            "type": "boolean",
            "description": "Skip organizations and filings already delivered by earlier runs of the same search. An organization is returned again, with only its new filing rows, when it has a filing you have not received. Skipped rows are not billed. Max Items then counts organizations checked. A filing that ProPublica has just listed may show Not Disclosed money columns until the IRS data is loaded; the PDF link is there.",
            "default": false
          },
          "stateKey": {
            "title": "Monitor name",
            "type": "string",
            "description": "Optional label that keeps separate memories for runs with identical filters (for example \"sales-team\" and \"audit-team\"). Leave empty to share one memory per search.",
            "default": ""
          },
          "resetSeen": {
            "title": "Reset monitor memory",
            "type": "boolean",
            "description": "Forget which organizations and filings were already delivered for this search and start over. Turn it off again after one run.",
            "default": false
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}