Skip to content
Docs
Applications

List applications

List applications

client.Zones.Applications.List(ctx, zoneID, query) (*ZoneApplicationListResponse, error)
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 ZoneApplicationListParams
After param.Field[string]optional

Cursor for forward pagination

minLength1
maxLength255
Before param.Field[string]optional

Cursor for backward pagination

minLength1
maxLength255
Expand param.Field[ZoneApplicationListParamsExpandUnion]optional
type ZoneApplicationListParamsExpandString string
type ZoneApplicationListParamsExpandArray []string
FilterID param.Field[ZoneApplicationListParamsFilterIDUnion]optional

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

string
type ZoneApplicationListParamsFilterIDArray []string
FilterIdentifier param.Field[ZoneApplicationListParamsFilterIdentifierUnion]optional

Filter by exact application identifier

string
type ZoneApplicationListParamsFilterIdentifierArray []string
FilterSlug param.Field[ZoneApplicationListParamsFilterSlugUnion]optional

Filter by exact application slug

string
type ZoneApplicationListParamsFilterSlugArray []string
Identifier param.Field[string]optional
Limit param.Field[int64]optional

Maximum number of items to return

minimum1
maximum100
Query param.Field[ZoneApplicationListParamsQueryUnion]optional

Search across name and identifier (substring match)

string
type ZoneApplicationListParamsQueryArray []string
QueryIdentifier param.Field[ZoneApplicationListParamsQueryIdentifierUnion]optional

Search by identifier (substring match)

string
type ZoneApplicationListParamsQueryIdentifierArray []string
QueryName param.Field[ZoneApplicationListParamsQueryNameUnion]optional

Search by name (substring match)

string
type ZoneApplicationListParamsQueryNameArray []string
Slug param.Field[string]optional
Sort param.Field[string]optional

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

Traits param.Field[[]ApplicationTrait]optional

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

const ApplicationTraitGateway ApplicationTrait = "gateway"
const ApplicationTraitMcpProvider ApplicationTrait = "mcp-provider"
TraitsAll param.Field[[]ApplicationTrait]optional

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

const ApplicationTraitGateway ApplicationTrait = "gateway"
const ApplicationTraitMcpProvider ApplicationTrait = "mcp-provider"
ReturnsExpand Collapse
type ZoneApplicationListResponse struct{…}
Items []Application
ID string

Unique identifier of the application

Accepts one of the following:
CreatedAt Time

Entity creation timestamp

formatdate-time
DependenciesCount int64

Number of resource dependencies

Identifier string

User specified identifier, unique within the zone

minLength1
maxLength2048
Name string

Human-readable name

minLength1
maxLength255
OrganizationID string

Organization that owns this application

OwnerType ApplicationOwnerType

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

Accepts one of the following:
const ApplicationOwnerTypePlatform ApplicationOwnerType = "platform"
const ApplicationOwnerTypeCustomer ApplicationOwnerType = "customer"
Slug string

URL-safe identifier, unique within the zone

minLength1
maxLength63
UpdatedAt Time

Entity update timestamp

formatdate-time
ZoneID string

Zone this application belongs to

Description stringoptional

Human-readable description

maxLength2048
Metadata Metadataoptional

Entity metadata

DocsURL stringoptional

Documentation URL

formaturi
maxLength2048
Protocols ApplicationProtocolsoptional

Protocol-specific configuration

Oauth2 ApplicationProtocolsOauth2optional

OAuth 2.0 protocol configuration

PostLogoutRedirectUris []stringoptional

OAuth 2.0 post-logout redirect URIs for this application

RedirectUris []stringoptional

OAuth 2.0 redirect URIs for this application

DeprecatedPageInfo PageInfoPagination

Pagination information

HasNextPage bool

Whether there are more items after the current page

HasPreviousPage bool

Whether there are items before the current page

EndCursor stringoptional

Cursor pointing to the last item in the current page

StartCursor stringoptional

Cursor pointing to the first item in the current page

List applications

package main

import (
  "context"
  "fmt"

  "github.com/keycardai/keycard-go"
)

func main() {
  client := keycard.NewClient(

  )
  applications, err := client.Zones.Applications.List(
    context.TODO(),
    "zoneId",
    keycard.ZoneApplicationListParams{

    },
  )
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", 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
  }
}