---
title: "Get PLACSP procurement notices linked to a legal entity"
method: GET
path: "/api/v1/company/{slug}/contracts"
tags: ["Companies", "Public Procurement"]
---

# Get PLACSP procurement notices linked to a legal entity

`GET /api/v1/company/{slug}/contracts`

Requires the legal-first PLACSP v3 projection, including typed budget, estimate and award fields plus corporate supplier edges. It never falls back to the legacy untyped table and never sums mixed monetary concepts. A CIF link is documentary and does not prove payment or executed spend.

## Path parameters

- `slug` string, required

## Query parameters

- `limit` integer

## Response `200`

Contracts list

- CompanyProcurementResponse
  - `schema_version` string, required
  - `slug` string, required
  - `count` integer, required
  - `items` 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
  - `page` object, required
    - `limit` integer, required
    - `has_more` boolean, required
  - `monetary_rollup` unknown, required
  - `rollup_policy` string, required
  - `coverage` TenderCoverage
    - `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
  - `disclaimer` string
  - `_alias_of` string
  - `_source_catalog` SourceCatalogEnvelope
    - `catalog_version` string, required
    - `policy_fingerprint` string, required
    - `policy_effective_date` string, date
    - `sources` object, required

## Other responses

- `400` — Invalid request
- `404` — Resource not found
- `422` — The query is lexically valid but outside a documented numeric or length bound, or uses an unsupported indexed combination.
- `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)
