Discover/GSA API
live

GSA APIgsaelibrary.gsa.gov

Search GSA Multiple Award Schedule SIN codes and category descriptions via API. Returns sin_code, category_title, description, subcategory, and schedule data.

This API takes change requests — .
Endpoint health
verified 2h ago
search_categories
1/1 passing latest checkself-healing
Endpoints
1
Updated
2h ago

What is the GSA API?

The GSA eLibrary API provides a single search_categories endpoint that returns up to the full set of matching Multiple Award Schedule (MAS) SIN/category records from GSA eLibrary, including 6 structured fields per result: sin_code, category_title, category_description, subcategory, schedule_number, and schedule name. It lets developers query federal contract vehicle categories by keyword to identify applicable SIN codes and schedule groupings programmatically.

Try it
Search term(s) to match against SIN category titles and descriptions (e.g. 'CNC machining', 'industrial manufacturing').
How to match the keyword terms against the index.
api.parse.bot/scraper/ac083cd9-912c-477a-8495-3e1cacfc1c75/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/ac083cd9-912c-477a-8495-3e1cacfc1c75/search_categories?keyword=CNC+machining&search_type=allWords' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace gsaelibrary-gsa-gov-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: GSA eLibrary SDK — bounded, re-runnable; every call capped."""
from parse_apis.gsaelibrary_gsa_gov_api import GsaELibrary, SearchType, InputFormatInvalid

client = GsaELibrary()

# Search for MAS categories related to CNC machining
for category in client.categories.search(keyword="CNC machining", limit=3):
    print(category.sin_code, category.category_title, category.subcategory)

# Use a different search mode
item = client.categories.search(keyword="industrial manufacturing", search_type=SearchType.ANY_WORDS, limit=1).first()
if item:
    print(item.sin_code, item.schedule_number, item.category_description[:80])

# Typed error handling
try:
    for cat in client.categories.search(keyword="welding supplies", limit=2):
        print(cat.sin_code, cat.schedule_number)
except InputFormatInvalid as e:
    print(f"invalid input: {e}")

print("exercised: categories.search")
All endpoints · 1 totalmissing one? ·

Full-text keyword search across GSA Multiple Award Schedule SIN/category codes and descriptions. Returns matching categories with their SIN code, title, description, subcategory grouping, and parent schedule information. Results are auto-iterated (single page). Keyword matching uses GSA Advantage's index; results reflect the site's relevance ranking.

Input
ParamTypeDescription
keywordrequiredstringSearch term(s) to match against SIN category titles and descriptions (e.g. 'CNC machining', 'industrial manufacturing').
search_typestringHow to match the keyword terms against the index.
Response
{
  "type": "object",
  "fields": {
    "total": "count of results returned",
    "keyword": "the search keyword submitted",
    "results": "array of matching SIN/category records with sin_code, category_title, category_description, subcategory, schedule_number, schedule_description",
    "search_type": "search mode used"
  },
  "sample": {
    "data": {
      "total": 3,
      "keyword": "CNC machining",
      "results": [
        {
          "sin_code": "332510C",
          "subcategory": "Industrial Products and Services - Hardware and Tools",
          "category_title": "Hardware Store, Home Improvement Center, Industrial or General Supply Store, or Industrial Maintenance Repair and Operations (MRO) Distributor - Catalog",
          "schedule_number": "MAS",
          "category_description": "Products and equipment including but not limited to: flooring, fencing, hardware, building materials, tools, appliances, electric, paint, plumbing, lawn and garden, motors, shop, machining, welding, material handling; carts, trucks and dock; HVAC, cleaning and irrigation, equipment. These items must meet government requirements for Energy Star or Federal Energy Management Program (FEMP)-designated products, and/or the use of non-ozone depleting substances, as applicable to product groups with designation.",
          "schedule_description": "Multiple Award Schedule-Available offerings include commercial goods and services organized by 12 Large Categories, corresponding Subcategories, and SINs."
        },
        {
          "sin_code": "332999",
          "subcategory": "Security and Protection - Protective Equipment",
          "category_title": "Law Enforcement Personal Equipment",
          "schedule_number": "MAS",
          "category_description": "Includes all personal equipment related to law enforcement, such as restraints, duty belts, flashlights, weapon scopes, gas masks, etc. NOTE: Subject to Cooperative Purchasing",
          "schedule_description": "Multiple Award Schedule-Available offerings include commercial goods and services organized by 12 Large Categories, corresponding Subcategories, and SINs."
        },
        {
          "sin_code": "811310MR",
          "subcategory": "Facilities - Facilities Solutions",
          "category_title": "Machine and Equipment Sales, Maintenance and Repair",
          "schedule_number": "MAS",
          "category_description": "Includes the sale, maintenance and repair of commercial/industrial machinery and equipment, such as machine tools, metalworking machinery, food machinery, cleaning equipment, and containers.",
          "schedule_description": "Multiple Award Schedule-Available offerings include commercial goods and services organized by 12 Large Categories, corresponding Subcategories, and SINs."
        }
      ],
      "search_type": "allWords"
    },
    "status": "success"
  }
}

