{
  "openapi": "3.0.1",
  "info": {
    "title": "SBIR & STTR Award Scraper - Funded R&D Company Leads",
    "description": "Scrape the official SBIR.gov award database (SBIR + STTR): company, UEI, website, address, business contact + principal investigator emails & phones, award amount, agency, phase & set-asides. Current 2025-2026 awards. One row per award or per company. B2B leads + monitoring.",
    "version": "0.1",
    "x-build-id": "fAb7ZQPhZMl07Brd1"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapesage~sbir-sttr-award-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapesage-sbir-sttr-award-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/scrapesage~sbir-sttr-award-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapesage-sbir-sttr-award-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/scrapesage~sbir-sttr-award-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapesage-sbir-sttr-award-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": {
          "recordType": {
            "title": "Output: one row per award, or one row per company",
            "enum": [
              "awards",
              "companies"
            ],
            "type": "string",
            "description": "Choose what a dataset row represents. **Awards** (default) gives one row per SBIR/STTR award. **Companies** rolls every matching award up into one row per funded company - total awards, total funding, all agencies and phases, first and latest award year, plus the best contact found across the company's whole award history. Both record types are billed at the same single price.",
            "default": "awards"
          },
          "programs": {
            "title": "Program (SBIR / STTR)",
            "type": "array",
            "description": "Limit to the SBIR program, the STTR program, or both. Leave empty for both. STTR awards always involve a research institution (university / lab) partner.",
            "items": {
              "type": "string",
              "enum": [
                "SBIR",
                "STTR"
              ],
              "enumTitles": [
                "SBIR",
                "STTR"
              ]
            }
          },
          "phases": {
            "title": "Phase",
            "type": "array",
            "description": "Phase I = feasibility (~$50k–$300k). Phase II = development (~$0.5M–$2M+, proven companies). Leave empty for all phases.",
            "items": {
              "type": "string",
              "enum": [
                "Phase I",
                "Phase II"
              ],
              "enumTitles": [
                "Phase I",
                "Phase II"
              ]
            }
          },
          "agencies": {
            "title": "Funding agencies",
            "type": "array",
            "description": "Filter by funding agency — case-insensitive, matches anywhere in the agency name. Type a keyword such as <code>Defense</code>, <code>Health</code> (HHS/NIH), <code>Energy</code>, <code>Homeland Security</code>, <code>Aeronautics</code> (NASA), <code>Science Foundation</code> (NSF), <code>Agriculture</code>, <code>Commerce</code>, <code>Education</code>, <code>Transportation</code> or <code>Environmental</code>. Leave empty for all agencies.",
            "items": {
              "type": "string"
            }
          },
          "branches": {
            "title": "Branch / sub-agency",
            "type": "array",
            "description": "Filter by branch within an agency (case-insensitive contains), e.g. <code>Navy</code>, <code>Air Force</code>, <code>Army</code>, <code>DARPA</code>, <code>NIH</code>, <code>ARPA-E</code>, <code>NOAA</code>, <code>NIST</code>. Leave empty for all.",
            "items": {
              "type": "string"
            }
          },
          "keywords": {
            "title": "Keywords (title + abstract)",
            "type": "array",
            "description": "Only awards whose title or abstract contains ANY of these terms (case-insensitive), e.g. <code>artificial intelligence</code>, <code>battery</code>, <code>biosensor</code>, <code>hypersonic</code>, <code>quantum</code>. Great for building a technology-specific prospect list.",
            "items": {
              "type": "string"
            }
          },
          "companyNameQuery": {
            "title": "Company name contains",
            "type": "string",
            "description": "Only awards whose company name contains this text (case-insensitive), e.g. <code>robotics</code> or a specific firm name."
          },
          "topicCode": {
            "title": "Topic code contains",
            "type": "string",
            "description": "Filter by the solicitation topic code (case-insensitive contains), e.g. <code>AF</code>, <code>N22A-T016</code>, <code>DHS241</code>."
          },
          "states": {
            "title": "Company states",
            "type": "array",
            "description": "Filter by the company's state — two-letter USPS codes, e.g. <code>CA</code>, <code>TX</code>, <code>MA</code>, <code>VA</code>. Leave empty for all states & territories.",
            "items": {
              "type": "string"
            }
          },
          "cities": {
            "title": "Company cities",
            "type": "array",
            "description": "Filter by the company's city (case-insensitive, exact city name), e.g. <code>Cambridge</code>, <code>San Diego</code>, <code>Austin</code>.",
            "items": {
              "type": "string"
            }
          },
          "zipCodes": {
            "title": "ZIP codes (prefix)",
            "type": "array",
            "description": "Filter by ZIP — full ZIP (<code>02139</code>) or a prefix (<code>021</code> matches all 021xx). The 5-digit ZIP is used for matching.",
            "items": {
              "type": "string"
            }
          },
          "awardYearFrom": {
            "title": "Award year from",
            "type": "integer",
            "description": "Only awards from this fiscal year onward (e.g. <code>2022</code>). Recent awards make the freshest leads."
          },
          "awardYearTo": {
            "title": "Award year to",
            "type": "integer",
            "description": "Only awards up to and including this fiscal year."
          },
          "minAwardAmount": {
            "title": "Min award amount (USD)",
            "type": "integer",
            "description": "Only awards of at least this dollar amount. Set to e.g. <code>500000</code> to target Phase II / well-funded companies."
          },
          "maxAwardAmount": {
            "title": "Max award amount (USD)",
            "type": "integer",
            "description": "Only awards up to this dollar amount."
          },
          "awardedAfter": {
            "title": "Awarded on/after",
            "type": "string",
            "description": "Only awards with a proposal award date on or after this date, <code>YYYY-MM-DD</code>. Best for capturing recently-funded companies."
          },
          "awardedBefore": {
            "title": "Awarded on/before",
            "type": "string",
            "description": "Only awards with a proposal award date on or before this date, <code>YYYY-MM-DD</code>."
          },
          "minEmployees": {
            "title": "Min employees",
            "type": "integer",
            "description": "Only companies reporting at least this many employees."
          },
          "maxEmployees": {
            "title": "Max employees",
            "type": "integer",
            "description": "Only companies reporting at most this many employees."
          },
          "researchInstitutionQuery": {
            "title": "Research institution contains",
            "type": "string",
            "description": "Only awards whose partner research institution (mostly STTR) contains this text (case-insensitive), e.g. <code>MIT</code>, <code>Stanford</code>, <code>Georgia Tech</code>."
          },
          "womenOwnedOnly": {
            "title": "Women-owned only",
            "type": "boolean",
            "description": "Only companies flagged as woman-owned.",
            "default": false
          },
          "hubZoneOwnedOnly": {
            "title": "HUBZone-owned only",
            "type": "boolean",
            "description": "Only companies flagged as HUBZone-owned.",
            "default": false
          },
          "disadvantagedOnly": {
            "title": "Socially/economically disadvantaged only",
            "type": "boolean",
            "description": "Only companies flagged as socially and economically disadvantaged-owned.",
            "default": false
          },
          "withEmail": {
            "title": "Only awards with an email",
            "type": "boolean",
            "description": "Keep only records that have a business contact OR principal-investigator email — recommended for a clean, contactable lead list.",
            "default": false
          },
          "withPhone": {
            "title": "Only awards with a phone",
            "type": "boolean",
            "description": "Keep only records with a contact or PI phone number.",
            "default": false
          },
          "withWebsite": {
            "title": "Only awards with a company website",
            "type": "boolean",
            "description": "Keep only records that have a company website.",
            "default": false
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum number of award records to return in this run.",
            "default": 1000
          },
          "sortBy": {
            "title": "Sort order",
            "enum": [
              "newest",
              "awardAmountHigh",
              "awardAmountLow",
              "oldest"
            ],
            "type": "string",
            "description": "<b>Newest first</b> streams the file in its native newest-first order and stops as soon as it has enough matches — by far the fastest & cheapest. The other orders scan the entire ~370 MB file to sort globally.",
            "default": "newest"
          },
          "includeAbstract": {
            "title": "Include the full award abstract (reads an OLDER SBIR.gov file)",
            "type": "boolean",
            "description": "Off by default. SBIR.gov publishes abstracts in a separate bulk file that it has **not refreshed since 2026-01-01** - that file's newest awards are from 2024 and it carries no UEI. Leave this OFF for current 2025/2026 leads. Turn it ON only when you need the abstract text and can accept awards up to ~2024, e.g. for keyword research across award descriptions. The run log and the run's status message both say which file was used.",
            "default": false
          },
          "deduplicateResults": {
            "title": "Deduplicate within a run",
            "type": "boolean",
            "description": "Skip duplicate awards within this run (recommended).",
            "default": true
          },
          "monitorMode": {
            "title": "Monitoring mode — only new awards",
            "type": "boolean",
            "description": "Remember which awards were already returned (in a named key-value store) and emit ONLY awards that are new since the last run — each tagged <code>monitorEvent: \"new\"</code>. SBIR.gov refreshes regularly; run on a Schedule to capture newly-funded companies as fresh leads. Works alongside Apify Schedules (the schedule starts the run; monitoring decides what's new).",
            "default": false
          },
          "monitorKey": {
            "title": "Monitor key",
            "type": "string",
            "description": "Names the memory used by monitoring mode. Use a distinct key per saved watch (e.g. per agency or state) so different monitors don't share state.",
            "default": "default"
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional proxy. The SBIR.gov bulk file is downloaded directly and needs no proxy — leave this off for the fastest download. Enable Apify Proxy only if your network requires it.",
            "default": {
              "useApifyProxy": 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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}