---
title: "Corporate suppliers by award procedures (CSV)"
method: GET
path: "/api/v1/contracts/top-companies.csv"
tags: ["Public Procurement", "Datasets"]
---

# Corporate suppliers by award procedures (CSV)

`GET /api/v1/contracts/top-companies.csv`

## Request

- Base URL: `https://openmercantil.es`
- URL: `https://openmercantil.es/api/v1/contracts/top-companies.csv`
- Auth: none declared
- TypeScript: <https://skmtc.dev/openmercantil/apis/openmercantil-public-api/docs/api/v1/contracts/top-companies.csv/get.ts> (a function with typed inputs; its response is checked against the schema)

Bounded CSV (maximum 100 rows) generated from `placsp_public_company_summary`. Columns distinguish notice count from award-procedure count and contain no monetary aggregate.

## Query parameters

- `limit` integer

## Response `200`

CSV download

## Other responses

- `400`: Invalid request
- `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`: PLACSP public projection unavailable

## Changes

- **2026-07-26** `996f96a11758`: 7 info
  - api operation id `getContractsTopCompaniesCsv` was added
  - added the new optional `query` request parameter `limit`
  - added the non-success response with the status `400`
  - added the non-success response with the status `422`
  - …3 more

[Operation history](https://skmtc.dev/openmercantil/apis/openmercantil-public-api/changes/api/v1/contracts/top-companies.csv/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)
