Skip to content

🎮 Interactive API Playground ​

Test all Flowless authentication endpoints with a fully interactive playground. Try requests directly from your browser!

📖 Live API Testing

All endpoints are interactive with real-time request/response testing. Change parameters, headers, and body content to see how the API responds.

� Quick Start

  1. Select an endpoint from the list below
  2. Fill in the required parameters
  3. Click "Try it out" to send the request
  4. View the response in real-time

Complete authentication backend for modern applications. Flowless provides managed authentication with session management, social login, password reset, and more.

Contact​

Servers​

https://your-instance.pubflow.comYour Flowless Instance
http://localhost:8787Local Development

Authentication​

Core authentication endpoints for login, registration, and logout


Login User​

POST
/auth/login

Authenticate a user with email/username and password. Email is automatically converted to lowercase. Depending on account state and 2FA, this endpoint may return: (1) full session, (2) pending 2FA partial session, or (3) EMAIL_NOT_VERIFIED when AUTH.verify_registration=true and the account is not verified.

Request Body​

application/json
JSON
{
  
"email": "[email protected]",
  
"password": "SecurePass123!"
}

Responses​

Login processed - returns full session or pending 2FA partial session

application/json
JSON
{
  
"success": true,
  
"user": {
  
  
"id": "usr_123abc",
  
  
"email": "[email protected]",
  
  
"name": "John",
  
  
"last_name": "Doe",
  
  
"user_name": "johndoe",
  
  
"user_type": "customer",
  
  
"is_verified": true,
  
  
"two_factor": false
  
},
  
"sessionId": "ses_xyz789abc123",
  
"expiresAt": "2025-12-15T10:00:00Z"
}

Playground​

Server
Body

Samples​


Logout User​

POST
/auth/logout

Logout and invalidate the current session

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Responses​

Logout successful

application/json
JSON
{
  
"success": true,
  
"message": "Logged out successfully"
}

Playground​

Server
Authorization

Samples​


Register Public User​

POST
/auth/register/public

Register a new user account publicly. Requires X-Bridge-Secret header for security. Email and user_name must be unique. Behavior depends on AUTH.verify_registration: when true, no session is created at registration and the user must verify email first; when false, the response includes sessionId and expiresAt immediately.

Authorizations​

BridgeSecret

Bridge secret for backend integration

Type
API Key (header: X-Bridge-Secret)

Request Body​

application/json
JSON
{
  
"email": "[email protected]",
  
"password": "SecurePass123!",
  
"name": "John",
  
"last_name": "Doe"
}

Responses​

Registration successful

application/json
JSON
{
  
"success": true,
  
"message": "Registration successful. Please check your email to verify your account.",
  
"data": {
  
  
"user": {
  
  
  
"id": "usr_123abc",
  
  
  
"email": "[email protected]",
  
  
  
"name": "John",
  
  
  
"last_name": "Doe",
  
  
  
"user_type": "customer",
  
  
  
"is_verified": false,
  
  
  
"requiresVerification": true
  
  
}
  
}
}

Playground​

Server
Authorization
Body

Samples​


User Profile​


Get Current User (Legacy)​

GET
/auth/me

Legacy current-user endpoint. Uses session cookie/X-Session-ID and supports pending 2FA sessions. Prefer /auth/user/me for login-compatible response shape.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Responses​

User/session resolved (legacy shape)

application/json
JSON
{
  
"success": true,
  
"data": {
  
  
"user": {
  
  
  
"id": "2EnYhxCK5JkA4yd0_jGB1",
  
  
  
"email": "[email protected]",
  
  
  
"name": "Samuel",
  
  
  
"last_name": "Recio",
  
  
  
"user_name": "SamuelRecio",
  
  
  
"user_type": "admin",
  
  
  
"picture": "https://cloud.notside.com/pubflow/Samuel-Recio-CEO.jpg",
  
  
  
"is_verified": true,
  
  
  
"two_factor": true,
  
  
  
"lang": "es",
  
  
  
"metadata": {
  
  
  
},
  
  
  
"tmz": null,
  
  
  
"dob": null,
  
  
  
"display_name": null,
  
  
  
"first_time": true,
  
  
  
"gender": null,
  
  
  
"title": null
  
  
}
  
}
}

Playground​

Server
Authorization

Samples​


Get Current User​

GET
/auth/user/me

Get current authenticated user/session state. Requires BOTH X-Bridge-Secret and a valid session (cookie or X-Session-ID). Returns login-compatible shape. User includes business + privacy fields when module columns exist; acquisition_* and team_size_range are never returned (write-only via onboarding complete).

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)
+
BridgeSecret

Bridge secret for backend integration

Type
API Key (header: X-Bridge-Secret)

Responses​

Current session resolved (full session or pending 2FA)

application/json
JSON
{
  
"success": true,
  
"user": {
  
  
"id": "usr_8f3k2m1q9",
  
  
"email": "[email protected]",
  
  
"name": "User",
  
  
"last_name": "Example",
  
  
"user_name": "userexample",
  
  
"user_type": "admin",
  
  
"picture": "https://cdn.example.com/profiles/user-example.jpg",
  
  
"is_verified": true,
  
  
"two_factor": true,
  
  
"lang": "es",
  
  
"metadata": {
  
  
},
  
  
"tmz": null,
  
  
"dob": null,
  
  
"display_name": null,
  
  
"first_time": false,
  
  
"gender": null,
  
  
"title": null
  
},
  
"sessionId": "ses_live_abc123xyz890",
  
"expiresAt": "2026-05-06T18:49:00.930Z"
}

Playground​

Server
Authorization

Samples​


Update User Profile​

PUT
/auth/user/me

Update authenticated user profile. Accepts core profile fields plus is_business/biz_* when ext-business is installed (400 module_not_installed otherwise). Does not accept acquisition or privacy fields — use POST /auth/user/me/onboarding/complete or /auth/user/me/privacy*.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Request Body​

application/json
JSON
{
  
"name": "John",
  
"last_name": "Doe",
  
"user_name": "johndoe",
  
"phone": "+1234567890",
  
"dob": "1990-01-01",
  
"gender": "string",
  
"title": "string",
  
"reference_id": "string",
  
"recovery_email": "string",
  
"tmz": "America/New_York",
  
"metadata": {
  
  
"additionalProperties": "string"
  
},
  
"is_business": true,
  
"biz_name": "string",
  
"biz_country": "string",
  
"biz_state": "string",
  
"biz_position": "string",
  
"biz_postal_code": "string"
}

Responses​

Profile updated successfully

application/json
JSON
{
  
"success": true,
  
"data": {
  
  
"user": {
  
  
  
"id": "usr_abc123",
  
  
  
"email": "[email protected]",
  
  
  
"name": "John",
  
  
  
"last_name": "Doe",
  
  
  
"user_name": "johndoe",
  
  
  
"user_type": "customer",
  
  
  
"picture": "https://storage.pubflow.com/users/usr_abc123/picture.jpg",
  
  
  
"phone": "+1234567890",
  
  
  
"is_verified": true,
  
  
  
"two_factor": false,
  
  
  
"created_at": "2025-12-07T10:00:00Z",
  
  
  
"updated_at": "2025-12-07T10:00:00Z",
  
  
  
"first_time": true,
  
  
  
"title": "string",
  
  
  
"is_business": true,
  
  
  
"biz_name": "string",
  
  
  
"biz_country": "string",
  
  
  
"biz_state": "string",
  
  
  
"biz_position": "string",
  
  
  
"gdpr_consent": true,
  
  
  
"gdpr_consent_at": "string",
  
  
  
"gdpr_consent_version": "string",
  
  
  
"ccpa_applies": true,
  
  
  
"ccpa_opt_out": true,
  
  
  
"ccpa_opt_out_at": "string",
  
  
  
"privacy_region": "string",
  
  
  
"biz_postal_code": "string"
  
  
}
  
}
}

Playground​

Server
Authorization
Body

Samples​


Upload Profile Picture​

POST
/auth/upload/picture

Upload or update user profile picture. Automatically deletes previous picture if exists. Supports image optimization and cloud storage.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Request Body​

multipart/form-data
object

Image file (JPEG, PNG, WebP supported)

Format"binary"

Responses​

Picture uploaded successfully

application/json
JSON
{
  
"success": true,
  
"data": {
  
  
"picture_url": "https://cdn.example.com/users/usr_123/picture.jpg",
  
  
"file_size": 45678,
  
  
"original_size": 123456,
  
  
"compression_ratio": "63%",
  
  
"method": "cloud_config"
  
},
  
"message": "Picture uploaded successfully",
  
"timestamp": "string"
}

Playground​

Server
Authorization
Body

Samples​


Delete Profile Picture​

DELETE
/auth/upload/picture

Delete user's profile picture from cloud storage and database.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Responses​

Picture deleted successfully

application/json
JSON
{
  
"success": true,
  
"message": "Picture deleted successfully"
}

Playground​

Server
Authorization

Samples​


Onboarding​


Get Current User​

GET
/auth/user/me

Get current authenticated user/session state. Requires BOTH X-Bridge-Secret and a valid session (cookie or X-Session-ID). Returns login-compatible shape. User includes business + privacy fields when module columns exist; acquisition_* and team_size_range are never returned (write-only via onboarding complete).

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)
+
BridgeSecret

Bridge secret for backend integration

Type
API Key (header: X-Bridge-Secret)

Responses​

Current session resolved (full session or pending 2FA)

application/json
JSON
{
  
"success": true,
  
"user": {
  
  
"id": "usr_8f3k2m1q9",
  
  
"email": "[email protected]",
  
  
"name": "User",
  
  
"last_name": "Example",
  
  
"user_name": "userexample",
  
  
"user_type": "admin",
  
  
"picture": "https://cdn.example.com/profiles/user-example.jpg",
  
  
"is_verified": true,
  
  
"two_factor": true,
  
  
"lang": "es",
  
  
"metadata": {
  
  
},
  
  
"tmz": null,
  
  
"dob": null,
  
  
"display_name": null,
  
  
"first_time": false,
  
  
"gender": null,
  
  
"title": null
  
},
  
"sessionId": "ses_live_abc123xyz890",
  
"expiresAt": "2026-05-06T18:49:00.930Z"
}

Playground​

Server
Authorization

Samples​


Update User Profile​

PUT
/auth/user/me

Update authenticated user profile. Accepts core profile fields plus is_business/biz_* when ext-business is installed (400 module_not_installed otherwise). Does not accept acquisition or privacy fields — use POST /auth/user/me/onboarding/complete or /auth/user/me/privacy*.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Request Body​

application/json
JSON
{
  
"name": "John",
  
"last_name": "Doe",
  
"user_name": "johndoe",
  
"phone": "+1234567890",
  
"dob": "1990-01-01",
  
"gender": "string",
  
"title": "string",
  
"reference_id": "string",
  
"recovery_email": "string",
  
"tmz": "America/New_York",
  
"metadata": {
  
  
"additionalProperties": "string"
  
},
  
"is_business": true,
  
"biz_name": "string",
  
"biz_country": "string",
  
"biz_state": "string",
  
"biz_position": "string",
  
"biz_postal_code": "string"
}

Responses​

Profile updated successfully

