Skip to content
Docs
Applications

List applications

List applications

client.zones.applications.list(stringzoneID, ApplicationListParams { after, before, expand, 12 more } query?, RequestOptionsoptions?): ApplicationListResponse { items, page_info, pagination }
GET/zones/{zoneId}/applications

Returns a paginated list of applications in the specified zone. Use cursor pagination via after/before. Sort: comma-separated field list; prefix with - for descending. Use expand[]=total_count to include the matching row count. Filter by exact slug via filter[slug] and by exact identifier via filter[identifier]. Search via query[name] / query[identifier] / query[] (substring match, OR'd across repeated values). query[] matches against name and identifier. Pass filter[id] (repeatable, max 100) to restrict results to a known set of applications — mutually exclusive with after/before (returns 400 if combined). When filter[id] is set, limit is ignored and the response contains every requested application that exists in the zone, in a single page. IDs not in the zone are silently omitted.

ParametersExpand Collapse
zoneID: string
query: ApplicationListParams { after, before, expand, 12 more }
after?: string

Cursor for forward pagination

minLength1
maxLength255
before?: string

Cursor for backward pagination

minLength1
maxLength255
expand?: "total_count" | Array<"total_count">
Accepts one of the following:
"total_count"
"total_count"
Array<"total_count">
"total_count"
filterID?: string | Array<string>

Restrict results to applications with this publicId. Repeatable, max 100. Mutually exclusive with after/before.

Accepts one of the following:
string
Array<string>
filterIdentifier?: string | Array<string>

Filter by exact application identifier

Accepts one of the following:
string
Array<string>
filterSlug?: string | Array<string>

Filter by exact application slug

Accepts one of the following:
string
Array<string>
identifier?: string
limit?: number

Maximum number of items to return

minimum1
maximum100
query?: string | Array<string>

Search across name and identifier (substring match)

Accepts one of the following:
string
Array<string>
queryIdentifier?: string | Array<string>

Search by identifier (substring match)

Accepts one of the following:
string
Array<string>
queryName?: string | Array<string>

Search by name (substring match)

Accepts one of the following:
string
Array<string>
slug?: string
sort?: string

Comma-separated sort fields. Prefix with - for descending. Allowed: created_at, name, identifier

traits?: Array<ApplicationTrait>

Filter by traits (OR matching - returns applications with any of the specified traits)

Accepts one of the following:
"gateway"
"mcp-provider"
traitsAll?: Array<ApplicationTrait>

Filter by traits (AND matching - returns applications with all of the specified traits)

Accepts one of the following:
"gateway"
"mcp-provider"
ReturnsExpand Collapse
ApplicationListResponse { items, page_info, pagination }
items: Array<Application { id, consent, created_at, 11 more } >
id: string

Unique identifier of the application

Accepts one of the following:
created_at: string

Entity creation timestamp

formatdate-time
dependencies_count: number

Number of resource dependencies

identifier: string

User specified identifier, unique within the zone

minLength1
maxLength2048
name: string

Human-readable name

minLength1
maxLength255
organization_id: string

Organization that owns this application

owner_type: "platform" | "customer"

Who owns this application. Platform-owned applications cannot be modified via API.

Accepts one of the following:
"platform"
"customer"
slug: string

URL-safe identifier, unique within the zone

minLength1
maxLength63
updated_at: string

Entity update timestamp

formatdate-time
zone_id: string

Zone this application belongs to

description?: string | null

Human-readable description

maxLength2048
metadata?: Metadata { docs_url }

Entity metadata

docs_url?: string

Documentation URL

formaturi
maxLength2048
protocols?: Protocols | null

Protocol-specific configuration

oauth2?: Oauth2 | null

OAuth 2.0 protocol configuration

post_logout_redirect_uris?: Array<string> | null

OAuth 2.0 post-logout redirect URIs for this application

redirect_uris?: Array<string> | null

OAuth 2.0 redirect URIs for this application

Deprecatedpage_info: PageInfoPagination { has_next_page, has_previous_page, end_cursor, start_cursor }

Pagination information

has_next_page: boolean

Whether there are more items after the current page

has_previous_page: boolean

Whether there are items before the current page

end_cursor?: string | null

Cursor pointing to the last item in the current page

start_cursor?: string | null

Cursor pointing to the first item in the current page

List applications

import KeycardAPI from '@keycardai/api';

const client = new KeycardAPI();

const applications = await client.zones.applications.list('zoneId');

console.log(applications.items);
{
  "items": [
    {
      "id": "id",
      "consent": "implicit",
      "created_at": "2019-12-27T18:11:19.117Z",
      "dependencies_count": 0,
      "identifier": "x",
      "name": "x",
      "organization_id": "organization_id",
      "owner_type": "platform",
      "slug": "slug",
      "updated_at": "2019-12-27T18:11:19.117Z",
      "zone_id": "zone_id",
      "description": "description",
      "metadata": {
        "docs_url": "https://example.com"
      },
      "protocols": {
        "oauth2": {
          "post_logout_redirect_uris": [
            "https://example.com"
          ],
          "redirect_uris": [
            "https://example.com"
          ]
        }
      }
    }
  ],
  "page_info": {
    "has_next_page": true,
    "has_previous_page": true,
    "end_cursor": "end_cursor",
    "start_cursor": "start_cursor"
  },
  "pagination": {
    "after_cursor": "x",
    "before_cursor": "x",
    "total_count": 0
  }
}
Returns Examples
{
  "items": [
    {
      "id": "id",
      "consent": "implicit",
      "created_at": "2019-12-27T18:11:19.117Z",
      "dependencies_count": 0,
      "identifier": "x",
      "name": "x",
      "organization_id": "organization_id",
      "owner_type": "platform",
      "slug": "slug",
      "updated_at": "2019-12-27T18:11:19.117Z",
      "zone_id": "zone_id",
      "description": "description",
      "metadata": {
        "docs_url": "https://example.com"
      },
      "protocols": {
        "oauth2": {
          "post_logout_redirect_uris": [
            "https://example.com"
          ],
          "redirect_uris": [
            "https://example.com"
          ]
        }
      }
    }
  ],
  "page_info": {
    "has_next_page": true,
    "has_previous_page": true,
    "end_cursor": "end_cursor",
    "start_cursor": "start_cursor"
  },
  "pagination": {
    "after_cursor": "x",
    "before_cursor": "x",
    "total_count": 0
  }
}