DIBBS RFQ Scraper avatar

DIBBS RFQ Scraper

Pricing

from $14.00 / 1,000 rfqs

Go to Apify Store
DIBBS RFQ Scraper

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

Andrej Kiva

Maintained by Community

Actor 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

FieldRequiredDescription
postedDateNoYYYY-MM-DD or MM-DD-YYYY. Empty uses the newest index file
daysBackNoHow many daily files to read. Default 1, maximum 15
nsnNoNational Stock Number, dashes optional, partial match
fscNo4-digit Federal Supply Class, or several separated by commas
solicitationNumberNoSolicitation number, dashes optional, partial match
keywordNoCase-insensitive match on nomenclature
setAsideNosmallBusiness, hubzone, sdvosb, wosb, eightA, edwosb, or unrestricted
maxItemsNoStop after this many matches. Default 25, maximum 2000
includeDetailsNoOpen the RFQ record for status, issue date, and attachments. Default false
monitorModeNoSave only solicitations not seen in the monitor store
monitorStoreNameNoKey-value store name. Default dibbs-rfq-monitor
resetMonitorStateNoClear seen solicitation ids before this run

Input example

{
"fsc": "8415",
"daysBack": 1,
"maxItems": 25,
"includeDetails": false
}

Output

FieldDescription
solicitationNumberSolicitation number
solicitationId13-character id from the index
nsnNSN with dashes
fscFederal Supply Class
partNumberPart number when the line is not an NSN
nomenclatureItem name from the index
quantityRequested quantity
unitUnit of issue
purchaseRequestPurchase request number
postedDateDate of the index file
returnByDateQuote return-by date
buyerCodeBuyer code
amscAcquisition method suffix code
setAsideSet-aside label
setAsideCodeOne-letter set-aside code
setAsidePercentSet-aside percentage
pdfFileNameSolicitation PDF file name
recordUrlPublic RFQ record page
quoteStatusStatus when includeDetails is on
issueDateIssue date when includeDetails is on
hasAttachmentsAttachments 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 includeDetails for 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 os
from apify_client import ApifyClient
client = 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().items
print(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.