NineAuthDocs
OpenAPI v3 Auto-GeneratedAuth: Bearer Master Secret

Management API Reference

The Management API enables server-to-server orchestration for application management, license generation, user role updates, and webhook registration. Requires Authorization: Bearer app_sec_live_*.

POST/v1/mgmt/auth/signup
Opaque TokenStable

Sign up and register a new organization

Hardened signup with password strength, disposable domain blocklist, Turnstile anti-bot, and byte-identical anti-enumeration response.

Request Body (JSON)
{
  "first_name": "string_value",
  "last_name": "string_value",
  "organization_name": "string_value",
  "email": "user@example.com",
  "password": "SuperSecurePassword123!",
  "phone": "string_value",
  "tos_accepted_version": "v1.0"
}
Response Codes & Examples
200Default Response
{
  "success": true,
  "message": "string_value"
}
400Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
429Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
Interactive Code Examples
// Call POST /v1/mgmt/auth/signup
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/auth/signup", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
  body: JSON.stringify({
  "first_name": "string_value",
  "last_name": "string_value",
  "organization_name": "string_value",
  "email": "user@example.com",
  "password": "SuperSecurePassword123!",
  "phone": "string_value",
  "tos_accepted_version": "v1.0"
}),
});
const data = await response.json();
POST/v1/mgmt/auth/verify-email
Opaque TokenStable

Verify developer email address via token

Verify developer email address via token

Request Body (JSON)
{
  "token": "tok_live_9f8a3b10..."
}
Response Codes & Examples
200Default Response
{
  "success": true,
  "access_token": "tok_live_9f8a3b10...",
  "organization_id": "string_value"
}
400Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
Interactive Code Examples
// Call POST /v1/mgmt/auth/verify-email
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/auth/verify-email", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
  body: JSON.stringify({
  "token": "tok_live_9f8a3b10..."
}),
});
const data = await response.json();
POST/v1/mgmt/auth/resend-verification
Opaque TokenStable

Resend email verification link

Resend email verification link

Request Body (JSON)
{
  "email": "user@example.com"
}
Response Codes & Examples
200Default Response
{
  "success": true,
  "message": "string_value"
}
429Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
Interactive Code Examples
// Call POST /v1/mgmt/auth/resend-verification
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/auth/resend-verification", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
  body: JSON.stringify({
  "email": "user@example.com"
}),
});
const data = await response.json();
POST/v1/mgmt/auth/forgot-password
Opaque TokenStable

Request a password reset link

Request a password reset link

Request Body (JSON)
{
  "email": "user@example.com"
}
Response Codes & Examples
200Default Response
{
  "success": true,
  "message": "string_value"
}
400Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
404Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
429Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
Interactive Code Examples
// Call POST /v1/mgmt/auth/forgot-password
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/auth/forgot-password", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
  body: JSON.stringify({
  "email": "user@example.com"
}),
});
const data = await response.json();
POST/v1/mgmt/auth/reset-password
Opaque TokenStable

Reset password with token and revoke all active sessions

Reset password with token and revoke all active sessions

Request Body (JSON)
{
  "token": "tok_live_9f8a3b10...",
  "new_password": "SuperSecurePassword123!"
}
Response Codes & Examples
200Default Response
{
  "success": true,
  "message": "string_value"
}
400Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
429Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
Interactive Code Examples
// Call POST /v1/mgmt/auth/reset-password
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/auth/reset-password", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
  body: JSON.stringify({
  "token": "tok_live_9f8a3b10...",
  "new_password": "SuperSecurePassword123!"
}),
});
const data = await response.json();
POST/v1/mgmt/auth/login
Opaque TokenStable

Log in to the management dashboard

Log in to the management dashboard

Request Body (JSON)
{
  "email": "user@example.com",
  "password": "SuperSecurePassword123!"
}
Response Codes & Examples
200Default Response
{
  "access_token": "tok_live_9f8a3b10...",
  "email_verified": true
}
400Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
401Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
429Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
Interactive Code Examples
// Call POST /v1/mgmt/auth/login
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/auth/login", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
  body: JSON.stringify({
  "email": "user@example.com",
  "password": "SuperSecurePassword123!"
}),
});
const data = await response.json();
POST/v1/mgmt/auth/logout
Opaque TokenStable

Log out from the management dashboard

Log out from the management dashboard

Response Codes & Examples
200Default Response
{
  "success": true
}
Interactive Code Examples
// Call POST /v1/mgmt/auth/logout
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/auth/logout", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
});
const data = await response.json();
GET/v1/mgmt/auth/github
Opaque TokenStable

Initiate GitHub OAuth flow

Initiate GitHub OAuth flow

Response Codes & Examples
200Default Response
{}
Interactive Code Examples
// Call GET /v1/mgmt/auth/github
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/auth/github", {
  method: "GET",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
});
const data = await response.json();
GET/v1/mgmt/auth/github/callback
Opaque TokenStable

GitHub OAuth callback handler

GitHub OAuth callback handler

NameTypeLocationDescription
code*stringqueryParameter in query
Response Codes & Examples
200Default Response
{}
Interactive Code Examples
// Call GET /v1/mgmt/auth/github/callback
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/auth/github/callback", {
  method: "GET",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
});
const data = await response.json();
POST/v1/mgmt/auth/github/complete-profile
Opaque TokenStable

