DLA DIBBS Defense RFQ & Solicitation Scraper (USA) avatar

DLA DIBBS Defense RFQ & Solicitation Scraper (USA)

Pricing

from $14.18 / 1,000 rfq results

Go to Apify Store
DLA DIBBS Defense RFQ & Solicitation Scraper (USA)

DLA DIBBS Defense RFQ & Solicitation Scraper (USA)

Scrape US Defense Logistics Agency DIBBS RFQs and solicitations: NSN, item, quantity, buyer, set-aside, issue and return-by dates. Filter by NSN, keyword or date. Export to JSON, CSV or Excel.

Pricing

from $14.18 / 1,000 rfq results

Rating

0.0

(0)

Developer

Scrapers Lat

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

DLA DIBBS Defense RFQ & Solicitation Scraper (USA)

DLA DIBBS Defense RFQ & Solicitation Scraper (USA)

Here is one real result, with every field the actor returns:

{
"solicitationNumber": "SPE1C126Q0446",
"solicitationType": "Request for Quote",
"nsn": "8455-01-654-2769",
"niin": "016542769",
"fsc": "8455",
"nomenclature": "INSIGNIA, SHOULDER S",
"quantity": 15000,
"unitOfIssue": "EA",
"purchaseRequest": "7017721136",
"buyerOffice": "DAW02G1N000",
"setAside": "Unrestricted/Not Set Aside",
"status": "Open",
"technicalDocuments": "Tech Docs",
"technicalDocumentsFlag": true,
"postedDate": "2026-08-19",
"issueDate": "2026-08-19",
"returnByDate": "2026-08-26",
"daysUntilClose": 5,
"isOpen": true,
"rfqUrl": "https://www.dibbs.bsm.dla.mil/rfq/rfqrec.aspx?sn=SPE1C126Q0446",
"pdfUrl": "https://dibbs2.bsm.dla.mil/Downloads/RFQ/6/SPE1C126Q0446.PDF",
"pdfFileName": "SPE1C126Q0446.pdf",
"aiPlainSummary": null,
"aiLikelyBidders": null,
"aiUrgency": null,
"source": "dibbs.bsm.dla.mil",
"observedAt": "2026-08-20T15:10:29.825Z",
"error": null
}

The most complete DLA DIBBS RFQ scraper available. It returns every field the DIBBS bid board exposes for each Request for Quote (solicitation number, NSN, item nomenclature, quantity, unit of issue, purchase request, buyer office, set-aside, issue and return-by dates, technical documents), plus derived fields (FSC, NIIN, days until close, direct RFQ and PDF links) and optional AI enrichment, and gives you five filters to target exactly the defense procurement leads you need.

📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples

Apify Coverage Output Billing

Table of contents

What it does

The actor collects Requests for Quote (RFQs) and solicitations posted to the US Defense Logistics Agency DIBBS bid board. It clears the site access notice for you, reads the published RFQ feed, and writes one normalized record per RFQ to the run dataset.

Two ways to pull data:

  • Browse mode: leave the NSN empty to walk the most recently posted RFQs across every stock class. Filter by item keyword, posted-since date and quote deadline.
  • NSN mode: pass a National Stock Number to return every RFQ tied to that item, each already carrying set-aside, RFQ status, technical documents flag, issue date and full item name.

On top of the source fields, the actor derives the Federal Supply Class (FSC), the NIIN, days until the quote closes, an open/closed flag, and direct links to the RFQ record and its solicitation PDF. Missing source values are returned as null, never invented.

Quickstart

Open the actor, paste this into the input, and press Run. It returns the 10 most recently posted defense RFQs whose item name contains "cable".

{
"keyword": "cable",
"maxResults": 10,
"withDetails": true
}

Leave every field empty to pull the most recently posted RFQs with no filter. To pull all RFQs for a specific item, set nsn (for example 8455-01-654-2769).

Input reference

FieldTypeRequiredDefaultDescription
keywordstringno(empty)Keep only RFQs whose item nomenclature contains this word, for example bearing, valve, glove, cable.
nsnstringno(empty)Return every RFQ for one National Stock Number, for example 8455-01-654-2769 (dashes optional). Uses the DIBBS RFQ search directly and includes set-aside, status, technical documents and issue date per solicitation.
setAsidestringno(empty)Keep only RFQs whose set-aside label contains this text, for example small business, sdvosb, hubzone, unrestricted. Requires per-record details (on by default for paid runs).
postedSincestringnolast 30 posting daysIn browse mode, include only RFQs posted on or after this date (YYYY-MM-DD). Ignored when an NSN is set.
closeBeforestringno(empty)Keep only RFQs whose return-by (quote deadline) date is on or before this date (YYYY-MM-DD).
maxResultsintegerno10Maximum RFQ records to return. Free Apify plans are capped at 10 per run.
withDetailsbooleannotrueOn by default for paid runs. In browse mode, enriches each RFQ with set-aside, status, technical documents flag, issue date and full item name. Charged only when the details are found.
withAiSummarybooleannofalseOff by default. For paid runs, adds a plain-language summary, likely bidder type and urgency rating per RFQ. Charged only when the AI returns a usable result.

Output reference

One dataset item per RFQ. Types: string, integer, boolean, or null when the source value is absent.

