DIBBS RFQ Scraper
Pricing
from $14.00 / 1,000 rfqs
DIBBS RFQ Scraper
Scrape DLA DIBBS RFQ solicitations from the public daily index. Export NSN, quantity, unit, return-by date, set-aside, buyer code, and solicitation number.
Pricing
from $14.00 / 1,000 rfqs
Rating
0.0
(0)
Developer
Andrej Kiva
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Disclaimer: Unofficial tool — not affiliated with, sponsored by, or endorsed by the Defense Logistics Agency or the U.S. Department of Defense. Data is read from the public daily RFQ index and public RFQ record pages only. No login. You are responsible for complying with applicable law and the site’s terms. No warranty on accuracy or availability. Provided for informational and research use.
DLA DIBBS RFQ solicitations from the public daily index: NSN, quantity, unit, return-by date, set-aside, and buyer code.
Use it when a parts desk needs new Requests for Quotation without copying the search screens. Each dataset row is one solicitation from a posted-day index file. This is a DIBBS scraper and a DIBBS API alternative for Python, Node.js, and MCP.
When to use
- Pull RFQs posted on the latest index day, or on a date you name
- Filter by NSN, FSC, solicitation number, nomenclature, or set-aside
- Watch for new solicitations with monitor mode
- Add quote status and issue date only when you turn on the detail page
A full post day is often a few hundred rows. Raise maxItems when you want the whole file. Leave includeDetails off unless you need status and the issue date.
Key features
- Daily public index, one file per post date
- NSN with dashes, FSC, part number, purchase request, quantity, and unit
- Return-by date, buyer code, AMSC, and set-aside
- Optional RFQ record page for quote status, issue date, and attachments
- Monitor mode that skips solicitation ids already saved
- HTTP fetch, 256 MB, no browser
Input
| Field | Required | Description |
|---|---|---|
postedDate | No | YYYY-MM-DD or MM-DD-YYYY. Empty uses the newest index file |
daysBack | No | How many daily files to read. Default 1, maximum 15 |
nsn | No | National Stock Number, dashes optional, partial match |
fsc | No | 4-digit Federal Supply Class, or several separated by commas |
solicitationNumber | No | Solicitation number, dashes optional, partial match |
keyword | No | Case-insensitive match on nomenclature |
setAside | No | smallBusiness, hubzone, sdvosb, wosb, eightA, edwosb, or unrestricted |
maxItems | No | Stop after this many matches. Default 25, maximum 2000 |
includeDetails | No | Open the RFQ record for status, issue date, and attachments. Default false |
monitorMode | No | Save only solicitations not seen in the monitor store |
monitorStoreName | No | Key-value store name. Default dibbs-rfq-monitor |
resetMonitorState | No | Clear seen solicitation ids before this run |
Input example
{"fsc": "8415","daysBack": 1,"maxItems": 25,"includeDetails": false}
Output
| Field | Description |
|---|---|
solicitationNumber | Solicitation number |
solicitationId | 13-character id from the index |
nsn | NSN with dashes |
fsc | Federal Supply Class |
partNumber | Part number when the line is not an NSN |
nomenclature | Item name from the index |
quantity | Requested quantity |
unit | Unit of issue |
purchaseRequest | Purchase request number |
postedDate | Date of the index file |
returnByDate | Quote return-by date |
buyerCode | Buyer code |
amsc | Acquisition method suffix code |
setAside | Set-aside label |
setAsideCode | One-letter set-aside code |
setAsidePercent | Set-aside percentage |
pdfFileName | Solicitation PDF file name |
recordUrl | Public RFQ record page |
quoteStatus | Status when includeDetails is on |
issueDate | Issue date when includeDetails is on |
hasAttachments | Attachments flag when includeDetails is on |
Output example
{"source": "dibbs.bsm.dla.mil","solicitationNumber": "SPE1C1-26-T-1698","solicitationId": "SPE1C126T1698","nsn": "8415-01-392-3228","fsc": "8415","partNumber": null,"nomenclature": "BAG,FLYER'S HELMET","quantity": 200,"unit": "EA","purchaseRequest": "7018200348","postedDate": "2026-09-25","returnByDate": "2026-09-30","buyerCode": "DSC01","setAside": "Unrestricted","setAsideCode": "N","pdfFileName": "SPE1C126T1698.pdf","recordUrl": "https://www.dibbs.bsm.dla.mil/rfq/rfqrec.aspx?sn=SPE1C126T1698","quoteStatus": null,"issueDate": null,"hasAttachments": null}
Use cases
- New postings — read the latest index file each morning and export NSN, quantity, and return-by date
- FSC watch — keep one or more Federal Supply Classes and schedule the run
- Set-aside list — keep small-business, HUBZone, SDVOSB, WOSB, 8(a), or EDWOSB lines
- Status check — turn on
includeDetailsfor quote status and the issue date on a short list
Integration examples
Replace APIFY_TOKEN with your Apify token. The Actor name is crawloop/dibbs-rfq-scraper.
Node.js
import { ApifyClient } from "apify-client";const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor("crawloop/dibbs-rfq-scraper").call({fsc: "8415",daysBack: 1,maxItems: 25,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ["APIFY_TOKEN"])run = client.actor("crawloop/dibbs-rfq-scraper").call(run_input={"fsc": "8415","daysBack": 1,"maxItems": 25,})items = client.dataset(run["defaultDatasetId"]).list_items().itemsprint(items)
cURL
curl "https://api.apify.com/v2/acts/crawloop~dibbs-rfq-scraper/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d "{\"fsc\":\"8415\",\"daysBack\":1,\"maxItems\":25}"
MCP and AI assistants
Use this Actor from AI tools via Apify MCP. Connect your Apify account, then call this Actor by its Store name.
Example prompts:
- "Run DIBBS RFQ Scraper for FSC 8415 and return solicitation number, NSN, quantity, and return-by date as JSON"
- "Scrape the latest DIBBS index for small-business set-asides and list nomenclature and quantity"
- "Run DIBBS RFQ Scraper with includeDetails for solicitation SPE1C1-26-T-1698 and report quote status and issue date"
FAQ
Does this submit quotes or download technical drawings?
No. It reads the public daily index and, if you ask, the public RFQ record page. Quoting and drawing packages stay on the logged-in side.
What if the filter matches nothing?
The run finishes with an empty dataset.
Why is the nomenclature short?
The index file stores a fixed-width name. The record page is a separate optional request.
How does monitor mode behave on the first run?
The first run saves matches up to maxItems and remembers those solicitation ids. Later runs with the same monitor store skip them.