Complete profile for GitHub-registered accounts

Complete profile for GitHub-registered accounts

Request Body (JSON)
{
  "first_name": "string_value",
  "last_name": "string_value",
  "organization_name": "string_value",
  "phone": "string_value",
  "tos_accepted_version": "v1.0"
}
Response Codes & Examples
200Default Response
{
  "success": true
}
400Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
Interactive Code Examples
// Call POST /v1/mgmt/auth/github/complete-profile
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/auth/github/complete-profile", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
  body: JSON.stringify({
  "first_name": "string_value",
  "last_name": "string_value",
  "organization_name": "string_value",
  "phone": "string_value",
  "tos_accepted_version": "v1.0"
}),
});
const data = await response.json();
GET/v1/mgmt/organizations/me
Opaque TokenStable

Get current organization details

Get current organization details

Response Codes & Examples
200Default Response
{
  "id": "string_value",
  "name": "string_value",
  "slug": "string_value",
  "created_at": "string_value",
  "updated_at": "string_value",
  "email_verified": true
}
401Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
403Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
404Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
Interactive Code Examples
// Call GET /v1/mgmt/organizations/me
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/organizations/me", {
  method: "GET",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
});
const data = await response.json();
PATCH/v1/mgmt/organizations/me
Opaque TokenStable

Update current organization details

Update current organization details

Request Body (JSON)
{
  "name": "string_value"
}
Response Codes & Examples
200Default Response
{
  "id": "string_value",
  "name": "string_value",
  "slug": "string_value",
  "updated_at": "string_value"
}
400Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
401Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
403Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
Interactive Code Examples
// Call PATCH /v1/mgmt/organizations/me
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/organizations/me", {
  method: "PATCH",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
  body: JSON.stringify({
  "name": "string_value"
}),
});
const data = await response.json();
GET/v1/mgmt/organizations/members
Opaque TokenStable

List all members of current organization

List all members of current organization

Response Codes & Examples
200Default Response
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": {
        "type": "string"
      },
      "email": {
        "type": "string"
      },
      "role": {
        "type": "string"
      },
      "created_at": {
        "type": "string"
      },
      "updated_at": {
        "type": "string"
      }
    },
    "required": [
      "id",
      "email",
      "role",
      "created_at",
      "updated_at"
    ],
    "additionalProperties": false
  }
}
401Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
403Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
Interactive Code Examples
// Call GET /v1/mgmt/organizations/members
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/organizations/members", {
  method: "GET",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
});
const data = await response.json();
POST/v1/mgmt/organizations/members
Opaque TokenStable

Add a new member to current organization (owner/admin only)

Add a new member to current organization (owner/admin only)

Request Body (JSON)
{
  "email": "user@example.com",
  "password": "SuperSecurePassword123!",
  "role": "string_value",
  "first_name": "string_value",
  "last_name": "string_value"
}
Response Codes & Examples
201Default Response
{
  "success": true,
  "message": "string_value",
  "member_id": "string_value"
}
400Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
401Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
402Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
403Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
Interactive Code Examples
// Call POST /v1/mgmt/organizations/members
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/organizations/members", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
  body: JSON.stringify({
  "email": "user@example.com",
  "password": "SuperSecurePassword123!",
  "role": "string_value",
  "first_name": "string_value",
  "last_name": "string_value"
}),
});
const data = await response.json();
DELETE/v1/mgmt/organizations/members/{id}
Opaque TokenStable

Remove a member from current organization (cannot remove last owner)

Remove a member from current organization (cannot remove last owner)

NameTypeLocationDescription
id*stringpathParameter in path
Response Codes & Examples
200Default Response
{
  "success": true
}
400Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
401Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
403Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
404Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
Interactive Code Examples
// Call DELETE /v1/mgmt/organizations/members/{id}
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/organizations/members/{id}", {
  method: "DELETE",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
});
const data = await response.json();
GET/v1/mgmt/applications
Opaque TokenStable

List all applications of current organization

List all applications of current organization

Response Codes & Examples
200Default Response
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": {
        "type": "string"
      },
      "name": {
        "type": "string"
      },
      "slug": {
        "type": "string"
      },
      "status": {
        "type": "string"
      },
      "created_at": {
        "type": "string"
      },
      "updated_at": {
        "type": "string"
      }
    },
    "required": [
      "id",
      "name",
      "slug",
      "status",
      "created_at",
      "updated_at"
    ],
    "additionalProperties": false
  }
}
401Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
Interactive Code Examples
// Call GET /v1/mgmt/applications
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/applications", {
  method: "GET",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
});
const data = await response.json();
POST/v1/mgmt/applications
Opaque TokenStable

Create a new application with auto development & production environments

Create a new application with auto development & production environments

Request Body (JSON)
{
  "name": "string_value",
  "slug": "string_value"
}
Response Codes & Examples
201Default Response
{
  "application_id": "string_value"
}
400Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
401Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
402Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
409Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
Interactive Code Examples
// Call POST /v1/mgmt/applications
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/applications", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
  body: JSON.stringify({
  "name": "string_value",
  "slug": "string_value"
}),
});
const data = await response.json();
GET/v1/mgmt/applications/{id}
Opaque TokenStable

