Get a registered app
The apps.get operation: GET /api/v1/apps/{id} in the REST API and the apps_get tool in the MCP server.
GET
/api/v1/apps/{id}Returns one of your organization's registered OAuth apps. Never the secret.
At a glance
- REST:
GET /api/v1/apps/{id} - MCP tool:
apps_get - Operation ID:
apps.get - Scope: Organization
- Permission:
agents:read - Risk tier:
read - Dry run: Not supported
- Idempotency: Not needed (read only)
- Modes: Test and live
- Authentication: API key with the
agents:readscope - Since: M10
Request
Path parameters
| Field | Type | Description |
|---|---|---|
id | ocl_… ID |
Query parameters
This operation takes no query parameters.
Response
200 OK with a JSON object:
| Field | Type | Description |
|---|---|---|
id | ocl_… ID | |
object | "app" | |
ownerOrgId | org_… ID | |
name | string | |
publisher | string | |
logoUrl | string or null | |
websiteUrl | string or null | |
privacyPolicyUrl | string or null | |
redirectUris | array of string | |
type | one of confidential, public | |
visibility | one of private, listed | |
review | object | |
review.status | one of not_submitted, pending, changes_requested, approved, rejected | |
review.at | string or null | |
verified | boolean | |
scopes | array of one of 84 values, e.g. org:read, org:write, org:admin (all in the OpenAPI document) | |
secretPrefix | string or null | |
dpopBoundAccessTokens | boolean | |
status | one of active, disabled | |
suspension | object or null | |
createdAt | string | |
updatedAt | string |
Examples
An app
HTTP
GET /api/v1/apps/ocl_01m4ttwd3veh9apbewxheq5xha
Authorization: Bearer or_test_…
Response (200):
JSON
{
"id": "ocl_01m4ttwd3veh9apbewxheq5xha",
"object": "app",
"ownerOrgId": "org_01m4ttwd3veh9apbewxheq5xhb",
"name": "Ledgerly AI",
"publisher": "Ledgerly AI B.V.",
"logoUrl": null,
"websiteUrl": "https://ledgerly.example",
"privacyPolicyUrl": "https://ledgerly.example/privacy",
"redirectUris": ["https://ledgerly.example/oauth/callback"],
"type": "confidential",
"visibility": "listed",
"review": {
"status": "approved",
"at": "2026-10-25T09:00:00.000Z"
},
"verified": true,
"scopes": ["filings:read", "filings:write", "tasks:read", "tasks:write", "ledger:read"],
"secretPrefix": "or_cs_Exampl",
"dpopBoundAccessTokens": false,
"status": "active",
"suspension": null,
"createdAt": "2026-10-25T09:00:00.000Z",
"updatedAt": "2026-10-25T09:00:00.000Z"
}
Errors
| Code | HTTP status | When | What to do |
|---|---|---|---|
resource_not_found | 404 | Your organization registered no app with this ID. | Check the ID and that your credentials are scoped to the right organization, entity, brand and mode. |
permission_denied | 403 | You can't see the organization's apps. | Ask an organization owner or admin for a role or scope that allows this action. |
It can also return these common errors: validation_failed, api_version_unsupported, authentication_required, api_key_invalid, dry_run_not_supported, rate_limited, internal_error.