ParseForge Scrapers

GSA eLibrary Contractor Scraper

parseforge/gsa-elibrary-scraper

AutomationOtherLead generation

Scrape GSA eLibrary contractor listings by category or custom URL. Returns contractor name, SINs, business size, and contact info. Optional detail mode for full profiles.

Run this scraper See the API call
Total users
23
Monthly active
2
Total runs
2.6K
Bookmarked
4
Rating
5.0 (3)
Last modified
9 days ago

Overview

ParseForge

GSA eLibrary Contractor Scraper

Scrape GSA eLibrary contractor data from any category or search URL, up to a million contractors per run. Every contractor comes with its SIN details, business info, and computed signals. No login or API key. Export to CSV, JSON, Excel, or XML.

The GSA eLibrary is the official directory of contractors holding GSA Schedule contracts, but browsing it manually is slow and you can't export the data. This Actor reads the public contractor listings directly, filtered by category or custom search, and returns each match in one fixed schema.

Who uses it What they scrape GSA eLibrary for
Government procurement officers Find qualified contractors for a specific SIN or service area
Contracting specialists Build a competitive landscape of GSA Schedule holders
Market researchers Analyze which contractors serve which categories and regions
Small business liaisons Identify potential partners or subcontractors in the GSA system

What it does

This Actor collects GSA eLibrary contractors by predefined category or direct URL, and returns each one as a flat row with listing and optional detail page data.

  • ๐Ÿ“‹ Listing-only mode: Fast extraction of contractor name, SINs, and contact info from search result pages.
  • ๐Ÿ” Detail mode: Visits each contractor's profile page for full business details, certifications, and past performance.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

What you can do with GSA eLibrary data

๐Ÿ“‹ Build a qualified contractor list.

A procurement officer selects the SIN for IT services and runs the Actor to get every approved contractor with contact details, ready for market research.

๐Ÿ” Analyze competition in a category.

A contracting specialist scrapes all contractors under a specific NAICS code to see who holds which SINs and identify gaps in the market.

๐Ÿ“Š Track small business participation.

A small business liaison runs the Actor across all categories and filters for 8(a) or HUBZone firms to build a partner pipeline.

๐Ÿ“ˆ Monitor GSA Schedule changes.

A market researcher runs the Actor weekly on a set of categories to detect new contractors or dropped SINs over time.

Why choose this scraper

What you get
Contractor name The legal business name as registered with GSA
SINs held All Special Item Numbers the contractor is approved for
Business size Small business, 8(a), HUBZone, SDVOSB, WOSB status
Contact info Phone, email, and address from the listing
Detail page data Full business description, certifications, and past performance when detail mode is on

How it compares

No other Store actor targets GSA eLibrary the same way, so the honest comparison is with the alternatives teams actually weigh.

GSA eLibrary Contractor Scraper Build it in-house By hand
Setup Run it now, zero config Days of engineering None, but hours per pull
When GSA eLibrary changes Maintained for you You fix it You re-learn the page
Proxies, retries, anti-bot Built in Your problem Browser only
Output Fixed JSON schema, CSV/Excel export Whatever you build Copy-paste
Cost Pay per result Engineering time Analyst hours

Configure the run

Drive the Actor from predefined categories or a custom GSA eLibrary URL, and the scraper reads each listing page so only matching contractors reach your dataset. The Input tab lists every parameter.

A first run with the defaults:

{
  "category": [
    "all"
  ],
  "maxItems": 1,
  "includeDetails": false
}

A larger pull:

{
  "category": [
    "all"
  ],
  "maxItems": 200,
  "includeDetails": false
}

Pricing

Pay-per-result: $0.039 per result collected. You pay only for the results written to your dataset.

Results collected Approximate cost
100 results $3.90
1,000 results $39.00
10,000 results $390.00

New Apify accounts start with $5 in free credit.

Free users

Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the GSA eLibrary Contractor Scraper.
  3. Set your inputs and any filters, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent live access to GSA eLibrary through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/gsa-elibrary-scraper"