Get application details and its environments

Get application details and its environments

NameTypeLocationDescription
id*stringpathParameter in path
Response Codes & Examples
200Default Response
{
  "id": "string_value",
  "name": "string_value",
  "slug": "string_value",
  "status": "string_value",
  "environments": [
    "item_1",
    "item_2"
  ],
  "created_at": "string_value",
  "updated_at": "string_value"
}
401Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
404Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
Interactive Code Examples
// Call GET /v1/mgmt/applications/{id}
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/applications/{id}", {
  method: "GET",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
});
const data = await response.json();
PATCH/v1/mgmt/applications/{id}
Opaque TokenStable

Update application details

Update application details

NameTypeLocationDescription
id*stringpathParameter in path
Request Body (JSON)
{
  "name": "string_value",
  "status": "string_value"
}
Response Codes & Examples
200Default Response
{
  "id": "string_value",
  "name": "string_value",
  "slug": "string_value",
  "status": "string_value",
  "updated_at": "string_value"
}
400Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
401Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
404Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
Interactive Code Examples
// Call PATCH /v1/mgmt/applications/{id}
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/applications/{id}", {
  method: "PATCH",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
  body: JSON.stringify({
  "name": "string_value",
  "status": "string_value"
}),
});
const data = await response.json();
DELETE/v1/mgmt/applications/{id}
Opaque TokenStable

Delete application (soft disable by default, permanent delete if ?permanent=true)

Delete application (soft disable by default, permanent delete if ?permanent=true)

NameTypeLocationDescription
notstringqueryParameter in query
permanentstringqueryParameter in query
id*stringpathParameter in path
Response Codes & Examples
200Default Response
{
  "success": true
}
401Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
403Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
404Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
Interactive Code Examples
// Call DELETE /v1/mgmt/applications/{id}
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/applications/{id}", {
  method: "DELETE",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
});
const data = await response.json();
GET/v1/mgmt/applications/{id}/environments
Opaque TokenStable

List environments for an application

List environments for an application

NameTypeLocationDescription
id*stringpathParameter in path
Response Codes & Examples
200Default Response
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": {
        "type": "string"
      },
      "name": {
        "type": "string"
      },
      "created_at": {
        "type": "string"
      }
    },
    "required": [
      "id",
      "name",
      "created_at"
    ],
    "additionalProperties": false
  }
}
401Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
404Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
Interactive Code Examples
// Call GET /v1/mgmt/applications/{id}/environments
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/applications/{id}/environments", {
  method: "GET",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
});
const data = await response.json();
POST/v1/mgmt/applications/{id}/secrets
Opaque TokenStable

Generate an application secret (plaintext returned once)

Generate an application secret (plaintext returned once)

NameTypeLocationDescription
id*stringpathParameter in path
Request Body (JSON)
{
  "environment_id": "8f8b3c91-42ab-4de0-84a1-8d2a1b9201f1",
  "label": "string_value"
}
Response Codes & Examples
201Default Response
{
  "secret_id": "string_value",
  "plaintext": "string_value"
}
400Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
401Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
402Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
404Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
Interactive Code Examples
// Call POST /v1/mgmt/applications/{id}/secrets
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/applications/{id}/secrets", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
  body: JSON.stringify({
  "environment_id": "8f8b3c91-42ab-4de0-84a1-8d2a1b9201f1",
  "label": "string_value"
}),
});
const data = await response.json();
GET/v1/mgmt/applications/{id}/secrets
Opaque TokenStable

List application secrets (plaintext is NEVER returned)

List application secrets (plaintext is NEVER returned)

NameTypeLocationDescription
id*stringpathParameter in path
Response Codes & Examples
200Default Response
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": {
        "type": "string"
      },
      "label": {
        "type": "string"
      },
      "environment_id": {
        "type": "string"
      },
      "last_used_at": {
        "type": "string",
        "nullable": true
      },
      "revoked_at": {
        "type": "string",
        "nullable": true
      },
      "created_at": {
        "type": "string"
      }
    },
    "required": [
      "id",
      "label",
      "environment_id",
      "last_used_at",
      "revoked_at",
      "created_at"
    ],
    "additionalProperties": false
  }
}
401Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
404Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
Interactive Code Examples
// Call GET /v1/mgmt/applications/{id}/secrets
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/applications/{id}/secrets", {
  method: "GET",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
});
const data = await response.json();
DELETE/v1/mgmt/applications/{id}/secrets/{secretId}
Opaque TokenStable

Revoke an application secret

Revoke an application secret

NameTypeLocationDescription
id*stringpathParameter in path
secretId*stringpathParameter in path
Response Codes & Examples
200Default Response
{
  "success": true
}
401Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
404Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
Interactive Code Examples
// Call DELETE /v1/mgmt/applications/{id}/secrets/{secretId}
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/applications/{id}/secrets/{secretId}", {
  method: "DELETE",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
});
const data = await response.json();
POST/v1/mgmt/api-keys
Opaque TokenStable

Generate an organization developer API key (plaintext returned once)

Generate an organization developer API key (plaintext returned once)

