API / get-authenticated-origin-app-via-api

API

Get the authenticated Origin App via the API

Return metadata for the app that signed the request with GET https://api.cursor.com/v1/origin/app. Official reference: Origin API → Get Authenticated App.

Origin is in Early Beta and subject to change. Authenticate with an app JWT (EdDSA, signed with the app's Ed25519 private key; iss and kid set to the app ID; lifetime about five minutes). Installation tokens and Cursor API keys do not authenticate this endpoint. Availability: Early Beta per the API overview.

No installation scope is required — presenting a valid app JWT is enough.

Request

curl --request GET \
  --url 'https://api.cursor.com/v1/origin/app' \
  --header 'Authorization: Bearer YOUR_APP_JWT'

Response fields

Field Meaning
id Origin app identifier used as the JWT issuer and key ID.
displayName Human-readable app display name.
webhookUrl Registered HTTPS URL that receives webhook deliveries.
events Webhook event subscriptions configured for the app.
createdAt RFC 3339 timestamp for app creation.
updatedAt RFC 3339 timestamp for the latest app metadata update.
installationRedirectUris Registered installation callback URIs; non-local callbacks must match exactly and use HTTPS.
namespaceSlug Slug of the namespace that owns the app.
description Publisher-provided app description. Empty when unset.
websiteUrl Publisher website. Empty when unset.
defaultScopes Default scopes offered when the app is installed, as catalog scope strings.

Example:

{
  "id": "app_01k2ja2000e0080000000000a1",
  "displayName": "CI Status Bot",
  "webhookUrl": "https://ci.acme.dev/webhooks/origin",
  "events": [
    "pull_request.created",
    "pull_request.merged"
  ],
  "createdAt": "2026-08-01T09:30:00Z",
  "updatedAt": "2026-08-02T14:45:00Z",
  "installationRedirectUris": [
    "https://ci.acme.dev/origin/setup"
  ],
  "namespaceSlug": "acme",
  "description": "Posts CI status on pull requests.",
  "websiteUrl": "https://ci.acme.dev",
  "defaultScopes": [
    "repository:contents:read",
    "repository:pull_requests:read"
  ]
}

Use this self-read to confirm the app ID, webhook URL, redirect allowlist, and default scopes before listing installations or minting installation access tokens. Publishers reading another app by ID use GET /v1/origin/apps/{appId} with a user access token and namespace:apps:read instead.

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