
# Listar APIs

`GET /v1/apis` · permiso `apis:read`

Devuelve las APIs del entorno (servidores de recursos), las más nuevas primero, en páginas de cursor. Las APIs eliminadas no se listan. El entorno proviene solo de la credencial. La API del sistema (`urn:idp:organization`) se incluye con `is_system: true`.

## Solicitud

| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
| `limit` | integer | no | 1-100, por defecto 20. |
| `after` | string | no | Cursor de `list_metadata.after`. Exclusivo con `before`. |
| `before` | string | no | Cursor de `list_metadata.before`. |
| `order` | string | no | `asc` u `desc` (por defecto). Un cursor es válido solo con el mismo `order`. |

## Respuesta

`200 OK`

```json
{
  "data": [ {
  "id": "api_01h455vb4pex5vsknk084sn02q",
  "key": "orders",
  "identifier": "https://api.example.com/orders",
  "name": "Orders API",
  "is_system": false,
  "access_token_lifetime_s": 3600,
  "token_format": "jwt",
  "rbac_mode": "off",
  "allow_offline_access": true,
  "require_resource_indicator": false,
  "dpop_required": false,
  "mcp_profile": false,
  "first_party_access": "all",
  "introspection_applications": [],
  "created_at": "2026-10-05T12:00:00Z",
  "updated_at": "2026-10-05T12:00:00Z"
} ],
  "list_metadata": { "before": null, "after": "eyJ2IjoxLi4ufQ" }
}
```

Un cursor `null` significa que no hay más registros en esa dirección. No se devuelve un recuento total.

## Errores

| HTTP | código | Cuándo |
|---|---|---|
| 400 | `invalid_cursor` | El cursor está mal formado, fue alterado, o fue emitido para otro entorno u `order`. |
| 422 | `validation_failed` | Un parámetro de consulta es inválido (`errors[].pointer` lo nombra). |
| 403 | `insufficient_permissions` | La credencial carece de `apis:read`. |

## Ejemplo

```bash
curl "https://api.eu.keenauth.com/v1/apis?limit=20" \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
```