Request Body (JSON)
{
  "label": "string_value"
}
Response Codes & Examples
201Default Response
{
  "key_id": "string_value",
  "plaintext": "string_value"
}
400Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
401Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
Interactive Code Examples
// Call POST /v1/mgmt/api-keys
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/api-keys", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
  body: JSON.stringify({
  "label": "string_value"
}),
});
const data = await response.json();
GET/v1/mgmt/api-keys
Opaque TokenStable

List developer API keys (plaintext is NEVER returned)

List developer API keys (plaintext is NEVER returned)

Response Codes & Examples
200Default Response
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": {
        "type": "string"
      },
      "label": {
        "type": "string"
      },
      "last_used_at": {
        "type": "string",
        "nullable": true
      },
      "revoked_at": {
        "type": "string",
        "nullable": true
      },
      "created_at": {
        "type": "string"
      }
    },
    "required": [
      "id",
      "label",
      "last_used_at",
      "revoked_at",
      "created_at"
    ],
    "additionalProperties": false
  }
}
401Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
Interactive Code Examples
// Call GET /v1/mgmt/api-keys
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/api-keys", {
  method: "GET",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
});
const data = await response.json();
DELETE/v1/mgmt/api-keys/{id}
Opaque TokenStable

Revoke a developer API key

Revoke a developer API key

NameTypeLocationDescription
id*stringpathParameter in path
Response Codes & Examples
200Default Response
{
  "success": true
}
401Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
404Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
Interactive Code Examples
// Call DELETE /v1/mgmt/api-keys/{id}
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/api-keys/{id}", {
  method: "DELETE",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
});
const data = await response.json();
GET/v1/mgmt/applications/{id}/entitlements
Opaque TokenStable

List all entitlements for an application

List all entitlements for an application

NameTypeLocationDescription
id*stringpathParameter in path
Response Codes & Examples
200Default Response
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": {
        "type": "string"
      },
      "key": {
        "type": "string"
      },
      "name": {
        "type": "string"
      },
      "description": {
        "type": "string",
        "nullable": true
      },
      "created_at": {
        "type": "string"
      }
    },
    "required": [
      "id",
      "key",
      "name",
      "description",
      "created_at"
    ],
    "additionalProperties": false
  }
}
401Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
404Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
Interactive Code Examples
// Call GET /v1/mgmt/applications/{id}/entitlements
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/applications/{id}/entitlements", {
  method: "GET",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
});
const data = await response.json();
POST/v1/mgmt/applications/{id}/entitlements
Opaque TokenStable

Create a new entitlement for an application

Create a new entitlement for an application

NameTypeLocationDescription
id*stringpathParameter in path
Request Body (JSON)
{
  "key": "string_value",
  "name": "string_value",
  "description": "string_value"
}
Response Codes & Examples
201Default Response
{
  "entitlement_id": "string_value"
}
400Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
401Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
402Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
404Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
409Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
Interactive Code Examples
// Call POST /v1/mgmt/applications/{id}/entitlements
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/applications/{id}/entitlements", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
  body: JSON.stringify({
  "key": "string_value",
  "name": "string_value",
  "description": "string_value"
}),
});
const data = await response.json();
DELETE/v1/mgmt/applications/{id}/entitlements/{entId}
Opaque TokenStable

Delete an entitlement

Delete an entitlement

NameTypeLocationDescription
id*stringpathParameter in path
entId*stringpathParameter in path
Response Codes & Examples
200Default Response
{
  "success": true
}
401Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
404Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
Interactive Code Examples
// Call DELETE /v1/mgmt/applications/{id}/entitlements/{entId}
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/applications/{id}/entitlements/{entId}", {
  method: "DELETE",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
});
const data = await response.json();
GET/v1/mgmt/applications/{id}/plans
Opaque TokenStable

List all plans for an application with their entitlements

List all plans for an application with their entitlements

NameTypeLocationDescription
id*stringpathParameter in path
Response Codes & Examples
200Default Response
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": {
        "type": "string"
      },
      "name": {
        "type": "string"
      },
      "is_trial": {
        "type": "boolean"
      },
      "duration_days": {
        "type": "number",
        "nullable": true
      },
      "max_devices": {
        "type": "number"
      },
      "device_reset_limit": {
        "type": "number"
      },
      "external_product_id": {
        "type": "string",
        "nullable": true
      },
      "policies": {
        "nullable": true
      },
      "entitlements": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string"
            },
            "key": {
              "type": "string"
            },
            "name": {
              "type": "string"
            }
          },
          "required": [
            "id",
            "key",
            "name"
          ],
          "additionalProperties": false
        }
      },
      "created_at": {
        "type": "string"
      },
      "updated_at": {
        "type": "string"
      }
    },
    "required": [
      "id",
      "name",
      "is_trial",
      "duration_days",
      "max_devices",
      "device_reset_limit",
      "external_product_id",
      "entitlements",
      "created_at",
      "updated_at"
    ],
    "additionalProperties": false
  }
}
401Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
404Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
Interactive Code Examples
// Call GET /v1/mgmt/applications/{id}/plans
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/applications/{id}/plans", {
  method: "GET",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
});
const data = await response.json();
POST/v1/mgmt/applications/{id}/plans
Opaque TokenStable

Create a new plan with associated entitlements

