<aside> 💡

The Origin API reference is at cursor.com/docs/api/origin. Please reach out to Cursor on any feedback!

Brand guidelines: [External] Origin Brand Guidelines

</aside>

Overview

  1. Create a private Origin app on your own namespace

    1. cursor.com/codebase/settings/apps.
  2. Build and test it there (install it, walk through the flows below)

  3. Cursor makes the app Public: any Origin team can install from a direct link. It does not show under Suggested apps. Test that install (same URL Suggested apps use once listed):

    https://cursor.com/codebase/apps/install?client_id=<APP_ID>&source=app-metadata&returnTo=/codebase/settings/apps

    client_id is the app id (app_01…), not the slug. Do not add scope or redirect_uri — that is partner OAuth, not the marketplace flow.

  4. Live demo of the integration.

    1. Live: Schedule here.
    2. Async: Send a video of the Flows and we can review async.
  5. After Cursor approves, Cursor Lists it the app to be installed publicly on the marketplace.

From private to public

New apps start Private (your namespace only). App settings show Visibility as Public or Private; you cannot change it.

Cursor flips two things:

Public: any Origin team can install from a direct link. Not in Suggested apps. Needs at least one default scope. Use this to test outside your namespace.

The marketplace-style install URL is:

https://cursor.com/codebase/apps/install?client_id=<APP_ID>&source=app-metadata&returnTo=/codebase/settings/apps

client_id is the app id (app_01…), not the slug. Do not add scope or redirect_uri — those start the partner OAuth install, not the marketplace flow. The public listing page (/codebase/settings/apps/public/<slug>) only works after the app is listed.

Listed: the same public app shows under Suggested apps. Suggested Install uses that same URL. Unlisting hides it from Suggested apps; existing installs and the direct link keep working.

You cannot List a private app. Making it Private also unlists it.

Approval Checklist