ssh.autos

Catalog / Tenders & public contracts

TENDERS & PUBLIC CONTRACTS · PERU

Peru SEACE Contracts

Search Peru public procurement contracts by buyer, supplier, keyword and signing date.

PER CALL · X402 / MPP From $0.05 per call 1 endpoint at api.ssh.autos. Pay in USDC, no account. See the endpoint
APIFY STORE Public actor Run it with your Apify account: bulk runs, schedules and exports. Open on Apify

About this data

Search Peru public procurement contracts by buyer, supplier, keyword and signing date. Export awarded contract amounts, currencies and source links. No API key needed.

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/pe/seace/contracts

Search awarded Peruvian state contracts in the official SEACE registry by keyword, buyer, supplier, contract number or signing-date window: buyer, supplier and RUC, amount, currency and dates, up to 100 awards per call. Source: SEACE / OECE official registry.

PRICE$0.05 per call, in USDC
RESULTUp to 100 per call
PAYMENTx402 or MPP · no account

Give at least one filter or a date window.

Input

Send a JSON body to POST https://api.ssh.autos/v1/pe/seace/contracts.

FieldTypeRequiredNotes
keywordstringoptionalFree text matched against the contract.
at least 3 characters
buyerstringoptionalContracting entity name fragment.
at least 3 characters
supplierstringoptionalSupplier (proveedor) name fragment.
at least 3 characters
contractNumberstringoptionalContract number fragment.
at least 3 characters
dateFromstringoptionalSigning-date window start, YYYY-MM-DD (with dateTo).
dateTostringoptionalSigning-date window end, YYYY-MM-DD (with dateFrom).
yearintegeroptionalSEACE registry year (default: current year).
at least 2015
maxResultsintegeroptional1–100; default 50

Returned fields

The answer is JSON: records, a list of up to 100, and summary, the run status and counts. Each record has these 27 fields; a field the source does not publish comes back null.

27 fields per record
FieldTypeNotes
contractKeystringComposite unique key: source:contrato:idContrato (e.g. prod4.seace.gob.pe:contrato:2391845).
idContratostringSEACE contract id.
idExpedientestringContracting file (expediente) id — the public detail page is keyed on it.
numeroContratostringContract number as printed, e.g. '017-2026-UE011-BID'.
nomenclaturaProcesostringSelection-process nomenclature (the notice reference), e.g. 'LP-ABR-4-2025-MDS/CS-1'.
buyerRucstringBuyer entity's RUC (11 digits), when present.
buyerNamestringBuyer entity name (entidad contratante).
supplierRucstringSupplier's RUC (11 digits) or L-prefixed foreign code, when present.
supplierNamestringSupplier name (contratista).
amountnumberContract amount in the contract's currency.
currencystringISO currency of amount: PEN (S/.), USD ($), GBP (£); null when the registry shows an unmapped symbol.
currencyRawstringCurrency symbol exactly as SEACE shows it.
amountBudgetnumberBudgeted amount (monto presupuesto), when published.
amountCcpnumberCCP-noted amount, when published.
signedAtstringContract signing date, ISO YYYY-MM-DD.
startDatestringContract start date, ISO YYYY-MM-DD.
endDatestringContract end date, ISO YYYY-MM-DD.
objectCodestringSEACE object code: 62=Bien, 63=Consultoría, 64=Obra, 65=Servicio.
objectTypestringObject type name: BIEN, CONSULTORIA, OBRA, SERVICIO.
statestringPublication state, e.g. 'Publicado'.
yearstringContract year as registered by SEACE.
isMinorContractbooleanTrue for contratos menores (small-purchase lane).
isConsortiumbooleanTrue when the supplier is a consortium.
urlstringPublic SEACE detail page for the expediente.
sourceQuerystringThe scope this run searched (filters + year).
sourcestringSource API hostname.
scrapedAtstringUTC ISO-8601 collection timestamp.

Example call

TERMINAL · $0.05 PER RUN
npx agentcash@latest fetch https://api.ssh.autos/v1/pe/seace/contracts -m POST -b '{"supplier": "GLORIA", "maxResults": 5}'

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

Free

  • Invalid input (422), busy (503), source failure (502), timeout (504) and calls whose client hung up are never charged.
  • Invalid filters and registry outages are not charged.

Prefer a subscription? Run it on Apify

This data source is a public actor on the Apify Store: Peru SEACE Contracts 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.

Open on Apify

How x402 payment works

  1. Your client sends the request. The API answers 402 Payment Required with the price and where to pay.
  2. 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.
  3. 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

Some links to Apify are affiliate links. We may earn a commission if you sign up and become a paying customer.