{
  "openapi": "3.0.1",
  "info": {
    "title": "SAM.gov Federal Contracts Monitor + USAspending Awards",
    "description": "Find US federal contract opportunities on SAM.gov, plus USAspending awards. In: keywords, NAICS, PSC, set-aside, agency, state, dates (all optional). Out: one JSON row per notice: title, agency, NAICS, set-aside, deadline, link; optional full text + attachments. $0.002/notice; 20 by default.",
    "version": "0.1",
    "x-build-id": "HBIx70cWUQbgY14rG"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/krundle~samgov-federal-contracts-monitor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-krundle-samgov-federal-contracts-monitor",
        "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/krundle~samgov-federal-contracts-monitor/runs": {
      "post": {
        "operationId": "runs-sync-krundle-samgov-federal-contracts-monitor",
        "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/krundle~samgov-federal-contracts-monitor/run-sync": {
      "post": {
        "operationId": "run-sync-krundle-samgov-federal-contracts-monitor",
        "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": {
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Words or phrases to find in the title, solicitation number and description. Examples: [\"cybersecurity\"], [\"zero trust\", \"SOC\"]. Case-insensitive, matched at word starts (\"cyber\" matches \"cybersecurity\"). Combine with keywordMatch.",
            "items": {
              "type": "string"
            }
          },
          "keywordMatch": {
            "title": "Keyword match",
            "enum": [
              "any",
              "all"
            ],
            "type": "string",
            "description": "any: a notice matches if it contains at least one keyword. all: it must contain every keyword.",
            "default": "any"
          },
          "keywordFields": {
            "title": "Search keywords in",
            "enum": [
              "titleAndDescription",
              "title"
            ],
            "type": "string",
            "description": "Where keywords are searched.",
            "default": "titleAndDescription"
          },
          "excludeKeywords": {
            "title": "Exclude keywords",
            "type": "array",
            "description": "Skip notices that contain any of these words or phrases, e.g. janitorial.",
            "items": {
              "type": "string"
            }
          },
          "naicsCodes": {
            "title": "NAICS codes",
            "type": "array",
            "description": "NAICS codes, prefix match. Examples: [\"541512\"] (Computer Systems Design Services), [\"5415\"] (matches 541511, 541512, 541519…), [\"236220\"] (commercial construction).",
            "items": {
              "type": "string"
            }
          },
          "pscCodes": {
            "title": "PSC / classification codes",
            "type": "array",
            "description": "Product Service Codes, prefix match. Examples: [\"D\"] (all IT and telecom services), [\"DA01\"], [\"R4\"].",
            "items": {
              "type": "string"
            }
          },
          "setAsideCodes": {
            "title": "Set-aside types",
            "type": "array",
            "description": "Only notices with one of these set-asides. No set-aside matches notices with an empty or NONE set-aside.",
            "items": {
              "type": "string",
              "enum": [
                "SBA",
                "SBP",
                "8A",
                "8AN",
                "HZC",
                "HZS",
                "SDVOSBC",
                "SDVOSBS",
                "WOSB",
                "WOSBSS",
                "EDWOSB",
                "EDWOSBSS",
                "VSA",
                "VSS",
                "LAS",
                "IEE",
                "ISBEE",
                "BICiv",
                "NONE"
              ],
              "enumTitles": [
                "Total Small Business (SBA)",
                "Partial Small Business (SBP)",
                "8(a) Set-Aside (8A)",
                "8(a) Sole Source (8AN)",
                "HUBZone Set-Aside (HZC)",
                "HUBZone Sole Source (HZS)",
                "Service-Disabled Veteran-Owned SB Set-Aside (SDVOSBC)",
                "SDVOSB Sole Source (SDVOSBS)",
                "Women-Owned SB Set-Aside (WOSB)",
                "WOSB Sole Source (WOSBSS)",
                "Economically Disadvantaged WOSB (EDWOSB)",
                "EDWOSB Sole Source (EDWOSBSS)",
                "Veteran-Owned SB Set-Aside, VA (VSA)",
                "Veteran-Owned SB Sole Source, VA (VSS)",
                "Local Area Set-Aside (LAS)",
                "Indian Economic Enterprise (IEE)",
                "Indian Small Business Economic Enterprise (ISBEE)",
                "Buy Indian, IHS (BICiv)",
                "No set-aside"
              ]
            }
          },
          "agencies": {
            "title": "Agencies",
            "type": "array",
            "description": "Agency names, abbreviations or codes (word match). Examples: [\"Veterans Affairs\"], [\"VA\", \"DHS\"], [\"Navy\"], [\"Defense Logistics Agency\"], CGAC/AAC codes [\"036\"], [\"36C10B\"].",
            "items": {
              "type": "string"
            }
          },
          "states": {
            "title": "Place of performance states",
            "type": "array",
            "description": "Two-letter US state codes for place of performance, e.g. [\"VA\", \"MD\", \"DC\"]. Only ~25% of notices state one; see stateMatch.",
            "items": {
              "type": "string"
            }
          },
          "stateMatch": {
            "title": "State match",
            "enum": [
              "placeOfPerformance",
              "placeOfPerformanceOrOffice"
            ],
            "type": "string",
            "description": "Place of performance only (strict). Or office state also includes notices without a place of performance whose contracting office is in one of the states.",
            "default": "placeOfPerformance"
          },
          "noticeTypes": {
            "title": "Notice types",
            "type": "array",
            "description": "Only these notice types. Leave empty for all types.",
            "items": {
              "type": "string",
              "enum": [
                "Solicitation",
                "Combined Synopsis/Solicitation",
                "Presolicitation",
                "Sources Sought",
                "Special Notice",
                "Award Notice",
                "Justification",
                "Modification/Amendment/Cancel",
                "Sale of Surplus Property",
                "Consolidate/(Substantially) Bundle"
              ]
            }
          },
          "postedWithinDays": {
            "title": "Posted within last N days",
            "minimum": 0,
            "maximum": 10000,
            "type": "integer",
            "description": "Only notices posted in the last N US Eastern calendar days (today included), e.g. 7. 0 = no limit. Ignored when postedFrom is set.",
            "default": 0
          },
          "postedFrom": {
            "title": "Posted from",
            "pattern": "^(\\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$",
            "type": "string",
            "description": "Only notices posted on or after this date, YYYY-MM-DD (US Eastern), e.g. \"2026-10-01\"."
          },
          "postedTo": {
            "title": "Posted to",
            "pattern": "^(\\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$",
            "type": "string",
            "description": "Only notices posted on or before this date, YYYY-MM-DD, e.g. \"2026-10-18\"."
          },
          "responseFrom": {
            "title": "Response deadline from",
            "pattern": "^(\\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$",
            "type": "string",
            "description": "Only notices whose response deadline is on or after this date, YYYY-MM-DD. Notices without a deadline are excluded when a deadline range is set."
          },
          "responseTo": {
            "title": "Response deadline to",
            "pattern": "^(\\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$",
            "type": "string",
            "description": "Only notices whose response deadline is on or before this date, YYYY-MM-DD."
          },
          "activeOnly": {
            "title": "Active only",
            "type": "boolean",
            "description": "Skip notices that SAM.gov marks inactive or whose archive date has passed.",
            "default": true
          },
          "openForResponseOnly": {
            "title": "Open for response only",
            "type": "boolean",
            "description": "Skip notices whose response deadline has already passed (notices without a deadline, such as award notices, are kept).",
            "default": false
          },
          "solicitationNumbers": {
            "title": "Solicitation numbers",
            "type": "array",
            "description": "Exact solicitation numbers to track, e.g. [\"36C10B26Q0610\"]. Useful with onlyNew to catch amendments.",
            "items": {
              "type": "string"
            }
          },
          "noticeIds": {
            "title": "Notice IDs",
            "type": "array",
            "description": "Exact 32-character SAM.gov notice IDs (from sam.gov/opp/<id>/view), e.g. [\"7b59a22732dd452ca9a04386363a9e15\"].",
            "items": {
              "type": "string"
            }
          },
          "maxOpportunities": {
            "title": "Max opportunities",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum opportunities returned (after sorting). Default 20 keeps calls cheap (~$0.04); raise it (e.g. 100, 1000) for bigger exports. 0 = unlimited (~70,000 notices).",
            "default": 20
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "postedDateDesc",
              "responseDeadlineAsc",
              "csvOrder"
            ],
            "type": "string",
            "description": "Order of the output (applied before Max opportunities).",
            "default": "postedDateDesc"
          },
          "includeDetails": {
            "title": "Include full details (description + attachments)",
            "type": "boolean",
            "description": "For each opportunity, also loads the full description from sam.gov (the extract cuts long ones at 32,000 characters and has no HTML) plus every attachment and link with a download URL, file type, size and posting date. Takes two extra requests per notice and is charged as opportunity-with-details instead of opportunity.",
            "default": false
          },
          "includeDescriptionHtml": {
            "title": "Include description HTML",
            "type": "boolean",
            "description": "With details on, also returns the original HTML description (descriptionHtml).",
            "default": false
          },
          "includeDescription": {
            "title": "Include description from extract",
            "type": "boolean",
            "description": "true (default) = include the description text from the extract (can be several thousand characters per notice). Set false for compact output, e.g. for LLM context.",
            "default": true
          },
          "includeContacts": {
            "title": "Include contracting officer contacts",
            "type": "boolean",
            "description": "Adds primary and secondary contracting officer/specialist name, title, email, phone and fax. Off by default. These are business contacts of government staff; use them only for responding to the notice, in line with applicable laws and SAM.gov terms.",
            "default": false
          },
          "searchOpportunities": {
            "title": "Search SAM.gov opportunities",
            "type": "boolean",
            "description": "Turn off to run only the USAspending awards lookup.",
            "default": true
          },
          "searchAwards": {
            "title": "Search USAspending awards",
            "type": "boolean",
            "description": "Also look up federal contract awards from USAspending.gov, for example who won past work in your NAICS code or at your target agency. Charged per award record.",
            "default": false
          },
          "awardRecipients": {
            "title": "Award recipients",
            "type": "array",
            "description": "Recipient company names or UEIs, e.g. [\"Booz Allen Hamilton\"], [\"Leidos\"].",
            "items": {
              "type": "string"
            }
          },
          "awardNaicsCodes": {
            "title": "Award NAICS codes",
            "type": "array",
            "description": "NAICS codes for awards. If empty and Reuse opportunity filters is on, the opportunity NAICS codes are used.",
            "items": {
              "type": "string"
            }
          },
          "awardPscCodes": {
            "title": "Award PSC codes",
            "type": "array",
            "description": "PSC codes or prefixes for awards. Falls back to the opportunity PSC codes like NAICS.",
            "items": {
              "type": "string"
            }
          },
          "awardAgencies": {
            "title": "Award agencies",
            "type": "array",
            "description": "Awarding agency names, abbreviations or CGAC codes, e.g. [\"Department of Veterans Affairs\"], [\"VA\"], [\"Navy\"], [\"036\"].",
            "items": {
              "type": "string"
            }
          },
          "awardStates": {
            "title": "Award place of performance states",
            "type": "array",
            "description": "Two-letter state codes.",
            "items": {
              "type": "string"
            }
          },
          "awardKeywords": {
            "title": "Award keywords",
            "type": "array",
            "description": "Keywords USAspending searches in award descriptions (3+ characters), e.g. [\"cloud migration\"]. Opportunity keywords are not reused.",
            "items": {
              "type": "string"
            }
          },
          "awardSetAsideCodes": {
            "title": "Award set-aside codes",
            "type": "array",
            "description": "USAspending set-aside codes, e.g. [\"SBA\"], [\"8A\"], [\"SDVOSBC\"], [\"WOSB\"], [\"HZC\"].",
            "items": {
              "type": "string"
            }
          },
          "reuseOpportunityFiltersForAwards": {
            "title": "Reuse opportunity filters",
            "type": "boolean",
            "description": "When an award NAICS/PSC/agency/state/set-aside field is empty, use the matching opportunity filter instead.",
            "default": true
          },
          "awardLookbackDays": {
            "title": "Award lookback (days)",
            "minimum": 1,
            "maximum": 7000,
            "type": "integer",
            "description": "Award date window when Award date from is not set: the last N days up to today.",
            "default": 90
          },
          "awardDateFrom": {
            "title": "Award date from",
            "pattern": "^(\\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$",
            "type": "string",
            "description": "Start of the award date window, YYYY-MM-DD (2007-10-01 or later), e.g. \"2026-01-01\"."
          },
          "awardDateTo": {
            "title": "Award date to",
            "pattern": "^(\\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])$",
            "type": "string",
            "description": "End of the award date window, YYYY-MM-DD. Default: today."
          },
          "awardDateType": {
            "title": "Award date means",
            "enum": [
              "action_date",
              "new_awards_only",
              "date_signed",
              "last_modified_date"
            ],
            "type": "string",
            "description": "Action date: any obligation/modification in the window (includes older awards with new actions). New awards only: base award signed in the window. Last modified: records updated in the window.",
            "default": "action_date"
          },
          "awardTypes": {
            "title": "Award types",
            "type": "array",
            "description": "contracts: definitive contracts, purchase orders, delivery orders, BPA calls. idvs: indefinite delivery vehicles (IDIQs, GWACs, BPAs, BOAs, FSS).",
            "items": {
              "type": "string",
              "enum": [
                "contracts",
                "idvs"
              ],
              "enumTitles": [
                "Contracts",
                "IDVs"
              ]
            },
            "default": [
              "contracts"
            ]
          },
          "awardMinAmount": {
            "title": "Min award amount (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Only awards worth at least this much."
          },
          "awardMaxAmount": {
            "title": "Max award amount (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Only awards worth at most this much."
          },
          "awardSortBy": {
            "title": "Sort awards by",
            "enum": [
              "date",
              "amount"
            ],
            "type": "string",
            "description": "Newest first (base obligation date) or largest first.",
            "default": "date"
          },
          "maxAwards": {
            "title": "Max awards",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum USAspending award records returned when searchAwards is true. Default 20; 0 = unlimited (broad searches return millions).",
            "default": 20
          },
          "onlyNew": {
            "title": "Only new since last run (alerts)",
            "type": "boolean",
            "description": "Remembers which notices and awards were already delivered (named key-value store samgov-contracts-state) and outputs, and charges for, new ones only. Schedule the Actor daily for alerts. When the SAM.gov extract has not changed since the last complete run, the run ends without downloading it.",
            "default": false
          },
          "stateKey": {
            "title": "State key",
            "type": "string",
            "description": "Name of the alert memory. Runs with the same key share it even if filters change. Empty = derived from the filters, so each filter combination gets its own memory."
          },
          "baselineOnFirstRun": {
            "title": "Baseline on first run",
            "type": "boolean",
            "description": "In only-new mode, the first run marks all current matches as seen without outputting (or charging for) them, so you only get alerts for notices posted afterwards.",
            "default": false
          },
          "csvUrl": {
            "title": "SAM.gov extract URL",
            "type": "string",
            "description": "Contract Opportunities full CSV published daily by GSA on data.gov. Change only if GSA moves the file.",
            "default": "https://s3.amazonaws.com/falextracts/Contract%20Opportunities/datagov/ContractOpportunitiesFullCSV.csv"
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Parallel requests to sam.gov for details.",
            "default": 3
          },
          "maxRetries": {
            "title": "Max retries",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Retries with exponential backoff on network errors, 429 and 5xx.",
            "default": 5
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}