{
  "openapi": "3.0.1",
  "info": {
    "title": "SAM.gov Scraper: Federal Contract Opportunities & Awards-No Key",
    "description": "$2 per 1,000 opportunities, no API key, no quota. Federal contract opportunities from SAM.gov matched to your NAICS codes, keywords, set-asides, agencies, and states, with contacts, deadlines, and links, plus the largest USAspending awards signed recently for the same codes.",
    "version": "0.1",
    "x-build-id": "FeecvES1JF2LGeQVH"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/upward_enterprises~sam-gov-contract-radar/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-upward_enterprises-sam-gov-contract-radar",
        "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/upward_enterprises~sam-gov-contract-radar/runs": {
      "post": {
        "operationId": "runs-sync-upward_enterprises-sam-gov-contract-radar",
        "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/upward_enterprises~sam-gov-contract-radar/run-sync": {
      "post": {
        "operationId": "run-sync-upward_enterprises-sam-gov-contract-radar",
        "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",
            "type": "array",
            "description": "Your NAICS codes, 2 to 6 digits each. A shorter code matches every notice under it (5415 matches 541511, 541512, ...). USAspending awards are filtered at 2, 4, or 6 digits, so a 3- or 5-digit code fetches awards one level up. Leave empty to match any NAICS.",
            "items": {
              "type": "string"
            }
          },
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Words or phrases to look for in the title and description, case-insensitive. A notice matches if it contains any of them (or all, see below). Leave empty to skip keyword matching.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "keywordsMatchAll": {
            "title": "Require every keyword",
            "type": "boolean",
            "description": "On: a notice must contain all keywords. Off (default): any keyword is enough.",
            "default": false
          },
          "noticeTypes": {
            "title": "Notice types",
            "type": "array",
            "description": "Which notice types to include. Empty means all types, including any new ones SAM.gov adds.",
            "items": {
              "type": "string",
              "enum": [
                "Solicitation",
                "Combined Synopsis/Solicitation",
                "Presolicitation",
                "Sources Sought",
                "Special Notice",
                "Award Notice",
                "Justification",
                "Consolidate/(Substantially) Bundle",
                "Sale of Surplus Property"
              ],
              "enumTitles": [
                "Solicitation",
                "Combined Synopsis/Solicitation",
                "Presolicitation",
                "Sources Sought",
                "Special Notice",
                "Award Notice",
                "Justification",
                "Consolidate/(Substantially) Bundle",
                "Sale of Surplus Property"
              ]
            },
            "default": []
          },
          "setAsideCodes": {
            "title": "Set-asides",
            "type": "array",
            "description": "Set-aside codes to require, e.g. SBA (Total Small Business), SBP (Partial Small Business), 8A, 8AN, HZC, HZS, SDVOSBC, SDVOSBS, WOSB, WOSBSS, EDWOSB, EDWOSBSS, VSA, VSS, ISBEE, BICiv, LAS, IEE. Empty means any, including unrestricted.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "states": {
            "title": "Place-of-performance states",
            "type": "array",
            "description": "Two-letter state codes for the place of performance, e.g. IA, TX, VA. Applies to notices and, when awards are on, also restricts USAspending awards to those places of performance. Empty means anywhere.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "agencies": {
            "title": "Agencies",
            "type": "array",
            "description": "Text to look for in the department, sub-tier, or office name, e.g. \"Veterans Affairs\", \"Department of the Army\", \"NASA\". Official names in either order work (\"Department of Defense\" and \"DEPT OF DEFENSE\" both match). Empty means any agency.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "pscCodes": {
            "title": "Product/service codes (PSC)",
            "type": "array",
            "description": "PSC / FSC codes or prefixes, e.g. D302, 70, R4. Empty means any.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "postedWithinDays": {
            "title": "Posted within (days)",
            "minimum": 1,
            "maximum": 365,
            "type": "integer",
            "description": "Only notices posted in the last N days. The extract is newest first, so small windows are fast.",
            "default": 7
          },
          "deadlineNotPassed": {
            "title": "Skip passed deadlines",
            "type": "boolean",
            "description": "Skip notices whose response deadline is already in the past.",
            "default": true
          },
          "activeOnly": {
            "title": "Active notices only",
            "type": "boolean",
            "description": "Only keep notices SAM.gov marks Active (drops archived and inactive ones).",
            "default": true
          },
          "maxItems": {
            "title": "Max opportunities",
            "minimum": 1,
            "maximum": 20000,
            "type": "integer",
            "description": "Stop after this many matching opportunities (newest first).",
            "default": 200
          },
          "dedupeAmendments": {
            "title": "Collapse amendments",
            "type": "boolean",
            "description": "SAM.gov gives every amendment a new notice id and the daily extract keeps the old versions too. On (default): deliver only the current version of each notice, confirmed against SAM.gov's notice history. Off: deliver every version.",
            "default": true
          },
          "onlyNew": {
            "title": "Only new since last run",
            "type": "boolean",
            "description": "On (default): remember what this input has already delivered (under the snapshot name) and deliver only notices and awards you have not received before, so a daily schedule is billed only for new rows. Off: deliver everything in the window every run.",
            "default": true
          },
          "snapshotName": {
            "title": "Snapshot name",
            "pattern": "^[A-Za-z0-9][A-Za-z0-9 _-]{0,61}[A-Za-z0-9]$",
            "maxLength": 63,
            "type": "string",
            "description": "Which memory to use for \"only new\"; kept on your account as a key-value store named sam-gov-contract-radar-<this name>. Give each schedule its own name. Lower-case letters, digits, and hyphens; other characters become hyphens.",
            "default": "default"
          },
          "includeAwards": {
            "title": "Include USAspending awards",
            "type": "boolean",
            "description": "For each NAICS code you gave, also deliver the largest federal contracts USAspending.gov recorded as signed in the look-back window: who won, which agency, how much. Skipped when no NAICS codes are given.",
            "default": true
          },
          "awardsMonths": {
            "title": "Awards look-back (months)",
            "minimum": 1,
            "maximum": 60,
            "type": "integer",
            "description": "How many months back to look for USAspending awards signed for your NAICS codes.",
            "default": 12
          },
          "maxAwardsPerNaics": {
            "title": "Max awards per NAICS code",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Largest awards (by amount) to deliver per NAICS code. An award that matches several of your codes is delivered once.",
            "default": 25
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}