{
  "openapi": "3.0.1",
  "info": {
    "title": "Nonprofit & Foundation Prospects from IRS 990 Data",
    "description": "US nonprofit and foundation prospect lists from official IRS data: filter by state, city, NTEE, size, ruling year, type and grant-making. Revenue trend, grants paid, top grant recipients, website, mission and role counts per organization. Monitor mode for new filings.",
    "version": "0.1",
    "x-build-id": "lqEOxlplhgggWMXqz"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/signalloom~nonprofit-990-prospects/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-signalloom-nonprofit-990-prospects",
        "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/signalloom~nonprofit-990-prospects/runs": {
      "post": {
        "operationId": "runs-sync-signalloom-nonprofit-990-prospects",
        "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/signalloom~nonprofit-990-prospects/run-sync": {
      "post": {
        "operationId": "run-sync-signalloom-nonprofit-990-prospects",
        "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",
        "required": [
          "states"
        ],
        "properties": {
          "states": {
            "title": "States",
            "type": "array",
            "description": "US states to search (two-letter codes or names, up to 10). Each state is one official IRS master-file download.",
            "default": [
              "VT"
            ],
            "items": {
              "type": "string"
            }
          },
          "organizationType": {
            "title": "Organization type",
            "enum": [
              "any",
              "public-charity",
              "private-foundation",
              "private-non-operating-foundation",
              "private-operating-foundation"
            ],
            "type": "string",
            "description": "Public charities, private foundations, or only grant-making (non-operating) private foundations. Based on the IRS foundation code.",
            "default": "any"
          },
          "makesGrants": {
            "title": "Only organizations that made grants",
            "type": "boolean",
            "description": "Keep only organizations whose latest e-filed return reports grants paid (990-PF Part I line 25 / Part XIV, Form 990 Part I line 13 or Schedule I).",
            "default": false
          },
          "cities": {
            "title": "Cities",
            "type": "array",
            "description": "Optional: only these cities (as written in the IRS master file, e.g. BURLINGTON).",
            "items": {
              "type": "string"
            }
          },
          "zipPrefixes": {
            "title": "ZIP code prefixes",
            "type": "array",
            "description": "Optional: only ZIP codes starting with these digits (e.g. 054 or 05401).",
            "items": {
              "type": "string"
            }
          },
          "nteeCodes": {
            "title": "NTEE codes",
            "type": "array",
            "description": "Optional: NTEE activity codes or prefixes, e.g. B (education), E (health), T (philanthropy & grantmaking), P20 (human services). Organizations without an NTEE code don't match.",
            "items": {
              "type": "string"
            }
          },
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Optional: any of these words in the organization's name or its mission statement (mission is read from the latest return).",
            "items": {
              "type": "string"
            }
          },
          "subsections": {
            "title": "501(c) subsections",
            "type": "array",
            "description": "501(c) subsection numbers to include, e.g. 3 for 501(c)(3) charities and foundations, 4 for social welfare, 6 for business leagues. Empty list = all.",
            "default": [
              "3"
            ],
            "items": {
              "type": "string"
            }
          },
          "minAssets": {
            "title": "Minimum assets ($)",
            "type": "integer",
            "description": "Optional: minimum total assets in the IRS master file (latest return the IRS processed)."
          },
          "maxAssets": {
            "title": "Maximum assets ($)",
            "type": "integer",
            "description": "Optional: maximum total assets in the IRS master file."
          },
          "minRevenue": {
            "title": "Minimum revenue ($)",
            "type": "integer",
            "description": "Optional: minimum total revenue in the IRS master file."
          },
          "maxRevenue": {
            "title": "Maximum revenue ($)",
            "type": "integer",
            "description": "Optional: maximum total revenue in the IRS master file."
          },
          "rulingYearFrom": {
            "title": "Ruling year from",
            "type": "integer",
            "description": "Optional: IRS exemption ruling year at or after this year (use it to find young organizations)."
          },
          "rulingYearTo": {
            "title": "Ruling year to",
            "type": "integer",
            "description": "Optional: IRS exemption ruling year at or before this year."
          },
          "filedSinceYear": {
            "title": "Latest return for tax year or later",
            "type": "integer",
            "description": "Optional: only organizations whose latest e-filed return covers this tax year or later (drops inactive filers)."
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "assets",
              "revenue",
              "newest",
              "name"
            ],
            "type": "string",
            "description": "Which organizations come first (and are checked first): largest assets, largest revenue, newest ruling year, or name.",
            "default": "assets"
          },
          "maxResults": {
            "title": "Max organizations",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Maximum organizations to output (one charged result each).",
            "default": 50
          },
          "maxOrganizationsToCheck": {
            "title": "Max organizations to check",
            "minimum": 1,
            "maximum": 20000,
            "type": "integer",
            "description": "Cap on how many matching organizations have their latest return read to apply 'makes grants' and mission keywords. Default: 4 x Max organizations."
          },
          "maxFilingsPerOrg": {
            "title": "Returns per organization (trend)",
            "minimum": 1,
            "maximum": 6,
            "type": "integer",
            "description": "How many yearly returns to read for the revenue trend (1-6). A Form 990 also carries the prior year's figures, so 3 returns usually give 4 years.",
            "default": 3
          },
          "includeGrantRecipients": {
            "title": "Include top grant recipients",
            "type": "boolean",
            "description": "List the largest grants to organizations from the latest return (name, city, state, amount, purpose). Grants to individuals are only counted, never named.",
            "default": true
          },
          "maxGrantRecipients": {
            "title": "Grant recipients per organization",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "How many of the largest grant recipients to list (0-100).",
            "default": 10
          },
          "includeOrgsWithoutEfile": {
            "title": "Include organizations without an e-filed return",
            "type": "boolean",
            "description": "Also output organizations with no e-filed 990 in the IRS data (small 990-N filers, churches, paper filers). Their figures come from the master file only.",
            "default": false
          },
          "checkNewestIrsBatches": {
            "title": "Check the newest IRS batches",
            "type": "boolean",
            "description": "If the IRS has published returns since this tool's index was built, look them up too (adds a large index download when there's news).",
            "default": true
          },
          "onlyNew": {
            "title": "Only organizations new since the last run",
            "type": "boolean",
            "description": "Monitor mode: output only organizations that weren't in this monitor's previous results (first run outputs everything and sets the baseline).",
            "default": false
          },
          "onlyChanged": {
            "title": "Only new or changed organizations",
            "type": "boolean",
            "description": "Monitor mode: output organizations that are new, filed a newer return (changeType NEW_FILING), or changed in the master file since the last run.",
            "default": false
          },
          "monitorId": {
            "title": "Monitor ID",
            "type": "string",
            "description": "Name for this monitor's memory (stored in the named key-value store nonprofit-990-prospects-state). Use different IDs for different searches.",
            "default": "default"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}