Skip to main content

Admin API

12 admin-only endpoints for platform operations and publishing: KPI dashboards, user support lookups, manual plan grants, profile search index maintenance, and admin blog publishing/import workflows.

JWT set Key set No credentials set

Admin Access

All admin endpoints require a bearer JWT for a user with is_admin. These are high-trust operational surfaces. The dashboard and CLI both use the same backend service truth, so you should automate them through /v1/admin/* instead of dashboard HTML routes.

Admin Operations

6

Return the admin KPI workspace snapshot.

Response

FieldTypeDescription
window_days integer Normalized KPI lookback window*
users object User and plan metrics*
billing object Billing and conversion metrics*
Requires JWT token — set it in the auth bar above

                    
                

Search support users with entitlement and billing filters.

Response

FieldTypeDescription
items array Support search rows*
result_count integer Returned row count*
filters object Applied query filters*
Requires JWT token — set it in the auth bar above

                    
                

Return one support drill-down view.

Path Parameters

FieldTypeDescription
username string Target username*

Response

FieldTypeDescription
user object Core user summary*
subscriptions array Historical subscription rows*
manual_grants array Manual entitlement history*
timeline array Operational events timeline*
Requires JWT token — set it in the auth bar above

                    
                

Grant manual Pro access to one user.

Request Body

FieldTypeDescription
username string Target username*
reason string Audit reason*
expires_on date Optional YYYY-MM-DD expiry

Response

FieldTypeDescription
grant_id uuid Created grant ID*
message string Operator-safe summary*
Requires JWT token — set it in the auth bar above

                    
                

Revoke one active manual grant.

Request Body

FieldTypeDescription
grant_id uuid Grant to revoke*

Response

FieldTypeDescription
grant_id uuid Revoked grant ID*
revoked_at datetime Revocation timestamp*
message string Operator-safe summary*
Requires JWT token — set it in the auth bar above

                    
                

Re-embed selected or all user profiles in-process.

Request Body

FieldTypeDescription
usernames array Optional target usernames
drop_existing boolean Delete current embeddings before rebuilding

Response

FieldTypeDescription
users array Per-user result rows*
success integer Successful rebuild count*
failed integer Failed rebuild count*
total_docs integer Re-embedded document total*
Requires JWT token — set it in the auth bar above

                    
                

Admin Blog Publishing

6

List admin blog posts with optional status, search, and tag filters.

Response

FieldTypeDescription
items array Admin blog summary rows*
title string Human-readable post title*
status string Draft or published state*
Requires JWT token — set it in the auth bar above

                    
                

Return one full admin-visible blog post.

Path Parameters

FieldTypeDescription
post_id integer Target blog post ID*

Response

FieldTypeDescription
content_md string Canonical markdown source*
featured_image_url string Optional hero image URL
meta_description string Optional SEO description
Requires JWT token — set it in the auth bar above

                    
                

Create one admin blog post from canonical markdown content.

Request Body

FieldTypeDescription
title string Blog post title*
summary string Card and sharing summary*
content_md string Canonical markdown content*
status string Draft or published
tags string Comma-separated tags

Response

FieldTypeDescription
id integer Created post ID*
slug string Unique public slug*
reading_time_minutes integer Rendered reading-time estimate*
Requires JWT token — set it in the auth bar above

                    
                

Update one admin blog post and preserve shared slug/publish behavior.

Path Parameters

FieldTypeDescription
post_id integer Target blog post ID*

Request Body

FieldTypeDescription
title string Blog post title*
summary string Card and sharing summary*
content_md string Canonical markdown content*
status string Draft or published
featured_image_url string Optional hero image URL

Response

FieldTypeDescription
slug string Updated unique public slug*
updated_at datetime Last mutation timestamp*
published_at datetime First publish timestamp
Requires JWT token — set it in the auth bar above

                    
                

Delete one admin blog post.

Path Parameters

FieldTypeDescription
post_id integer Target blog post ID*

Response

FieldTypeDescription
ok boolean Deletion success flag*
id integer Deleted post ID*
slug string Deleted public slug*
Requires JWT token — set it in the auth bar above

                    
                

Batch import blog posts from one shared structured payload.

Request Body

FieldTypeDescription
items array List of blog post objects using the same create contract*
items[].title string Blog post title*
items[].summary string Blog post summary*
items[].content_md string Canonical markdown content*

Response

FieldTypeDescription
created_count integer Number of created posts*
items array Created blog post detail payloads*
Requires JWT token — set it in the auth bar above