How to Use Client Management APIs

This guide describes how to manage OIDC clients programmatically using the Fabrixly-IDS Client Management APIs.


πŸ” Authentication & Prerequisites

All client management endpoints require administrative authentication. To call them:

  1. Include the Token in the Authorization Header: Add -H "Authorization: Bearer <your-admin-jwt-token>" to your API calls.

Obtain an Admin JWT Token:

curl -X POST https://ids.fabrixly.com/api/auth/login \
  -H "Content-Type: application/json" \
  -d '{
    "email": "admin@example.com",
    "password": "your-admin-password"
  }'

Note: This returns a JSON response containing a token.


1. Create a Client

Creates a new OIDC client application registration in the database.

  • HTTP Method: POST
  • Path: /api/clients
  • Headers:
    • Content-Type: application/json
    • Authorization: Bearer <your-admin-jwt-token>

Request Body Parameters

Parameter Type Required Description
client_name string Yes The user-friendly name of the client app.
redirect_uris array Yes Redirect URIs allowed during auth flows.
response_types array No Allowed OIDC response types (e.g., ["code"], ["token id_token"]).
grant_types array No Allowed OAuth grant types (e.g., ["authorization_code"], ["client_credentials"]).
token_endpoint_auth_method string No Auth method (e.g., client_secret_basic, client_secret_post, none).
auth_mode string No The default authentication mode: password, otp, password_and_otp, flexible, magic-link.
enable_magic_link boolean No Enable Magic Link authentication (true/false).
enable_mobile_login boolean No Enable mobile login option (true/false).
otp_delivery_method string No email or sms.

Example Request (curl)

curl -X POST https://ids.fabrixly.com/api/clients \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <your-admin-jwt-token>" \
  -d '{
    "client_name": "My Client App",
    "redirect_uris": ["http://localhost:3001/callback"],
    "response_types": ["code"],
    "grant_types": ["authorization_code", "refresh_token"],
    "token_endpoint_auth_method": "client_secret_basic",
    "auth_mode": "flexible",
    "enable_magic_link": true,
    "enable_mobile_login": false,
    "otp_delivery_method": "email"
  }'

Response (201 Created)

{
  "id": "cli_abc123xyz789",
  "client_id": "my-client-app-id",
  "client_name": "My Client App",
  "client_secret": "fabrixly_sec_999888777...",
  "redirect_uris": ["http://localhost:3001/callback"],
  "response_types": ["code"],
  "grant_types": ["authorization_code", "refresh_token"],
  "token_endpoint_auth_method": "client_secret_basic",
  "auth_mode": "flexible",
  "enable_magic_link": true,
  "enable_mobile_login": false,
  "otp_delivery_method": "email"
}

2. List Clients

Retrieve all registered clients inside the organization context of the admin.

  • HTTP Method: GET
  • Path: /api/clients
  • Headers:
    • Authorization: Bearer <your-admin-jwt-token>

Example Request (curl)

curl -X GET https://ids.fabrixly.com/api/clients \
  -H "Authorization: Bearer <your-admin-jwt-token>"

Response (200 OK)

[
  {
    "id": "cli_abc123xyz789",
    "client_id": "my-client-app-id",
    "client_name": "My Client App",
    "redirect_uris": ["http://localhost:3001/callback"]
  }
]

3. Get Client Details

Retrieves details of a specific client by ID.

  • HTTP Method: GET
  • Path: /api/clients/:id
  • Headers:
    • Authorization: Bearer <your-admin-jwt-token>

Example Request (curl)

curl -X GET https://ids.fabrixly.com/api/clients/cli_abc123xyz789 \
  -H "Authorization: Bearer <your-admin-jwt-token>"

Response (200 OK)

{
  "id": "cli_abc123xyz789",
  "client_id": "my-client-app-id",
  "client_name": "My Client App",
  "redirect_uris": ["http://localhost:3001/callback"],
  "response_types": ["code"],
  "grant_types": ["authorization_code", "refresh_token"],
  "token_endpoint_auth_method": "client_secret_basic",
  "auth_mode": "flexible"
}

4. Update Client Settings

Modifies configurations of an existing client.

  • HTTP Method: PUT
  • Path: /api/clients/:id
  • Headers:
    • Content-Type: application/json
    • Authorization: Bearer <your-admin-jwt-token>

Example Request (curl)

curl -X PUT https://ids.fabrixly.com/api/clients/cli_abc123xyz789 \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <your-admin-jwt-token>" \
  -d '{
    "client_name": "My Client App (Updated)",
    "auth_mode": "magic-link",
    "enable_magic_link": true
  }'

Response (200 OK)

{
  "id": "cli_abc123xyz789",
  "client_id": "my-client-app-id",
  "client_name": "My Client App (Updated)",
  "auth_mode": "magic-link",
  "enable_magic_link": true
}

5. Delete Client

Deletes a registered client from the system database.

  • HTTP Method: DELETE
  • Path: /api/clients/:id
  • Headers:
    • Authorization: Bearer <your-admin-jwt-token>

Example Request (curl)

curl -X DELETE https://ids.fabrixly.com/api/clients/cli_abc123xyz789 \
  -H "Authorization: Bearer <your-admin-jwt-token>"

Response (200 OK)

{
  "message": "Client deleted successfully"
}

Subscribe to The Fabrixly Blog

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.
jamie@example.com
Subscribe