Government / Procurement notices, awards and contracts
State Procurement Agency OCDS archive
The legacy official open-data application exposes a paginated tender list and OCDS 1.1 JSON packages containing buyer, parties, classifications, items, dates, values, tenderers, awards, suppliers, documents and contracts.
Provenance and access
How the data is reached
HTTP JSON list and per-tender OCDS package. No auth. HTTPS certificate was expired/unusable and HTTP will be mixed content in a browser, so server-side retrieval is required.
Unclear/problematic: OCDS package literally returned license and publicationPolicy as http://FIXME placeholders.
- Method
- GET
- Format
- JSON
- Authentication
- None
HTTP only in current test.
Per-tender OCDS package
http://opendata.spa.ge/json/Tenders/{year}/{REGNUMBER}.json ↗- Method
- GET
- Format
- JSON
- Authentication
- None
Field-level detail
What is actually returned
Tender list response
Paginated legacy list.
| Field / path | Type | Null? | Example | Meaning | Freshness |
|---|---|---|---|---|---|
msg | string | No | ok | API status | unknown |
src | array<object> | No | [...] | Tender rows | historical |
total | numeric string | No | 278163 | Total records | derived |
paginator_last | integer | No | 27817 | Last page | derived |
src[].n | integer | No | 1 | Row ordinal | derived |
src[].REGNUMBER | string | No | B2B180000003 | Tender registration number | reference |
src[].json_field | string | No | 2018 | Export year/path segment | reference |
src[].PREFIX | string | Yes | B2B | Procedure prefix/type | reference |
src[].IDNUMBER | string | Yes | 206120437 - შპს ,,ელიტა ბურჯი" | Buyer ID and name combined | reference |
src[].BASE_CODE | string | Yes | 44500000 - Tools... | CPV code and description combined | reference |
src[].REG_DATE | string datetime | Yes | 31/08/2018 11:52:54 | Registration date | historical |
src[].FINAL_DATE | string datetime | Yes | 05/09/2018 | Final/submission date | historical |
src[].GL_STATUS_ID | string enum | Yes | Complete | Procedure status | unknown |
src[].AMOUNT | numeric string | Yes | 17880 | Tender amount | historical |
src[].winner_id | string | Yes | Energy LLC - ... | Winner name and ID combined | historical |
OCDS package and release
Observed OCDS 1.1 package and core nested paths.
| Field / path | Type | Null? | Example | Meaning | Freshness |
|---|---|---|---|---|---|
version | string | No | 1.1 | OCDS version | reference |
uri | URL or string | Yes | ... | Package URI | reference |
publishedDate | ISO datetime | Yes | 2019-05-31... | Package publication date | historical |
publisher.name / scheme / uid / uri | string | Yes | SPA metadata | Publisher metadata | reference |
license | string | Yes | http://FIXME | Claimed license URLInvalid placeholder. | reference |
publicationPolicy | string | Yes | http://FIXME | Claimed policy URLInvalid placeholder. | reference |
releases | array<object> | No | [...] | OCDS releases | historical |
releases[].ocid | string | No | ocds-... | Open Contracting ID | reference |
releases[].id | string | No | ... | Release ID | reference |
releases[].date | ISO datetime | Yes | ... | Release date | historical |
releases[].tag | array<string> | Yes | [...] | Release tags | reference |
releases[].language | string | Yes | ka | Release language | reference |
releases[].initiationType | string | Yes | tender | Initiation type | reference |
releases[].buyer.id / name | string | Yes | ... | Buyer identity | reference |
releases[].parties[] | array<object> | Yes | [...] | Buyers, tenderers and suppliers | reference |
releases[].parties[].id / name / roles[] | string or array | Yes | ... | Party identity and roles | reference |
releases[].parties[].identifier.scheme / id / legalName / uri | string | Yes | ... | Formal party identifierLiteral string null can occur. | reference |
releases[].parties[].address.countryName / region / locality / streetAddress / postalCode | string | Yes | ... | Party address | reference |
releases[].parties[].contactPoint.name / email / telephone / faxNumber | string | Yes | ... | Public procurement contact | reference |
releases[].tender.id / title / description / status | string | Yes | ... | Tender identity and status | unknown |
releases[].tender.procurementMethod / procurementMethodRationale | string | Yes | ... | Method and rationale | historical |
releases[].tender.awardCriteria / awardCriteriaDetails / eligibilityCriteria | string | Yes | ... | Award and eligibility criteria | historical |
releases[].tender.hasEnquiries | boolean | Yes | false | Enquiries indicator | historical |
releases[].tender.submissionMethod[] / submissionMethodDetails | array or string | Yes | electronic | Submission channel | historical |
releases[].tender.tenderPeriod.startDate / endDate | ISO datetime | Yes | ... | Tender window | historical |
releases[].tender.value.amount / currency | number or string | Yes | 17880 / GEL | Tender value | historical |
releases[].tender.items[] | array<object> | Yes | [...] | Procured items | historical |
releases[].tender.items[].id / description | string | Yes | ... | Line item identity and description | historical |
releases[].tender.items[].classification.scheme / id / description / uri | string | Yes | CPV ... | Item classification | reference |
releases[].tender.tenderers[] | array<object> | Yes | [...] | Tenderers | historical |
releases[].awards[] | array<object> | Yes | [...] | Award decisions | historical |
releases[].awards[].id / title / description / status / date | string or datetime | Yes | ... | Award metadata | historical |
releases[].awards[].value.amount / currency | number or string | Yes | ... | Award value | historical |
releases[].awards[].suppliers[] | array<object> | Yes | [...] | Awarded suppliers | historical |
releases[].contracts[] | array<object> | Yes | [...] | Contracts | historical |
releases[].contracts[].id / title / description / status / awardID | string | Yes | ... | Contract metadata | historical |
releases[].contracts[].dateSigned | ISO datetime | Yes | ... | Signature date | historical |
releases[].contracts[].period.startDate / endDate | ISO datetime | Yes | ... | Contract periodSample contained reversed chronology. | historical |
releases[].contracts[].value.amount / currency | number or string | Yes | ... | Contract value | historical |
releases[].awards[].documents[] / contracts[].documents[] | array<object> | Yes | [...] | Documents | historical |
*.documents[].id / title / description / documentType / format / language / url | string | Yes | ... | Document metadata | historical |
*.documents[].datePublished / dateModified | ISO datetime | Yes | ... | Document timestamps | historical |
Representative evidence
Sample records
Tender list row
Retrieved 2026-07-22 Asia/Tbilisi
{"msg":"ok","total":"278163","paginator_last":27817,"src":[{"REGNUMBER":"B2B180000003","json_field":"2018","PREFIX":"B2B","IDNUMBER":"206120437 - შპს ,,ელიტა ბურჯი"","BASE_CODE":"44500000 - Tools...","REG_DATE":"31/08/2018 11:52:54","FINAL_DATE":"05/09/2018","GL_STATUS_ID":"Complete","AMOUNT":"17880","winner_id":"Energy LLC - ..."}]}Boundaries
Reliability, caveats, and privacy
What held up
- Official list and per-record OCDS JSON both returned usable data.
- OCDS identifiers and nested provenance support validation.
- Server-side caching is required for secure web apps.
What can go wrong
- HTTP-only host and broken HTTPS certificate.
- license and publicationPolicy are invalid placeholders.
- Literal string null appears instead of JSON null.
- Sample contained a contract-period chronology anomaly.
- Current-list cadence and sorting were not validated.
Privacy boundary
- Parties and documents can include personal data; minimize and avoid republishing unnecessary details.
Cross-source possibilities
Ideas using this source
Source trail
Primary pages and documentation
- PrimarySPA open-data application ↗
http://opendata.spa.ge/ - ContextState Procurement Agency ↗
https://procurement.gov.ge/en