Source catalog

GSA Federal Website Index

GSA's official federal website discovery and site-scanning data.

← Source catalog

Source, grain and coverage

GSA Federal Website Index ↗

Seeds GovBiz's approved website registry. A listed website does not mean all of its content has been collected.

Directory membership identifies public website targets. It does not establish page retrieval, domain approval, full-site coverage or procurement content. Directory refresh and successful crawl watermarks are separate.

Collection schedule: Weekly.

This source identifies publishing locations. It does not establish complete record collection for every listed agency.

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/agency-web-gsa-site-scanning-refresh/records?limit=2' \
  -H "Authorization: Bearer $GOVBIZ_API_KEY"

The primary dataset is website_source_directory. 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 →

Website Source Directory

website_source_directory · Schema 1

One retained public website-source registration per source_id; directory discovery and successful page retrieval are separate events.

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 · 20 fields
FieldType / unitMeaningAvailability and filters
source_idstringGovBiz source-registry UUID in these SQL relations; not the collector job ID or publisher record ID.Storage and value limits: 128-bit identifier; JSON string; does not prove source identity.Values can be missingeq, in, is_null, contains
source_keystringStable registry source key; separate from UUID and collector job aliases.Storage and value limits: Maximum 160 characters; identifier rules can be narrower.Values can be missingeq, in, is_null, contains
organization_idstringGovBiz public federal organization identifier; not a tenant or company-profile ID.Storage and value limits: 128-bit identifier; JSON string; does not prove source identity.Values can be missingeq, in, is_null, contains
organization_namestringPublic organization name projected by a registry view.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
source_namestringHuman source/publisher label.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
source_typestringRegistry source representation kind; directories and record feeds have different coverage.Storage and value limits: Maximum 32 characters; identifier rules can be narrower.Values can be missingeq, in, is_null, contains
root_urlstringRegistered website root location.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
canonical_domainstringNormalized website hostname.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
discovery_sourcestringAuthority/export used to discover a registry entry.Storage and value limits: No declared field-length cap here; API/output budgets must apply; empty and null differ.Values can be missingeq, in, is_null, contains
crawl_enabledbooleanWhether the approved source/URL is enabled for crawling; not whether its content is complete.Storage and value limits: Boolean physical type; defaults/omitted source fields can still mean unverified or not collected.Values can be missingeq, in, is_null
statusstringRelation-specific source or operational status; use check constraints where declared and the producer mapping elsewhere.Storage and value limits: Maximum 24 characters; identifier rules can be narrower.Values can be missingeq, in, is_null, contains
priorityintegerInternal crawl/source priority; not a recommendation or probability of procurement.Storage and value limits: Signed 16-bit integer; logical domain constraints can be narrower.Values can be missingeq, in, is_null, gte, lte
default_crawl_classstringSource default URL scheduling class.Storage and value limits: Maximum 24 characters; identifier rules can be narrower.Values can be missingeq, in, is_null, contains
default_check_intervalintegerSource default revisit duration.Storage and value limits: PostgreSQL duration; calendar months and fixed seconds are not interchangeable.Values can be missingeq, in, is_null, gte, lte
last_discovered_atdatetimeMost recent directory/discovery observation.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
last_checked_atdatetimeMost recent URL/source check, not necessarily a successful retrieval.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
last_successful_crawl_atdatetimeLast successful website crawl; distinct from directory discovery freshness.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
last_http_statusintegerHTTP status of the most recent source/URL attempt.Storage and value limits: Signed 32-bit integer; logical domain constraints can be narrower.Values can be missingeq, in, is_null, gte, lte
created_atdatetimeGovBiz row/version creation time.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
updated_atdatetimeGovBiz last row update time.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