---
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`

## Request

- Base URL: `https://openmercantil.es`
- URL: `https://openmercantil.es/api/v1/company/{slug}/contracts`
- Auth: one of:
  - none
  - API key in header `X-API-Key`
  - HTTP bearer
- TypeScript: <https://skmtc.dev/openmercantil/apis/openmercantil-public-api/docs/api/v1/company/:slug/contracts/get.ts> (a function with typed inputs; its response is checked against the schema)

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 and amount_quality declares a complete award. 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.

## Changes

- **2026-07-26** `996f96a11758`: 54 info
  - api operation id `getCompanyBySlugContracts` was added
  - the endpoint scheme security `apiKey` was added to the API
  - the endpoint scheme security `bearerAuth` was added to the API
  - added the non-success response with the status `400`
  - …50 more

[Operation history](https://skmtc.dev/openmercantil/apis/openmercantil-public-api/changes/api/v1/company/:slug/contracts/get.md)

---

[API](https://skmtc.dev/openmercantil/apis/openmercantil-public-api.md) - [All operations](https://skmtc.dev/openmercantil/apis/openmercantil-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/openmercantil/apis/openmercantil-public-api/revisions/601ff6123c86?raw)
