Catalog / Tenders & public contracts
TENDERS & PUBLIC CONTRACTS · CHILE
Chile Mercado Público Tenders
Scrape Chilean public tenders from Mercado Publico (ChileCompra): title, buyer with RUT and region, UNSPSC codes, procedure, status, deadline in Chile time, amount, items, awards and…
About this data
Scrape Chilean public tenders from Mercado Publico (ChileCompra): title, buyer with RUT and region, UNSPSC codes, procedure, status, deadline in Chile time, amount, items, awards and suppliers, documents and notice link. Track new, amended and closed tenders between runs.
From the actor’s Apify Store listing. The per-call endpoint may return a bounded subset; its own description is below.
Buy per call over x402
One endpoint at api.ssh.autos. Each call is one JSON POST, paid in USDC with no account or API key, and answered in the same HTTP response.
POST /v1/cl/mercado-publico/tenders
Chilean public tenders from Mercado Público for one month: title, buyer, region, procedure, status and deadline.
Input
Send a JSON body to POST https://api.ssh.autos/v1/cl/mercado-publico/tenders.
| Field | Type | Required | Notes |
|---|---|---|---|
year | integer | optional | 2000–2100; default 2026 |
month | integer | optional | 1–12; default 11 |
keyword | string | optional | up to 200 characters |
maxItems | integer | optional | 1–5; default 3 |
Returned fields
The answer is JSON: records, a list of up to 5, and summary, the run status and counts. Each record has these 46 fields; a field the source does not publish comes back null.
46 fields per record
| Field | Type | Notes |
|---|---|---|
ocid | string | The procurement's stable OCID, one row per OCID. |
tenderId | string | The Mercado Público licitación code, for example 2409-44-L126. |
descriptionExcerpt | string | Why the award package could not be read, when that happened. |
buyerName | string | Why the award package could not be read, when that happened. |
buyerLegalName | string | Why the award package could not be read, when that happened. |
buyerRut | string | Why the award package could not be read, when that happened. |
buyerId | string | Why the award package could not be read, when that happened. |
buyerCode | string | Why the award package could not be read, when that happened. |
buyerRegion | string | Why the award package could not be read, when that happened. |
buyerAddress | string | Why the award package could not be read, when that happened. |
buyerContactName | string | Why the award package could not be read, when that happened. |
unspscCodes | array of strings | Unique UNSPSC codes the buyer attached to the items. |
categories | array of objects | One entry per UNSPSC code, with the item description the source publishes. |
procurementMethod | string | Why the award package could not be read, when that happened. |
procurementMethodDetails | string | Why the award package could not be read, when that happened. |
status | string | Why the award package could not be read, when that happened. |
statusDetails | string | Why the award package could not be read, when that happened. |
publishedAt | string | First tender release date, ISO 8601 (source UTC). |
sourcePublishedDate | string | Latest tender package publication date, ISO 8601 (source UTC). |
tenderStartAt | string | Tender period start, ISO 8601 (source UTC). |
tenderStartChile | string | Tender period start in Chile civil time, ISO 8601 with offset. |
tenderEndAt | string | Bid deadline, ISO 8601 (source UTC). |
tenderEndChile | string | Bid deadline in Chile civil time, ISO 8601 with offset. |
estimatedAmount | number | Estimated amount the buyer published, in the published currency. |
currency | string | Why the award package could not be read, when that happened. |
itemsCount | integer | Number of items the source published, or null when it published none. |
items | array of objects | The published item list; null unless includeItems is on. |
awardsCount | integer | Number of award records the releases expose; 0 when none. |
awards | array of objects | Award records exactly as the award releases publish them. |
suppliers | array of objects | Winning suppliers from the award releases, plus parties the source marks as supplier. |
documents | array of objects | Award documents exactly as published. |
releaseIds | array of strings | Tender release ids, oldest first. |
releaseDates | array | Tender release dates, ISO 8601, oldest first. |
releaseTags | array of strings | Tender release tags as published, for example tender and tenderUpdate. |
awardReleaseIds | array of strings | Award release ids, oldest first; null when no award package was read. |
awardReleaseDates | array | Award release dates, ISO 8601; null when no award package was read. |
awardReleaseTags | array of strings | Award release tags as published; null when no award package was read. |
awardError | string | Why the award package could not be read, when that happened. |
noticeUrl | string | Official Mercado Público notice page. |
sourceUrl | string | The source's own tender pointer. |
source | string | always mercadopublico.cl |
scrapedAt | string | When this row was read. |
changeType | string | Changes mode only: new, amended or closed; null in full mode. one of new, amended, closed |
changedFields | array of strings | Changes mode only: normalized fields that differ from the last delivered row. |
previousValues | object | Changes mode only: the previous value of each changed field. |
closedReason | string | Changes mode, closed rows only: closedBySource when the source closed the tender, leftFilters when it no longer matches the filters, unpublished when the source no longer publishes it. Null otherwise. one of closedBySource, leftFilters, unpublished |
Example call
npx agentcash@latest fetch https://api.ssh.autos/v1/cl/mercado-publico/tenders -m POST -b '{"year": 2026, "month": 11, "maxItems": 2}'
The example values come from the API spec or the actor’s own sample input. Running it is a paid call.
What is and isn’t charged
You pay the call price for
- An answer, including a definitive “not found” or an empty result.
- Confirmed no matches returns records: [] (charged: it is an answer).
Free
- Invalid input (422), busy (503), source failure (502), timeout (504) and calls whose client hung up are never charged.
- Invalid input and source failures are not charged.
Prefer a subscription? Run it on Apify
This data source is a public actor on the Apify Store: Chile Mercado Público Tenders Scraper. Run it with your Apify account and plan for larger, scheduled or exported runs; it may offer more input options than the per-call endpoint.
How x402 payment works
- Your client sends the request. The API answers
402 Payment Requiredwith the price and where to pay. - The client pays from its own wallet: USDC on Base or Solana over x402, or over MPP on Tempo. No account, sign-up or API key.
- The client retries with the payment attached and gets the JSON answer in the same call. You are only charged for answers.
The AgentCash CLI in the example does all three steps for you and pays from your AgentCash wallet. Any x402 or MPP client works the same way.
Machine-readable: openapi.json · llms.txt