API / list-namespace-origin-apps-via-api

API

List Origin Apps in a namespace via the API

List the apps a namespace owns with GET https://api.cursor.com/v1/origin/namespaces/{namespaceSlug}/apps. Official reference: Origin API → List Namespace Apps.

Origin is in Early Beta and subject to change. Authenticate with a Cursor user access token that carries namespace:apps:read. An app JWT cannot list every app in a namespace; use Get Authenticated App for the app's own metadata. Availability: Early Beta per the API overview.

Results are newest first. Each list entry carries display metadata only (id, displayName, description). Read webhook URL, events, redirect URIs, and default scopes with Get App (GET /v1/origin/apps/{appId}).

Cost: 1 point.

Path parameters

Param Required Meaning
namespaceSlug yes Slug of the namespace whose apps to list

Query parameters

Param Required Meaning
pageSize no Max apps to return; defaults to 30 when unset or 0; values above 100 clamp to 100
pageToken no Opaque cursor from a previous nextPageToken; empty for the first page
curl --request GET \
  --url 'https://api.cursor.com/v1/origin/namespaces/NAMESPACE_SLUG/apps' \
  --header 'Authorization: Bearer YOUR_USER_ACCESS_TOKEN'

Response

Field Meaning
apps Page of apps the namespace owns
apps[].id Globally unique app id (app_…)
apps[].displayName Human-facing name
apps[].description Publisher description; empty string when unset
nextPageToken Opaque cursor for the next page; empty when done
{
  "apps": [
    {
      "id": "app_01k2ja2000e0080000000000a1",
      "displayName": "CI Status Bot",
      "description": "Posts CI status on pull requests."
    }
  ],
  "nextPageToken": ""
}

Treat pageToken as opaque. Restart pagination when filters change. An empty nextPageToken means you have the last page.

After listing, call Get App for full settings, Update App to change them, or Add App Signing Key / Revoke App Signing Key to rotate JWT keys.

Base URL: https://api.cursor.com/v1/origin.