Create a new plan with associated entitlements

NameTypeLocationDescription
id*stringpathParameter in path
Request Body (JSON)
{
  "name": "string_value",
  "is_trial": false,
  "duration_days": 1,
  "max_devices": 1,
  "device_reset_limit": 1,
  "external_product_id": "string_value",
  "policies": "{\n  \"type\": \"object\",\n  \"additionalProperties\": {},\n  \"nullable\": true\n}",
  "entitlement_ids": [
    "item_1",
    "item_2"
  ]
}
Response Codes & Examples
201Default Response
{
  "plan_id": "string_value"
}
400Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
401Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
402Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
404Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
Interactive Code Examples
// Call POST /v1/mgmt/applications/{id}/plans
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/applications/{id}/plans", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
  body: JSON.stringify({
  "name": "string_value",
  "is_trial": false,
  "duration_days": 1,
  "max_devices": 1,
  "device_reset_limit": 1,
  "external_product_id": "string_value",
  "policies": "{\n  \"type\": \"object\",\n  \"additionalProperties\": {},\n  \"nullable\": true\n}",
  "entitlement_ids": [
    "item_1",
    "item_2"
  ]
}),
});
const data = await response.json();
PATCH/v1/mgmt/applications/{id}/plans/{planId}
Opaque TokenStable

Update a plan and replace its entitlements

Update a plan and replace its entitlements

NameTypeLocationDescription
id*stringpathParameter in path
planId*stringpathParameter in path
Request Body (JSON)
{
  "name": "string_value",
  "is_trial": true,
  "duration_days": 1,
  "max_devices": 1,
  "device_reset_limit": 1,
  "external_product_id": "string_value",
  "policies": "{\n  \"type\": \"object\",\n  \"additionalProperties\": {},\n  \"nullable\": true\n}",
  "entitlement_ids": [
    "item_1",
    "item_2"
  ]
}
Response Codes & Examples
200Default Response
{
  "plan_id": "string_value"
}
400Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
401Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
404Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
Interactive Code Examples
// Call PATCH /v1/mgmt/applications/{id}/plans/{planId}
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/applications/{id}/plans/{planId}", {
  method: "PATCH",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
  body: JSON.stringify({
  "name": "string_value",
  "is_trial": true,
  "duration_days": 1,
  "max_devices": 1,
  "device_reset_limit": 1,
  "external_product_id": "string_value",
  "policies": "{\n  \"type\": \"object\",\n  \"additionalProperties\": {},\n  \"nullable\": true\n}",
  "entitlement_ids": [
    "item_1",
    "item_2"
  ]
}),
});
const data = await response.json();
DELETE/v1/mgmt/applications/{id}/plans/{planId}
Opaque TokenStable

Delete a plan (fails if active licenses are associated)

Delete a plan (fails if active licenses are associated)

NameTypeLocationDescription
id*stringpathParameter in path
planId*stringpathParameter in path
Response Codes & Examples
200Default Response
{
  "success": true
}
401Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
404Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
409Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
Interactive Code Examples
// Call DELETE /v1/mgmt/applications/{id}/plans/{planId}
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/applications/{id}/plans/{planId}", {
  method: "DELETE",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
});
const data = await response.json();
GET/v1/mgmt/applications/{id}/licenses
Opaque TokenStable

List licenses for an application (paginated with filters)

List licenses for an application (paginated with filters)

NameTypeLocationDescription
statusstringqueryParameter in query
plan_idstringqueryParameter in query
pageintegerqueryParameter in query
per_pageintegerqueryParameter in query
id*stringpathParameter in path
Response Codes & Examples
200Default Response
{
  "data": [
    "item_1",
    "item_2"
  ],
  "total": 1,
  "page": 1,
  "per_page": 1
}
401Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
404Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
Interactive Code Examples
// Call GET /v1/mgmt/applications/{id}/licenses
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/applications/{id}/licenses", {
  method: "GET",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
});
const data = await response.json();
POST/v1/mgmt/applications/{id}/licenses
Opaque TokenStable

Generate one or multiple licenses for a plan

Generate one or multiple licenses for a plan

NameTypeLocationDescription
id*stringpathParameter in path
Request Body (JSON)
{
  "plan_id": "8f8b3c91-42ab-4de0-84a1-8d2a1b9201f1",
  "quantity": 1,
  "expires_at": "2026-08-22T23:30:00Z",
  "entitlement_ids": [
    "item_1",
    "item_2"
  ]
}
Response Codes & Examples
201Default Response
{
  "licenses": [
    "item_1",
    "item_2"
  ]
}
400Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
401Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
402Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
404Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
Interactive Code Examples
// Call POST /v1/mgmt/applications/{id}/licenses
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/applications/{id}/licenses", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
  body: JSON.stringify({
  "plan_id": "8f8b3c91-42ab-4de0-84a1-8d2a1b9201f1",
  "quantity": 1,
  "expires_at": "2026-08-22T23:30:00Z",
  "entitlement_ids": [
    "item_1",
    "item_2"
  ]
}),
});
const data = await response.json();
GET/v1/mgmt/applications/{id}/licenses/{licenseId}
Opaque TokenStable

Get detailed license info including devices and entitlements

Get detailed license info including devices and entitlements

