# Registros de peticiones de la API

`GET https://app.openfactura.co/api/v1/registros`

Peticiones hechas con claves de API (REST y MCP) en los últimos 30 días: método, patrón de ruta, estado HTTP, duración y clave. Nunca guarda cuerpos, encabezados ni parámetros. Paginación hacia atrás con `antesDe` (marca de tiempo en milisegundos).

Permiso: `registros:read`.

## Parámetros

| Nombre | En | Requerido | Tipo | Descripción |
| --- | --- | --- | --- | --- |
| `antesDe` | query | no | integer |  |
| `limite` | query | no | integer |  |
| `estado` | query | no | string |  |
| `origen` | query | no | string |  |
| `claveId` | query | no | string |  |

## Respuestas

- **200**: Peticiones, de la más reciente a la más antigua.
- **400**: Cuerpo o parámetros inválidos (`details` = `[{ ruta, mensaje }]`), o el DTE no cumple el esquema del MH (`details.problemas`). Códigos: `datos_invalidos`, `dte_invalido`. Esquema: `Error`.
- **401**: Falta sesión, o la clave de API no es válida, fue revocada o expiró. Códigos: `no_autenticado`. Esquema: `Error`.
- **403**: Falta un permiso (`details.permiso`) o el origen de la petición con cookie no está permitido. Códigos: `sin_permiso`, `origen_no_permitido`. Esquema: `Error`.
- **429**: Límite de peticiones excedido (`Retry-After` indica cuántos segundos esperar) o, en distribuciones con planes, límite del plan alcanzado (`limite_plan`). Códigos: `limite_excedido`, `limite_plan`. Esquema: `Error`.

## Esquemas

### RegistroApi

```json
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "creado": {
      "type": "integer",
      "description": "Marca de tiempo en milisegundos."
    },
    "metodo": {
      "type": "string"
    },
    "ruta": {
      "type": "string",
      "description": "Patrón de la ruta, p. ej. `/api/v1/dte/:codigo`."
    },
    "estado": {
      "type": "integer",
      "description": "Estado HTTP de la respuesta."
    },
    "duracionMs": {
      "type": "integer"
    },
    "origen": {
      "type": "string",
      "enum": [
        "api",
        "mcp"
      ]
    },
    "clave": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "prefijo": {
          "type": [
            "string",
            "null"
          ]
        },
        "nombre": {
          "type": [
            "string",
            "null"
          ]
        }
      }
    }
  }
}
```