About the GSA API

What the API Covers

The search_categories endpoint queries the GSA eLibrary catalog of Multiple Award Schedule (MAS) Special Item Numbers (SINs). Each SIN record describes a category of goods or services available to federal purchasers through GSA schedule contracts. The endpoint accepts a keyword string matched against SIN titles and descriptions, and returns all results in a single paginated response (auto-iterated — no manual paging required).

Request Parameters

The two inputs are keyword (required) and search_type (optional). The keyword field controls what text is matched — for example, 'CNC machining', 'cloud hosting', or 'janitorial services'. The search_type parameter controls how the terms are applied to the index (e.g., exact phrase vs. any-term matching). Omitting search_type uses the default matching mode.

Response Shape

Every response includes a total count, the submitted keyword, the search_type used, and a results array. Each element in results contains: - sin_code — the unique Special Item Number identifier - category_title — the short display name for the SIN - category_description — a full-text description of what the SIN covers - subcategory — the grouping within the parent schedule - schedule_number — the numeric identifier of the parent MAS schedule - schedule — the human-readable name of the parent schedule

Source and Scope

GSA eLibrary (gsaelibrary.gsa.gov) is the official public-facing catalog for GSA Multiple Award Schedule information maintained by the U.S. General Services Administration. The API covers SIN/category discovery only — it does not expose individual contractor award data, pricing, or contract holders within a SIN.

Reliability & maintenanceVerified

The GSA API is a managed, monitored endpoint for gsaelibrary.gsa.gov — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when gsaelibrary.gsa.gov changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official gsaelibrary.gsa.gov API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
2h ago
Latest check
1/1 endpoint passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Identify applicable SIN codes for a product or service line before pursuing a GSA MAS contract
  • Build a procurement classification tool that maps internal service descriptions to GSA schedule categories
  • Audit a list of vendor offerings against official GSA MAS SIN definitions using category_description fields
  • Populate a federal acquisition research tool with schedule_number and schedule name metadata
  • Validate that a proposed GSA contract scope falls within a recognized subcategory grouping
  • Generate a reference table of all SIN codes relevant to a specific industry vertical (e.g., IT, facilities, logistics)
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does GSA eLibrary have an official developer API?+
GSA does not publish a documented public REST API for eLibrary category search. GSA's broader developer resources are listed at open.gsa.gov/api, but eLibrary SIN search is not among them.
What exactly does search_categories return for each SIN record?+
Each record in the results array contains sin_code, category_title, category_description, subcategory, schedule_number, and schedule. The response also includes a top-level total (result count), the submitted keyword, and the search_type mode that was applied.
Does the API return individual contract holders or vendor listings under each SIN?+
Not currently. The API covers SIN/category-level data only — sin_code, category_title, description, subcategory, and schedule metadata. Contractor award records and vendor listings within a SIN are not included. You can fork this API on Parse and revise it to add an endpoint that retrieves contractor listings for a given SIN.
How does pagination work for large result sets?+
The endpoint auto-iterates results and returns all matching records in a single response. There is no page parameter to manage — the total field in the response reflects the full count of records returned.
Can the API filter results by schedule number or narrow to a specific subcategory?+
The current endpoint accepts only keyword and search_type inputs; there is no dedicated filter for schedule_number or subcategory. Results that include those fields can be filtered client-side after retrieval. You can fork this API on Parse and revise it to add schedule-specific or subcategory-scoped filtering as a separate endpoint.
Page content last updated . Spec covers 1 endpoint from gsaelibrary.gsa.gov.
Related APIs in Government PublicSee all →
usaspending.gov API
Access data from usaspending.gov.
grainger.com API
grainger.com API
bizbuysell.com API
Search for businesses available for sale across multiple categories and view detailed information about specific listings on BizBuySell.com. Browse business categories to explore different industries and find opportunities that match your investment interests.
g2.com API
Search G2.com to discover software products, compare pricing and categories, and read customer reviews all in one place. Get detailed product overviews and ratings to make informed decisions about business software.
gradschools.com API
Search graduate programs across multiple categories and discover articles about funding, financial aid, and admissions to help guide your grad school journey. Find specific program information and detailed resources all in one place to support your application and enrollment decisions.
scholarships.com API
Search and browse the Scholarships.com directory by category — including academic major, residence state, ethnicity, gender, school year, and deadline. Retrieve scholarship listings within any category and subcategory, and fetch full details for individual scholarships including award amounts, eligibility criteria, application deadlines, and application links.
allsurplus.com API
Search and browse industrial assets and surplus inventory across B2B auctions, view detailed asset information, and explore upcoming auction events filtered by category and location. Find the specific equipment, machinery, and surplus items you need by browsing comprehensive product details and auction schedules.
globalsources.com API
Search Global Sources for products and suppliers, then fetch related product info and a supplier’s latest product listings using product IDs and organization IDs.