{
  "openapi": "3.0.1",
  "info": {
    "title": "SAM.gov Opportunity Alerts: New Federal Contracts",
    "description": "New US federal contract opportunities from SAM.gov by NAICS code, keyword, set-aside or agency, with a true monitoring mode that only returns and bills for notices new since your last run.",
    "version": "1.0",
    "x-build-id": "bPf5XWG4BBLjQLXaP"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/accountable_eel~sam-gov-opportunity-alerts/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-accountable_eel-sam-gov-opportunity-alerts",
        "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/accountable_eel~sam-gov-opportunity-alerts/runs": {
      "post": {
        "operationId": "runs-sync-accountable_eel-sam-gov-opportunity-alerts",
        "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/accountable_eel~sam-gov-opportunity-alerts/run-sync": {
      "post": {
        "operationId": "run-sync-accountable_eel-sam-gov-opportunity-alerts",
        "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": {
          "naicsCodes": {
            "title": "NAICS codes to search",
            "type": "array",
            "description": "One NAICS code per line (e.g. 541511 for custom computer programming services). Combine with keywords below (optional). Leave empty to search by keyword alone. Accepted formats: 541511, 236220. You're only charged for the ones we actually find — a miss costs nothing.",
            "items": {
              "type": "string"
            }
          },
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Optional. Matched against the notice title/description (OR'd). Leave empty to search by NAICS code alone.",
            "items": {
              "type": "string"
            }
          },
          "apiKey": {
            "title": "Your free SAM.gov public API key (optional)",
            "type": "string",
            "description": "Without a key, this actor still runs, using sam.gov's own public search (NAICS filtering, no per-notice NAICS code or quota). Add your own free API key for the authenticated GSA Opportunities API (per-notice NAICS code, role-based daily quota — GSA's own docs don't publish the exact number, see README). Get one by registering an account at sam.gov, then requesting a Public API Key on your Account Details page."
          },
          "testRun": {
            "title": "Try it first — only process the first 5",
            "type": "boolean",
            "description": "Turn this on to test your input on a small sample before running the full list. Turn it off to process everything.",
            "default": false
          },
          "onlyFound": {
            "title": "Hide rows with no result",
            "type": "boolean",
            "description": "Only keep rows where something was actually found. Misses are always free, whether or not you show them here.",
            "default": false
          },
          "includeKeywords": {
            "title": "Only keep rows containing",
            "type": "array",
            "description": "Optional. Only keep results that mention at least one of these words (e.g. a job title, a city, a product name). Leave empty to keep everything.",
            "items": {
              "type": "string"
            }
          },
          "excludeKeywords": {
            "title": "Skip rows containing",
            "type": "array",
            "description": "Optional. Drop any result that mentions one of these words. Leave empty to skip nothing.",
            "items": {
              "type": "string"
            }
          },
          "maxResults": {
            "title": "Max notices per run",
            "type": "integer",
            "description": "Up to 1,000. Caps how many notices you get (and pay for) in one run.",
            "default": 100
          },
          "setAsides": {
            "title": "Set-aside type",
            "enum": [
              "any",
              "small business",
              "8(a)",
              "wosb",
              "sdvosb",
              "hubzone"
            ],
            "type": "string",
            "description": "Only keep notices with this set-aside type. \"any\" keeps every set-aside status.",
            "default": "any"
          },
          "noticeTypes": {
            "title": "Notice types",
            "type": "array",
            "description": "Optional. One or more of: solicitation, presolicitation, sources sought, combined synopsis, award, all. Leave empty for the default (all notice types except award).",
            "items": {
              "type": "string"
            }
          },
          "agencies": {
            "title": "Agencies",
            "type": "array",
            "description": "Optional. Only keep notices whose agency name contains one of these (OR'd, case-insensitive, e.g. \"Army\", \"General Services Administration\"). Leave empty for all agencies.",
            "items": {
              "type": "string"
            }
          },
          "placeOfPerformanceStates": {
            "title": "Place of performance (US states)",
            "type": "array",
            "description": "Optional. 2-letter US state codes (VA, CA, TX...). Matched as OR. Leave empty for all states.",
            "items": {
              "type": "string"
            }
          },
          "postedWithinDays": {
            "title": "Posted in the last N days",
            "type": "integer",
            "description": "How far back to search by posted date.",
            "default": 7
          },
          "onlyNewSinceLastRun": {
            "title": "Only return notices new since the last run (monitoring)",
            "type": "boolean",
            "description": "On: only new notice IDs since your last run are returned and charged for — run this on a schedule as a contract-opportunity alert. Off: every matching notice is returned every time.",
            "default": false
          },
          "deltaName": {
            "title": "Watchlist name (optional)",
            "type": "string",
            "description": "Optional. Name this search's monitoring memory so you can tell two schedules of this actor apart, or keep one memory across an input change. Leave empty to auto-derive one from your filters.",
            "default": ""
          },
          "columns": {
            "title": "Which columns do you want?",
            "type": "array",
            "description": "Choose which pieces of information to include in each result row. All are included by default.",
            "items": {
              "type": "string",
              "enum": [
                "searchSummary",
                "opportunityCount",
                "truncated",
                "monitorStatus",
                "opportunities",
                "noticeId",
                "solicitationNumber",
                "title",
                "noticeType",
                "agency",
                "office",
                "naicsCode",
                "setAside",
                "postedDate",
                "responseDeadline",
                "placeOfPerformance",
                "pointOfContactEmail",
                "description",
                "samUrl",
                "route",
                "isNew",
                "firstSeenAt"
              ],
              "enumTitles": [
                "Search run",
                "Opportunities returned",
                "More results were available",
                "Monitoring status",
                "All opportunities (full list)",
                "Notice ID",
                "Solicitation number",
                "Notice title",
                "Notice type",
                "Agency",
                "Office",
                "NAICS code",
                "Set-aside type",
                "Posted on",
                "Response deadline",
                "Place of performance",
                "Contracting officer email",
                "Description (excerpt)",
                "SAM.gov notice page",
                "Route used",
                "Is this notice new?",
                "First seen on a run"
              ]
            },
            "default": [
              "searchSummary",
              "opportunityCount",
              "truncated",
              "monitorStatus",
              "opportunities",
              "noticeId",
              "solicitationNumber",
              "title",
              "noticeType",
              "agency",
              "office",
              "naicsCode",
              "setAside",
              "postedDate",
              "responseDeadline",
              "placeOfPerformance",
              "pointOfContactEmail",
              "description",
              "samUrl",
              "route",
              "isNew",
              "firstSeenAt"
            ]
          },
          "expandRows": {
            "title": "One row per opportunity (recommended) — turn off for one row per search instead",
            "type": "boolean",
            "description": "When on, each opportunity found gets its own row instead of being grouped under its search. You're still only charged once per search, no matter how many rows it produces.",
            "default": true
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 1,
            "type": "integer",
            "description": "Parallel requests. Keep conservative — this target has no browser fallback, so getting blocked costs more than slow-and-steady.",
            "default": 1
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Apify Proxy config. Residential recommended for anti-bot-sensitive targets.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}