# FPDS Federal Contracts Scraper | USAspending Awards Data (`parseforge/fpds-federal-contracts-scraper`) Actor

Pull U.S. Federal Procurement Data System contract awards: vendor, agency, contract ID, NAICS, PSC, obligated amount, dates, place of performance, competition, set aside, and modification history. Export federal spending to JSON, CSV, or Excel for procurement intelligence and B2B sales.

- **URL**: https://apify.com/parseforge/fpds-federal-contracts-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Lead generation, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $19.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

![ParseForge Banner](https://github.com/ParseForge/apify-assets/blob/ad35ccc13ddd068b9d6cba33f323962e39aed5b2/banner.jpg?raw=true)

## 🏛️ FPDS Federal Contracts Scraper

> 🚀 **Export US federal contract awards in seconds.** Pull procurement contracts from USAspending.gov (FPDS data) by agency, vendor, award type or date. Download as CSV, Excel, JSON, or XML.

> 🕒 **Last updated:** 2026-05-26 · **📊 17 fields** per record · 30,000,000+ contract actions · United States

The **FPDS Federal Contracts Scraper** queries the USAspending.gov public Awards API, which republishes Federal Procurement Data System (FPDS) records. Every result contains the award ID, recipient (vendor) name, award amount, awarding agency and sub-agency, description, contract award type, start and end dates, COVID-19 obligations and infrastructure obligations. Power supplier discovery, government-contract lead generation, vendor benchmarking and policy research.

**Coverage:** every federal procurement contract action exported through FPDS / USAspending.

---

### Target Audience / Use Cases

| 🎯 Target Audience | 💡 Primary Use Cases |
|---|---|
| GovTech vendors | Lead generation on federal buyers |
| Defense contractors | Track competitors' awards |
| Lobbyists | Map agency spending |
| Researchers | Procurement and policy studies |
| Journalists | Investigate spending patterns |
| Consultants | Build agency-spend dashboards |

---

### 📋 What this scraper does

- Queries USAspending.gov contract awards API
- Filters by keyword, award type, action date range
- Returns award ID, recipient, amount, agency, dates
- Includes COVID-19 and infrastructure obligations
- Outputs JSON, CSV, Excel, XML

---

> 💡 **Why it matters:** FPDS is the canonical procurement dataset for the US Government. USAspending offers a clean, real-time API on top of it.

---

### 🎬 Full Demo

_🚧 Coming soon_

---

### ⚙️ Input

<table><thead><tr><th>Field</th><th>Type</th><th>Required</th><th>Default</th><th>Description</th></tr></thead>
<tbody>
<tr><td>maxItems</td><td>integer</td><td>No</td><td>10</td><td>Max records.</td></tr>
<tr><td>keyword</td><td>string</td><td>No</td><td></td><td>Vendor / description keyword.</td></tr>
<tr><td>awardTypeCode</td><td>select</td><td>No</td><td>All</td><td>A, B, C or D contract type.</td></tr>
<tr><td>timePeriodStart</td><td>string</td><td>No</td><td>2024-10-01</td><td>Action date start.</td></tr>
<tr><td>timePeriodEnd</td><td>string</td><td>No</td><td>today</td><td>Action date end.</td></tr>
</tbody></table>

**Example 1 - Lockheed Martin awards FY 2025:**
```json
{ "keyword": "Lockheed Martin", "maxItems": 500 }
````

**Example 2 - Definitive contracts in May 2026:**

```json
{ "awardTypeCode": "D", "timePeriodStart": "2026-05-01", "timePeriodEnd": "2026-05-31", "maxItems": 1000 }
```

> ⚠️ **Good to Know:** USAspending sorts by Award Amount descending. Records are aggregated to the prime-award level.

***

### 📊 Output

Sample:

```json
{
    "title": "FOREST PRODUCTS DISTRIBUTORS, INC.",
    "awardId": "SPM8E611D0007",
    "recipientName": "FOREST PRODUCTS DISTRIBUTORS, INC.",
    "awardAmount": 8120.0,
    "awardingAgency": "Department of Defense",
    "awardingSubAgency": "Defense Logistics Agency",
    "awardType": "DELIVERY ORDER",
    "sourceUrl": "https://www.usaspending.gov/award/CONT_AWD_ZZZZ_9700_SPM8E611D0007_9700"
}
```

Key fields: title, awardId, recipientName, awardAmount, totalOutlays, description, awardType, awardingAgency, awardingSubAgency, startDate, endDate, COVID-19 and Infrastructure obligations.

***

### ✨ Why choose this Actor

- 🟢 Backed by the official USAspending.gov API
- 🟢 No registration, no API key
- 🟢 Filter combinations supported
- 🟢 Up to 1,000,000 records per paid run

***

### 📈 How it compares to alternatives

| Option | Free | Bulk export | Live |
|---|---|---|---|
| FPDS.gov | Yes | Limited | Yes |
| USAspending.gov | Yes | Yes | Yes |
| **ParseForge FPDS Scraper** | **Yes** | **Yes** | **Live** |

***

### 🚀 How to use

1. [Create a free account w/ $5 credit](https://console.apify.com/sign-up?fpr=vmoqkp)
2. Open this actor
3. Set filters, click Start
4. Download CSV / Excel / JSON / XML
5. Schedule or integrate

***

### 💼 Business use cases

#### GovTech lead generation

Find agencies buying products like yours.

#### Competitor monitoring

Track every award won by a named vendor.

#### Pipeline forecasting

Spot which agencies issue recurring procurements.

#### Policy research

Quantify federal spending by program.

***

### 🔌 Automating FPDS Scraper

Integrates with **Make**, **Zapier**, **n8n**, **Slack**, **Airbyte**, **GitHub Actions**, **Google Drive**.

***

### 🌟 Beyond business use cases

#### Research

Procurement policy and pricing studies.

#### Personal

Investigate hometown federal spending.

#### Non-profit

Government accountability reporting.

#### Experimentation

Combine with SAM.gov solicitations for full lifecycle data.

***

### 🤖 Ask an AI assistant about this scraper

ChatGPT · Claude · Perplexity · Microsoft Copilot

***

### ❓ Frequently Asked Questions

**Q: Source?**
USAspending.gov Awards API (FPDS data).

**Q: API key?**
No.

**Q: Real-time?**
Yes, queried live on every run.

**Q: Update frequency?**
USAspending refreshes from FPDS regularly.

**Q: Output formats?**
JSON, CSV, Excel, XML.

**Q: Free preview?**
Yes, 10 records.

**Q: Bulk size?**
Up to 1,000,000 paid.

**Q: Coverage?**
All federal contract actions filed in FPDS.

**Q: Includes COVID-19 and Infrastructure obligations?**
Yes, when populated by the agency.

**Q: Grants?**
This actor returns procurement contracts only. Grant scrapers are available separately.

***

### 🔌 Integrate with any app

Webhooks, REST API, Make, Zapier, Slack, Airbyte, Google Sheets, and more.

***

### 🔗 Recommended Actors

| Actor | What it does |
|---|---|
| [FINRA BrokerCheck Scraper](https://apify.com/parseforge/finra-brokercheck-scraper) | US broker disciplinary history |
| [SEC EDGAR Filings Scraper](https://apify.com/parseforge/sec-edgar-filings-scraper) | Public-company filings |
| [Medicare Hospital Compare Scraper](https://apify.com/parseforge/hospital-compare-medicare-scraper) | Hospital quality data |

> 💡 **Pro Tip:** browse the complete [ParseForge collection](https://apify.com/parseforge).

**🆘 Need Help?** [Open our contact form](https://tally.so/r/BzdKgA)

> **⚠️ Disclaimer:** independent tool, not affiliated with USAspending.gov or the US Government. Only publicly available data from api.usaspending.gov is collected.

# Actor input Schema

## `maxItems` (type: `integer`):

Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000

## `keyword` (type: `string`):

Optional keyword filter (recipient name, description). Example: 'Lockheed Martin'.

## `awardTypeCode` (type: `string`):

Procurement award type code. A=BPA Call, B=Purchase Order, C=Delivery Order, D=Definitive Contract.

## `timePeriodStart` (type: `string`):

Action date start (YYYY-MM-DD). Defaults to 2024-10-01.

## `timePeriodEnd` (type: `string`):

Action date end (YYYY-MM-DD). Defaults to today.

## Actor input object example

```json
{
  "maxItems": 10
}
```

# Actor output Schema

## `results` (type: `string`):

Scraped FPDS Federal Contracts Scraper records

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/fpds-federal-contracts-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "maxItems": 10 }

# Run the Actor and wait for it to finish
run = client.actor("parseforge/fpds-federal-contracts-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "maxItems": 10
}' |
apify call parseforge/fpds-federal-contracts-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=parseforge/fpds-federal-contracts-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "FPDS Federal Contracts Scraper | USAspending Awards Data",
        "description": "Pull U.S. Federal Procurement Data System contract awards: vendor, agency, contract ID, NAICS, PSC, obligated amount, dates, place of performance, competition, set aside, and modification history. Export federal spending to JSON, CSV, or Excel for procurement intelligence and B2B sales.",
        "version": "0.1",
        "x-build-id": "LhRVdRBJBnmEFyq3X"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/parseforge~fpds-federal-contracts-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-parseforge-fpds-federal-contracts-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~fpds-federal-contracts-scraper/runs": {
            "post": {
                "operationId": "runs-sync-parseforge-fpds-federal-contracts-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~fpds-federal-contracts-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-parseforge-fpds-federal-contracts-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": {
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 1,
                        "maximum": 1000000,
                        "type": "integer",
                        "description": "Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000"
                    },
                    "keyword": {
                        "title": "Keyword",
                        "type": "string",
                        "description": "Optional keyword filter (recipient name, description). Example: 'Lockheed Martin'."
                    },
                    "awardTypeCode": {
                        "title": "Award Type Code",
                        "enum": [
                            "",
                            "A",
                            "B",
                            "C",
                            "D"
                        ],
                        "type": "string",
                        "description": "Procurement award type code. A=BPA Call, B=Purchase Order, C=Delivery Order, D=Definitive Contract."
                    },
                    "timePeriodStart": {
                        "title": "Start Date",
                        "type": "string",
                        "description": "Action date start (YYYY-MM-DD). Defaults to 2024-10-01."
                    },
                    "timePeriodEnd": {
                        "title": "End Date",
                        "type": "string",
                        "description": "Action date end (YYYY-MM-DD). Defaults to today."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