application/json
JSON
{
  
"success": true,
  
"data": {
  
  
"user": {
  
  
  
"id": "usr_abc123",
  
  
  
"email": "[email protected]",
  
  
  
"name": "John",
  
  
  
"last_name": "Doe",
  
  
  
"user_name": "johndoe",
  
  
  
"user_type": "customer",
  
  
  
"picture": "https://storage.pubflow.com/users/usr_abc123/picture.jpg",
  
  
  
"phone": "+1234567890",
  
  
  
"is_verified": true,
  
  
  
"two_factor": false,
  
  
  
"created_at": "2025-12-07T10:00:00Z",
  
  
  
"updated_at": "2025-12-07T10:00:00Z",
  
  
  
"first_time": true,
  
  
  
"title": "string",
  
  
  
"is_business": true,
  
  
  
"biz_name": "string",
  
  
  
"biz_country": "string",
  
  
  
"biz_state": "string",
  
  
  
"biz_position": "string",
  
  
  
"gdpr_consent": true,
  
  
  
"gdpr_consent_at": "string",
  
  
  
"gdpr_consent_version": "string",
  
  
  
"ccpa_applies": true,
  
  
  
"ccpa_opt_out": true,
  
  
  
"ccpa_opt_out_at": "string",
  
  
  
"privacy_region": "string",
  
  
  
"biz_postal_code": "string"
  
  
}
  
}
}

Playground​

Server
Authorization
Body

Samples​


Search and List Users​

GET
/auth/admin/users

Deprecated OpenAPI path alias. Prefer GET /auth/users (runtime). Same filters as adminListUsers.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Query Parameters

q

Search query (email, name, username)

Type
string
userType

Filter by user type

Type
string
Example"customer"
page

Page number

Type
integer
Default
1
limit

Items per page

Type
integer
Default
10
is_business

Filter by business flag (requires ext-business)

Type
boolean
biz_country

Filter by ISO alpha-2 country (requires ext-business)

Type
string
Min Length
2
Max Length
2
privacy_region

Filter by privacy region (requires ext-privacy)

Type
string
Valid values
"eu""ca""eu_ca""global"

Responses​

Users list retrieved successfully

application/json
JSON
{
  
"success": true,
  
"data": {
  
  
"users": [
  
  
  
{
  
  
  
  
"id": "usr_abc123",
  
  
  
  
"email": "[email protected]",
  
  
  
  
"name": "John",
  
  
  
  
"last_name": "Doe",
  
  
  
  
"user_name": "johndoe",
  
  
  
  
"user_type": "customer",
  
  
  
  
"picture": "https://storage.pubflow.com/users/usr_abc123/picture.jpg",
  
  
  
  
"phone": "+1234567890",
  
  
  
  
"is_verified": true,
  
  
  
  
"two_factor": false,
  
  
  
  
"created_at": "2025-12-07T10:00:00Z",
  
  
  
  
"updated_at": "2025-12-07T10:00:00Z",
  
  
  
  
"first_time": true,
  
  
  
  
"title": "string",
  
  
  
  
"is_business": true,
  
  
  
  
"biz_name": "string",
  
  
  
  
"biz_country": "string",
  
  
  
  
"biz_state": "string",
  
  
  
  
"biz_position": "string",
  
  
  
  
"gdpr_consent": true,
  
  
  
  
"gdpr_consent_at": "string",
  
  
  
  
"gdpr_consent_version": "string",
  
  
  
  
"ccpa_applies": true,
  
  
  
  
"ccpa_opt_out": true,
  
  
  
  
"ccpa_opt_out_at": "string",
  
  
  
  
"privacy_region": "string",
  
  
  
  
"biz_postal_code": "string"
  
  
  
}
  
  
],
  
  
"pagination": {
  
  
  
"page": 1,
  
  
  
"limit": 20,
  
  
  
"total": 150,
  
  
  
"pages": 8
  
  
}
  
}
}

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Get User Details​

GET
/auth/admin/users/{user_id}

Get specific user details including sessions. Response includes business + privacy fields when module columns exist; acquisition_* is never returned (write-only).

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Path Parameters

user_id*

User ID

Type
string
Required
Example"usr_123abc"

Responses​

User details retrieved successfully

application/json
JSON
{
  
"success": true,
  
"data": {
  
  
"user": {
  
  
  
"id": "usr_abc123",
  
  
  
"email": "[email protected]",
  
  
  
"name": "John",
  
  
  
"last_name": "Doe",
  
  
  
"user_name": "johndoe",
  
  
  
"user_type": "customer",
  
  
  
"picture": "https://storage.pubflow.com/users/usr_abc123/picture.jpg",
  
  
  
"phone": "+1234567890",
  
  
  
"is_verified": true,
  
  
  
"two_factor": false,
  
  
  
"created_at": "2025-12-07T10:00:00Z",
  
  
  
"updated_at": "2025-12-07T10:00:00Z",
  
  
  
"first_time": true,
  
  
  
"title": "string",
  
  
  
"is_business": true,
  
  
  
"biz_name": "string",
  
  
  
"biz_country": "string",
  
  
  
"biz_state": "string",
  
  
  
"biz_position": "string",
  
  
  
"gdpr_consent": true,
  
  
  
"gdpr_consent_at": "string",
  
  
  
"gdpr_consent_version": "string",
  
  
  
"ccpa_applies": true,
  
  
  
"ccpa_opt_out": true,
  
  
  
"ccpa_opt_out_at": "string",
  
  
  
"privacy_region": "string",
  
  
  
"biz_postal_code": "string"
  
  
},
  
  
"sessions": [
  
  
  
{
  
  
  
  
"id": "string",
  
  
  
  
"sessionPrefix": "string",
  
  
  
  
"ipAddress": "string",
  
  
  
  
"userAgent": "string",
  
  
  
  
"userDevice": "string",
  
  
  
  
"lastUsedAt": "string",
  
  
  
  
"createdAt": "string",
  
  
  
  
"expiresAt": "string",
  
  
  
  
"status": "string"
  
  
  
}
  
  
],
  
  
"sessionCount": 3
  
}
}

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Complete Onboarding​

POST
/auth/user/me/onboarding/complete

Sets first_time=false. Optional acquisition/business/privacy persist when module schema is installed. Re-callable upsert. Acquisition is write-only (not returned on GET). Prefer /auth/user/me/privacy* for post-wizard GDPR/CCPA. Rate-limited via Ultra (10 / 10 min).

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Request Body​

application/json
JSON
{
  
"title": "string",
  
"acquisition_channel": "string",
  
"acquisition_source": "string",
  
"acquisition_detail": "string",
  
"team_size_range": "string",
  
"is_business": true,
  
"biz_name": "string",
  
"biz_country": "string",
  
"biz_state": "string",
  
"biz_position": "string",
  
"biz_postal_code": "string",
  
"gdpr_consent": true,
  
"gdpr_consent_version": "string",
  
"ccpa_applies": true,
  
"ccpa_opt_out": true,
  
"privacy_region": "string"
}

Responses​

Onboarding completed

application/json
JSON
{
  
"success": true,
  
"message": "string",
  
"data": {
  
  
"first_time": false,
  
  
"updated_at": "string",
  
  
"optional_fields_persisted": true
  
}
}

Playground​

Server
Authorization
Body

Samples​


Search and List Users​

GET
/auth/admin/users

Deprecated OpenAPI path alias. Prefer GET /auth/users (runtime). Same filters as adminListUsers.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Query Parameters

q

Search query (email, name, username)

Type
string
userType

Filter by user type

Type
string
Example"customer"
page

Page number

Type
integer
Default
1
limit

Items per page

Type
integer
Default
10
is_business

Filter by business flag (requires ext-business)

Type
boolean
biz_country

Filter by ISO alpha-2 country (requires ext-business)

Type
string
Min Length
2
Max Length
2
privacy_region

Filter by privacy region (requires ext-privacy)

Type
string
Valid values
"eu""ca""eu_ca""global"

Responses​

Users list retrieved successfully

application/json
JSON
{
  
"success": true,
  
"data": {
  
  
"users": [
  
  
  
{
  
  
  
  
"id": "usr_abc123",
  
  
  
  
"email": "[email protected]",
  
  
  
  
"name": "John",
  
  
  
  
"last_name": "Doe",
  
  
  
  
"user_name": "johndoe",
  
  
  
  
"user_type": "customer",
  
  
  
  
"picture": "https://storage.pubflow.com/users/usr_abc123/picture.jpg",
  
  
  
  
"phone": "+1234567890",
  
  
  
  
"is_verified": true,
  
  
  
  
"two_factor": false,
  
  
  
  
"created_at": "2025-12-07T10:00:00Z",
  
  
  
  
"updated_at": "2025-12-07T10:00:00Z",
  
  
  
  
"first_time": true,
  
  
  
  
"title": "string",
  
  
  
  
"is_business": true,
  
  
  
  
"biz_name": "string",
  
  
  
  
"biz_country": "string",
  
  
  
  
"biz_state": "string",
  
  
  
  
"biz_position": "string",
  
  
  
  
"gdpr_consent": true,
  
  
  
  
"gdpr_consent_at": "string",
  
  
  
  
"gdpr_consent_version": "string",
  
  
  
  
"ccpa_applies": true,
  
  
  
  
"ccpa_opt_out": true,
  
  
  
  
"ccpa_opt_out_at": "string",
  
  
  
  
"privacy_region": "string",
  
  
  
  
"biz_postal_code": "string"
  
  
  
}
  
  
],
  
  
"pagination": {
  
  
  
"page": 1,
  
  
  
"limit": 20,
  
  
  
"total": 150,
  
  
  
"pages": 8
  
  
}
  
}
}

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Acquisition analytics breakdown​

GET
/auth/admin/analytics/acquisition

Group users by acquisition_channel or acquisition_source. Optional from/to on acquisition_at. Requires onboarding core columns. 404 module_not_installed otherwise. Ultra rate limit 60/10min. Requires admin/superadmin. Privacy/onboarding module — not USER_ANALYTICS MCU.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Query Parameters

group_by
Type
string
Valid values
"channel""source"
Default
"channel"
from

ISO date lower bound on acquisition_at

Type
string
to

ISO date upper bound on acquisition_at

Type
string

Responses​

Breakdown items with count and pct

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Acquisition funnel by source​

GET
/auth/admin/analytics/acquisition/funnel

Per acquisition_source: count, verified_count, converted_count (first_time=false). Optional channel filter. Requires onboarding core columns. Requires admin/superadmin. Privacy/onboarding module — not USER_ANALYTICS MCU.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Query Parameters

channel

Optional acquisition_channel filter

Type
string

Responses​

Funnel items

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Get Current User​

GET
/auth/user/me

Get current authenticated user/session state. Requires BOTH X-Bridge-Secret and a valid session (cookie or X-Session-ID). Returns login-compatible shape. User includes business + privacy fields when module columns exist; acquisition_* and team_size_range are never returned (write-only via onboarding complete).

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)
+
BridgeSecret

Bridge secret for backend integration

Type
API Key (header: X-Bridge-Secret)

Responses​

Current session resolved (full session or pending 2FA)

application/json
JSON
{
  
"success": true,
  
"user": {
  
  
"id": "usr_8f3k2m1q9",
  
  
"email": "[email protected]",
  
  
"name": "User",
  
  
"last_name": "Example",
  
  
"user_name": "userexample",
  
  
"user_type": "admin",
  
  
"picture": "https://cdn.example.com/profiles/user-example.jpg",
  
  
"is_verified": true,
  
  
"two_factor": true,
  
  
"lang": "es",
  
  
"metadata": {
  
  
},
  
  
"tmz": null,
  
  
"dob": null,
  
  
"display_name": null,
  
  
"first_time": false,
  
  
"gender": null,
  
  
"title": null
  
},
  
"sessionId": "ses_live_abc123xyz890",
  
"expiresAt": "2026-05-06T18:49:00.930Z"
}

Playground​

Server
Authorization

Samples​


Get User Details​

GET
/auth/admin/users/{user_id}

Get specific user details including sessions. Response includes business + privacy fields when module columns exist; acquisition_* is never returned (write-only).

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Path Parameters

