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_*.
Sign up and register a new organization
Hardened signup with password strength, disposable domain blocklist, Turnstile anti-bot, and byte-identical anti-enumeration response.
{
"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"
}{
"success": true,
"message": "string_value"
}{
"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}"
}{
"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}"
}// 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();Verify developer email address via token
Verify developer email address via token
{
"token": "tok_live_9f8a3b10..."
}{
"success": true,
"access_token": "tok_live_9f8a3b10...",
"organization_id": "string_value"
}{
"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}"
}// 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();Resend email verification link
Resend email verification link
{
"email": "user@example.com"
}{
"success": true,
"message": "string_value"
}{
"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}"
}// 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();Request a password reset link
Request a password reset link
{
"email": "user@example.com"
}{
"success": true,
"message": "string_value"
}{
"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}"
}{
"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}"
}{
"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}"
}// 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();Reset password with token and revoke all active sessions
Reset password with token and revoke all active sessions
{
"token": "tok_live_9f8a3b10...",
"new_password": "SuperSecurePassword123!"
}{
"success": true,
"message": "string_value"
}{
"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}"
}{
"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}"
}// 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();Log in to the management dashboard
Log in to the management dashboard
{
"email": "user@example.com",
"password": "SuperSecurePassword123!"
}{
"access_token": "tok_live_9f8a3b10...",
"email_verified": true
}{
"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}"
}{
"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}"
}{
"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}"
}// 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();Log out from the management dashboard
Log out from the management dashboard
{
"success": true
}// 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();Initiate GitHub OAuth flow
Initiate GitHub OAuth flow
{}// 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();GitHub OAuth callback handler
GitHub OAuth callback handler
| Name | Type | Location | Description |
|---|---|---|---|
| code* | string | query | Parameter in query |
{}// 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();Complete profile for GitHub-registered accounts
Complete profile for GitHub-registered accounts
{
"first_name": "string_value",
"last_name": "string_value",
"organization_name": "string_value",
"phone": "string_value",
"tos_accepted_version": "v1.0"
}{
"success": true
}{
"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}"
}// 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 current organization details
Get current organization details
{
"id": "string_value",
"name": "string_value",
"slug": "string_value",
"created_at": "string_value",
"updated_at": "string_value",
"email_verified": true
}{
"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}"
}{
"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}"
}{
"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}"
}// 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();Update current organization details
Update current organization details
{
"name": "string_value"
}{
"id": "string_value",
"name": "string_value",
"slug": "string_value",
"updated_at": "string_value"
}{
"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}"
}{
"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}"
}{
"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}"
}// 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();List all members of current organization
List all members of current organization
{
"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
}
}{
"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}"
}{
"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}"
}// 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();Add a new member to current organization (owner/admin only)
Add a new member to current organization (owner/admin only)
{
"email": "user@example.com",
"password": "SuperSecurePassword123!",
"role": "string_value",
"first_name": "string_value",
"last_name": "string_value"
}{
"success": true,
"message": "string_value",
"member_id": "string_value"
}{
"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}"
}{
"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}"
}{
"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}"
}{
"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}"
}// 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();Remove a member from current organization (cannot remove last owner)
Remove a member from current organization (cannot remove last owner)
| Name | Type | Location | Description |
|---|---|---|---|
| id* | string | path | Parameter in path |
{
"success": true
}{
"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}"
}{
"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}"
}{
"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}"
}{
"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}"
}// 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();List all applications of current organization
List all applications of current organization
{
"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
}
}{
"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}"
}// 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();Create a new application with auto development & production environments
Create a new application with auto development & production environments
{
"name": "string_value",
"slug": "string_value"
}{
"application_id": "string_value"
}{
"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}"
}{
"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}"
}{
"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}"
}{
"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}"
}// 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 application details and its environments
Get application details and its environments
| Name | Type | Location | Description |
|---|---|---|---|
| id* | string | path | Parameter in path |
{
"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"
}{
"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}"
}{
"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}"
}// 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();Update application details
Update application details
| Name | Type | Location | Description |
|---|---|---|---|
| id* | string | path | Parameter in path |
{
"name": "string_value",
"status": "string_value"
}{
"id": "string_value",
"name": "string_value",
"slug": "string_value",
"status": "string_value",
"updated_at": "string_value"
}{
"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}"
}{
"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}"
}{
"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}"
}// 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 application (soft disable by default, permanent delete if ?permanent=true)
Delete application (soft disable by default, permanent delete if ?permanent=true)
| Name | Type | Location | Description |
|---|---|---|---|
| not | string | query | Parameter in query |
| permanent | string | query | Parameter in query |
| id* | string | path | Parameter in path |
{
"success": true
}{
"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}"
}{
"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}"
}{
"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}"
}// 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();List environments for an application
List environments for an application
| Name | Type | Location | Description |
|---|---|---|---|
| id* | string | path | Parameter in path |
{
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"created_at": {
"type": "string"
}
},
"required": [
"id",
"name",
"created_at"
],
"additionalProperties": false
}
}{
"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}"
}{
"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}"
}// 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();Generate an application secret (plaintext returned once)
Generate an application secret (plaintext returned once)
| Name | Type | Location | Description |
|---|---|---|---|
| id* | string | path | Parameter in path |
{
"environment_id": "8f8b3c91-42ab-4de0-84a1-8d2a1b9201f1",
"label": "string_value"
}{
"secret_id": "string_value",
"plaintext": "string_value"
}{
"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}"
}{
"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}"
}{
"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}"
}{
"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}"
}// 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();List application secrets (plaintext is NEVER returned)
List application secrets (plaintext is NEVER returned)
| Name | Type | Location | Description |
|---|---|---|---|
| id* | string | path | Parameter in path |
{
"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
}
}{
"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}"
}{
"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}"
}// 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();Revoke an application secret
Revoke an application secret
| Name | Type | Location | Description |
|---|---|---|---|
| id* | string | path | Parameter in path |
| secretId* | string | path | Parameter in path |
{
"success": true
}{
"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}"
}{
"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}"
}// 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();Generate an organization developer API key (plaintext returned once)
Generate an organization developer API key (plaintext returned once)
{
"label": "string_value"
}{
"key_id": "string_value",
"plaintext": "string_value"
}{
"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}"
}{
"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}"
}// 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();List developer API keys (plaintext is NEVER returned)
List developer API keys (plaintext is NEVER returned)
{
"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
}
}{
"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}"
}// 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();Revoke a developer API key
Revoke a developer API key
| Name | Type | Location | Description |
|---|---|---|---|
| id* | string | path | Parameter in path |
{
"success": true
}{
"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}"
}{
"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}"
}// 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();List all entitlements for an application
List all entitlements for an application
| Name | Type | Location | Description |
|---|---|---|---|
| id* | string | path | Parameter in path |
{
"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
}
}{
"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}"
}{
"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}"
}// 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();Create a new entitlement for an application
Create a new entitlement for an application
| Name | Type | Location | Description |
|---|---|---|---|
| id* | string | path | Parameter in path |
{
"key": "string_value",
"name": "string_value",
"description": "string_value"
}{
"entitlement_id": "string_value"
}{
"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}"
}{
"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}"
}{
"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}"
}{
"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}"
}{
"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}"
}// 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 an entitlement
Delete an entitlement
| Name | Type | Location | Description |
|---|---|---|---|
| id* | string | path | Parameter in path |
| entId* | string | path | Parameter in path |
{
"success": true
}{
"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}"
}{
"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}"
}// 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();List all plans for an application with their entitlements
List all plans for an application with their entitlements
| Name | Type | Location | Description |
|---|---|---|---|
| id* | string | path | Parameter in path |
{
"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
}
}{
"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}"
}{
"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}"
}// 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();Create a new plan with associated entitlements
Create a new plan with associated entitlements
| Name | Type | Location | Description |
|---|---|---|---|
| id* | string | path | Parameter in path |
{
"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"
]
}{
"plan_id": "string_value"
}{
"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}"
}{
"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}"
}{
"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}"
}{
"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}"
}// 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();Update a plan and replace its entitlements
Update a plan and replace its entitlements
| Name | Type | Location | Description |
|---|---|---|---|
| id* | string | path | Parameter in path |
| planId* | string | path | Parameter in path |
{
"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"
]
}{
"plan_id": "string_value"
}{
"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}"
}{
"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}"
}{
"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}"
}// 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 a plan (fails if active licenses are associated)
Delete a plan (fails if active licenses are associated)
| Name | Type | Location | Description |
|---|---|---|---|
| id* | string | path | Parameter in path |
| planId* | string | path | Parameter in path |
{
"success": true
}{
"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}"
}{
"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}"
}{
"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}"
}// 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();List licenses for an application (paginated with filters)
List licenses for an application (paginated with filters)
| Name | Type | Location | Description |
|---|---|---|---|
| status | string | query | Parameter in query |
| plan_id | string | query | Parameter in query |
| page | integer | query | Parameter in query |
| per_page | integer | query | Parameter in query |
| id* | string | path | Parameter in path |
{
"data": [
"item_1",
"item_2"
],
"total": 1,
"page": 1,
"per_page": 1
}{
"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}"
}{
"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}"
}// 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();Generate one or multiple licenses for a plan
Generate one or multiple licenses for a plan
| Name | Type | Location | Description |
|---|---|---|---|
| id* | string | path | Parameter in path |
{
"plan_id": "8f8b3c91-42ab-4de0-84a1-8d2a1b9201f1",
"quantity": 1,
"expires_at": "2026-08-22T23:30:00Z",
"entitlement_ids": [
"item_1",
"item_2"
]
}{
"licenses": [
"item_1",
"item_2"
]
}{
"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}"
}{
"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}"
}{
"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}"
}{
"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}"
}// 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 detailed license info including devices and entitlements
Get detailed license info including devices and entitlements
| Name | Type | Location | Description |
|---|---|---|---|
| id* | string | path | Parameter in path |
| licenseId* | string | path | Parameter in path |
{
"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"
}{
"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}"
}{
"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}"
}// 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();Update license status (cascade revokes active sessions if revoked/suspended/banned)
Update license status (cascade revokes active sessions if revoked/suspended/banned)
| Name | Type | Location | Description |
|---|---|---|---|
| id* | string | path | Parameter in path |
| licenseId* | string | path | Parameter in path |
{
"status": "string_value"
}{
"id": "string_value",
"status": "string_value"
}{
"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}"
}{
"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}"
}// 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();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)
| Name | Type | Location | Description |
|---|---|---|---|
| id* | string | path | Parameter in path |
| licenseId* | string | path | Parameter in path |
{
"device_id": "8f8b3c91-42ab-4de0-84a1-8d2a1b9201f1"
}{
"success": true
}{
"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}"
}{
"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}"
}// 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();List users for an application (paginated)
List users for an application (paginated)
| Name | Type | Location | Description |
|---|---|---|---|
| status | string | query | Parameter in query |
| page | integer | query | Parameter in query |
| per_page | integer | query | Parameter in query |
| id* | string | path | Parameter in path |
{
"data": [
"item_1",
"item_2"
],
"total": 1,
"page": 1,
"per_page": 1
}{
"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}"
}{
"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}"
}// 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();Update user status (cascade revokes active sessions if banned/disabled)
Update user status (cascade revokes active sessions if banned/disabled)
| Name | Type | Location | Description |
|---|---|---|---|
| id* | string | path | Parameter in path |
| userId* | string | path | Parameter in path |
{
"status": "string_value"
}{
"id": "string_value",
"status": "string_value"
}{
"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}"
}{
"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}"
}// 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();List registered devices for an application (paginated)
List registered devices for an application (paginated)
| Name | Type | Location | Description |
|---|---|---|---|
| status | string | query | Parameter in query |
| page | integer | query | Parameter in query |
| per_page | integer | query | Parameter in query |
| id* | string | path | Parameter in path |
{
"data": [
"item_1",
"item_2"
],
"total": 1,
"page": 1,
"per_page": 1
}{
"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}"
}{
"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}"
}// 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();Update device status (blocked status revokes its active sessions)
Update device status (blocked status revokes its active sessions)
| Name | Type | Location | Description |
|---|---|---|---|
| id* | string | path | Parameter in path |
| deviceId* | string | path | Parameter in path |
{
"status": "string_value"
}{
"id": "string_value",
"status": "string_value"
}{
"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}"
}{
"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}"
}// 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();List audit logs for an application (paginated with filters)
List audit logs for an application (paginated with filters)
| Name | Type | Location | Description |
|---|---|---|---|
| event | string | query | Parameter in query |
| from | string | query | Parameter in query |
| to | string | query | Parameter in query |
| page | integer | query | Parameter in query |
| per_page | integer | query | Parameter in query |
| id* | string | path | Parameter in path |
{
"data": [
"item_1",
"item_2"
],
"total": 1,
"page": 1,
"per_page": 1
}{
"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}"
}{
"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}"
}// 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();List all webhook endpoints for an application
List all webhook endpoints for an application
| Name | Type | Location | Description |
|---|---|---|---|
| id* | string | path | Parameter in path |
{
"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
}
}{
"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}"
}{
"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}"
}// 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();Create a new webhook endpoint (returns secret once)
Create a new webhook endpoint (returns secret once)
| Name | Type | Location | Description |
|---|---|---|---|
| id* | string | path | Parameter in path |
{
"url": "string_value",
"events": [
"item_1",
"item_2"
]
}{
"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"
}{
"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}"
}{
"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}"
}{
"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}"
}{
"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}"
}// 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 a webhook endpoint
Delete a webhook endpoint
| Name | Type | Location | Description |
|---|---|---|---|
| id* | string | path | Parameter in path |
| webhookId* | string | path | Parameter in path |
{
"success": true
}{
"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}"
}{
"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}"
}// 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();Send an immediate test ping to a webhook endpoint
Send an immediate test ping to a webhook endpoint
| Name | Type | Location | Description |
|---|---|---|---|
| id* | string | path | Parameter in path |
| webhookId* | string | path | Parameter in path |
{
"success": true,
"delivery_id": "string_value",
"status": "string_value",
"response_status": 1
}{
"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}"
}{
"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}"
}// 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();List all available billing tiers and feature limits
List all available billing tiers and feature limits
{
"plans": [
"item_1",
"item_2"
]
}{
"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}"
}{
"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}"
}// 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 current organization subscription details and active tier
Get current organization subscription details and active tier
{
"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}"
}{
"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}"
}{
"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}"
}{
"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}"
}// 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 current billing period usage counters versus plan limits
Get current billing period usage counters versus plan limits
{
"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}"
}{
"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}"
}{
"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}"
}{
"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}"
}// 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();Generate CashinPay PIX QR code checkout for plan subscription or renewal
Generate CashinPay PIX QR code checkout for plan subscription or renewal
{
"billing_plan_key": "string_value",
"customer_phone": "string_value",
"customer_document": "string_value"
}{
"transaction_id": "string_value",
"qrcode": "string_value",
"copy_paste": "string_value",
"amount_cents": 1
}{
"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}"
}{
"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}"
}{
"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}"
}{
"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}"
}{
"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}"
}{
"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}"
}// 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 onboarding and product tour progress for the current member
Get onboarding and product tour progress for the current member
{
"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"
}{
"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}"
}// 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();Update onboarding and product tour progress
Update onboarding and product tour progress
{
"tour_status": "string_value",
"current_step": 1,
"completed_step": "string_value",
"dismissed_feature": "string_value",
"feature_key": "string_value",
"feature_status": "string_value"
}{
"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"
}{
"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}"
}{
"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}"
}// 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();