NameTypeLocationDescription
id*stringpathParameter in path
licenseId*stringpathParameter in path
Response Codes & Examples
200Default Response
{
  "id": "string_value",
  "key": "string_value",
  "status": "string_value",
  "plan": "{\n  \"id\": \"string_value\",\n  \"name\": \"string_value\"\n}",
  "user": "{\n  \"id\": \"string_value\",\n  \"email\": \"string_value\"\n}",
  "devices": [
    "item_1",
    "item_2"
  ],
  "entitlements": [
    "item_1",
    "item_2"
  ],
  "activated_at": "string_value",
  "expires_at": "string_value",
  "device_resets_remaining": 1,
  "created_at": "string_value",
  "updated_at": "string_value"
}
401Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
404Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
Interactive Code Examples
// Call GET /v1/mgmt/applications/{id}/licenses/{licenseId}
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/applications/{id}/licenses/{licenseId}", {
  method: "GET",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
});
const data = await response.json();
PATCH/v1/mgmt/applications/{id}/licenses/{licenseId}
Opaque TokenStable

Update license status (cascade revokes active sessions if revoked/suspended/banned)

Update license status (cascade revokes active sessions if revoked/suspended/banned)

NameTypeLocationDescription
id*stringpathParameter in path
licenseId*stringpathParameter in path
Request Body (JSON)
{
  "status": "string_value"
}
Response Codes & Examples
200Default Response
{
  "id": "string_value",
  "status": "string_value"
}
401Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
404Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
Interactive Code Examples
// Call PATCH /v1/mgmt/applications/{id}/licenses/{licenseId}
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/applications/{id}/licenses/{licenseId}", {
  method: "PATCH",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
  body: JSON.stringify({
  "status": "string_value"
}),
});
const data = await response.json();
POST/v1/mgmt/applications/{id}/licenses/{licenseId}/reset-device
Opaque TokenStable

Unbind a device from a license without consuming user reset quota (developer action)

Unbind a device from a license without consuming user reset quota (developer action)

NameTypeLocationDescription
id*stringpathParameter in path
licenseId*stringpathParameter in path
Request Body (JSON)
{
  "device_id": "8f8b3c91-42ab-4de0-84a1-8d2a1b9201f1"
}
Response Codes & Examples
200Default Response
{
  "success": true
}
401Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
404Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
Interactive Code Examples
// Call POST /v1/mgmt/applications/{id}/licenses/{licenseId}/reset-device
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/applications/{id}/licenses/{licenseId}/reset-device", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
  body: JSON.stringify({
  "device_id": "8f8b3c91-42ab-4de0-84a1-8d2a1b9201f1"
}),
});
const data = await response.json();
GET/v1/mgmt/applications/{id}/users
Opaque TokenStable

List users for an application (paginated)

List users for an application (paginated)

NameTypeLocationDescription
statusstringqueryParameter in query
pageintegerqueryParameter in query
per_pageintegerqueryParameter in query
id*stringpathParameter in path
Response Codes & Examples
200Default Response
{
  "data": [
    "item_1",
    "item_2"
  ],
  "total": 1,
  "page": 1,
  "per_page": 1
}
401Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
404Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
Interactive Code Examples
// Call GET /v1/mgmt/applications/{id}/users
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/applications/{id}/users", {
  method: "GET",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
});
const data = await response.json();
PATCH/v1/mgmt/applications/{id}/users/{userId}
Opaque TokenStable

Update user status (cascade revokes active sessions if banned/disabled)

Update user status (cascade revokes active sessions if banned/disabled)

NameTypeLocationDescription
id*stringpathParameter in path
userId*stringpathParameter in path
Request Body (JSON)
{
  "status": "string_value"
}
Response Codes & Examples
200Default Response
{
  "id": "string_value",
  "status": "string_value"
}
401Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
404Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
Interactive Code Examples
// Call PATCH /v1/mgmt/applications/{id}/users/{userId}
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/applications/{id}/users/{userId}", {
  method: "PATCH",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
  body: JSON.stringify({
  "status": "string_value"
}),
});
const data = await response.json();
GET/v1/mgmt/applications/{id}/devices
Opaque TokenStable

List registered devices for an application (paginated)

List registered devices for an application (paginated)

NameTypeLocationDescription
statusstringqueryParameter in query
pageintegerqueryParameter in query
per_pageintegerqueryParameter in query
id*stringpathParameter in path
Response Codes & Examples
200Default Response
{
  "data": [
    "item_1",
    "item_2"
  ],
  "total": 1,
  "page": 1,
  "per_page": 1
}
401Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
404Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
Interactive Code Examples
// Call GET /v1/mgmt/applications/{id}/devices
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/applications/{id}/devices", {
  method: "GET",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
});
const data = await response.json();
PATCH/v1/mgmt/applications/{id}/devices/{deviceId}
Opaque TokenStable

Update device status (blocked status revokes its active sessions)

Update device status (blocked status revokes its active sessions)