Then prompt it in plain language to run the scraper and read back the results.

Troubleshooting

Why am I getting no results?

Check that you selected a valid category or pasted a correct GSA eLibrary URL. Some categories may have zero contractors. Try a broader category like 'All Categories'.

The run is taking too long.

Reduce the maximum contractors limit or disable detail mode. Detail mode visits each contractor's profile page and is significantly slower.

I see duplicate contractors.

Contractors may appear under multiple SINs. The Actor deduplicates by contractor name, but if you scrape multiple categories separately you may see repeats.

The data seems incomplete.

Enable detail mode to get the full contractor profile. Listing mode only shows basic info from the search results page.

Can I scrape a specific search query?

Yes. Use the startUrl field and paste the full URL from a GSA eLibrary search results page. This overrides the category selection.

FAQ

Question Answer
What is GSA eLibrary? GSA eLibrary is the official online directory of contractors who hold GSA Schedule contracts. It lists their approved Special Item Numbers (SINs), business size, and contact information.
Do I need a GSA login or API key? No. This Actor scrapes the public-facing GSA eLibrary website. No authentication is required.
What data can I get from listing pages? Listing pages show the contractor name, SINs held, business size (small, 8(a), HUBZone, etc.), and basic contact info like phone and address.
What data comes from detail pages? When you enable detail mode, the Actor visits each contractor's profile page and extracts the full business description, certifications, past performance, and additional contact details.
How many contractors can I scrape per run? You can set a maximum up to 1,000,000 contractors. The actual number depends on how many match your category or URL.
Can I scrape by NAICS code or SIN? Yes. Use the predefined categories which map to specific SINs and NAICS codes, or paste a custom search URL from the GSA eLibrary site.
What is the difference between listing and detail mode? Listing mode is faster and only extracts data from search result pages. Detail mode is slower but gives you the full contractor profile.
Can I export the data to Excel? Yes. The Actor outputs structured data that you can download as CSV, JSON, Excel, or XML from the Apify dataset.
Is this legal? Yes. The GSA eLibrary is a public government website. This Actor reads publicly available data at a reasonable rate.
What categories are available? The Actor includes hundreds of predefined categories covering all GSA Schedule SINs, from IT services to facilities management to professional services.

Related actors

Browse the full ParseForge collection for more scrapers.

๐Ÿ†˜ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

โš ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by U.S. General Services Administration. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

Input

FieldTypeWhat it doesDefault
startUrl string GSA eLibrary URL to start scraping from. Use this for custom searches or specific URLs. Supports search results URLs (searchResults.do), SIN details URLs (sinDetails.do), or contractor list URLs (contractorList.do). IMPORTANT: You must choose EITHER startUrl OR category, not both. These options are mutually exclusive. not set
category array Select one or more predefined categories to scrape contractors from specific service areas. Choose 'All Categories' to scrape from all predefined categories. This will automatically generate the appropriate GSA eLibrary URLs for easy category-based scraping. IMPORTANT: You must choose EITHER category OR startUrl, not both. These options are mutually exclusive. ["all"]
maxItems integer How many contractors to collect per run. 1
includeDetails boolean When false (default): Only extracts data from listing pages (faster, less detailed). When true: Visits each contractor's detail page to get comprehensive information (slower, more detailed). See README for details on what data is available from listing vs detail pages. false

Pricing

from $13.00 per 1,000 results

Charged forWhat it isPrice each
Actor Start Flat fee for starting an Actor run. $0.0052 to $0.0091
Result Each listing written to the dataset $0.013 to $0.039

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

API

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST ยท run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~gsa-elibrary-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "helloWorld": 123
  }'

Examples

Input that runs as-is.

input.json
{
  "helloWorld": 123
}

Reviews

Rated 5.0 out of 5 across 3 reviews. Read them on Apify.

Issues

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

Related scrapers

Run GSA eLibrary Contractor Scraper on Apify All scrapers