{
  "openapi": "3.0.1",
  "info": {
    "title": "Government Contract Awards Scraper",
    "description": "Scrape all US federal spending data from USAspending.gov API. Extract contracts, grants, loans and more with recipient analytics, transaction history, and spending breakdowns by agency, NAICS an geography. Filter by keyword, agency, date range, amount, recipient type, location, NAICS and PSC codes.",
    "version": "1.1",
    "x-build-id": "PTz2UABWjNMBaf8oa"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/parseforge~government-contract-awards-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-parseforge-government-contract-awards-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/parseforge~government-contract-awards-scraper/runs": {
      "post": {
        "operationId": "runs-sync-parseforge-government-contract-awards-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/parseforge~government-contract-awards-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-parseforge-government-contract-awards-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": {
          "keywords": {
            "title": "Keyword Search",
            "type": "string",
            "description": "Search contracts by keyword in description or award title (e.g., \"cybersecurity\", \"cloud services\")."
          },
          "maxItems": {
            "title": "Max Items",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "Free users: Limited to 100. Paid users: Optional, max 1,000,000."
          },
          "awardTypes": {
            "title": "Award Types",
            "type": "array",
            "description": "Filter by contract award type codes. A=BPA Call, B=Purchase Order, C=Delivery Order, D=Definitive Contract.",
            "items": {
              "type": "string"
            }
          },
          "startDate": {
            "title": "Start Date",
            "type": "string",
            "description": "Filter contracts with action dates on or after this date (YYYY-MM-DD format)."
          },
          "endDate": {
            "title": "End Date",
            "type": "string",
            "description": "Filter contracts with action dates on or before this date (YYYY-MM-DD format)."
          },
          "awardingAgencyName": {
            "title": "Awarding Agency Name",
            "type": "string",
            "description": "Filter by awarding agency name (e.g., \"Department of Defense\", \"Department of Homeland Security\")."
          },
          "naicsCodes": {
            "title": "NAICS Codes",
            "type": "array",
            "description": "Filter by NAICS industry codes (e.g., [\"541512\", \"541519\"] for computer services).",
            "items": {
              "type": "string"
            }
          },
          "minAwardAmount": {
            "title": "Minimum Award Amount ($)",
            "type": "number",
            "description": "Filter to only return contracts with total obligation at or above this amount in USD."
          },
          "maxAwardAmount": {
            "title": "Maximum Award Amount ($)",
            "type": "number",
            "description": "Filter to only return contracts with total obligation at or below this amount in USD."
          },
          "recipientName": {
            "title": "Recipient Name",
            "type": "string",
            "description": "Filter by contractor/recipient name (partial match supported)."
          },
          "placeOfPerformanceState": {
            "title": "Place of Performance State",
            "type": "string",
            "description": "Filter by 2-letter US state code where work is performed (e.g., \"CA\", \"TX\", \"VA\")."
          },
          "sortBy": {
            "title": "Sort By",
            "enum": [
              "Award Amount",
              "Period of Performance Start Date",
              "Period of Performance Current End Date",
              "Base Obligation Date"
            ],
            "type": "string",
            "description": "Field to sort results by.",
            "default": "Award Amount"
          },
          "sortOrder": {
            "title": "Sort Order",
            "enum": [
              "desc",
              "asc"
            ],
            "type": "string",
            "description": "Sort direction: desc for highest/newest first, asc for lowest/oldest first.",
            "default": "desc"
          },
          "fetchDetailPages": {
            "title": "Fetch Detail Pages",
            "type": "boolean",
            "description": "Fetch full detail page for each award to get additional fields (recipient address, NAICS code, pricing type, set-aside details). Recommended for complete data.",
            "default": true
          },
          "maxConcurrency": {
            "title": "Max Concurrency",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Maximum number of parallel requests for detail page fetching. Lower this if you get rate-limited.",
            "default": 5
          },
          "requestDelayMs": {
            "title": "Request Delay (ms)",
            "minimum": 0,
            "type": "integer",
            "description": "Milliseconds to wait between page requests. Increase if the API rate-limits you.",
            "default": 500
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}