The limit depends on the SAM.gov API and account type.
The SAM.gov Get Opportunities API requires an API key, uses daily limits based on federal/non-federal roles, and documents a maximum opportunity page size of 1,000 records. The SAM.gov Entity Management API documents default daily limits from 10 requests/day for a non-federal personal key with no SAM.gov role up to 10,000 requests/day for a federal system account.
10 requests/day
Documented for non-federal personal keys with no SAM.gov role on the Entity Management API.
1,000 requests/day
Documented for common role-backed personal keys and non-federal system-account keys on the Entity Management API.
10,000 requests/day
Documented for federal system-account keys on the Entity Management API.
1,000 records/page
Documented maximum page size for the Get Opportunities Public API.
Avoid limits by changing the shape of the job.
Retrying faster usually makes the problem worse. A better pattern is to keep search broad, cache stable records, fetch detail only when a record changes, and use a cursor or date window for incremental work.
Cache by source ID
Store the upstream notice ID and the platform recordId. Do not refetch unchanged records on every user search.
Split search and detail
Use list/search calls to find candidate records, then fetch documents, history, and joined context only for selected records.
Use incremental polling
Poll changes or updated-since windows instead of replaying every keyword search across the same date range.
Keep source links
Preserve the source URL and original identifiers so humans can verify the upstream record when needed.
Boring gives your app one request budget over normalized records.
This does not change SAM.gov's upstream limits. It gives your application a Boring Data Platform quota over source-linked, normalized records with documents, history, and joins where available.
| Plan | Monthly requests | Per-key rate |
|---|---|---|
| Sandbox | 5,000 | 60 rpm |
| Starter | 10,000 | 600 rpm |
| Growth | 100,000 | 600 rpm |
| Developer | 500,000 | 600 rpm |
Fetch one current SAM.gov opportunity through Boring.
Replace the API key with a Sandbox or paid key. The response uses the Boring /v1/* envelope and counts as one request against your monthly quota.
curl -s 'https://api.boringdataplatform.com/v1/opportunities?source=sam_current&limit=1' \
-H 'Authorization: Bearer <YOUR_API_KEY>'