> ## Documentation Index
> Fetch the complete documentation index at: https://opentrain.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Register Your App

> Create an annotation-platform app in OpenTrain settings — self-serve, instant, no approval queue. Get a ptnapp_ client ID and a consent link your customers use to connect.

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](/docs/developers/annotation-platforms/consent-and-installs), where each customer explicitly grants your app its scopes.

## Create the App

In the OpenTrain app, go to [Settings → Developer](https://app.opentrain.ai/employer-settings?tab=developer) and create an app under **Platform apps**:

| Field         | Required | Constraints                                                                                                                                                                                  |
| ------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Name          | Yes      | What customers see on the consent screen. Max 120 characters.                                                                                                                                |
| Slug          | Yes      | Lowercase letters, digits, hyphens (`my-platform`), 1–50 characters. **Immutable after creation** — it becomes part of your consent link.                                                    |
| Description   | No       | Shown to customers for context. Max 500 characters.                                                                                                                                          |
| Website URL   | No       | Your platform's site.                                                                                                                                                                        |
| Redirect URIs | No       | Up 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).   |
| Scopes        | Yes      | At least one of the seven [Platform API scopes](/docs/developers/annotation-platforms/consent-and-installs#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:

```text theme={null}
https://app.opentrain.ai/integrations/{your-slug}/connect
```

<Note>
  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](/docs/developers/annotation-platforms/consent-and-installs).
</Note>

## 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](/docs/developers/annotation-platforms/consent-and-installs#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](/docs/developers/annotation-platforms/api-reference/overview) with that token, [register webhooks](/docs/developers/annotation-platforms/webhooks), and [link projects](/docs/developers/annotation-platforms/project-links).

<CardGroup cols={2}>
  <Card title="Consent and Installs" href="/docs/developers/annotation-platforms/consent-and-installs" icon="handshake">
    The deep link, scopes, PII consent, and the one-time token.
  </Card>

  <Card title="Reference Integration" href="/docs/developers/annotation-platforms/reference-integration" icon="code">
    A complete webhook-consumer walkthrough you can adapt.
  </Card>
</CardGroup>
