Spanish company public procurement (PLACSP)
get_spanish_company_public_procurementPublic-procurement record of a Spanish company from the Plataforma de Contratación del Sector Público (Ministerio de Hacienda CODICE feeds: hosted profiles and aggregated regional platforms, archives since 2012, daily updates): contracts WON matched by legal-person NIF (attributions: buyer with DIR3, subject, CPV, lot, closed-list result such as awarded or formalised, award date, amounts in EUR excl. and incl. tax as published, tenders received, SME flag) and notices ISSUED as a buyer (avis_emis, public entities with a NIF); newest first, capped at 100 with tronque_*. Never a natural-person winner (DNI/NIE refused without charge) nor a consortium without its own NIF. Partial coverage: zero never means “never won a contract”; a NIF with no row answers 404 without charge.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| nif | Yes | Spanish legal-person NIF: one letter (A-H, J, N, P-S, U-W), seven digits and a check character, e.g. A28582013 — DNI/NIE (natural persons) are refused | |
| api_key | No | Optional Sirenic API key (srn_live_…) to pay with prepaid credits instead of x402 — no wallet needed. Get one at https://api.sirenic.eu/compte. Ignored when x_payment is provided (the signed payment wins). On insufficient balance the tool returns a credits error, not an x402 quote. | |
| x_payment | No | Optional signed x402 PAYMENT-SIGNATURE header value. Omit to receive the payment quote. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| hint | No | How to settle the quote, present when payment_required is true. | |
| quote | No | The signable x402 payment requirements when payment_required is true: {x402Version, accepts[]} where each entry carries scheme, network, amount, asset and payTo (USDC and EURC options at the same numeric amount). Sign one entry and call again with `x_payment`. | |
| resultat | No | The endpoint's JSON response when payment_required is false. Paid responses carry `source`, `disclaimer` and an Ed25519 signature, and every paid JSON response carries a `provenance` array (all tools since 2026-09-06) — one entry per block served, with the official register, licence, version, `as_of` date and `precision_as_of` (what that date means), plus the common per-block envelope: `etat` in a closed list (servi, absence_mesuree, absence_non_conclusive, partiel, perime, indisponible, sans_objet), `motif` when unavailable, `age_jours` (only for publication or ingestion dates), `couverture` (complete / partielle / non_mesurable with its measure) and `confiance` in bands (faible / moyenne / forte, only where a measure grounds it, never averaged across blocks). Read the states before the numbers: an absence_non_conclusive, indisponible or partiel block is never « nothing to report » — only absence_mesuree asserts an absence. Register codes: GET /v1/provenance/registres ; states, closed lists and reading rules: GET /v1/lecture (both free). The PDF tools carry no JSON envelope (the PDF report prints it). | |
| payment_required | Yes | True when this response is an x402 payment quote instead of data: settle one of the quote's `accepts` options and call the tool again with `x_payment`. |