NameTypeLocationDescription
id*stringpathParameter in path
deviceId*stringpathParameter in path
Request Body (JSON)
{
  "status": "string_value"
}
Response Codes & Examples
200Default Response
{
  "id": "string_value",
  "status": "string_value"
}
401Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
404Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
Interactive Code Examples
// Call PATCH /v1/mgmt/applications/{id}/devices/{deviceId}
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/applications/{id}/devices/{deviceId}", {
  method: "PATCH",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
  body: JSON.stringify({
  "status": "string_value"
}),
});
const data = await response.json();
GET/v1/mgmt/applications/{id}/audit-logs
Opaque TokenStable

List audit logs for an application (paginated with filters)

List audit logs for an application (paginated with filters)

NameTypeLocationDescription
eventstringqueryParameter in query
fromstringqueryParameter in query
tostringqueryParameter in query
pageintegerqueryParameter in query
per_pageintegerqueryParameter in query
id*stringpathParameter in path
Response Codes & Examples
200Default Response
{
  "data": [
    "item_1",
    "item_2"
  ],
  "total": 1,
  "page": 1,
  "per_page": 1
}
401Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
404Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
Interactive Code Examples
// Call GET /v1/mgmt/applications/{id}/audit-logs
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/applications/{id}/audit-logs", {
  method: "GET",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
});
const data = await response.json();
GET/v1/mgmt/applications/{id}/webhooks
Opaque TokenStable

List all webhook endpoints for an application

List all webhook endpoints for an application

NameTypeLocationDescription
id*stringpathParameter in path
Response Codes & Examples
200Default Response
{
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": {
        "type": "string"
      },
      "application_id": {
        "type": "string"
      },
      "url": {
        "type": "string"
      },
      "events": {
        "type": "array",
        "items": {
          "type": "string"
        }
      },
      "status": {
        "type": "string"
      },
      "created_at": {
        "type": "string"
      }
    },
    "required": [
      "id",
      "application_id",
      "url",
      "events",
      "status",
      "created_at"
    ],
    "additionalProperties": false
  }
}
401Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
404Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
Interactive Code Examples
// Call GET /v1/mgmt/applications/{id}/webhooks
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/applications/{id}/webhooks", {
  method: "GET",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
});
const data = await response.json();
POST/v1/mgmt/applications/{id}/webhooks
Opaque TokenStable

Create a new webhook endpoint (returns secret once)

Create a new webhook endpoint (returns secret once)

NameTypeLocationDescription
id*stringpathParameter in path
Request Body (JSON)
{
  "url": "string_value",
  "events": [
    "item_1",
    "item_2"
  ]
}
Response Codes & Examples
201Default Response
{
  "id": "string_value",
  "application_id": "string_value",
  "url": "string_value",
  "events": [
    "item_1",
    "item_2"
  ],
  "status": "string_value",
  "secret": "string_value",
  "created_at": "string_value"
}
400Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
401Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
402Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
404Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
Interactive Code Examples
// Call POST /v1/mgmt/applications/{id}/webhooks
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/applications/{id}/webhooks", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
  body: JSON.stringify({
  "url": "string_value",
  "events": [
    "item_1",
    "item_2"
  ]
}),
});
const data = await response.json();
DELETE/v1/mgmt/applications/{id}/webhooks/{webhookId}
Opaque TokenStable

Delete a webhook endpoint

Delete a webhook endpoint

NameTypeLocationDescription
id*stringpathParameter in path
webhookId*stringpathParameter in path
Response Codes & Examples
200Default Response
{
  "success": true
}
401Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
404Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
Interactive Code Examples
// Call DELETE /v1/mgmt/applications/{id}/webhooks/{webhookId}
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/applications/{id}/webhooks/{webhookId}", {
  method: "DELETE",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
});
const data = await response.json();
POST/v1/mgmt/applications/{id}/webhooks/{webhookId}/test
Opaque TokenStable

Send an immediate test ping to a webhook endpoint

Send an immediate test ping to a webhook endpoint

NameTypeLocationDescription
id*stringpathParameter in path
webhookId*stringpathParameter in path
Response Codes & Examples
200Default Response
{
  "success": true,
  "delivery_id": "string_value",
  "status": "string_value",
  "response_status": 1
}
401Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
404Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
Interactive Code Examples
// Call POST /v1/mgmt/applications/{id}/webhooks/{webhookId}/test
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/applications/{id}/webhooks/{webhookId}/test", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
});
const data = await response.json();
GET/v1/mgmt/billing/plans
Opaque TokenStable

List all available billing tiers and feature limits

List all available billing tiers and feature limits

Response Codes & Examples
200Default Response
{
  "plans": [
    "item_1",
    "item_2"
  ]
}
401Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
403Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
Interactive Code Examples
// Call GET /v1/mgmt/billing/plans
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/billing/plans", {
  method: "GET",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
});
const data = await response.json();
GET/v1/mgmt/billing/subscription
Opaque TokenStable

Get current organization subscription details and active tier

Get current organization subscription details and active tier

