---
title: "Get a sanitized procurement notice"
method: GET
path: "/api/v1/tenders/{key}"
tags: ["Public Procurement"]
---

# Get a sanitized procurement notice

`GET /api/v1/tenders/{key}`

Returns an explicit public projection by stable url_key, including materialized CODICE v3 lots, CPV codes and results when available. Raw XML, local paths, document binaries and uncertain supplier identities are never returned.

## Path parameters

- `key` string, required

## Response `200`

Sanitized notice detail

- object
  - `schema_version` string, required
  - `tender` TenderNotice, required
    - `key` string, required
    - `folder_id` string, nullable, required
    - `object` string, required
    - `buyer` TenderParty, required
      - `name` string, nullable
      - `cif` string, nullable — Corporate CIF only.
      - `nif` string, nullable — Public-body NIF; never a supplier DNI/NIE.
      - `dir3` string, nullable
      - `company_slug` string, nullable
      - `withheld` boolean
    - `supplier` TenderParty, required
      - `name` string, nullable
      - `cif` string, nullable — Corporate CIF only.
      - `nif` string, nullable — Public-body NIF; never a supplier DNI/NIE.
      - `dir3` string, nullable
      - `company_slug` string, nullable
      - `withheld` boolean
    - `supplier_withheld` boolean, required
    - `cpv` string, nullable, required
    - `cpv_codes` string[], required
    - `contract_type` string, nullable, required — Raw CODICE code when no verified codelist label is available.
    - `procedure` string, nullable, required — Raw CODICE code when no verified codelist label is available.
    - `amounts` object, required
      - `budget_total` TenderMoney, required
        - `value` number, nullable, required
        - `currency` string, nullable, required
      - `budget_tax_exclusive` TenderMoney, required
        - `value` number, nullable, required
        - `currency` string, nullable, required
      - `estimated_total` TenderMoney, required
        - `value` number, nullable, required
        - `currency` string, nullable, required
      - `award_payable_total` TenderMoney, required
        - `value` number, nullable, required
        - `currency` string, nullable, required
    - `reported_amount_eur` number, nullable, required — Compatibility field: award_payable_total only when its currency is EUR. Not proof of payment/executed spend.
    - `reported_tax_exclusive_amount_eur` number, nullable, required
    - `amount_quality` string, required — Projection quality marker such as complete, separated_reported, missing, legacy_withheld or outlier_withheld.
    - `amount_semantics` string, required
    - `phase` 'PUB' | 'PRE' | 'EV' | 'ADJ' | 'RES' | 'ANUL' | 'null', nullable, required
    - `phase_description` string, nullable, required
    - `published_at` string, date, nullable, required
    - `awarded_at` string, date, nullable, required
    - `formalised_at` string, date, nullable, required
    - `submission_deadline` string, date, nullable, required
    - `is_open` boolean, required
    - `province` string, nullable, required
    - `province_slug` string, nullable, required
    - `document_count` integer, required
    - `lot_count` integer, required
    - `result_count` integer, required
    - `supplier_count` integer, required
    - `official_url` string, uri, nullable, required
    - `parser_version` string, nullable, required
    - `source` 'PLACSP', required
  - `lots` TenderLot[], required
    - `lot_id` string, required
    - `object` string, nullable, required
    - `budget_total` TenderMoney, required
      - `value` number, nullable, required
      - `currency` string, nullable, required
    - `budget_tax_exclusive` TenderMoney, required
      - `value` number, nullable, required
      - `currency` string, nullable, required
    - `estimated_total` TenderMoney, required
      - `value` number, nullable, required
      - `currency` string, nullable, required
    - `nuts_code` string, nullable, required
    - `cpv_codes` string[], required
  - `results` TenderResult[], required
    - `lot_id` string, required
    - `result_index` integer, required
    - `result_code` string, nullable, required
    - `description` string, nullable, required
    - `award_date` string, date, nullable, required
    - `formalized_date` string, date, nullable, required
    - `amounts` object, required
      - `award_tax_exclusive` TenderMoney, required
        - `value` number, nullable, required
        - `currency` string, nullable, required
      - `award_payable` TenderMoney, required
        - `value` number, nullable, required
        - `currency` string, nullable, required
      - `lower_tender` TenderMoney, required
        - `value` number, nullable, required
        - `currency` string, nullable, required
      - `higher_tender` TenderMoney, required
        - `value` number, nullable, required
        - `currency` string, nullable, required
    - `amount_quality` string, required
    - `received_tender_quantity` integer, nullable, required
    - `sme_awarded` boolean, nullable, required
    - `suppliers` TenderResultSupplier[], required
      - `supplier` TenderParty, required
        - `name` string, nullable
        - `cif` string, nullable — Corporate CIF only.
        - `nif` string, nullable — Public-body NIF; never a supplier DNI/NIE.
        - `dir3` string, nullable
        - `company_slug` string, nullable
        - `withheld` boolean
      - `supplier_withheld` boolean, required
  - `collections` TenderCollectionMetadata, required — Hard response bounds and per-collection truncation flags. Truncation never triggers an unbounded fallback.
    - `limits` object, required
      - `lots` 100, required
      - `cpv_codes` 500, required
      - `suppliers` 250, required
      - `results` 100, required
    - `truncated` object, required
      - `lots` boolean, required
      - `cpv_codes` boolean, required
      - `suppliers` boolean, required
      - `results` boolean, required
  - `coverage` TenderCoverage, required
    - `projection` string, nullable
    - `lots` string, nullable
    - `multiple_cpv` string, nullable
    - `supplier_edges` string, nullable
    - `documents` string, nullable
    - `cpv_prefix_filter` string, nullable — Indexed offline 2-8 digit prefix coverage; undated projection rows are excluded.
    - `projection_generation` string — Immutable PLACSP projection generation used for this response.
    - `company_public_generation` string — Immutable company_public_v2 generation that revalidated the requested company identity.
  - `attribution` string, required
  - `disclaimer` string, required
  - `_source_catalog` SourceCatalogEnvelope, required
    - `catalog_version` string, required
    - `policy_fingerprint` string, required
    - `policy_effective_date` string, date
    - `sources` object, required
  - `_data_sources_used` PublicSourcePolicyMetadata[], required
    - `slug` string, required
    - `name` string, required
    - `license` string, required
    - `license_url` string, uri, nullable
    - `attribution_required` boolean, required
    - `attribution_text` string, nullable
    - `official_url` string, uri, nullable
    - `reuse_conditions` string, required — Condiciones de reutilizacion que el consumidor debe conservar al presentar o transformar el dato.
    - `policy_effective_date` string, date, required
    - `reviewed_at` string, date, required
    - `data_updated_at` string, date-time, nullable
    - `catalog_version` string, required
  - `_attributions` object

## Other responses

- `400` — Invalid request
- `404` — Resource not found
- `429` — Rate limit exceeded
- `500` — The bounded operation failed without exposing internal exception details.
- `503` — The public read failed closed because its legal source catalog, subject classification, bounded projection, database helper or required artifact is unavailable. Clients must not infer an empty result.

---

[API](https://skmtc.net/openmercantil/apis/openmercantil-public-api.md) · [All operations](https://skmtc.net/openmercantil/apis/openmercantil-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/openmercantil/openmercantil-public-api/revisions/996f96a11758/schema)
