Skip to main content
Registering an annotation-platform app is self-serve and instant: create the app in your OpenTrain settings, get a ptnapp_ client ID and a consent link, and start connecting customers immediately. There is no approval queue — the real gate is the consent screen, where each customer explicitly grants your app its scopes.

Create the App

In the OpenTrain app, go to Settings → Developer and create an app under Platform apps:
FieldRequiredConstraints
NameYesWhat customers see on the consent screen. Max 120 characters.
SlugYesLowercase letters, digits, hyphens (my-platform), 1–50 characters. Immutable after creation — it becomes part of your consent link.
DescriptionNoShown to customers for context. Max 500 characters.
Website URLNoYour platform’s site.
Redirect URIsNoUp to 10 http(s) base URIs. Required only if you pass redirect_uri on the consent link — the URI must match a registered one (same origin, path starts with the registered base path).
ScopesYesAt least one of the seven Platform API scopes. Request only what you need — customers see every scope on the consent screen.
On creation the app is active immediately and the success banner shows two things:
  1. Your client ID (ptnapp_…) — a public identifier for your app.
  2. Your consent link — what you send customers to connect:
https://app.opentrain.ai/integrations/{your-slug}/connect
There is no client secret. Your app never authenticates as itself — each customer’s consent mints an install-scoped ot_ptk_… token, shown once on the consent screen, and that token is the credential your platform stores. See Consent and Installs.

Managing the App

From the same settings section you can:
  • Edit everything except the slug — name, description, website, redirect URIs, and scopes. Scope changes apply to new installs only; existing installs keep the scopes their customer granted until they reconnect.
  • Deactivate — flips the app to DISABLED: the consent link stops accepting new connections and API requests from existing installs are refused until you reactivate. Use it as an emergency brake.
  • Reactivate — restores new connections and existing installs’ API access.

What Happens Next

  1. Send a customer your consent link (optionally with external_project_id, redirect_uri, and state — see the consent deep link).
  2. They approve the scopes and copy the one-time ot_ptk_… token into your platform’s settings.
  3. You call the Platform API with that token, register webhooks, and link projects.

Consent and Installs

The deep link, scopes, PII consent, and the one-time token.

Reference Integration

A complete webhook-consumer walkthrough you can adapt.