---
title: "Get BDNS public grants"
method: GET
path: "/api/v1/company/{slug}/grants"
tags: ["Companies", "Public Procurement"]
---

# Get BDNS public grants

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

Read only company_integrations_public_v1 after company_public_v2 admission. Returns up to 200 attested BDNS rows and never queries the canonical grants table. Monetary values are awarded amounts in integer cents, never payments; ambiguous raw zero is null. Empty is complete bounded-projection coverage, not proof of absence upstream.

## Path parameters

- `slug` string, required

## Query parameters

- `limit` integer

## Headers

- `If-None-Match` string

## Response `200`

Grants list

- CompanyGrantsResponse — Generation-bound BDNS view. count is the total projected row count; returned_count is the bounded slice length. No monetary rollup is emitted.
  - `projection_status` 'available', required
  - `projection` CompanyIntegrationProjection, required
    - `name` 'company_integrations_public_v1', required
    - `schema_version` '1.3', required
    - `builder_version` '1.4.0', required
    - `generation` string, required
  - `slug` string, required
  - `cif` string, required
  - `complete_bounded_projection` true, required
  - `coverage_status` 'available' | 'empty', required
  - `source_metadata` CompanyIntegrationSourceMetadata, required — Projection-bound legal metadata plus the exact governed acquisition boundary for a company integration source.
    - `slug` 'bdns' | 'cnmv' | 'ted_eu' | 'wikidata', required
    - `name` string, required
    - `license` string, required
    - `license_url` string, uri, nullable, required
    - `attribution_required` boolean, required
    - `attribution_text` string, nullable, required
    - `official_url` string, uri, required
    - `reuse_conditions` string, required
    - `policy_effective_date` string, date, required
    - `reviewed_at` string, date, required
    - `data_updated_at` string, date-time, nullable, required
    - `catalog_version` string, required
    - `acquisition_coverage` CompanyIntegrationAcquisitionCoverage, required — Attested acquisition boundary for one governed source package. Completeness applies only to this exact bounded scope; complete_history_claimed and source_snapshot_claimed are always false, so this metadata never asserts complete historical or upstream snapshot coverage.
      - `scope` 'bounded_newest_first_page_prefix' | 'directory_snapshot_plus_relative_event_window' | 'publication_date_window_page_walk' | 'exact_identity_seed_lookup_snapshot', required
      - `declared_scope_complete` true, required — All partitions declared by this bounded acquisition scope were captured; this is not a complete-history claim.
      - `complete_history_claimed` false, required
      - `source_snapshot_claimed` false, required
      - `window_start` string, date, nullable, required
      - `window_end` string, date, nullable, required
      - `relative_window_days` integer, nullable, required
      - `source_as_of` string, date, nullable, required
      - `identity_seed_subject_count` integer, required
      - `request_count` integer, required
      - `partition_count` integer, required
      - `source_package_schema` 'openmercantil-bdns-reingest-package/v2' | 'openmercantil-cnmv-reingest-package/v2' | 'openmercantil-ted-reingest-package/v2' | 'openmercantil-wikidata-reingest-package/v2', required
      - `source_package_manifest_sha256` string, required
      - `source_fragment_schema` 'openmercantil-bdns-reingest-source-fragment/v2' | 'openmercantil-cnmv-reingest-source-fragment/v2' | 'openmercantil-ted-reingest-source-fragment/v2' | 'openmercantil-wikidata-reingest-source-fragment/v2', required
      - `source_fragment_sha256` string, required
      - `source_authority_binding_sha256` string, required
      - `coverage_sha256` string, required — Digest of the producer-declared bounded coverage object; it is integrity evidence, not proof of complete history.
  - `coverage_notice` string, required
  - `count` integer, required
  - `returned_count` integer, required
  - `items` GrantRecord[], required
    - `bdns_code` string, required
    - `granting_body` string, required
    - `title` string, required
    - `award_year` integer, nullable, required
    - `instrument` string, nullable, required
    - `award_amount_cents` integer, nullable, required
    - `award_amount_currency` 'EUR' | 'null', nullable, required
    - `amount_quality` 'reported_positive_cents' | 'unknown_zero_ambiguous' | 'unknown_missing', required
    - `amount_semantics` 'awarded_not_payment', required
  - `amount_notice` 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

- `304` — The admitted company, projection generation and legal envelope have not changed
- `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
- `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)