user_id*

User ID

Type
string
Required
Example"usr_123abc"

Responses​

User details retrieved successfully

application/json
JSON
{
  
"success": true,
  
"data": {
  
  
"user": {
  
  
  
"id": "usr_abc123",
  
  
  
"email": "[email protected]",
  
  
  
"name": "John",
  
  
  
"last_name": "Doe",
  
  
  
"user_name": "johndoe",
  
  
  
"user_type": "customer",
  
  
  
"picture": "https://storage.pubflow.com/users/usr_abc123/picture.jpg",
  
  
  
"phone": "+1234567890",
  
  
  
"is_verified": true,
  
  
  
"two_factor": false,
  
  
  
"created_at": "2025-12-07T10:00:00Z",
  
  
  
"updated_at": "2025-12-07T10:00:00Z",
  
  
  
"first_time": true,
  
  
  
"title": "string",
  
  
  
"is_business": true,
  
  
  
"biz_name": "string",
  
  
  
"biz_country": "string",
  
  
  
"biz_state": "string",
  
  
  
"biz_position": "string",
  
  
  
"gdpr_consent": true,
  
  
  
"gdpr_consent_at": "string",
  
  
  
"gdpr_consent_version": "string",
  
  
  
"ccpa_applies": true,
  
  
  
"ccpa_opt_out": true,
  
  
  
"ccpa_opt_out_at": "string",
  
  
  
"privacy_region": "string",
  
  
  
"biz_postal_code": "string"
  
  
},
  
  
"sessions": [
  
  
  
{
  
  
  
  
"id": "string",
  
  
  
  
"sessionPrefix": "string",
  
  
  
  
"ipAddress": "string",
  
  
  
  
"userAgent": "string",
  
  
  
  
"userDevice": "string",
  
  
  
  
"lastUsedAt": "string",
  
  
  
  
"createdAt": "string",
  
  
  
  
"expiresAt": "string",
  
  
  
  
"status": "string"
  
  
  
}
  
  
],
  
  
"sessionCount": 3
  
}
}

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Get Privacy Status​

GET
/auth/user/me/privacy

Returns GDPR/CCPA/privacy_region for the authenticated user. 404 module_not_installed if ext-privacy columns missing.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Responses​

Privacy status

application/json
JSON
{
  
"success": true,
  
"data": {
  
  
"privacy_region": "string",
  
  
"gdpr_consent": true,
  
  
"gdpr_consent_at": "string",
  
  
"gdpr_consent_version": "string",
  
  
"ccpa_applies": true,
  
  
"ccpa_opt_out": true,
  
  
"ccpa_opt_out_at": "string"
  
}
}

Playground​

Server
Authorization

Samples​


Record GDPR Consent​

POST
/auth/user/me/privacy/gdpr-consent

Set gdpr_consent (server sets gdpr_consent_at when true). Optional policy_version and privacy_region. Ultra rate limit 20/10min.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Request Body​

application/json
JSON
{
  
"consent": true,
  
"policy_version": "string",
  
"privacy_region": "string"
}

Responses​

Consent updated

Playground​

Server
Authorization
Body

Samples​


Withdraw GDPR Consent​

DELETE
/auth/user/me/privacy/gdpr-consent

Sets gdpr_consent=false for the authenticated user. Keeps historical at/version for audit.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Responses​

Consent withdrawn

Playground​

Server
Authorization

Samples​


CCPA Opt-Out​

POST
/auth/user/me/privacy/ccpa-opt-out

Set ccpa_opt_out; server sets ccpa_opt_out_at when true.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Request Body​

application/json
JSON
{
  
"opt_out": true
}

Responses​

Opt-out updated

Playground​

Server
Authorization
Body

Samples​


Admin privacy override​

PATCH
/auth/admin/users/{user_id}/privacy

Admin/superadmin override of privacy_region / GDPR / CCPA fields for a user. Requires ext-privacy. Ultra 30/10min.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Path Parameters

user_id*
Type
string
Required

Request Body​

application/json
JSON
{
  
"privacy_region": "string",
  
"gdpr_consent": true,
  
"gdpr_consent_version": "string",
  
"ccpa_applies": true,
  
"ccpa_opt_out": true
}

Responses​

Updated user profile (biz + privacy; no acquisition)

Playground​

Server
Authorization
Variables
Key
Value
Body

Samples​


Request Password Reset​

POST
/auth/password-reset/request

Request a password reset email

Request Body​

application/json
JSON
{
  
"email": "[email protected]"
}

Responses​

Password reset email sent

application/json
JSON
{
  
"success": true,
  
"message": "If your email is registered, you will receive password reset instructions."
}

Playground​

Server
Body

Samples​


Complete Password Reset​

POST
/auth/password-reset/complete

Reset password using token from email

Request Body​

application/json
JSON
{
  
"token": "reset_token_abc123",
  
"password": "NewSecurePass123!"
}

Responses​

Password reset successful

application/json
JSON
{
  
"success": true,
  
"message": "Password reset successfully"
}

Playground​

Server
Body

Samples​


Validate Password Reset Token​

POST
/auth/password-reset/validate

Validate a password reset token before allowing password change. This endpoint checks if the token is valid and not expired.

Request Body​

application/json
JSON
{
  
"token": "reset_abc123def456"
}

Responses​

Token validation result

application/json
JSON
{
  
"valid": true,
  
"message": "Token is valid"
}

Playground​

Server
Body

Samples​


Change Password​

POST
/auth/password-change/self

Change password for authenticated user. Requires current password for security. New password must be at least 8 characters.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Request Body​

application/json
JSON
{
  
"current_password": "OldPass123!",
  
"new_password": "NewPass123!"
}

Responses​

Password changed successfully

application/json
JSON
{
  
"success": true,
  
"message": "Password updated successfully"
}

Playground​

Server
Authorization
Body

Samples​


Validate Session​

GET
/auth/validation

Validate the current session and return user information. Session can be provided via X-Session-ID header or session_id cookie. If session is pending 2FA, returns requires_2fa and available_methods.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Responses​

Session is valid or pending 2FA

application/json
JSON
{
  
"success": true,
  
"user": {
  
  
"id": "usr_123abc",
  
  
"email": "[email protected]",
  
  
"name": "John",
  
  
"last_name": "Doe",
  
  
"user_name": "johndoe",
  
  
"user_type": "customer",
  
  
"is_verified": true,
  
  
"two_factor": true
  
},
  
"session": {
  
  
"two_factor_verified": 1
  
}
}

Playground​

Server
Authorization

Samples​


Validate Session (Bridge)​

POST
/auth/bridge/validate

Validate a session token for bridge integration. Requires X-Bridge-Secret header. Session ID can be provided in JSON body, query parameter, or X-Session-ID header.

Authorizations​

BridgeSecret

Bridge secret for backend integration

Type
API Key (header: X-Bridge-Secret)

Parameters​

Query Parameters

session_id

Session ID as query parameter (alternative to body)

Type
string

Request Body​

application/json
JSON
{
  
"session_id": "ses_xyz789abc123"
}

Responses​

Session is valid - Returns user and session information

application/json
JSON
{
  
"success": true,
  
"user": {
  
  
"id": "usr_123abc",
  
  
"email": "[email protected]",
  
  
"name": "John",
  
  
"last_name": "Doe",
  
  
"user_name": "johndoe",
  
  
"user_type": "customer",
  
  
"picture": "string",
  
  
"phone": "string",
  
  
"is_verified": true,
  
  
"two_factor": false
  
},
  
"session": {
  
  
"id": "ses_xyz789",
  
  
"userId": "usr_123abc",
  
  
"expiresAt": "string",
  
  
"ipAddress": "192.168.1.1",
  
  
"userAgent": "string",
  
  
"lastUsedAt": "string",
  
  
"two_factor_verified": 1
  
},
  
"expires_at": "string",
  
"cached": true,
  
"cacheSource": "ultra",
  
"timestamp": "string"
}

Playground​

Server
Authorization
Variables
Key
Value
Body

Samples​


Get Current Session​

GET
/auth/session/current

Resolve the current session state from the HTTP-only session cookie. Used by the frontend after a social OAuth callback in cookie mode to determine whether the user has a full session or a pending 2FA session, without the session token ever appearing in the URL.

Typical usage: After a social login redirect with ?social_login=success and no session_id in the URL, the frontend calls this endpoint with credentials: 'include' to get the session state.

Responses​

Session resolved successfully

application/json
JSON
{
  
"success": true,
  
"sessionId": "ses_xyz789abc123",
  
"requires_2fa": false,
  
"user": {
  
  
"id": "usr_123abc",
  
  
"email": "[email protected]",
  
  
"name": "John"
  
},
  
"expiresAt": "2026-04-13T12:00:00.000Z"
}

Playground​

Samples​


Create Verification Token​

POST
/auth/token/login

Create a verification token for email or phone authentication. Sends a verification code via email or SMS. Requires X-Bridge-Secret header.

Authorizations​

BridgeSecret

Bridge secret for backend integration

Type
API Key (header: X-Bridge-Secret)

Request Body​

application/json
JSON
{
  
"identifier": "[email protected]",
  
"type": "email",
  
"redirect_url": "https://example.com/dashboard"
}

Responses​

Verification token created and sent successfully

application/json
JSON
{
  
"success": true,
  
"message": "Verification email sent successfully",
  
"token_id": "tok_abc123"
}

Playground​

Server
Authorization
Body

Samples​


Validate Token (GET)​

GET
/auth/token/validate

Validate a verification token via query parameter and create a session. Requires X-Bridge-Secret header.

Authorizations​

BridgeSecret

Bridge secret for backend integration

Type
API Key (header: X-Bridge-Secret)

Parameters​

Query Parameters

token*

Verification token

Type
string
Required
Example"tok_abc123def456"

Responses​

Token validated successfully

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Validate Token (POST)​

POST
/auth/token/validate

Validate a verification token and create a session. Token can be provided in JSON body or query parameter. Requires X-Bridge-Secret header.

Authorizations​

BridgeSecret

Bridge secret for backend integration

Type
API Key (header: X-Bridge-Secret)

Parameters​

Query Parameters

token

Token as query parameter (alternative to body)

Type
string

Request Body​

application/json
JSON
{
  
"token": "tok_abc123def456"
}

Responses​

Token validated successfully - Returns user and session

application/json
JSON
{
  
"success": true,
  
"message": "Token validated successfully",
  
"user": {
  
  
"id": "usr_123abc",
  
  
"email": "[email protected]",
  
  
"name": "John",
  
  
"lastName": "Doe",
  
  
"userName": "johndoe",
  
  
"userType": "customer",
  
  
"isVerified": true
  
},
  
"sessionId": "ses_xyz789",
  
"expiresAt": "string"
}

Playground​

Server
Authorization
Variables
Key
Value
Body

Samples​


Email Verification Link​

GET
/auth/token/verify

Email verification endpoint for clicking verification links. No authentication required. Returns HTML page with verification status.

Parameters​

Query Parameters

token*

Verification token from email link

Type
string
Required
redirect

Optional redirect URL after successful verification

Type
string

Responses​

HTML page showing verification result

text/html
JSON
"<html><body><h1>Verification Successful</h1></body></html>"

Playground​

Server
Variables
Key
Value

Samples​


Start OAuth Flow​

GET
/auth/social/{provider}/login

⚠️ BETA FEATURE - Initiate OAuth authentication flow with a social provider (Google, GitHub, Facebook, Apple, Discord, Microsoft). Redirects to provider's login page.

Parameters​

Path Parameters

provider*

Social authentication provider

Type
string
Required
Valid values
"google""github""facebook""apple""discord""microsoft"

