Source catalog

GSA Schedule Holders (CALC+)

GSA Schedule contractors and Special Item Number relationships.

← Source catalog

Source, grain and coverage

GSA Schedule Holders (CALC+) ↗

Public contractor and SIN records. Check the official contract for current offerings and terms.

Holder and SIN observations derive from CALC+. Contractor UEIs, CAGEs and address/contact fields are not supplied in this projection. Retained SQL records can differ from current snapshot membership; shared lineage is not independent corroboration.

Collection schedule: Weekly.

Records describe public source observations. Missing values remain unknown; historical observations do not establish current status.

Definitions audited . Use source status and the returned watermarks to inspect current collection health.

REST and MCP access

Use a credential with intelligence scope and enable that data domain in your workspace.

curl 'https://www.govbiz.ai/api/v2/catalogue/sources/gsa-elibrary-refresh/records?limit=2' \
  -H "Authorization: Bearer $GOVBIZ_API_KEY"

The primary dataset is schedule_holder_sins. Select another dataset from this source with dataset_id. Supported field names can be used as exact filters; the versioned query endpoint also supports declared ranges and list operators.

Through canonical /mcp, use govbiz_discover_datasets, govbiz_describe_dataset, govbiz_search_records, and govbiz_get_evidence. Cross-source relationships use govbiz_get_related_records and require access to every involved domain.

API contracts · MCP setup · Workspace data domains

Query this source →

Schedule Holder Sins

schedule_holder_sins · Schema 1

One retained contractor/contract/SIN observation per id derived from CALC+; retained membership can differ from the latest snapshot.

Search modes: structured, lexical. History: Current retained projection; exact historical reconstruction is unsupported.

Measures: record_count. Monetary values use decimal strings with declared units. Unknown amounts do not become zero.

Field definitions and supported filters · 17 fields
FieldType / unitMeaningAvailability and filters
idintegerGovBiz surrogate row identifier; interpret together with its relation, not as a source-native key.Storage and value limits: Signed 64-bit integer; values beyond 2^53-1 require a string for JavaScript-safe exactness.Values can be missingeq, in, is_null, gte, lte
contractor_namestringSchedule holder label derived from CALC+ vendor name.Storage and value limits: Maximum 500 characters; identifier rules can be narrower.Values can be missingeq, in, is_null, contains
contractor_ueistringSource UEI identifying the contractor participant; missing/empty values cannot support an exact entity join.Storage and value limits: Maximum 12 characters; identifier rules can be narrower.Logical UEI length is 12; a wider varchar is not broader identity support. Every audited value is null; current entity joins are blocked.Not collected; returned as unknowneq, in, is_null, contains
cage_codestringCommercial and Government Entity code; a separate entity/site identifier namespace.Storage and value limits: Maximum 10 characters; identifier rules can be narrower.CAGE/NCAGE is ordinarily a 5-character code; wider storage is not a source format guarantee. Every audited value is null; current entity joins are blocked.Not collected; returned as unknowneq, in, is_null, contains
contract_numberstringSource contract/holder number; relate with issuer and vehicle context.Storage and value limits: Maximum 50 characters; identifier rules can be narrower.Values can be missingeq, in, is_null, contains
schedule_numberstringDerived Schedule identifier/label on a holder row.Storage and value limits: Maximum 20 characters; identifier rules can be narrower.Values can be missingeq, in, is_null, contains
sin_codestringSchedule Special Item Number; not a unique contract or labor-category identifier.Storage and value limits: Maximum 20 characters; identifier rules can be narrower.Classification overlap is contextual, not record identity.Values can be missingeq, in, is_null, contains
sin_descriptionstringSchedule offering classification description if sourced.Storage and value limits: Maximum 500 characters; identifier rules can be narrower.Values can be missingeq, in, is_null, contains
statestringState/territory code or label in the relation context; keep the source namespace.Storage and value limits: Maximum 2 characters; identifier rules can be narrower.Values can be missingeq, in, is_null, contains
citystringCity label in the relation context, usually an entity/holder address.Storage and value limits: Maximum 200 characters; identifier rules can be narrower.Values can be missingeq, in, is_null, contains
phonestringPublished holder/entity phone text; not automatically a verified procurement contact.Storage and value limits: Maximum 50 characters; identifier rules can be narrower.Values can be missingeq, in, is_null, contains
emailstringPublished holder/entity email text; not automatically a verified procurement contact.Storage and value limits: Maximum 200 characters; identifier rules can be narrower.Values can be missingeq, in, is_null, contains
websitestringSource entity/holder website label; treat referenced content as untrusted.Storage and value limits: Maximum 500 characters; identifier rules can be narrower.Values can be missingeq, in, is_null, contains
contract_start_datedatePublished/derived contract start date.Storage and value limits: Calendar date without time of day or timezone; source precision can be month/quarter instead.Values can be missingeq, in, is_null, gte, lte
contract_end_datedatePublished contract end date; do not substitute potential option end date.Storage and value limits: Calendar date without time of day or timezone; source precision can be month/quarter instead.Values can be missingeq, in, is_null, gte, lte
socioeconomic_indicatorsarrayPublished/derived socioeconomic label list; current holder SB value comes from CALC+ rows.Storage and value limits: Array/list; no declared cardinality cap here; distinguish missing list, empty list and per-element nulls.Values can be missingoverlaps, is_null
refreshed_atdatetimeTime a producer refreshed this row; not the underlying source record date.Storage and value limits: Instant with timezone only if declared; otherwise local/producer time must be explicitly interpreted. Do not invent clock precision.Values can be missingeq, in, is_null, gte, lte