eBuy Data Dictionary¶
This document describes the fields available on the eBuy API endpoint (/api/ebuy/requests/). For access, filtering, ordering, and pagination, see the eBuy API Reference.
Overview¶
eBuy requests are the requests for quote (RFQ), requests for proposal (RFP) and requests for information (RFI) that agencies post to GSA Schedule holders through GSA eBuy.
eBuy is not public data. GSA shows a Schedule holder only the requests posted under the SINs on that holder's own contracts, and Tango keeps the same boundary: you see a request only while your account is linked to a contract it was posted under. What this resource contains is therefore specific to your account.
One row is one eBuy request, identified by its eBuy request id (rfq_id).
Authentication: eBuy endpoints require authentication (API key or OAuth2).
Plans: a paid plan, and a contract link that MakeGov sets up for your account. See Checking your access.
Update Frequency¶
Tango captures eBuy on a recurring schedule. Each capture updates the requests it observes and advances their last_seen.
status is frozen¶
status is Open or Cancelled, exactly as eBuy supplied it, and it is never recomputed. eBuy's feed carries only currently active requests; a request that closes stops appearing rather than arriving with a closed status. An Open request may therefore have closed long ago.
last_seenis when Tango last observed the request in eBuy. It is the field to judge staleness by.close_dateis the buyer's stated deadline.
Detail and list captures¶
Most requests are captured from their eBuy detail page. A request eBuy lists but whose detail page was not reached carries only the list-level fields — title, dates, buyer, SIN — and detail_fetched is false. Its description, contracting-officer block and structured fields may be empty.
mod_version is the amendment version eBuy's list reports, and it is the only amendment evidence on a request whose detail page was not reached.
Attachments¶
attachments is available on the detail endpoint and through the attachments(...) expansion. Each entry is either a document or a link:
| Field | Type | Description |
|---|---|---|
doc_seq_num | Integer | eBuy's sequence number for the entry within the request. Addresses the download endpoint. |
doc_name | String | File name, or the link's label. |
doc_type | Integer | eBuy's numeric document-type code, as supplied. |
doc_path | String | For a link, the outbound URL. For a document, eBuy's own path — use the download endpoint instead. |
is_link | Boolean | true for an outbound link with no file behind it; false for a downloadable document. |
doc_session_date | Datetime | eBuy's timestamp for the entry, as supplied. |
attachment_count and link_count on the request count every document and link ever observed on it. After an amendment removes a document from eBuy's page, the counts can exceed what eBuy currently shows.
Structured fields¶
These are eBuy's own structures, returned as JSON arrays with eBuy's key names (camelCase). They are empty arrays, not null, when a request has none.
amendments¶
One object per amendment:
| Key | Type | Description |
|---|---|---|
version | Integer | Amendment version number. |
time | String | When the amendment was made, as eBuy formats it. |
note | String | The buyer's note describing the amendment. |
identifier | String or null | An amendment identifier, where given. |
line_items¶
Product line items, present mainly on requests for products rather than services. Commonly used keys: rfqItemId, productDescription, manufactureName, manufacturePartNum, quantity, unit, price and addressIndex (an index into addresses). eBuy also includes quote-workflow flags (quoted, selected, valid and others) that reflect eBuy's own form state.
addresses¶
The request's delivery and contact addresses — usually one. Commonly used keys: addressName, addressType, agencyName, addressLine1, addressLine2, city, state, zip, country. eBuy includes further keys for its own form handling; treat anything not listed here as eBuy-internal.
Fields¶
| Field | Type | Description | Source |
|---|---|---|---|
rfq_id | String | The eBuy request id, e.g. RFQ1835158. Primary key and detail-lookup value. | eBuy |
request_type | String | RFQ, RFP or RFI. | eBuy |
title | String | Request title. | eBuy |
description | String | The request's full description. Long-form; in the detail default only. | eBuy |
schedule | String | The GSA schedule the request was posted under. | eBuy |
sin | String | The Special Item Number the request was posted under. | eBuy |
status | String | Open or Cancelled as supplied — frozen; see status is frozen. | eBuy |
buyer_name | String | The buying officer's name. | eBuy |
buyer_agency | String | The buying department's name as eBuy gives it. | eBuy |
buyer_agency_code | String | The buying agency's numeric code, where eBuy supplies one. | eBuy |
buyer_email | String | The buying officer's email. | eBuy |
buyer_user_id | String | The buying officer's eBuy account id — a stable buyer identity across requests. | eBuy |
reference_number | String | The buying office's own solicitation or reference number. | eBuy |
award_method | String | eBuy's award-method value, e.g. lpta, best-value, trade-off, sole-source, undecided. | eBuy |
contract_type | String | eBuy's contract-type value, e.g. firm-fixed-price, time-materials, labor-hour, undecided. Can hold more than one value, comma-joined. | eBuy |
commercial_type | String | eBuy's commercial-item indicator. | eBuy |
follow_on | Boolean | Whether the request is for follow-on work. | eBuy |
source_sought | Boolean | Whether the request is a sources-sought notice. | eBuy |
issue_date | Datetime | When the request was issued. | eBuy |
close_date | Datetime | The buyer's response deadline. | eBuy |
cancel_date | Datetime | When the request was cancelled, if it was. | eBuy |
last_mod_date | Datetime | When the request was last modified in eBuy. | eBuy |
pop_start_date | Datetime | Period of performance start, where given. | eBuy |
pop_end_date | Datetime | Period of performance end, where given. | eBuy |
oco_name | String | Ordering contracting officer's name. | eBuy |
oco_title | String | Ordering contracting officer's title. | eBuy |
oco_agency | String | Ordering contracting officer's agency. | eBuy |
oco_phone | String | Ordering contracting officer's phone. | eBuy |
oco_aac | String | Ordering contracting officer's activity address code. | eBuy |
ocs_name | String | Contract specialist's name. | eBuy |
ocs_title | String | Contract specialist's title. | eBuy |
ocs_agency | String | Contract specialist's agency. | eBuy |
ocs_phone | String | Contract specialist's phone. | eBuy |
ocs_aac | String | Contract specialist's activity address code. | eBuy |
amendment_count | Integer | Number of amendments. | eBuy |
mod_version | Integer | Amendment version as eBuy's request list reports it. | eBuy |
qa_document_count | Integer | Number of question-and-answer documents. | eBuy |
attachment_count | Integer | Documents ever observed on the request — see Attachments. | eBuy / Tango |
link_count | Integer | Links ever observed on the request. | eBuy / Tango |
amendments | Array of Object | See amendments. | eBuy |
line_items | Array of Object | See line_items. | eBuy |
addresses | Array of Object | See addresses. | eBuy |
detail_fetched | Boolean | Whether the request's detail page was captured — see Detail and list captures. | Tango |
first_seen | Datetime | When Tango first observed the request. | Tango |
last_seen | Datetime | When Tango last observed the request. The staleness signal. | Tango |
organization | Object | Expansion: the buying office resolved to the canonical 7-key office payload; null when the buyer is not a federal agency Tango can resolve. | Tango |
attachments | Array of Object | Expansion: see Attachments. | eBuy |
Default shapes¶
- List returns:
rfq_id,request_type,title,schedule,sin,status,buyer_name,buyer_agency,buyer_agency_code,reference_number,issue_date,close_date,attachment_count,link_count,last_seen. - Detail returns every field, plus
organization(*)andattachments(*).
Usage Notes¶
- Judge currency by
last_seen, notstatus.statusnever moves to closed. - No response names the contract a request was posted under. Use
?contract_number=to narrow to one of your own contracts. - Download documents through the API. The download endpoint returns a short-lived URL;
doc_pathon a document is eBuy's internal path, not a download link. - Alerts stay inside your contracts.
ebuy_requestis an alertable query type, scoped to the contracts linked to the account that owns the webhook endpoint. See Webhooks.
Data Sources¶
- eBuy — the requests, their attachments and structured fields, as GSA eBuy presents them to a Schedule holder.
- Tango —
first_seen,last_seen,detail_fetched, the attachment counts across observations, the resolvedorganization, and the extracted attachment text behind search.