REST API Endpoints
2026-03-0110 min read
REST API Endpoints Documentation
Sera exposes REST API endpoints for programmatic access to plugin features. All endpoints are under the /wp-json/sera/v1/ namespace.
Authentication
Sera REST API endpoints require WordPress authentication. Use one of these methods:
- Cookie authentication: For requests from the WordPress admin (automatic)
- Application passwords: For external API access (WordPress 5.6+)
- JWT tokens: If you have a JWT authentication plugin installed
Core Endpoints
Hub Status
GET /wp-json/sera/v1/hub/status
GET /wp-json/sera/v1/hub/status
Returns the hub status including installed spokes, health, and version info.
Response:
json
{
"version": "1.0.0",
"spokes": [
{
"slug": "sera-ai-website-security",
"name": "Sera AI Website Security",
"version": "1.0.0",
"status": "active",
"health": "good"
}
],
"alerts_count": 3,
"last_activity": "2026-03-01T12:00:00Z"
}
{
"version": "1.0.0",
"spokes": [
{
"slug": "sera-ai-website-security",
"name": "Sera AI Website Security",
"version": "1.0.0",
"status": "active",
"health": "good"
}
],
"alerts_count": 3,
"last_activity": "2026-03-01T12:00:00Z"
}
AI Workspace
POST /wp-json/sera/v1/ai/chat
POST /wp-json/sera/v1/ai/chat
Send a message to the AI Workspace.
Request Body:
json
{
"message": "How can I improve my site's CLS score?",
"conversation_id": "optional-conversation-id"
}
{
"message": "How can I improve my site's CLS score?",
"conversation_id": "optional-conversation-id"
}
Knowledge Base
GET /wp-json/sera/v1/kb/search?q=query
POST /wp-json/sera/v1/kb/entries
GET /wp-json/sera/v1/kb/entries/{id}
PUT /wp-json/sera/v1/kb/entries/{id}
DELETE /wp-json/sera/v1/kb/entries/{id}
GET /wp-json/sera/v1/kb/search?q=query
POST /wp-json/sera/v1/kb/entries
GET /wp-json/sera/v1/kb/entries/{id}
PUT /wp-json/sera/v1/kb/entries/{id}
DELETE /wp-json/sera/v1/kb/entries/{id}
Sera AI Website Security Endpoints
GET /wp-json/sera/v1/sentinel/status
POST /wp-json/sera/v1/sentinel/scan
GET /wp-json/sera/v1/sentinel/scan/{id}
GET /wp-json/sera/v1/sentinel/firewall/log
POST /wp-json/sera/v1/sentinel/ip/block
DELETE /wp-json/sera/v1/sentinel/ip/block/{ip}
GET /wp-json/sera/v1/sentinel/audit-log
GET /wp-json/sera/v1/sentinel/status
POST /wp-json/sera/v1/sentinel/scan
GET /wp-json/sera/v1/sentinel/scan/{id}
GET /wp-json/sera/v1/sentinel/firewall/log
POST /wp-json/sera/v1/sentinel/ip/block
DELETE /wp-json/sera/v1/sentinel/ip/block/{ip}
GET /wp-json/sera/v1/sentinel/audit-log
Sera AI Website Health Endpoints
GET /wp-json/sera/v1/pulse/health
POST /wp-json/sera/v1/pulse/optimize
GET /wp-json/sera/v1/pulse/cron
POST /wp-json/sera/v1/pulse/cron/{hook}/run
GET /wp-json/sera/v1/pulse/errors
GET /wp-json/sera/v1/pulse/uptime
GET /wp-json/sera/v1/pulse/health
POST /wp-json/sera/v1/pulse/optimize
GET /wp-json/sera/v1/pulse/cron
POST /wp-json/sera/v1/pulse/cron/{hook}/run
GET /wp-json/sera/v1/pulse/errors
GET /wp-json/sera/v1/pulse/uptime
AI Sitemap Endpoints
GET /wp-json/sera/v1/sitemap/status
POST /wp-json/sera/v1/sitemap/rebuild
GET /wp-json/sera/v1/sitemap/snapshots
POST /wp-json/sera/v1/sitemap/rollback/{snapshot_id}
GET /wp-json/sera/v1/sitemap/indexnow/status
POST /wp-json/sera/v1/sitemap/indexnow/submit
GET /wp-json/sera/v1/sitemap/crawl-analysis
GET /wp-json/sera/v1/sitemap/status
POST /wp-json/sera/v1/sitemap/rebuild
GET /wp-json/sera/v1/sitemap/snapshots
POST /wp-json/sera/v1/sitemap/rollback/{snapshot_id}
GET /wp-json/sera/v1/sitemap/indexnow/status
POST /wp-json/sera/v1/sitemap/indexnow/submit
GET /wp-json/sera/v1/sitemap/crawl-analysis
Sera AI CLS Guard Endpoints
GET /wp-json/sera/v1/cls-pro/score
GET /wp-json/sera/v1/cls-pro/analytics
GET /wp-json/sera/v1/cls-pro/overrides
POST /wp-json/sera/v1/cls-pro/overrides
GET /wp-json/sera/v1/cls-pro/fixes
POST /wp-json/sera/v1/cls-pro/scan
GET /wp-json/sera/v1/cls-pro/score
GET /wp-json/sera/v1/cls-pro/analytics
GET /wp-json/sera/v1/cls-pro/overrides
POST /wp-json/sera/v1/cls-pro/overrides
GET /wp-json/sera/v1/cls-pro/fixes
POST /wp-json/sera/v1/cls-pro/scan
AI Writer Endpoints
GET /wp-json/sera/v1/writer/pipeline
PUT /wp-json/sera/v1/writer/pipeline/{post_id}/stage
GET /wp-json/sera/v1/writer/calendar
POST /wp-json/sera/v1/writer/ai/generate
POST /wp-json/sera/v1/writer/ai/rewrite
GET /wp-json/sera/v1/writer/stats
GET /wp-json/sera/v1/writer/pipeline
PUT /wp-json/sera/v1/writer/pipeline/{post_id}/stage
GET /wp-json/sera/v1/writer/calendar
POST /wp-json/sera/v1/writer/ai/generate
POST /wp-json/sera/v1/writer/ai/rewrite
GET /wp-json/sera/v1/writer/stats
Rate Limiting
API requests are rate-limited to prevent abuse:
- Standard endpoints: 60 requests per minute
- AI endpoints: 10 requests per minute
- Scan/rebuild endpoints: 5 requests per minute
Rate limit headers are included in responses:
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 58
X-RateLimit-Reset: 1709312400
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 58
X-RateLimit-Reset: 1709312400