Skip to main content
POST
/
oauth
/
apps
cURL
curl --request POST \
  --url https://api.useanima.sh/v1/oauth/apps \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "clientId": "<string>",
  "name": "<string>",
  "redirectUris": [
    "<string>"
  ],
  "allowedScopes": [
    "<string>"
  ],
  "description": "<string>",
  "iconUrl": "<string>",
  "homepageUrl": "<string>",
  "privacyPolicyUrl": "<string>",
  "termsOfServiceUrl": "<string>",
  "ownerOrgId": "<string>"
}
'
{
  "id": "<string>",
  "clientId": "<string>",
  "name": "<string>",
  "status": "<string>",
  "createdAt": "2023-11-07T05:31:56Z"
}

Authorizations

Authorization
string
header
required

JWT Bearer token obtained from authentication. Pass as: Authorization: Bearer

Body

application/json

Register a new third-party OAuth app

clientId
string
required

Public identifier the third-party app uses in /authorize URLs

Required string length: 3 - 64
Pattern: ^[a-z0-9_-]+$
name
string
required

Display name shown on the consent screen

Required string length: 1 - 120
redirectUris
string<uri>[]
required

Exact-match URIs the consent flow will redirect to. Native CLIs use http://localhost:* or http://127.0.0.1:*.

Required array length: 1 - 20 elements
allowedScopes
string[]
required

Scope strings the app may request on /authorize

Minimum array length: 1
description
string | null
Maximum string length: 500
iconUrl
string<uri> | null
homepageUrl
string<uri> | null
privacyPolicyUrl
string<uri> | null
termsOfServiceUrl
string<uri> | null
ownerOrgId
string

Org that registered the app — defaults to the calling master key's org

Response

OK

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