Overview
-
Total Jobs
-
Completed
-
Themes Saved
-
Total Cost

Recent Jobs

IDSeedIntentModeStatusThemesCostCreated
Loading...
Agent Jobs

Submit New Job

Advanced Config

Live Monitor

Submit a job or select one to monitor

Job History

IDSeedIntentStatusThemesCostActions
Loading...
Pipeline Flow

Step-by-Step Pipeline

1. SERP Data
2. Theme AI
3. Group Keywords
4. Search Operator
5. Theme Intent

Pipeline Result

No results yet. Run a pipeline step above.
Settings
General
AI Extraction
Crawler API
Volume API
Grouping
API Keys
Agent
Hybrid
Performance
Notifications

General Settings

Queue & Workers

Queue Status

Loading...

Worker Controls

Agent Monitor

Select a job to monitor
API Documentation kwagent.webnow.ai
Base URL: https://kwagent.webnow.ai  |  Auth: JWT for /auth/* /keyword-seed/*  |  Bearer API_KEY for /api/* /mcp/*

1. Auth Endpoints

POST
/auth/registerNo auth (first user) / Admin JWT
Register new user. First user auto-becomes admin.
Body & Response
// Request
{ "email": "admin@example.com", "password": "SecurePass123", "username": "admin", "role": "admin" }

// Response 201
{ "success": true, "data": { "id": "plZWvg0KMQ", "email": "admin@example.com", "username": "admin", "role": "admin" } }
POST
/auth/loginNo auth
Login with email/password. Returns access token (15m) + refresh token (7d).
Body & Response
// Request
{ "email": "admin@example.com", "password": "SecurePass123" }

// Response
{ "success": true, "data": { "accessToken": "eyJ...", "refreshToken": "eyJ...", "expiresIn": "15m",
  "user": { "id": "plZWvg0KMQ", "email": "admin@example.com", "username": "admin", "role": "admin" } } }
POST
/auth/refreshRefresh token
Get new access token using refresh token (body or cookie).
Body & Response
// Request
{ "refreshToken": "eyJ..." }

// Response
{ "success": true, "data": { "accessToken": "eyJ...", "expiresIn": "15m" } }
POST
/auth/logoutJWT
Revoke refresh token, clear cookie.
GET
/auth/meJWT
Get current user info (id, email, username, role).
PUT
/auth/change-passwordJWT
Change password. Revokes refresh token — must login again.
Body
{ "currentPassword": "OldPass", "newPassword": "NewPass123" }
Users

Create User

Current User

Loading...

Change Password