TX ESBD Procurement Opportunities
Pricing
$20.00 / 1,000 solicitation pages
TX ESBD Procurement Opportunities
The raw data engine over the full Texas ESBD procurement corpus with structured NIGP codes. Query (any slice) or monitor (change diffing). Deterministic JSON - the same layer the semantic tools use, exposed for your own pipeline.
Pricing
$20.00 / 1,000 solicitation pages
Rating
0.0
(0)
Developer
Wenhao Yang
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
TX State Procurement Data, ESBD Raw Layer (sled-tx-procurement)
The raw engine over the full Texas ESBD corpus - a full-corpus pull and a change monitor over ~59,000 state & local government solicitations, with structured NIGP codes in the output and no per-tool opinion about how you use it.
This is the data layer the semantic tools in the family are built on, exposed directly for pipelines that want to own the query themselves.
Low cost
From $0.02 per solicitation record - you are charged per record delivered, never for the query itself. Runs are capped at $5.
Modes
query(default) - pull any slice of the full corpus as normalized JSON, filtered by keyword / NIGP / agency / status.monitor- diff against a stored snapshot and emit only what changed: new records, plus updated records carrying achangedFieldsarray (field/oldValue/newValue) at the field level. The first run establishes the baseline and delivers nothing - so it costs nothing.
What you get
The exact normalized schema every other actor in the family uses - no hidden transforms, no black box:
{"platform": "tx-esbd","agency": "Parks & Wildlife Department - 802","agencyNumber": "802","title": "17ft Center Console Mud Boat Packages","bidNumber": "802-27-75102-BR","status": "Awarded","publishedDate": "7/24/2026","closeDate": "8/7/2026 2:00 PM","nigpCodes": [{ "code": "12021", "description": "Boats, 21 Feet And Under" },{ "code": "12063", "description": "Motors, Outboard, Gasoline" }],"url": "https://www.txsmartbuy.gov/esbd/802-27-75102-BR","created": "7/24/2026 8:25 am","lastModified": "8/27/2026 4:10 pm"}
Statuses: Posted / Awarded / Addendum Posted / Closed / No Award
Inputs
| Input | What it does |
|---|---|
mode | query or monitor. |
keywords / nigpCodes / agencies / statuses | The query filters. |
pages | Scan depth from the newest record (24 records per page). |
snapshotKey | (monitor) Names the stored baseline. Use a distinct key per deployment. |
Example inputs
What the state is buying in a commodity code - nigpCodes matches the structured code the record carries.
{ "mode": "query", "nigpCodes": ["96145"], "pages": 60 }
Everything one agency is buying, newest first:
{ "mode": "query", "agencies": ["529"], "pages": 50 }
A deep pass over one NIGP class - widen pages to reach further back from the newest record:
{ "mode": "query", "nigpCodes": ["96145"], "pages": 300 }
Alert on new and changed solicitations - monitor diffs against the stored baseline and emits only what moved. The first run of a given snapshotKey establishes the baseline and emits nothing; changes appear from the next run on:
{ "mode": "monitor", "keywords": ["locks"], "pages": 50 }
Why this is hard
The API is a live service with no server-side filtering - the filter parameter is accepted and then ignored - and it is ordered by last modified, not posted date. So "the top of the feed" is not "the newest solicitations", and a change diff that assumes otherwise reports the wrong records as new. The monitor matches on the bid number instead of on feed position, which is what makes the change stream trustworthy.
The source also emits NIGP codes as a single delimited string ("94828-Dental Services;"); the output parses them into structured {code, description} objects so you never have to.
Full-corpus chunking
pages: 2500 walks the entire corpus (~40 min). Measured: 100 pages ~ 95 s, 200 pages ~ 3 min, 500 pages ~ 8 min. Because of the modified-date ordering, chunk by date window or NIGP code rather than by plain deep scans:
{"mode": "query", "pages": 2500, "nigpCodes": ["90000"]}
When to use the specialised actors instead
This engine is unopinionated, which means you pay for and manage the general case. If your goal is one of the specific jobs below, the purpose-built actor is cheaper and simpler:
| Your goal | Actor |
|---|---|
| Find bids by keyword, NIGP, agency, status | tx-esbd-search |
| Check one specific bid by its number | tx-esbd-get |
| Monitor new & changed solicitations on a schedule | tx-esbd-changes |
| Who won state contracts, at what amounts | tx-esbd-awards |
| Find / vet a vendor - HUB, SDV, small business, NIGP capability | tx-cmbl-vendors |
| Find disabled-veteran (DV) HUB vendors | tx-hub-certified |
| Statewide contracts - who's on each SPD/TxSmartBuy contract | tx-smartbuy-contracts |
| Pull the raw full corpus (query + monitor) - power users | sled-tx-procurement - you are here |
For change monitoring, prefer
tx-esbd-changes- it is purpose-built for change detection at a lower per-alert price. Use this actor'smonitormode when you specifically want the raw structure or a custom integration.
Example output
{"mode": "query", "keywords": ["IW265385"]} - one solicitation, with the source's raw NIGP string parsed into {code, description} objects:
{"platform": "tx-esbd","agency": "Tx Dept Crim. Justice/inst Div - 696","agencyNumber": "696","title": "Region 1 Locks and Parts","bidNumber": "IW265385","status": "Posted","publishedDate": "9/16/2026","closeDate": "9/30/2026 3:00 PM","nigpCodes": [{"code": "45055","description": "Locks, Key Blanks, And Locksmith Tools (Including Time Locks)"}],"url": "https://www.txsmartbuy.gov/esbd/IW265385","internalId": "558671","created": "9/11/2026 2:14 pm","lastModified": "9/16/2026 12:01 am"}
In monitor mode only what moved is delivered: updated solicitations come back with a changedFields array of field / oldValue / newValue.
Notes
- Data source: Texas Comptroller - ESBD. Public state records.
- No login, no anti-bot - uses the official public JSON API.
- Each
snapshotKeykeeps its own baseline, so one account can run several independent monitors.
License
MIT - see ./LICENSE.
Disclaimer
This product is an independent data service and is not affiliated with, endorsed by, or sponsored by the State of Texas or any government agency. All solicitation data is public government information. We recommend verifying any opportunity on the official portal before acting.


