---
title: "Aggregates by autonomous community (CCAA)"
method: GET
path: "/api/v1/ccaa/stats.json"
tags: ["Datasets"]
---

# Aggregates by autonomous community (CCAA)

`GET /api/v1/ccaa/stats.json`

Return per-CCAA totals from the offline projection. The ETag is bound to the shared asv1 stats generation and uses 60-second must-revalidate caching. Award-procedure counts come only from the corporate PLACSP v3 summary; the deprecated `contracts_count` is an explicitly labelled alias and `contracts_total_eur` is always withheld. Also available without `.json` suffix. Returns 503 rather than rebuilding aggregates in PHP-FPM.

## Headers

- `If-None-Match` string

## Response `200`

CCAA stats

- CcaaStatsResponse
  - `count` integer, required
  - `ccaa` CcaaStatsRow[], required
    - `award_procedures_count` integer, required — Sum of PLACSP award-procedure counts for corporate suppliers in the public v3 projection. It is not a unique-contract count.
    - `award_procedures_count_status` 'public_projection_v3' | 'projection_unavailable', required
    - `contracts_count` integer, required — Compatibility alias of award_procedures_count; consume the canonical field and status instead.
    - `contracts_count_status` 'award_procedures_per_corporate_supplier_not_unique_contracts', required
    - `contracts_total_eur` unknown, required
    - `contracts_total_eur_status` 'withheld_no_typed_rollup', required
    - `name` string, required
    - `total` integer, required
    - `active` integer, required
    - `extinct` integer, required
    - `concurso` integer, required
    - `total_capital_eur` integer, required
    - `provinces` string[], required
  - `source` string, required
  - `updated` string, date-time, nullable, required — Offline projection generation time; null when legacy cache provenance is unavailable.

## Other responses

- `304` — The CCAA representation and shared stats generation have not changed
- `429` — Rate limit exceeded
- `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/versions/996f96a11758/schema)