Response Codes & Examples
200Default Response
{
  "subscription": "{\n  \"id\": \"string_value\",\n  \"status\": \"string_value\",\n  \"provider\": \"string_value\",\n  \"trial_ends_at\": \"string_value\",\n  \"current_period_start\": \"string_value\",\n  \"current_period_end\": \"string_value\",\n  \"plan\": \"{\\n  \\\"id\\\": \\\"string_value\\\",\\n  \\\"key\\\": \\\"string_value\\\",\\n  \\\"name\\\": \\\"string_value\\\",\\n  \\\"price_cents\\\": 1,\\n  \\\"max_applications\\\": 1,\\n  \\\"max_licenses\\\": 1,\\n  \\\"max_requests_per_month\\\": 1,\\n  \\\"audit_log_retention_days\\\": 1,\\n  \\\"max_dashboard_members\\\": 1\\n}\"\n}"
}
401Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
403Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
404Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
Interactive Code Examples
// Call GET /v1/mgmt/billing/subscription
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/billing/subscription", {
  method: "GET",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
});
const data = await response.json();
GET/v1/mgmt/billing/usage
Opaque TokenStable

Get current billing period usage counters versus plan limits

Get current billing period usage counters versus plan limits

Response Codes & Examples
200Default Response
{
  "period_start": "string_value",
  "plan": "{\n  \"key\": \"string_value\",\n  \"name\": \"string_value\",\n  \"status\": \"string_value\"\n}",
  "usage": "{\n  \"applications\": \"{\\n  \\\"current\\\": 1,\\n  \\\"limit\\\": 1\\n}\",\n  \"licenses_active\": \"{\\n  \\\"current\\\": 1,\\n  \\\"limit\\\": 1\\n}\",\n  \"runtime_requests\": \"{\\n  \\\"current\\\": 1,\\n  \\\"limit\\\": 1\\n}\"\n}"
}
401Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
403Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
404Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
Interactive Code Examples
// Call GET /v1/mgmt/billing/usage
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/billing/usage", {
  method: "GET",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
});
const data = await response.json();
POST/v1/mgmt/billing/checkout
Opaque TokenStable

Generate CashinPay PIX QR code checkout for plan subscription or renewal

Generate CashinPay PIX QR code checkout for plan subscription or renewal

Request Body (JSON)
{
  "billing_plan_key": "string_value",
  "customer_phone": "string_value",
  "customer_document": "string_value"
}
Response Codes & Examples
200Default Response
{
  "transaction_id": "string_value",
  "qrcode": "string_value",
  "copy_paste": "string_value",
  "amount_cents": 1
}
400Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
401Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
403Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
404Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
409Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
502Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
Interactive Code Examples
// Call POST /v1/mgmt/billing/checkout
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/billing/checkout", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
  body: JSON.stringify({
  "billing_plan_key": "string_value",
  "customer_phone": "string_value",
  "customer_document": "string_value"
}),
});
const data = await response.json();
GET/v1/mgmt/onboarding/progress
Opaque TokenStable

Get onboarding and product tour progress for the current member

Get onboarding and product tour progress for the current member

Response Codes & Examples
200Default Response
{
  "tour_status": "string_value",
  "current_step": 1,
  "completed_steps": [
    "item_1",
    "item_2"
  ],
  "dismissed_features": [
    "item_1",
    "item_2"
  ],
  "feature_progress": "{\n  \"type\": \"object\",\n  \"additionalProperties\": {\n    \"type\": \"string\",\n    \"enum\": [\n      \"not_started\",\n      \"in_progress\",\n      \"completed\",\n      \"dismissed\"\n    ]\n  }\n}",
  "completed_at": "string_value"
}
401Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
Interactive Code Examples
// Call GET /v1/mgmt/onboarding/progress
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/onboarding/progress", {
  method: "GET",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
});
const data = await response.json();
PATCH/v1/mgmt/onboarding/progress
Opaque TokenStable

Update onboarding and product tour progress

Update onboarding and product tour progress

Request Body (JSON)
{
  "tour_status": "string_value",
  "current_step": 1,
  "completed_step": "string_value",
  "dismissed_feature": "string_value",
  "feature_key": "string_value",
  "feature_status": "string_value"
}
Response Codes & Examples
200Default Response
{
  "tour_status": "string_value",
  "current_step": 1,
  "completed_steps": [
    "item_1",
    "item_2"
  ],
  "dismissed_features": [
    "item_1",
    "item_2"
  ],
  "feature_progress": "{\n  \"type\": \"object\",\n  \"additionalProperties\": {\n    \"type\": \"string\",\n    \"enum\": [\n      \"not_started\",\n      \"in_progress\",\n      \"completed\",\n      \"dismissed\"\n    ]\n  }\n}",
  "completed_at": "string_value"
}
400Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
401Default Response
{
  "error": "{\n  \"code\": \"string_value\",\n  \"message\": \"string_value\",\n  \"title\": \"string_value\",\n  \"reason\": \"string_value\",\n  \"action\": \"string_value\",\n  \"retry_after_seconds\": 1\n}"
}
Interactive Code Examples
// Call PATCH /v1/mgmt/onboarding/progress
const response = await fetch("https://api.nineauth.xyz/v1/mgmt/onboarding/progress", {
  method: "PATCH",
  headers: {
    "Content-Type": "application/json",
    "x-api-key": process.env.NINEAUTH_API_KEY,
  },
  body: JSON.stringify({
  "tour_status": "string_value",
  "current_step": 1,
  "completed_step": "string_value",
  "dismissed_feature": "string_value",
  "feature_key": "string_value",
  "feature_status": "string_value"
}),
});
const data = await response.json();