{
  "openapi": "3.0.1",
  "info": {
    "title": "IRS Tax-Exempt Organizations Scraper (US)",
    "description": "Every US tax-exempt nonprofit from the IRS Exempt Organizations Business Master File (EO BMF) as flat JSON: EIN, subsection, NTEE, ruling date, 990 financials.",
    "version": "0.1",
    "x-build-id": "UbShEjLkjJvKpL3Ca"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/knotty_mistveil~irs-exempt-organizations/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-knotty_mistveil-irs-exempt-organizations",
        "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/knotty_mistveil~irs-exempt-organizations/runs": {
      "post": {
        "operationId": "runs-sync-knotty_mistveil-irs-exempt-organizations",
        "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/knotty_mistveil~irs-exempt-organizations/run-sync": {
      "post": {
        "operationId": "run-sync-knotty_mistveil-irs-exempt-organizations",
        "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": {
          "regions": {
            "title": "Regions",
            "type": "array",
            "description": "Which regional EO BMF file(s) to stream. The four region files partition the whole country: Northeast, Mid-Atlantic & Great Lakes, Gulf Coast & Pacific, and Other (international, Puerto Rico and territories). Puerto Rico and International are the two slices of Other, published as their own smaller files. Default: Other - about 4,900 organizations in a 0.9 MB file, so a default run is cheap. Gulf Coast & Pacific is the biggest (about 959,000 orgs, ~165 MB).",
            "items": {
              "type": "string",
              "enum": [
                "eo1",
                "eo2",
                "eo3",
                "eo4",
                "eo_pr",
                "eo_xx"
              ],
              "enumTitles": [
                "Northeast (CT, ME, MA, NH, NJ, NY, RI, VT)",
                "Mid-Atlantic & Great Lakes (DC, DE, IL, IN, IA, KY, MD, MI, MN, NC, ND, NE, OH, PA, SC, SD, VA, WV, WI)",
                "Gulf Coast & Pacific (AL, AK, AR, AZ, CA, CO, FL, GA, HI, ID, KS, LA, MS, MO, MT, NV, NM, OK, OR, TX, TN, UT, WA, WY)",
                "Other (international, Puerto Rico & territories)",
                "Puerto Rico only",
                "International only"
              ]
            },
            "default": [
              "eo4"
            ]
          },
          "states": {
            "title": "States / territories",
            "type": "array",
            "description": "Keep only organizations whose filing address is in one of these two-letter states or territories (e.g. CA, NY, TX, PR). Applied on top of the region you chose, so pick the region that contains the state. Empty = every state in the selected region(s).",
            "items": {
              "type": "string"
            }
          },
          "subsections": {
            "title": "501(c) subsection codes",
            "type": "array",
            "description": "Keep only these 501(c) subsection codes. 3 = 501(c)(3) charities, 4 = social welfare, 5 = labor/agricultural, 6 = business leagues, 7 = social clubs, 8 = fraternal, 19 = veterans. A one-digit code is accepted (3 becomes 03). Empty = all subsections.",
            "items": {
              "type": "string"
            }
          },
          "nteePrefixes": {
            "title": "NTEE code prefixes",
            "type": "array",
            "description": "Keep only organizations whose NTEE code starts with one of these prefixes. A single letter selects a major group: A = Arts, B = Education, E = Health Care, L = Housing, P = Human Services, T = Philanthropy, X = Religion. A longer prefix narrows it (B21 = preschool). An organization is kept if any of its NTEE code matches any prefix. Empty = all.",
            "items": {
              "type": "string"
            }
          },
          "ruledFrom": {
            "title": "Ruled from (YYYY-MM)",
            "pattern": "^\\d{4}-\\d{2}$",
            "type": "string",
            "description": "Keep only organizations whose IRS ruling/determination date is on or after this month, YYYY-MM. The ruling date is published to monthly granularity. Empty = no lower bound."
          },
          "ruledTo": {
            "title": "Ruled to (YYYY-MM)",
            "pattern": "^\\d{4}-\\d{2}$",
            "type": "string",
            "description": "Keep only organizations whose IRS ruling/determination date is on or before this month, YYYY-MM. Empty = no upper bound."
          },
          "minIncomeAmount": {
            "title": "Minimum income amount (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only organizations whose reported income amount (from the most recent Form 990 series return) is at least this many US dollars. Organizations that have filed no return, or reported no income, are dropped when this is set. Empty = no income filter."
          },
          "keywords": {
            "title": "Name keywords",
            "type": "array",
            "description": "Keep only organizations whose primary name contains one of these terms (case-insensitive; terms are ORed). Empty = no name filter.",
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Max results",
            "minimum": 1,
            "maximum": 2000000,
            "type": "integer",
            "description": "Stop after this many organizations. You are charged per organization delivered, so this is also the cost cap. Rows are read in EIN order within each region; a value below the number of matches drops the later EINs. Default 1000. The whole file holds about 1.96 million organizations.",
            "default": 1000
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}