---
title: "Consolidated text of a single article"
method: GET
path: "/api/v1/legal/article/{norm}/{n}"
tags: ["Legal"]
---

# Consolidated text of a single article

`GET /api/v1/legal/article/{norm}/{n}`

## Request

- Base URL: `https://openmercantil.es`
- URL: `https://openmercantil.es/api/v1/legal/article/{norm}/{n}`
- 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/legal/article/:norm/:n/get.ts> (a function with typed inputs; its response is checked against the schema)

Return the consolidated text (`body_html`) of one article of a norm, plus its ELI anchor, version date and the minimal context of the parent norm. The text comes from the consolidated BOE and is re-used under Ley 37/2007 — the official version is boe.es. Informational only — NOT legal advice. Cached 24h. The article number `{n}` accepts digits plus a bis/ter suffix joined by a hyphen (e.g. `160-bis`).

## Path parameters

- `norm` string, required
- `n` string, required

## Response `200`

Consolidated article text

- LegalArticleResponse: License/attribution/disclaimer envelope present in every legal-layer response. The legal corpus is consolidated BOE text re-used under Ley 37/2007 (NOT CC BY 4.0).
  - `norm` object, nullable
    - `slug` string
    - `title` string
    - `short_name` string, nullable
    - `official_url` string, uri
  - `article_num` string, required
  - `title` string
  - `body_html` string, required: Consolidated article text (HTML) from the BOE, re-used under Ley 37/2007.
  - `eli_anchor` string
  - `version_date` string, date, nullable
  - `url` string, uri
  - `license` string
  - `license_url` string, uri
  - `attribution` string
  - `disclaimer` string
  - `generated_at` string, date-time

## Other responses

- `404`: Resource not found
- `429`: Rate limit exceeded
- `503`: Controlled fail-closed denial: the required dataset or legal layer is absent, invalid, unsupported or not authorized for this public surface.

## Changes

- **2026-07-26** `996f96a11758`: 105 info
  - api operation id `getLegalArticleByNormByN` was added
  - the endpoint scheme security `apiKey` was added to the API
  - the endpoint scheme security `bearerAuth` was added to the API
  - added the optional property `_alias_of` to the response with the `404` status
  - …101 more

[Operation history](https://skmtc.dev/openmercantil/apis/openmercantil-public-api/changes/api/v1/legal/article/:norm/:n/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)
