Source catalog

Agency Contacts

Public contracting points of contact from SAM.gov notices.

← Source catalog

Source, grain and coverage

Agency Contacts ↗

Source-derived contacts from collected notices. A contact may relate to a specific notice rather than an entire agency.

Contacts derive from collected notices and can have incomplete notice provenance. Email equality associates public records but does not establish responsibility for every acquisition at an agency. Historical contact observations do not verify current assignments.

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

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

Public Contracting Contacts

public_contracting_contacts · Schema 1

One retained public contact row per id; source processing can collapse agency/email and multiple notice contexts.

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 · 9 fields
FieldType / unitMeaningAvailability and filters
idstringGovBiz surrogate row identifier; interpret together with its relation, not as a source-native key.Storage and value limits: 128-bit identifier; JSON string; does not prove source identity.Values can be missingeq, in, is_null, contains
agency_codestringStored source agency identifier; namespace can be CGAC, FPDS, top-tier or publisher-specific and must be declared.Storage and value limits: Maximum 64 characters; identifier rules can be narrower.Values can be missingeq, in, is_null, contains
office_namestringStored contact office label; not a stable office identifier.Storage and value limits: Maximum 255 characters; identifier rules can be narrower.Values can be missingeq, in, is_null, contains
contact_namestringSource public contact name label; scope is the associated public record, not every procurement at the agency.Storage and value limits: Maximum 255 characters; identifier rules can be narrower.Values can be missingeq, in, is_null, contains
contact_emailstringSource public contact email address; scope is the associated public record, not every procurement at the agency.Storage and value limits: Maximum 255 characters; identifier rules can be narrower.Values can be missingeq, in, is_null, contains
contact_typestringCollector-assigned notice contact role; role preference when collapsing email rows is a heuristic.Storage and value limits: Maximum 50 characters; identifier rules can be narrower.Values can be missingeq, in, is_null, contains
source_urlstringPublic provenance URL for the relation record; a generic landing URL is weaker than a record locator.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
extracted_atdatetimeTime public contact data was extracted from notices.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
contract_piidstringContract PIID retained on a contact row when specific contract context was sourced.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

Contact Activity Summaries

contact_activity_summaries · Schema 1

One retained legacy public-contact activity summary per id; producer-dependent counts and amounts are not verified contract-action totals.

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 · 19 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 32-bit integer; logical domain constraints can be narrower.Values can be missingeq, in, is_null, gte, lte
contact_namestringSource public contact name label; scope is the associated public record, not every procurement at the agency.Storage and value limits: Maximum 200 characters; identifier rules can be narrower.Values can be missingeq, in, is_null, contains
contact_emailstringSource public contact email address; scope is the associated public record, not every procurement at the agency.Storage and value limits: Maximum 200 characters; identifier rules can be narrower.Values can be missingeq, in, is_null, contains
agency_codestringStored source agency identifier; namespace can be CGAC, FPDS, top-tier or publisher-specific and must be declared.Storage and value limits: Maximum 20 characters; identifier rules can be narrower.Values can be missingeq, in, is_null, contains
total_contractsintegerDerived observed contract count in a public contracting profile.Storage and value limits: Signed 32-bit integer; logical domain constraints can be narrower.Retained contact activity aggregates have producer-dependent lineage and no per-row methodology version. They are not verified contract-action totals; inspect source award actions before making spending claims.Values can be missingeq, in, is_null, gte, lte
total_obligationsdecimal / USDAggregate dollars with producer-dependent grain; current NAICS producer sums award-summary amounts.Storage and value limits: Precision 15, scale 2; absolute value below 10^13; rounding on assignment; checks can narrow the range.Retained contact activity aggregates have producer-dependent lineage and no per-row methodology version. They are not verified contract-action totals; inspect source award actions before making spending claims.Values can be missingeq, in, is_null, gte, lte
pct_set_asidedecimalDerived percentage of observed set-aside contracting activity in this profile; denominator must be the producer-defined grain.Storage and value limits: Precision 5, scale 2; absolute value below 10^3; rounding on assignment; checks can narrow the range.Values can be missingeq, in, is_null, gte, lte
pct_small_businessdecimalDerived percentage of observed small-business contracting activity in this profile; denominator must be the producer-defined grain.Storage and value limits: Precision 5, scale 2; absolute value below 10^3; rounding on assignment; checks can narrow the range.Values can be missingeq, in, is_null, gte, lte
pct_8adecimalDerived percentage of observed 8(a) contracting activity in this profile; denominator must be the producer-defined grain.Storage and value limits: Precision 5, scale 2; absolute value below 10^3; rounding on assignment; checks can narrow the range.Values can be missingeq, in, is_null, gte, lte
pct_sdvosbdecimalDerived percentage of observed SDVOSB contracting activity in this profile; denominator must be the producer-defined grain.Storage and value limits: Precision 5, scale 2; absolute value below 10^3; rounding on assignment; checks can narrow the range.Values can be missingeq, in, is_null, gte, lte
pct_sole_sourcedecimalDerived percentage of observed sole-source contracting activity in this profile; denominator must be the producer-defined grain.Storage and value limits: Precision 5, scale 2; absolute value below 10^3; rounding on assignment; checks can narrow the range.Values can be missingeq, in, is_null, gte, lte
avg_contract_valuedecimalDerived contract value mean in a public contracting profile.Storage and value limits: Precision 15, scale 2; absolute value below 10^13; rounding on assignment; checks can narrow the range.Values can be missingeq, in, is_null, gte, lte
preferred_contract_typestringDerived most-used observed contract type; not an officer preference or recommendation.Storage and value limits: Maximum 50 characters; identifier rules can be narrower.Values can be missingeq, in, is_null, contains
lpta_indicatorbooleanDerived public contracting-profile evaluation heuristic; not an authoritative officer preference.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
active_yearsarrayCalendar/fiscal labels of observed public contracting activity as defined by the producer.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
naics_codes_usedarrayDistinct observed NAICS list in a derived public contracting profile.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
first_award_datedateEarliest award date in the derived public contact profile.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
last_award_datedateLatest award date in the derived public contact profile.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
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