Responses​

Redirect to OAuth provider login page

Playground​

Server
Variables
Key
Value

Samples​


OAuth Callback Handler​

GET
/auth/social/{provider}/callback

⚠️ BETA FEATURE - Handle OAuth callback from social provider. This endpoint is called automatically by the OAuth provider after user authentication.

Web redirect behavior:

  • Full session (no 2FA): Redirects to {FRONTEND_URL}/login?social_login=success&provider={provider}. Session token is delivered via HTTP-only cookie — the frontend calls GET /auth/session/current to resolve it.
  • 2FA required: Redirects to {FRONTEND_URL}/login?social_login=success&requires_2fa=true&session_id={partial_session_id}&provider={provider}. The partial session_id is always included in the URL for the 2FA case, even when callback_mode=cookie is configured. This is necessary because Safari ITP and privacy-focused browsers block cookies set during cross-origin OAuth redirect chains, making cookie-only delivery unreliable for the 2FA step. The partial session expires in 5 minutes and still requires a valid OTP code.

Parameters​

Path Parameters

provider*
Type
string
Required
Valid values
"google""github""facebook""apple""discord""microsoft"

Query Parameters

code*

Authorization code from OAuth provider

Type
string
Required
format

Response format (json for API clients, omit for web redirect)

Type
string
Valid values
"json"

Responses​

Authentication successful (API format)

application/json
JSON
{
  
"success": true,
  
"user": {
  
  
"id": "usr_abc123",
  
  
"email": "[email protected]",
  
  
"name": "John",
  
  
"last_name": "Doe",
  
  
"user_name": "johndoe",
  
  
"user_type": "customer",
  
  
"picture": "https://storage.pubflow.com/users/usr_abc123/picture.jpg",
  
  
"phone": "+1234567890",
  
  
"is_verified": true,
  
  
"two_factor": false,
  
  
"created_at": "2025-12-07T10:00:00Z",
  
  
"updated_at": "2025-12-07T10:00:00Z",
  
  
"first_time": true,
  
  
"title": "string",
  
  
"is_business": true,
  
  
"biz_name": "string",
  
  
"biz_country": "string",
  
  
"biz_state": "string",
  
  
"biz_position": "string",
  
  
"gdpr_consent": true,
  
  
"gdpr_consent_at": "string",
  
  
"gdpr_consent_version": "string",
  
  
"ccpa_applies": true,
  
  
"ccpa_opt_out": true,
  
  
"ccpa_opt_out_at": "string",
  
  
"privacy_region": "string",
  
  
"biz_postal_code": "string"
  
},
  
"sessionId": "ses_xyz789",
  
"expiresAt": "string",
  
"loginType": "social_auth",
  
"provider": "google"
}

Playground​

Server
Variables
Key
Value

Samples​


API-Based Social Login (Mobile)​

POST
/auth/social/{provider}/login-api

⚠️ BETA FEATURE - Authenticate using social provider access token or ID token. Designed for mobile apps that handle OAuth flow client-side.

Parameters​

Path Parameters

provider*
Type
string
Required
Valid values
"google""github""facebook""apple""discord""microsoft"

Request Body​

application/json
JSON
{
  
"idToken": "eyJhbGciOiJSUzI1NiIs..."
}

Responses​

Authentication successful

application/json
JSON
{
  
"success": true,
  
"user": {
  
  
"id": "usr_abc123",
  
  
"email": "[email protected]",
  
  
"name": "John",
  
  
"last_name": "Doe",
  
  
"user_name": "johndoe",
  
  
"user_type": "customer",
  
  
"picture": "https://storage.pubflow.com/users/usr_abc123/picture.jpg",
  
  
"phone": "+1234567890",
  
  
"is_verified": true,
  
  
"two_factor": false,
  
  
"created_at": "2025-12-07T10:00:00Z",
  
  
"updated_at": "2025-12-07T10:00:00Z",
  
  
"first_time": true,
  
  
"title": "string",
  
  
"is_business": true,
  
  
"biz_name": "string",
  
  
"biz_country": "string",
  
  
"biz_state": "string",
  
  
"biz_position": "string",
  
  
"gdpr_consent": true,
  
  
"gdpr_consent_at": "string",
  
  
"gdpr_consent_version": "string",
  
  
"ccpa_applies": true,
  
  
"ccpa_opt_out": true,
  
  
"ccpa_opt_out_at": "string",
  
  
"privacy_region": "string",
  
  
"biz_postal_code": "string"
  
},
  
"sessionId": "ses_xyz789",
  
"expiresAt": "string",
  
"loginType": "social_auth_api",
  
"provider": "google"
}

Playground​

Server
Variables
Key
Value
Body

Samples​


Get Available Providers​

GET
/auth/social/providers

⚠️ BETA FEATURE - Get list of enabled social authentication providers and their configuration.

Responses​

List of available providers

application/json
JSON
{
  
"success": true,
  
"data": {
  
  
"providers": [
  
  
  
{
  
  
  
  
"provider": "google",
  
  
  
  
"enabled": true,
  
  
  
  
"loginUrl": "/auth/social/google/login",
  
  
  
  
"apiLoginUrl": "/auth/social/google/login-api"
  
  
  
}
  
  
],
  
  
"allProviders": [
  
  
],
  
  
"globallyEnabled": true
  
}
}

Playground​

Samples​


Get Linked Social Accounts​

GET
/auth/social/accounts

⚠️ BETA FEATURE - Get list of social accounts linked to the authenticated user.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Responses​

List of linked social accounts

application/json
JSON
{
  
"success": true,
  
"data": {
  
  
"accounts": [
  
  
  
{
  
  
  
  
"provider": "google",
  
  
  
  
"provider_email": "[email protected]",
  
  
  
  
"provider_name": "John Doe",
  
  
  
  
"provider_picture": "string",
  
  
  
  
"linked_at": "string",
  
  
  
  
"last_updated": "string"
  
  
  
}
  
  
]
  
}
}

Playground​

Server
Authorization

Samples​


Unlink Social Account​

DELETE
/auth/social/accounts/{provider}

⚠️ BETA FEATURE - Unlink a social account from the authenticated user.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Path Parameters

provider*
Type
string
Required
Valid values
"google""github""facebook""apple""discord""microsoft"

Responses​

Account unlinked successfully

application/json
JSON
{
  
"success": true,
  
"message": "google account unlinked successfully"
}

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Email Verification​

Email verification and resend operations


Resend Verification Email​

POST
/auth/resend-verification

Resend verification email to a registered user. Requires X-Bridge-Secret header. For security, always returns success even if email doesn't exist.

Authorizations​

BridgeSecret

Bridge secret for backend integration

Type
API Key (header: X-Bridge-Secret)

Request Body​

application/json
JSON
{
  
"email": "[email protected]"
}

Responses​

