# Why can't I page past 10,000 records in the SAM.gov Entity API? The SAM.gov Entity Management API returns 10 records per page and lets a query reach only its first 10,000 results, so a broad search such as every active firm in one NAICS code cannot be paged to the end. GSA's answer for larger pulls is the asynchronous extract, a file you download and load yourself. It needs a loader that handles the fixed-width or CSV layout and a monthly refresh.Checked on 2026-11-15.Official source: [open.gsa.gov Entity Management API](https://open.gsa.gov/api/entity-api/) | Records per page (official) | 10 | | --- | --- | | Reachable results per query (official) | 10,000 | | Rows per call here | Up to 100 | | Entities in the loaded extract | 881,370 | ## The answer in detail At 10 records per page, 10,000 records is 1,000 calls, which is the whole daily allowance of a user with a role and 100 days of a no-role key. Splitting a query by state or registration date keeps each slice under the ceiling, but the call count stays the same.The extract route gives you every public registration at once (881,370 rows in the 1 Nov 2026 file this site loaded, 803,276 of them active). It needs a loader that handles the fixed-width or CSV layout and a monthly refresh.samgovapi.io serves the loaded extract with up to 100 rows per call and a cursor that keeps going past 10,000. A search costs 1 credit per 100 rows returned, so 10,000 rows cost about 100 credits. ## How the options compare | Option | Price | Access and limits | Coverage and history | Best for | Checked | | --- | --- | --- | --- | --- | --- | | [SAM.gov APIs (official)](https://open.gsa.gov/api/entity-api/) | Free | 10 requests a day with no SAM.gov role, 1,000 with a role or a non-federal system account; keys expire every 90 days | The live, authoritative record: entities, opportunities, exclusions, contract awards, hierarchy, subawards | Anyone who needs the official record itself, at low volume | 2026-11-12 | | [SAM.gov entity extracts (official files)](https://open.gsa.gov/api/sam-entity-extracts-api/) | Free | Monthly full file plus daily deltas; public version needs a free key to download | Every registration in the public extract; you load and query it yourself | Data teams that want to host the whole file | 2026-11-12 | | [GovCon API (govconapi.com)](https://govconapi.com/pricing) | Developer $19/mo, Pro $39/mo; 14-day trial | 1,000 requests an hour (50 a minute burst); trial 50 a day | 12,265,150 contracts and 758,552 opportunities from FY2025; 904,090 entities, monthly | Developers who want the lowest entry price and FY2025+ history | 2026-11-15 | | [samgovapi.io](https://samgovapi.io/pricing) | Free (100 credits a month, no card); Developer $49/mo, Pro $149/mo, Scale $499/mo | 20 to 180 requests a minute by plan, no daily cap; REST, MCP and keyless MCP search | 881,370 entities (1 Nov 2026 extract), 74,420 notices, 169,191 exclusions, 114,954 awards since 1 Oct 2026 | Developers and AI agents who want entities, bids and exclusions joined in one API | 2026-11-15 | ## Where samgovapi.io is the weaker choice - Entity data comes from the SAM.gov monthly public extract (this one dated 1 Nov 2026; the next is due about 17 Dec 2026), so a registration renewed since then still shows its old expiry date until the next load. The live SAM.gov API shows it the same day. - GovCon API returns up to 1,000 results per request on its paid plans, ten times the 100 here. ## Try it Page through every active registrant in one NAICS code with next_cursor. ``` import os, requests r = requests.get( "https://samgovapi.io/api/v1/entities", params={"naics": "541611", "status": "active", "limit": 100}, headers={"Authorization": f"Bearer {os.environ['SAMGOVAPI_API_KEY']}"}, timeout=30, ) body = r.json() print(body["meta"]["as_of"], body["meta"]["credits_charged"]) print(body["data"]) # next page: params["cursor"] = body["meta"]["next_cursor"] ``` ## Questions Does the SAM.gov extract include every registrant?The public extract includes every registration that is not marked private. Some sole proprietor details are withheld.How many credits does a 10,000-row pull cost here?Searches cost 1 credit per 100 rows, so 10,000 rows cost about 100 credits. ## Related - [SAM.gov Entity API](https://samgovapi.io/sam-gov-entity-api) - [Entity extracts API](https://samgovapi.io/sam-gov-entity-extracts-api) - [API docs](https://samgovapi.io/docs) - [Pricing](https://samgovapi.io/pricing) - [Answers](https://samgovapi.io/answers)Updated 2026-11-15. Sources checked 2026-11-15.Independent. Not affiliated with, endorsed by or sponsored by GSA, SAM.gov or any U.S. government agency. Registering in SAM.gov is free at sam.gov.

---

HTML version: https://samgovapi.io/answers/sam-gov-api-10000-record-limit . Markdown: https://samgovapi.io/answers/sam-gov-api-10000-record-limit.md

Independent. Not affiliated with, endorsed by or sponsored by GSA, SAM.gov or any U.S. government agency. Registering in SAM.gov is free at sam.gov.

Get a free API key: https://samgovapi.io/sign-up?ref=ai-claudebot