FieldTypeDescription
solicitationNumberstringDIBBS solicitation / RFQ number, for example SPE1C126Q0446.
solicitationTypestringType derived from the number: Request for Quote, Automated Request for Quote or Request for Proposal.
nsnstringNational Stock Number, formatted 4-2-3-4.
niinstring9-digit National Item Identification Number.
fscstring4-digit Federal Supply Class of the item.
nomenclaturestringItem name. Full text when details are enriched, otherwise the short index form.
quantityintegerQuantity requested.
unitOfIssuestringUnit of issue code, for example EA, PR, BX, FT.
purchaseRequeststringPurchase request (PR) number backing the RFQ.
buyerOfficestringDLA buying office / routing identifier code.
setAsidestringSet-aside label, for example Unrestricted/Not Set Aside or Total Small Business Set-Aside.
statusstringRFQ status: Posted, Open, Removed or Awarded.
technicalDocumentsstringTechnical documents availability text (None when there are none).
technicalDocumentsFlagbooleantrue when the RFQ has associated technical documents.
postedDatestringDate the RFQ was posted (YYYY-MM-DD).
issueDatestringIssue date of the solicitation (YYYY-MM-DD).
returnByDatestringQuote return-by / close date (YYYY-MM-DD).
daysUntilCloseintegerWhole days between now and the return-by date; negative when already closed.
isOpenbooleantrue when the return-by date is today or later.
rfqUrlstringDirect link to the RFQ record on DIBBS.
pdfUrlstringLink to the solicitation PDF package.
pdfFileNamestringSolicitation PDF file name.
aiPlainSummarystringOptional AI one-line summary of the RFQ (add-on).
aiLikelyBiddersstringOptional AI description of the supplier type likely to bid (add-on).
aiUrgencystringOptional AI urgency rating: high, medium or low (add-on).
sourcestringData source host.
observedAtstringISO 8601 timestamp of when the record was collected.
errorstringnull on success. On a failed run, a single item with a populated error field is written instead.

Example output record

Real record from a live NSN run (input {"nsn": "8455-00-408-5292", "withAiSummary": true}), with the AI add-on on:

{
"solicitationNumber": "SPE1C126Q0382",
"solicitationType": "Request for Quote",
"nsn": "8455-00-408-5292",
"niin": "004085292",
"fsc": "8455",
"nomenclature": "INSIGNIA, GRADE, ENLI",
"quantity": 60,
"unitOfIssue": null,
"purchaseRequest": "7017430273",
"buyerOffice": null,
"setAside": "Unrestricted/Not Set Aside",
"status": "Open",
"technicalDocuments": "None",
"technicalDocumentsFlag": false,
"postedDate": "2026-07-22",
"issueDate": "2026-07-22",
"returnByDate": "2026-07-29",
"daysUntilClose": -23,
"isOpen": false,
"rfqUrl": "https://www.dibbs.bsm.dla.mil/rfq/rfqrec.aspx?sn=SPE1C126Q0382",
"pdfUrl": "https://dibbs2.bsm.dla.mil/Downloads/RFQ/2/SPE1C126Q0382.PDF",
"pdfFileName": null,
"aiPlainSummary": "The DLA is seeking bids for 60 units of insignia, grade, ENLI with NSN 8455-00-408-5292.",
"aiLikelyBidders": "Suppliers of military insignia and apparel",
"aiUrgency": "high",
"source": "dibbs.bsm.dla.mil",
"observedAt": "2026-08-20T15:11:19.754Z",
"error": null
}

Run via API and CLI

Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.

Run synchronously and get dataset items in one call:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~dibbs-defense-rfq-scraper/run-sync-get-dataset-items?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"keyword":"cable","maxResults":25,"withDetails":true}'

Start a run asynchronously:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~dibbs-defense-rfq-scraper/runs?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"nsn":"8455-01-654-2769","withAiSummary":true}'

Apify CLI:

apify call scrapers_lat/dibbs-defense-rfq-scraper \
--input '{"keyword":"valve","maxResults":50}'

Fetch results

Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:

# JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
# CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# Paginate large datasets
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"

<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets.

Billing and limits

  • Pay per result. You are charged per RFQ returned (result event). See the pricing tab for the current per-result price.
  • Optional add-ons. details enrichment (set-aside, status, technical documents) is on by default for paid runs and charged only when the extra fields are found. ai_rfq_summary is off by default and charged only when the AI returns a usable summary. Both add-ons are disabled for free plans.
  • No charge on failure. If a run errors or matches nothing, the actor does not charge for results. Empty runs cost nothing.
  • Spend cap respected. Set maxTotalChargeUsd on the run; once reached, the actor stops emitting and charging further billable records.
  • Free Apify plans are capped at 10 records per run. Upgrade for higher maxResults.

FAQ and troubleshooting

A run returned 0 records. Why? In browse mode the source posts new RFQs on business days only, so a very narrow postedSince window plus a rare keyword can match nothing. Widen the date window or loosen the keyword. In NSN mode, the item may simply have no open or recent RFQs. Zero-result runs are not charged.

How do I find only small business opportunities? Set setAside to small business (or sdvosb, hubzone, wosb). Set-aside filtering uses the per-record details, which are on by default for paid runs.

How do I find RFQs closing soon? Set closeBefore to a near date, for example the end of the month, and sort or filter the output on daysUntilClose.

What is the difference between browse mode and NSN mode? With no NSN, the actor lists recently posted RFQs across all stock classes. With an NSN, it returns every RFQ tied to that exact item, already enriched with set-aside, status and technical documents.

Why is unitOfIssue or buyerOffice null on some records? Those two fields come from the recently-posted RFQ feed used in browse mode. NSN-mode records are sourced from the RFQ search, which does not publish them, so they are returned as null rather than guessed.

Is this an official DLA tool? No. This actor is independent and not affiliated with the Defense Logistics Agency or the US Department of Defense. It reads only data that is publicly available on the DIBBS bid board.

More scrapers at scrapers.lat

Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.


Independent tool, not affiliated with the Defense Logistics Agency or the US Department of Defense. Accesses only publicly available DIBBS bid board data.