Request processed successfully (doesn't reveal if email exists)

application/json
JSON
{
  
"success": true,
  
"message": "If your email is registered, you will receive a verification email.",
  
"verification_sent": true
}

Playground​

Server
Authorization
Body

Samples​


Search and List Users​

GET
/auth/admin/users

Deprecated OpenAPI path alias. Prefer GET /auth/users (runtime). Same filters as adminListUsers.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Query Parameters

q

Search query (email, name, username)

Type
string
userType

Filter by user type

Type
string
Example"customer"
page

Page number

Type
integer
Default
1
limit

Items per page

Type
integer
Default
10
is_business

Filter by business flag (requires ext-business)

Type
boolean
biz_country

Filter by ISO alpha-2 country (requires ext-business)

Type
string
Min Length
2
Max Length
2
privacy_region

Filter by privacy region (requires ext-privacy)

Type
string
Valid values
"eu""ca""eu_ca""global"

Responses​

Users list retrieved successfully

application/json
JSON
{
  
"success": true,
  
"data": {
  
  
"users": [
  
  
  
{
  
  
  
  
"id": "usr_abc123",
  
  
  
  
"email": "[email protected]",
  
  
  
  
"name": "John",
  
  
  
  
"last_name": "Doe",
  
  
  
  
"user_name": "johndoe",
  
  
  
  
"user_type": "customer",
  
  
  
  
"picture": "https://storage.pubflow.com/users/usr_abc123/picture.jpg",
  
  
  
  
"phone": "+1234567890",
  
  
  
  
"is_verified": true,
  
  
  
  
"two_factor": false,
  
  
  
  
"created_at": "2025-12-07T10:00:00Z",
  
  
  
  
"updated_at": "2025-12-07T10:00:00Z",
  
  
  
  
"first_time": true,
  
  
  
  
"title": "string",
  
  
  
  
"is_business": true,
  
  
  
  
"biz_name": "string",
  
  
  
  
"biz_country": "string",
  
  
  
  
"biz_state": "string",
  
  
  
  
"biz_position": "string",
  
  
  
  
"gdpr_consent": true,
  
  
  
  
"gdpr_consent_at": "string",
  
  
  
  
"gdpr_consent_version": "string",
  
  
  
  
"ccpa_applies": true,
  
  
  
  
"ccpa_opt_out": true,
  
  
  
  
"ccpa_opt_out_at": "string",
  
  
  
  
"privacy_region": "string",
  
  
  
  
"biz_postal_code": "string"
  
  
  
}
  
  
],
  
  
"pagination": {
  
  
  
"page": 1,
  
  
  
"limit": 20,
  
  
  
"total": 150,
  
  
  
"pages": 8
  
  
}
  
}
}

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Create New User​

POST
/auth/admin/users

Create a new user account. Requires admin or superadmin role. Only superadmin can create superadmin users. Admin-created users are verified by default.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Request Body​

application/json
JSON
{
  
"email": "[email protected]",
  
"password": "SecurePass123!",
  
"name": "John",
  
"last_name": "Doe",
  
"user_name": "johndoe",
  
"user_type": "customer",
  
"phone": "+1234567890",
  
"title": "string",
  
"is_verified": true
}

Responses​

User created successfully

application/json
JSON
{
  
"success": true,
  
"data": {
  
  
"user": {
  
  
  
"id": "usr_abc123",
  
  
  
"email": "[email protected]",
  
  
  
"name": "John",
  
  
  
"last_name": "Doe",
  
  
  
"user_name": "johndoe",
  
  
  
"user_type": "customer",
  
  
  
"picture": "https://storage.pubflow.com/users/usr_abc123/picture.jpg",
  
  
  
"phone": "+1234567890",
  
  
  
"is_verified": true,
  
  
  
"two_factor": false,
  
  
  
"created_at": "2025-12-07T10:00:00Z",
  
  
  
"updated_at": "2025-12-07T10:00:00Z",
  
  
  
"first_time": true,
  
  
  
"title": "string",
  
  
  
"is_business": true,
  
  
  
"biz_name": "string",
  
  
  
"biz_country": "string",
  
  
  
"biz_state": "string",
  
  
  
"biz_position": "string",
  
  
  
"gdpr_consent": true,
  
  
  
"gdpr_consent_at": "string",
  
  
  
"gdpr_consent_version": "string",
  
  
  
"ccpa_applies": true,
  
  
  
"ccpa_opt_out": true,
  
  
  
"ccpa_opt_out_at": "string",
  
  
  
"privacy_region": "string",
  
  
  
"biz_postal_code": "string"
  
  
}
  
}
}

Playground​

Server
Authorization
Body

Samples​


Get User Details​

GET
/auth/admin/users/{user_id}

Get specific user details including sessions. Response includes business + privacy fields when module columns exist; acquisition_* is never returned (write-only).

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Path Parameters

user_id*

User ID

Type
string
Required
Example"usr_123abc"

Responses​

User details retrieved successfully

application/json
JSON
{
  
"success": true,
  
"data": {
  
  
"user": {
  
  
  
"id": "usr_abc123",
  
  
  
"email": "[email protected]",
  
  
  
"name": "John",
  
  
  
"last_name": "Doe",
  
  
  
"user_name": "johndoe",
  
  
  
"user_type": "customer",
  
  
  
"picture": "https://storage.pubflow.com/users/usr_abc123/picture.jpg",
  
  
  
"phone": "+1234567890",
  
  
  
"is_verified": true,
  
  
  
"two_factor": false,
  
  
  
"created_at": "2025-12-07T10:00:00Z",
  
  
  
"updated_at": "2025-12-07T10:00:00Z",
  
  
  
"first_time": true,
  
  
  
"title": "string",
  
  
  
"is_business": true,
  
  
  
"biz_name": "string",
  
  
  
"biz_country": "string",
  
  
  
"biz_state": "string",
  
  
  
"biz_position": "string",
  
  
  
"gdpr_consent": true,
  
  
  
"gdpr_consent_at": "string",
  
  
  
"gdpr_consent_version": "string",
  
  
  
"ccpa_applies": true,
  
  
  
"ccpa_opt_out": true,
  
  
  
"ccpa_opt_out_at": "string",
  
  
  
"privacy_region": "string",
  
  
  
"biz_postal_code": "string"
  
  
},
  
  
"sessions": [
  
  
  
{
  
  
  
  
"id": "string",
  
  
  
  
"sessionPrefix": "string",
  
  
  
  
"ipAddress": "string",
  
  
  
  
"userAgent": "string",
  
  
  
  
"userDevice": "string",
  
  
  
  
"lastUsedAt": "string",
  
  
  
  
"createdAt": "string",
  
  
  
  
"expiresAt": "string",
  
  
  
  
"status": "string"
  
  
  
}
  
  
],
  
  
"sessionCount": 3
  
}
}

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Update User​

PUT
/auth/admin/users/{user_id}

Update user information. Requires admin or superadmin role. Non-superadmin cannot modify superadmin users. Only superadmin can change user types to/from superadmin.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Path Parameters

user_id*

User ID

Type
string
Required

Request Body​

application/json
JSON
{
  
"name": "John",
  
"last_name": "Doe",
  
"user_name": "johndoe",
  
"email": "[email protected]",
  
"phone": "+1234567890",
  
"user_type": "customer",
  
"is_verified": true,
  
"two_factor": false,
  
"title": "string"
}

Responses​

User updated successfully

application/json
JSON
{
  
"success": true,
  
"data": {
  
  
"user": {
  
  
  
"id": "usr_abc123",
  
  
  
"email": "[email protected]",
  
  
  
"name": "John",
  
  
  
"last_name": "Doe",
  
  
  
"user_name": "johndoe",
  
  
  
"user_type": "customer",
  
  
  
"picture": "https://storage.pubflow.com/users/usr_abc123/picture.jpg",
  
  
  
"phone": "+1234567890",
  
  
  
"is_verified": true,
  
  
  
"two_factor": false,
  
  
  
"created_at": "2025-12-07T10:00:00Z",
  
  
  
"updated_at": "2025-12-07T10:00:00Z",
  
  
  
"first_time": true,
  
  
  
"title": "string",
  
  
  
"is_business": true,
  
  
  
"biz_name": "string",
  
  
  
"biz_country": "string",
  
  
  
"biz_state": "string",
  
  
  
"biz_position": "string",
  
  
  
"gdpr_consent": true,
  
  
  
"gdpr_consent_at": "string",
  
  
  
"gdpr_consent_version": "string",
  
  
  
"ccpa_applies": true,
  
  
  
"ccpa_opt_out": true,
  
  
  
"ccpa_opt_out_at": "string",
  
  
  
"privacy_region": "string",
  
  
  
"biz_postal_code": "string"
  
  
}
  
}
}

Playground​

Server
Authorization
Variables
Key
Value
Body

Samples​


Change User Password (Admin)​

POST
/auth/password-change/admin

Change password for any user. Requires admin or superadmin role. Non-superadmin cannot change superadmin passwords. Invalidates all active sessions for the target user.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Request Body​

application/json
JSON
{
  
"user_id": "usr_123abc",
  
"new_password": "NewSecurePass123!"
}

Responses​

Password changed successfully

application/json
JSON
{
  
"success": true,
  
"message": "Password updated successfully. User will need to log in again."
}

Playground​

Server
Authorization
Body

Samples​


Search and List Users​

GET
/auth/admin/users

Deprecated OpenAPI path alias. Prefer GET /auth/users (runtime). Same filters as adminListUsers.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Query Parameters

q

Search query (email, name, username)

Type
string
userType

Filter by user type

Type
string
Example"customer"
page

Page number

Type
integer
Default
1
limit

Items per page

Type
integer
Default
10
is_business

Filter by business flag (requires ext-business)

Type
boolean
biz_country

Filter by ISO alpha-2 country (requires ext-business)

Type
string
Min Length
2
Max Length
2
privacy_region

Filter by privacy region (requires ext-privacy)

Type
string
Valid values
"eu""ca""eu_ca""global"

Responses​

Users list retrieved successfully

application/json
JSON
{
  
"success": true,
  
"data": {
  
  
"users": [
  
  
  
{
  
  
  
  
"id": "usr_abc123",
  
  
  
  
"email": "[email protected]",
  
  
  
  
"name": "John",
  
  
  
  
"last_name": "Doe",
  
  
  
  
"user_name": "johndoe",
  
  
  
  
"user_type": "customer",
  
  
  
  
"picture": "https://storage.pubflow.com/users/usr_abc123/picture.jpg",
  
  
  
  
"phone": "+1234567890",
  
  
  
  
"is_verified": true,
  
  
  
  
"two_factor": false,
  
  
  
  
"created_at": "2025-12-07T10:00:00Z",
  
  
  
  
"updated_at": "2025-12-07T10:00:00Z",
  
  
  
  
"first_time": true,
  
  
  
  
"title": "string",
  
  
  
  
"is_business": true,
  
  
  
  
"biz_name": "string",
  
  
  
  
"biz_country": "string",
  
  
  
  
"biz_state": "string",
  
  
  
  
"biz_position": "string",
  
  
  
  
"gdpr_consent": true,
  
  
  
  
"gdpr_consent_at": "string",
  
  
  
  
"gdpr_consent_version": "string",
  
  
  
  
"ccpa_applies": true,
  
  
  
  
"ccpa_opt_out": true,
  
  
  
  
"ccpa_opt_out_at": "string",
  
  
  
  
"privacy_region": "string",
  
  
  
  
"biz_postal_code": "string"
  
  
  
}
  
  
],
  
  
"pagination": {
  
  
  
"page": 1,
  
  
  
"limit": 20,
  
  
  
"total": 150,
  
  
  
"pages": 8
  
  
}
  
}
}

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Acquisition analytics breakdown​

GET
/auth/admin/analytics/acquisition

Group users by acquisition_channel or acquisition_source. Optional from/to on acquisition_at. Requires onboarding core columns. 404 module_not_installed otherwise. Ultra rate limit 60/10min. Requires admin/superadmin. Privacy/onboarding module — not USER_ANALYTICS MCU.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Query Parameters

group_by
Type
string
Valid values
"channel""source"
Default
"channel"
from

ISO date lower bound on acquisition_at

Type
string
to

ISO date upper bound on acquisition_at

Type
string

Responses​

Breakdown items with count and pct

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Acquisition funnel by source​

GET
/auth/admin/analytics/acquisition/funnel

Per acquisition_source: count, verified_count, converted_count (first_time=false). Optional channel filter. Requires onboarding core columns. Requires admin/superadmin. Privacy/onboarding module — not USER_ANALYTICS MCU.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Query Parameters

channel

Optional acquisition_channel filter

Type
string

Responses​

Funnel items

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Admin privacy override​

PATCH
/auth/admin/users/{user_id}/privacy

Admin/superadmin override of privacy_region / GDPR / CCPA fields for a user. Requires ext-privacy. Ultra 30/10min.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Path Parameters

user_id*
Type
string
Required

Request Body​

application/json
JSON
{
  
"privacy_region": "string",
  
"gdpr_consent": true,
  
"gdpr_consent_version": "string",
  
"ccpa_applies": true,
  
"ccpa_opt_out": true
}

Responses​

Updated user profile (biz + privacy; no acquisition)

Playground​

Server
Authorization
Variables
Key
Value
Body

Samples​


User analytics summary​

GET
/auth/admin/analytics/users/summary

KPIs including avg_age, verified_pct, optional compare=previous. Requires USER_ANALYTICS MCU enabled. Aggregates only. Multi-dialect via getKyselyDb.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Query Parameters

from
Type
string
to
Type
string
user_type
Type
string
user_types

CSV of user_type

Type
string
include_deleted
Type
boolean
lang
Type
string
gender
Type
string
title

Courtesy title / honorific code (mr, dr, mx, …)

Type
string
is_verified
Type
boolean
compare
Type
string
Valid values
"previous"

Responses​

Aggregate analytics payload (no PII)

Playground​

Server
Authorization
Variables
Key
Value

Samples​


User analytics breakdown​

GET
/auth/admin/analytics/users/breakdown

Group by allowlisted dimension. Requires USER_ANALYTICS MCU enabled. Aggregates only. Multi-dialect via getKyselyDb.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Query Parameters

from
Type
string
to
Type
string
user_type
Type
string
user_types

CSV of user_type

Type
string
include_deleted
Type
boolean
lang
Type
string
gender
Type
string
title

Courtesy title / honorific code (mr, dr, mx, …)

Type
string
is_verified
Type
boolean
compare
Type
string
Valid values
"previous"
dimension
Type
string

Responses​

Aggregate analytics payload (no PII)

Playground​

Server
Authorization
Variables
Key
Value

Samples​


User age ranges​

GET
/auth/admin/analytics/users/age

Age buckets from dob TEXT plus avg_age. Requires USER_ANALYTICS MCU enabled. Aggregates only. Multi-dialect via getKyselyDb.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Query Parameters

from
Type
string
to
Type
string
user_type
Type
string
user_types

CSV of user_type

Type
string
include_deleted
Type
boolean
lang
Type
string
gender
Type
string
title

Courtesy title / honorific code (mr, dr, mx, …)

Type
string
is_verified
Type
boolean
compare
Type
string
Valid values
"previous"

Responses​

Aggregate analytics payload (no PII)

Playground​

Server
Authorization
Variables
Key
Value

Samples​


User analytics metrics​

GET
/auth/admin/analytics/users/metrics

Request metrics CSV (avg_age, verified_pct, ...). Requires USER_ANALYTICS MCU enabled. Aggregates only. Multi-dialect via getKyselyDb.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Query Parameters

from
Type
string
to
Type
string
user_type
Type
string
user_types

CSV of user_type

Type
string
include_deleted
Type
boolean
lang
Type
string
gender
Type
string
title

Courtesy title / honorific code (mr, dr, mx, …)

Type
string
is_verified
Type
boolean
compare
Type
string
Valid values
"previous"
metrics
Type
string

Responses​

Aggregate analytics payload (no PII)

Playground​

Server
Authorization
Variables
Key
Value

Samples​


User signup cohorts​

GET
/auth/admin/analytics/users/cohorts

Cohorts by day|week|month. Requires USER_ANALYTICS MCU enabled. Aggregates only. Multi-dialect via getKyselyDb.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Query Parameters

from
Type
string
to
Type
string
user_type
Type
string
user_types

CSV of user_type

Type
string
include_deleted
Type
boolean
lang
Type
string
gender
Type
string
title

Courtesy title / honorific code (mr, dr, mx, …)

Type
string
is_verified
Type
boolean
compare
Type
string
Valid values
"previous"
granularity
Type
string
Valid values
"day""week""month"

Responses​

Aggregate analytics payload (no PII)

Playground​

Server
Authorization
Variables
Key
Value

Samples​


User analytics crosstab​

GET
/auth/admin/analytics/users/crosstab

Matrix row×col dimensions. Requires USER_ANALYTICS MCU enabled. Aggregates only. Multi-dialect via getKyselyDb.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Query Parameters

from
Type
string
to
Type
string
user_type
Type
string
user_types

CSV of user_type

Type
string
include_deleted
Type
boolean
lang
Type
string
gender
Type
string
title

Courtesy title / honorific code (mr, dr, mx, …)

Type
string
is_verified
Type
boolean
compare
Type
string
Valid values
"previous"
row
Type
string
col
Type
string

Responses​

Aggregate analytics payload (no PII)

Playground​

Server
Authorization
Variables
Key
Value

Samples​


User analytics query orchestrator​

GET
/auth/admin/analytics/users/query

Dispatch via view=summary|breakdown|age|metrics|cohorts|crosstab|completeness|churn|lifecycle. Requires USER_ANALYTICS MCU enabled. Aggregates only. Multi-dialect via getKyselyDb.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Query Parameters

from
Type
string
to
Type
string
user_type
Type
string
user_types

CSV of user_type

Type
string
include_deleted
Type
boolean
lang
Type
string
gender
Type
string
title

Courtesy title / honorific code (mr, dr, mx, …)

Type
string
is_verified
Type
boolean
compare
Type
string
Valid values
"previous"
view
Type
string

Responses​

Aggregate analytics payload (no PII)

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Profile completeness​

GET
/auth/admin/analytics/users/completeness

Fill rates for dob, gender, lang, picture, phone/mobile, biz fields. Requires USER_ANALYTICS MCU enabled. Aggregates only. Multi-dialect via getKyselyDb.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Query Parameters

from
Type
string
to
Type
string
user_type
Type
string
user_types

CSV of user_type

Type
string
include_deleted
Type
boolean
lang
Type
string
gender
Type
string
title

Courtesy title / honorific code (mr, dr, mx, …)

Type
string
is_verified
Type
boolean
compare
Type
string
Valid values
"previous"

Responses​

Aggregate analytics payload (no PII)

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Soft-delete churn​

GET
/auth/admin/analytics/users/churn

Deleted users aggregates and reason top-N (no PII dump). Requires USER_ANALYTICS MCU enabled. Aggregates only. Multi-dialect via getKyselyDb.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Query Parameters

from
Type
string
to
Type
string
user_type
Type
string
user_types

CSV of user_type

Type
string
include_deleted
Type
boolean
lang
Type
string
gender
Type
string
title

Courtesy title / honorific code (mr, dr, mx, …)

Type
string
is_verified
Type
boolean
compare
Type
string
Valid values
"previous"

Responses​

Aggregate analytics payload (no PII)

Playground​

Server
Authorization
Variables
Key
Value

Samples​


User lifecycle funnel​

GET
/auth/admin/analytics/users/lifecycle

registered → verified → onboarded → has_acquisition. Requires USER_ANALYTICS MCU enabled. Aggregates only. Multi-dialect via getKyselyDb.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Query Parameters

from
Type
string
to
Type
string
user_type
Type
string
user_types

CSV of user_type

Type
string
include_deleted
Type
boolean
lang
Type
string
gender
Type
string
title

Courtesy title / honorific code (mr, dr, mx, …)

Type
string
is_verified
Type
boolean
compare
Type
string
Valid values
"previous"

Responses​

Aggregate analytics payload (no PII)

Playground​

Server
Authorization
Variables
Key
Value

Samples​


2FA System Status​

GET
/auth/two_factor/system

Returns global two-factor toggle and available methods from environment config.

Responses​

2FA system status

application/json
JSON
{
  
"success": true,
  
"global_two_factor_enabled": true,
  
"available_methods": [
  
  
"string"
  
]
}

Playground​

Samples​


List User 2FA Methods​

GET
/auth/two_factor/methods

Returns active 2FA methods configured for current user.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Responses​

User methods

application/json
JSON
{
  
"success": true,
  
"methods": [
  
  
{
  
  
  
"id": "string",
  
  
  
"method": "string",
  
  
  
"status": "string",
  
  
  
"last_used_at": "string",
  
  
  
"metadata": {
  
  
  
  
"additionalProperties": "string"
  
  
  
}
  
  
}
  
]
}

Playground​

Server
Authorization

Samples​


Start Email 2FA Setup​

POST
/auth/two_factor/email/setup

Starts email verification flow and sends a code.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Request Body​

application/json
JSON
{
  
"email": "string"
}

Responses​

Setup started

application/json
JSON
{
  
"success": true,
  
"method_id": "string",
  
"message": "string",
  
"expires_in": 600
}

Playground​

Server
Authorization
Body

Samples​


Start SMS 2FA Setup​

POST
/auth/two_factor/sms/setup

Starts SMS verification flow and sends a code.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Request Body​

application/json
JSON
{
  
"phone": "+15551234567"
}

Responses​

Setup started

application/json
JSON
{
  
"success": true,
  
"method_id": "string",
  
"message": "string",
  
"expires_in": 600
}

Playground​

Server
Authorization
Body

Samples​


Start 2FA Challenge​

POST
/auth/two_factor/{method}/start

Resends a verification code for pending or active sessions.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Path Parameters

method*
Type
string
Required
Valid values
"email""sms"

Request Body​

application/json
JSON
{
  
"action": "login"
}

Responses​

Challenge started

application/json
JSON
{
  
"success": true,
  
"message": "string",
  
"expires_in": 600
}

Playground​

Server
Authorization
Variables
Key
Value
Body

Samples​


Verify 2FA Code​

POST
/auth/two_factor/verify

Verifies code for login, setup, or remove action.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Request Body​

application/json
JSON
{
  
"code": "string",
  
"method": "string",
  
"action": "string"
}

Responses​

Verification successful

application/json
JSON
{
  
"success": true,
  
"message": "string",
  
"user": {
  
  
"id": "string",
  
  
"email": "string",
  
  
"name": "string",
  
  
"two_factor": 0
  
}
}

Playground​

Server
Authorization
Body

Samples​


Delete 2FA Method​

DELETE
/auth/two_factor/{id}

Removes user method after re-verification.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Path Parameters

id*
Type
string
Required

Request Body​

application/json
JSON
{
  
"verification_code": "string",
  
"verification_method_id": "string"
}

Responses​

Method removed

application/json
JSON
{
  
"success": true,
  
"message": "Method removed"
}

Playground​

Server
Authorization
Variables
Key
Value
Body

Samples​


Toggle User 2FA​

POST
/auth/two_factor/toggle

Enables or disables two-factor for current account.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Request Body​

application/json
JSON
{
  
"enabled": true
}

Responses​

Toggle updated

application/json
JSON
{
  
"success": true,
  
"two_factor": true,
  
"message": "string"
}

Playground​

Server
Authorization
Body

Samples​


Check Hub Status​

GET
/api/v1/modules/install/status

Verifies if Module Hub core registry tables are installed.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Responses​

Hub status

application/json
JSON
{
  
"data": {
  
  
"installed": true,
  
  
"tables": [
  
  
  
"string"
  
  
]
  
},
  
"user_context": {
  
  
"additionalProperties": "string"
  
}
}

Playground​

Server
Authorization

Samples​


Hub Install Dry Run​

POST
/api/v1/modules/install/dry-run

Simulates installation of module hub registry/event tables.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Request Body​

application/json
JSON
{
  
"runtime_scope": "flowless-core"
}

Responses​

Dry-run plan generated

Playground​

Server
Authorization
Body

Samples​


Run Hub Install​

POST
/api/v1/modules/install/run

Installs module hub registry/event tables.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Request Body​

application/json
JSON
{
  
"runtime_scope": "flowless-core"
}

Responses​

Hub installed

Playground​

Server
Authorization
Body

Samples​


Discover Modules​

GET
/api/v1/modules/install

Discovers available modules by reading manifests.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Responses​

Available modules

application/json
JSON
{
  
"success": true,
  
"data": [
  
  
{
  
  
  
"module_id": "blog",
  
  
  
"module_version": "1.0.0",
  
  
  
"description": "Content publishing module for blog posts with optional engagement and analytics extensions.",
  
  
  
"components": [
  
  
  
  
"string"
  
  
  
],
  
  
  
"components_meta": [
  
  
  
  
{
  
  
  
  
  
"component_id": "ext-comments",
  
  
  
  
  
"component_type": "extension",
  
  
  
  
  
"version": "1.0.0",
  
  
  
  
  
"description": "Threaded comments and moderation-ready discussion data model."
  
  
  
  
}
  
  
  
],
  
  
  
"installed_components": 3
  
  
}
  
]
}

Playground​

Server
Authorization

Samples​


Check Module Status​

GET
/api/v1/modules/install/{module_id}/status

Returns status, drift and component-level health for one module.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Path Parameters

module_id*
Type
string
Required

Responses​

Module status

application/json
JSON
{
  
"success": true,
  
"data": {
  
  
"module_id": "blog",
  
  
"module_description": "Content publishing module for blog posts with optional engagement and analytics extensions.",
  
  
"runtime_scope": "flowless-core",
  
  
"module_version": "1.0.0",
  
  
"status": "installed",
  
  
"components": [
  
  
  
{
  
  
  
  
"component_id": "ext-comments",
  
  
  
  
"component_type": "extension",
  
  
  
  
"description": "Threaded comments and moderation-ready discussion data model.",
  
  
  
  
"expected_version": "1.0.0",
  
  
  
  
"installed_version": "1.0.0",
  
  
  
  
"installed": true,
  
  
  
  
"status": "installed"
  
  
  
}
  
  
]
  
}
}

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Read Module Registry​

GET
/api/v1/modules/install/{module_id}/registry

Returns registry components and audit events for one module.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Path Parameters

module_id*
Type
string
Required

Responses​

Registry entries

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Module Install Dry Run​

POST
/api/v1/modules/install/{module_id}/dry-run

Plans installation for selected module and components.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Path Parameters

module_id*
Type
string
Required

Request Body​

application/json
JSON
{
  
"target": "core",
  
"components": [
  
  
"string"
  
],
  
"runtime_scope": "flowless-core",
  
"verify_checksum": true,
  
"repair_missing": false
}

Responses​

Install plan generated

Playground​

Server
Authorization
Variables
Key
Value
Body

Samples​


Run Module Install​

POST
/api/v1/modules/install/{module_id}/run

Executes installation plan for a module.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Path Parameters

module_id*
Type
string
Required

Request Body​

application/json
JSON
{
  
"target": "core",
  
"components": [
  
  
"string"
  
],
  
"runtime_scope": "flowless-core",
  
"skip_existing": true,
  
"verify_checksum": true,
  
"repair_missing": false
}

Responses​

Module install executed

Playground​

Server
Authorization
Variables
Key
Value
Body

Samples​


Module Update Dry Run​

POST
/api/v1/modules/install/{module_id}/update/dry-run

Plans update actions for outdated or drifted components.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Path Parameters

module_id*
Type
string
Required

Request Body​

application/json
JSON
{
  
"components": [
  
  
"string"
  
],
  
"runtime_scope": "flowless-core",
  
"verify_checksum": true
}

Responses​

Update plan generated

Playground​

Server
Authorization
Variables
Key
Value
Body

Samples​


Run Module Update​

POST
/api/v1/modules/install/{module_id}/update

Applies updates to selected or all outdated components.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Path Parameters

module_id*
Type
string
Required

Request Body​

application/json
JSON
{
  
"components": [
  
  
"string"
  
],
  
"runtime_scope": "flowless-core",
  
"verify_checksum": true
}

Responses​

Update executed

Playground​

Server
Authorization
Variables
Key
Value
Body

Samples​


Blog​


List Blog Posts​

GET
/api/v1/posts

Lists posts with pagination, sorting and content filters. Supports CPT filter ?type= when Post Types is enabled.

Parameters​

Query Parameters

page
Type
integer
Minimum
1
Default
1
limit
Type
integer
Minimum
1
Maximum
100
Default
10
sort
Type
string
Valid values
"created_at""published_at""updated_at""title"
order
Type
string
Valid values
"asc""desc"
Default
"desc"
status
Type
string
visibility
Type
string
category
Type
string
tag
Type
string
author
Type
string
q
Type
string
lang
Type
string
type

Filter by post_type (CPT). Ignored when Post Types is disabled.

Type
string

Responses​

Posts list

Playground​

Server
Variables
Key
Value

Samples​


Create Blog Post​

POST
/api/v1/posts

Creates a blog post for writer/admin roles. When CPT is enabled, send post_type and custom_fields. Approval/scheduling/password behaviors may apply.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Request Body​

application/json
JSON
{
  
"title": "string",
  
"slug": "string",
  
"body": "string",
  
"body_format": "string",
  
"excerpt": "string",
  
"featured_image": "string",
  
"status": "string",
  
"visibility": "string",
  
"password": "string",
  
"category_ids": [
  
  
"string"
  
],
  
"tag_ids": [
  
  
"string"
  
],
  
"comments_enabled": true,
  
"reactions_enabled": true,
  
"scheduled_at": "string",
  
"metadata": {
  
  
"additionalProperties": "string"
  
},
  
"post_type": "string",
  
"custom_fields": {
  
  
"additionalProperties": "string"
  
}
}

Responses​

Post created

Playground​

Server
Authorization
Body

Samples​


Get Author Profile​

GET
/api/v1/posts/authors/{id}

Returns public author profile metadata.

Parameters​

Path Parameters

id*
Type
string
Required

Responses​

Author profile

Playground​

Server
Variables
Key
Value

Samples​


Get Blog Post by Slug​

GET
/api/v1/posts/{slug}

Parameters​

Path Parameters

slug*
Type
string
Required

Query Parameters

lang
Type
string

Responses​

Post details

Playground​

Server
Variables
Key
Value

Samples​


Get Blog Post by Id​

GET
/api/v1/posts/id/{id}

Parameters​

Path Parameters

id*
Type
string
Required

Responses​

Post details

Playground​

Server
Variables
Key
Value

Samples​


Update Blog Post​

PUT
/api/v1/posts/{id}

Updates a blog post. CPT: custom_fields updatable; post_type locked; APPROVAL_REQUIRED may apply on publish.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Path Parameters

id*
Type
string
Required

Request Body​

application/json
JSON
{
  
"post_type": "string",
  
"custom_fields": {
  
  
"additionalProperties": "string"
  
},
  
"title": "string",
  
"slug": "string",
  
"body": "string",
  
"body_format": "string",
  
"excerpt": "string",
  
"status": "string",
  
"visibility": "string",
  
"password": "string",
  
"category_ids": [
  
  
"string"
  
],
  
"tag_ids": [
  
  
"string"
  
],
  
"comments_enabled": true,
  
"reactions_enabled": true,
  
"scheduled_at": "string",
  
"metadata": {
  
  
"additionalProperties": "string"
  
},
  
"additionalProperties": "string"
}

Responses​

Post updated

Playground​

Server
Authorization
Variables
Key
Value
Body

Samples​


Delete Blog Post​

DELETE
/api/v1/posts/{id}

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Path Parameters

id*
Type
string
Required

Responses​

Post deleted

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Publish Blog Post​

POST
/api/v1/posts/{id}/publish

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Path Parameters

id*
Type
string
Required

Responses​

Post published

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Unpublish Blog Post​

POST
/api/v1/posts/{id}/unpublish

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Path Parameters

id*
Type
string
Required

Responses​

Post moved to draft

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Schedule Blog Post​

POST
/api/v1/posts/{id}/schedule

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Path Parameters

id*
Type
string
Required

Request Body​

application/json
JSON
{
  
"scheduled_at": "string"
}

Responses​

Post scheduled

Playground​

Server
Authorization
Variables
Key
Value
Body

Samples​


Restore Blog Post​

POST
/api/v1/posts/{id}/restore

Restores a soft-deleted post.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Path Parameters

id*
Type
string
Required

Responses​

Post restored

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Upload Featured Image​

POST
/api/v1/posts/{id}/featured-image

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Path Parameters

id*
Type
string
Required

Request Body​

multipart/form-data
object
Format"binary"

Responses​

Featured image updated

Playground​

Server
Authorization
Variables
Key
Value
Body

Samples​


Delete Featured Image​

DELETE
/api/v1/posts/{id}/featured-image

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Path Parameters

id*
Type
string
Required

Responses​

Featured image removed

Playground​

Server
Authorization
Variables
Key
Value

Samples​


List Blog Categories​

GET
/api/v1/posts/categories

Responses​

Categories list

Playground​

Samples​


Create Blog Category​

POST
/api/v1/posts/categories

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Request Body​

application/json
JSON
{
  
"name": "string",
  
"slug": "string"
}

Responses​

Category created

Playground​

Server
Authorization
Body

Samples​


Update Blog Category​

PUT
/api/v1/posts/categories/{id}

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Path Parameters

id*
Type
string
Required

Request Body​

application/json
JSON
{
  
"additionalProperties": "string"
}

Responses​

Category updated

Playground​

Server
Authorization
Variables
Key
Value
Body

Samples​


Delete Blog Category​

DELETE
/api/v1/posts/categories/{id}

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Path Parameters

id*
Type
string
Required

Responses​

Category deleted

Playground​

Server
Authorization
Variables
Key
Value

Samples​


List Blog Tags​

GET
/api/v1/posts/tags

Responses​

Tags list

Playground​

Samples​


Create Blog Tag​

POST
/api/v1/posts/tags

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Request Body​

application/json
JSON
{
  
"name": "string",
  
"slug": "string"
}

Responses​

Tag created

Playground​

Server
Authorization
Body

Samples​


Update Blog Tag​

PUT
/api/v1/posts/tags/{id}

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Path Parameters

id*
Type
string
Required

Request Body​

application/json
JSON
{
  
"additionalProperties": "string"
}

Responses​

Tag updated

Playground​

Server
Authorization
Variables
Key
Value
Body

Samples​


Delete Blog Tag​

DELETE
/api/v1/posts/tags/{id}

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Path Parameters

id*
Type
string
Required

Responses​

Tag deleted

Playground​

Server
Authorization
Variables
Key
Value

Samples​


List Blog Comments​

GET
/api/v1/posts/{id}/comments

Parameters​

Path Parameters

id*
Type
string
Required

Responses​

Comments list

Playground​

Server
Variables
Key
Value

Samples​


Create Blog Comment​

POST
/api/v1/posts/{id}/comments

Parameters​

Path Parameters

id*
Type
string
Required

Request Body​

application/json
JSON
{
  
"content": "string",
  
"parent_comment_id": "string",
  
"metadata": {
  
  
"additionalProperties": "string"
  
}
}

Responses​

Comment created

Playground​

Server
Variables
Key
Value
Body

Samples​


Update Blog Comment​

PUT
/api/v1/posts/{id}/comments/{commentId}

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Path Parameters

id*
Type
string
Required
commentId*
Type
string
Required

Request Body​

application/json
JSON
{
  
"content": "string"
}

Responses​

Comment updated

Playground​

Server
Authorization
Variables
Key
Value
Body

Samples​


Delete Blog Comment​

DELETE
/api/v1/posts/{id}/comments/{commentId}

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Path Parameters

id*
Type
string
Required
commentId*
Type
string
Required

Responses​

Comment deleted

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Moderate Blog Comment​

POST
/api/v1/posts/comments/{commentId}/moderate

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Path Parameters

commentId*
Type
string
Required

Request Body​

application/json
JSON
{
  
"status": "string",
  
"reason": "string"
}

Responses​

Moderation applied

Playground​

Server
Authorization
Variables
Key
Value
Body

Samples​


Get Post Reactions​

GET
/api/v1/posts/{id}/reactions

Parameters​

Path Parameters

id*
Type
string
Required

Responses​

Reaction counts

Playground​

Server
Variables
Key
Value

Samples​


Add or Toggle Reaction​

POST
/api/v1/posts/{id}/reactions

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Path Parameters

id*
Type
string
Required

Request Body​

application/json
JSON
{
  
"reaction": "like"
}

Responses​

Reaction updated

Playground​

Server
Authorization
Variables
Key
Value
Body

Samples​


Bookmark Blog Post​

POST
/api/v1/posts/{id}/bookmark

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Path Parameters

id*
Type
string
Required

Responses​

Bookmarked

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Remove Blog Bookmark​

DELETE
/api/v1/posts/{id}/bookmark

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Path Parameters

id*
Type
string
Required

Responses​

Bookmark removed

Playground​

Server
Authorization
Variables
Key
Value

Samples​


List My Bookmarks​

GET
/api/v1/posts/me/bookmarks

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Responses​

Bookmarks list

Playground​

Server
Authorization

Samples​


Track Blog View​

POST
/api/v1/posts/{id}/view

Parameters​

Path Parameters

id*
Type
string
Required

Responses​

View tracked

Playground​

Server
Variables
Key
Value

Samples​


Get Blog Stats​

GET
/api/v1/posts/{id}/stats

Parameters​

Path Parameters

id*
Type
string
Required

Responses​

Aggregated stats

Playground​

Server
Variables
Key
Value

Samples​


List Blog Translations​

GET
/api/v1/posts/id/{id}/translations

Parameters​

Path Parameters

id*
Type
string
Required

Responses​

Translations list

Playground​

Server
Variables
Key
Value

Samples​


Create Blog Translation​

POST
/api/v1/posts/id/{id}/translations

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Path Parameters

id*
Type
string
Required

Request Body​

application/json
JSON
{
  
"lang": "string",
  
"title": "string",
  
"body": "string",
  
"excerpt": "string"
}

Responses​

Translation created

Playground​

Server
Authorization
Variables
Key
Value
Body

Samples​


Update Blog Translation​

PUT
/api/v1/posts/id/{id}/translations/{lang}

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Path Parameters

id*
Type
string
Required
lang*
Type
string
Required

Request Body​

application/json
JSON
{
  
"additionalProperties": "string"
}

Responses​

Translation updated

Playground​

Server
Authorization
Variables
Key
Value
Body

Samples​


Delete Blog Translation​

DELETE
/api/v1/posts/id/{id}/translations/{lang}

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Path Parameters

id*
Type
string
Required
lang*
Type
string
Required

Responses​

Translation deleted

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Generate Blog Sitemap​

GET
/api/v1/posts/seo/sitemap.xml

Responses​

XML sitemap

application/xml
XML

Playground​

Samples​


List Post Types​

GET
/api/v1/post-types

Lists post type definitions. Default returns active types only. Pass active=false to include inactive. Returns 503 MODULE_DISABLED when CPT is off. Definitions may be Redis-cached unless POST_TYPES_FRESH_CACHE_MODE is true.

Parameters​

Query Parameters

active

When false, include inactive types

Type
string
Valid values
"true""false"
Default
"true"

Responses​

Type definitions list

application/json
JSON
{
  
"data": [
  
  
{
  
  
  
"id": "string",
  
  
  
"type_key": "case-study",
  
  
  
"type_name": "Case Study",
  
  
  
"description": "string",
  
  
  
"slug_prefix": "string",
  
  
  
"field_schema": [
  
  
  
  
{
  
  
  
  
  
"name": "string",
  
  
  
  
  
"label": "string",
  
  
  
  
  
"type": "string",
  
  
  
  
  
"required": true,
  
  
  
  
  
"options": [
  
  
  
  
  
  
"string"
  
  
  
  
  
],
  
  
  
  
  
"max_length": 0,
  
  
  
  
  
"placeholder": "string"
  
  
  
  
}
  
  
  
],
  
  
  
"behaviors": {
  
  
  
  
"public_by_default": true,
  
  
  
  
"enables_seo": true,
  
  
  
  
"enables_comments": true,
  
  
  
  
"enables_reactions": true,
  
  
  
  
"enables_bookmarks": true,
  
  
  
  
"enables_views": true,
  
  
  
  
"enables_scheduling": true,
  
  
  
  
"requires_approval": true,
  
  
  
  
"allows_password_visibility": true,
  
  
  
  
"default_visibility": "string",
  
  
  
  
"allowed_body_formats": [
  
  
  
  
  
"string"
  
  
  
  
],
  
  
  
  
"max_per_author": 0,
  
  
  
  
"additionalProperties": "string"
  
  
  
},
  
  
  
"icon": "string",
  
  
  
"color": "string",
  
  
  
"is_active": true,
  
  
  
"is_built_in": true,
  
  
  
"sort_order": 0,
  
  
  
"created_at": "string",
  
  
  
"updated_at": "string"
  
  
}
  
],
  
"meta": {
  
  
"additionalProperties": "string"
  
},
  
"user_context": {
  
  
"additionalProperties": "string"
  
}
}

Playground​

Server
Variables
Key
Value

Samples​


Create Post Type​

POST
/api/v1/post-types

Creates a user-defined post type. Requires session + POST_TYPES_ADMIN_ROLES (inherits BLOG_ADMIN_ROLES). Returns 403 USER_TYPES_DISABLED when POST_TYPES_ALLOW_USER_TYPES=false. type_key cannot be changed later.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Request Body​

application/json
JSON
{
  
"type_key": "string",
  
"type_name": "string",
  
"description": "string",
  
"slug_prefix": "string",
  
"field_schema": [
  
  
{
  
  
  
"name": "string",
  
  
  
"label": "string",
  
  
  
"type": "string",
  
  
  
"required": true,
  
  
  
"options": [
  
  
  
  
"string"
  
  
  
],
  
  
  
"max_length": 0,
  
  
  
"placeholder": "string"
  
  
}
  
],
  
"behaviors": {
  
  
"public_by_default": true,
  
  
"enables_seo": true,
  
  
"enables_comments": true,
  
  
"enables_reactions": true,
  
  
"enables_bookmarks": true,
  
  
"enables_views": true,
  
  
"enables_scheduling": true,
  
  
"requires_approval": true,
  
  
"allows_password_visibility": true,
  
  
"default_visibility": "string",
  
  
"allowed_body_formats": [
  
  
  
"string"
  
  
],
  
  
"max_per_author": 0,
  
  
"additionalProperties": "string"
  
},
  
"icon": "string",
  
"color": "string",
  
"is_active": true,
  
"sort_order": 0
}

Responses​

Type created

application/json
JSON
{
  
"data": {
  
  
"id": "string",
  
  
"type_key": "case-study",
  
  
"type_name": "Case Study",
  
  
"description": "string",
  
  
"slug_prefix": "string",
  
  
"field_schema": [
  
  
  
{
  
  
  
  
"name": "string",
  
  
  
  
"label": "string",
  
  
  
  
"type": "string",
  
  
  
  
"required": true,
  
  
  
  
"options": [
  
  
  
  
  
"string"
  
  
  
  
],
  
  
  
  
"max_length": 0,
  
  
  
  
"placeholder": "string"
  
  
  
}
  
  
],
  
  
"behaviors": {
  
  
  
"public_by_default": true,
  
  
  
"enables_seo": true,
  
  
  
"enables_comments": true,
  
  
  
"enables_reactions": true,
  
  
  
"enables_bookmarks": true,
  
  
  
"enables_views": true,
  
  
  
"enables_scheduling": true,
  
  
  
"requires_approval": true,
  
  
  
"allows_password_visibility": true,
  
  
  
"default_visibility": "string",
  
  
  
"allowed_body_formats": [
  
  
  
  
"string"
  
  
  
],
  
  
  
"max_per_author": 0,
  
  
  
"additionalProperties": "string"
  
  
},
  
  
"icon": "string",
  
  
"color": "string",
  
  
"is_active": true,
  
  
"is_built_in": true,
  
  
"sort_order": 0,
  
  
"created_at": "string",
  
  
"updated_at": "string"
  
}
}

Playground​

Server
Authorization
Body

Samples​


Get Post Type​

GET
/api/v1/post-types/{key}

Returns one post type definition by type_key.

Parameters​

Path Parameters

key*

type_key of the post type

Type
string
Required

Responses​

Type definition

application/json
JSON
{
  
"data": {
  
  
"id": "string",
  
  
"type_key": "case-study",
  
  
"type_name": "Case Study",
  
  
"description": "string",
  
  
"slug_prefix": "string",
  
  
"field_schema": [
  
  
  
{
  
  
  
  
"name": "string",
  
  
  
  
"label": "string",
  
  
  
  
"type": "string",
  
  
  
  
"required": true,
  
  
  
  
"options": [
  
  
  
  
  
"string"
  
  
  
  
],
  
  
  
  
"max_length": 0,
  
  
  
  
"placeholder": "string"
  
  
  
}
  
  
],
  
  
"behaviors": {
  
  
  
"public_by_default": true,
  
  
  
"enables_seo": true,
  
  
  
"enables_comments": true,
  
  
  
"enables_reactions": true,
  
  
  
"enables_bookmarks": true,
  
  
  
"enables_views": true,
  
  
  
"enables_scheduling": true,
  
  
  
"requires_approval": true,
  
  
  
"allows_password_visibility": true,
  
  
  
"default_visibility": "string",
  
  
  
"allowed_body_formats": [
  
  
  
  
"string"
  
  
  
],
  
  
  
"max_per_author": 0,
  
  
  
"additionalProperties": "string"
  
  
},
  
  
"icon": "string",
  
  
"color": "string",
  
  
"is_active": true,
  
  
"is_built_in": true,
  
  
"sort_order": 0,
  
  
"created_at": "string",
  
  
"updated_at": "string"
  
}
}

Playground​

Server
Variables
Key
Value

Samples​


Update Post Type​

PUT
/api/v1/post-types/{key}

Updates a type definition. type_key is immutable. Requires CPT admin role.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Path Parameters

key*

type_key of the post type

Type
string
Required

Request Body​

application/json
JSON
{
  
"type_name": "string",
  
"description": "string",
  
"slug_prefix": "string",
  
"field_schema": [
  
  
{
  
  
  
"name": "string",
  
  
  
"label": "string",
  
  
  
"type": "string",
  
  
  
"required": true,
  
  
  
"options": [
  
  
  
  
"string"
  
  
  
],
  
  
  
"max_length": 0,
  
  
  
"placeholder": "string"
  
  
}
  
],
  
"behaviors": {
  
  
"public_by_default": true,
  
  
"enables_seo": true,
  
  
"enables_comments": true,
  
  
"enables_reactions": true,
  
  
"enables_bookmarks": true,
  
  
"enables_views": true,
  
  
"enables_scheduling": true,
  
  
"requires_approval": true,
  
  
"allows_password_visibility": true,
  
  
"default_visibility": "string",
  
  
"allowed_body_formats": [
  
  
  
"string"
  
  
],
  
  
"max_per_author": 0,
  
  
"additionalProperties": "string"
  
},
  
"icon": "string",
  
"color": "string",
  
"is_active": true,
  
"sort_order": 0
}

Responses​

Type updated

Playground​

Server
Authorization
Variables
Key
Value
Body

Samples​


Delete Post Type​

DELETE
/api/v1/post-types/{key}

Deletes a type. Built-in types cannot be deleted. Types that still have posts cannot be deleted.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Path Parameters

key*

type_key of the post type

Type
string
Required

Responses​

Type deleted

Playground​

Server
Authorization
Variables
Key
Value

Samples​


Get Post Type Schema​

GET
/api/v1/post-types/{key}/schema

Public schema for editors: field_schema, behaviors, icon, slug_prefix, color. Aggressive cache TTL (~86400s) unless fresh cache mode.

Parameters​

Path Parameters

key*

type_key of the post type

Type
string
Required

Responses​

Editor schema

application/json
JSON
{
  
"data": {
  
  
"type_key": "string",
  
  
"type_name": "string",
  
  
"field_schema": [
  
  
  
{
  
  
  
  
"name": "string",
  
  
  
  
"label": "string",
  
  
  
  
"type": "string",
  
  
  
  
"required": true,
  
  
  
  
"options": [
  
  
  
  
  
"string"
  
  
  
  
],
  
  
  
  
"max_length": 0,
  
  
  
  
"placeholder": "string"
  
  
  
}
  
  
],
  
  
"behaviors": {
  
  
  
"public_by_default": true,
  
  
  
"enables_seo": true,
  
  
  
"enables_comments": true,
  
  
  
"enables_reactions": true,
  
  
  
"enables_bookmarks": true,
  
  
  
"enables_views": true,
  
  
  
"enables_scheduling": true,
  
  
  
"requires_approval": true,
  
  
  
"allows_password_visibility": true,
  
  
  
"default_visibility": "string",
  
  
  
"allowed_body_formats": [
  
  
  
  
"string"
  
  
  
],
  
  
  
"max_per_author": 0,
  
  
  
"additionalProperties": "string"
  
  
},
  
  
"icon": "string",
  
  
"slug_prefix": "string",
  
  
"color": "string"
  
}
}

Playground​

Server
Variables
Key
Value

Samples​


Get Post Type Stats​

GET
/api/v1/post-types/{key}/stats

Admin stats for one type: by_status, by_lang, by_author.

Authorizations​

SessionAuth

Session ID for authenticated requests

Type
API Key (header: X-Session-ID)

Parameters​

Path Parameters

key*

type_key of the post type

Type
string
Required

Responses​

Stats payload

application/json
JSON
{
  
"data": {
  
  
"type_key": "string",
  
  
"total": 0,
  
  
"by_status": {
  
  
  
"additionalProperties": 0
  
  
},
  
  
"by_lang": {
  
  
  
"additionalProperties": 0
  
  
},
  
  
"by_author": [
  
  
  
{
  
  
  
  
"additionalProperties": "string"
  
  
  
}
  
  
]
  
}
}

Playground​

Server
Authorization
Variables
Key
Value

Samples​


List Posts by Type​

GET
/api/v1/post-types/{key}/posts

Internal proxy to GET /api/v1/posts?type={key}. Forwards query params (page, limit, lang, status, …). Not a 302 redirect.

Parameters​

Path Parameters

key*

type_key of the post type

Type
string
Required

Query Parameters

page
Type
integer
Minimum
1
Default
1
limit
Type
integer
Minimum
1
Maximum
100
Default
10
lang
Type
string
status
Type
string
q
Type
string

Responses​

Posts list (same envelope as blogListPosts)

Playground​

Server
Variables
Key
Value

Samples​


Powered by VitePress OpenAPI

📚 Additional Resources ​

💡 Need More Help?

🔧 Alternative Testing Tools

You can also use these popular API clients: