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": "user@example.com",
  
"password": "SecurePass123!"
}

Responses

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

application/json
JSON
{
  
"success": true,
  
"user": {
  
  
"id": "usr_123abc",
  
  
"email": "user@example.com",
  
  
"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": "john@example.com",
  
"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": "user@example.com",
  
  
  
"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": "samuelorecio@gmail.com",
  
  
  
"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": "user@example.com",
  
  
"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": "user@example.com",
  
  
  
"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": "user@example.com",
  
  
"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": "user@example.com",
  
  
  
"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": "user@example.com",
  
  
  
  
"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": "user@example.com",
  
  
  
"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": "user@example.com",
  
  
  
  
"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": "user@example.com",
  
  
"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": "user@example.com",
  
  
  
"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": "user@example.com"
}

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": "user@example.com",
  
  
"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": "user@example.com",
  
  
"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": "user@example.com",
  
  
"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": "user@example.com",
  
"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": "user@example.com",
  
  
"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": "user@example.com",
  
  
"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": "user@example.com",
  
  
"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": "user@gmail.com",
  
  
  
  
"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": "user@example.com"
}

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": "user@example.com",
  
  
  
  
"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": "newuser@example.com",
  
"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": "user@example.com",
  
  
  
"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": "user@example.com",
  
  
  
"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": "user@example.com",
  
"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": "user@example.com",
  
  
  
"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": "user@example.com",
  
  
  
  
"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: