List APIs
GET /v1/apis · permission apis:read
Returns the environment's APIs (resource servers), newest first, in cursor pages. Deleted APIs are not listed. The environment comes from the credential only. The system API (urn:idp:organization) is included with is_system: true.
Request
| Parameter | Type | Required | Description |
|---|---|---|---|
limit |
integer | no | 1-100, default 20. |
after |
string | no | Cursor from list_metadata.after. Exclusive with before. |
before |
string | no | Cursor from list_metadata.before. |
order |
string | no | asc or desc (default). A cursor is only valid with the same order. |
Response
200 OK
{
"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" }
}
A null cursor means there are no more records in that direction. No total count is returned.
Errors
| HTTP | code | When |
|---|---|---|
| 400 | invalid_cursor |
The cursor is malformed, tampered with, or was issued for another environment or order. |
| 422 | validation_failed |
A query parameter is invalid (errors[].pointer names it). |
| 403 | insufficient_permissions |
The credential lacks apis:read. |
Example
curl "https://api.eu.keenauth.com/v1/apis?limit=20" \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY"