---
title: "POST /oauth/apps"
method: POST
path: "/oauth/apps"
---

# POST /oauth/apps

`POST /oauth/apps`

## Request

- Base URL: `https://api.useanima.sh/v1`
- URL: `https://api.useanima.sh/v1/oauth/apps`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`

## Request body

- object: Register a new third-party OAuth app
  - `clientId` string, required: Public identifier the third-party app uses in /authorize URLs
  - `name` string, required: Display name shown on the consent screen
  - `description` string, nullable
  - `iconUrl` string, uri, nullable
  - `homepageUrl` string, uri, nullable
  - `privacyPolicyUrl` string, uri, nullable
  - `termsOfServiceUrl` string, uri, nullable
  - `redirectUris` string[], required: Exact-match URIs the consent flow will redirect to. Native CLIs use http://localhost:* or http://127.0.0.1:*.
  - `allowedScopes` string[], required: Scope strings the app may request on /authorize
  - `ownerOrgId` string: Org that registered the app — defaults to the calling master key's org

## Response `200`

OK

- object: Registered app summary
  - `id` string, required
  - `clientId` string, required
  - `name` string, required
  - `status` string, required: PENDING_REVIEW until Anima approves; APPROVED for production use
  - `createdAt` string, date-time, required

## Other responses

- `400`: 400
- `401`: 401
- `409`: 409

---

[API](https://skmtc.dev/useanima/apis/anima-api.md) · [All operations](https://skmtc.dev/useanima/apis/anima-api/llms.txt) · [OpenAPI document](https://skmtc.dev/useanima/apis/anima-api/revisions/aaa148188980?raw)
