Agent Platform — API Reference
All endpoints require:https://www.citedy.com
Credit value: 1 credit = $0.01 USD
MCP v1 Exposure Policy (Public)
This file documents the full Agent API. Public MCP v1 intentionally exposes a smaller, outcome-first subset:GET /api/agent/healthGET /api/agent/statusGET /api/agent/settingsGET /api/agent/schedule/gapsGET /api/agent/webhooks/deliveriesPOST /api/agent/productsGET /api/agent/productsDELETE /api/agent/products/[id]POST /api/agent/products/searchPOST /api/agent/shortsGET /api/agent/shorts/[id]POST /api/agent/shorts/scriptPOST /api/agent/shorts/avatarPOST /api/agent/shorts/merge
PUT /api/agent/settings, GET /api/agent/schedule/suggest.
Account & Auth
Register Agent
Get Agent Info
Health Check (Infrastructure)
Operational Status Snapshot
Rotate API Key
Settings
Get Agent Settings
AgentSettings object (see SETTINGS.md)
Update Agent Settings
AgentSettings (any fields, all optional):
AgentSettings
Switch Image Style
minimal | tech | bold
Content Creation
Create Micro-Post
Generate Blog Article (Autopilot)
mini (7 credits) | standard (12 credits) | full (25 credits) | pillar (40 credits)
Plus CI intelligence: +8 credits
Create Social Adaptation
Publishing & Scheduling
Publish Content
Get Schedule (Timeline)
from (ISO date), to (ISO date)
Response:
Get Schedule Gaps
postsPerDay setting.
Response:
Get Suggested Posting Slots
Trend Scanning
Scan Trends
fast | deep | ultra | ultra+
Default mode derived from scanSources in Agent Settings if not specified.
Max limit: 30
Response:
knowledgeMatch is only present when tenant has product knowledge documents uploaded and a match is found.
Product Knowledge Base
Upload Document
List Documents
Delete Document
204 No Content
Search Knowledge Base
Video (Shorts)
See SHORTS-PIPELINE.md for full pipeline documentation.Generate Video
generationId immediately; poll for status.
Request:
Poll Video Status
Generate Script
topic: string (required)style:hook|educational|cta(default:hook)product_id: UUID (optional) — link to a product knowledge documentduration:short|long(optional, default:short)language: language code (optional, default:"en")
Generate Avatar
gender:male|femaleorigin:european|asian|african|latin|middle_eastern|south_asianage_range:18-25|26-35|36-50(default:26-35)type:tech_founder|vibe_coder|student|executive(default:tech_founder)location:coffee_shop|dev_cave|street|car|home_office|podcast_studio|glass_office|rooftop|bedroom|park|gym(default:coffee_shop)
gemini → openai-high → bytedance → zai
Merge Video Segments
Intelligence & Research
Content Gaps — Generate
competitor_urls:string[](1-5 URLs, validated for SSRF) — requiredfavorite_id: UUID (optional, since 2026-05-04) — scope gaps to a specificai_favoritesrow (product/identity). When present:- owner-checked against
ai_favorites WHERE id=? AND tenant_id=?before charge — cross-tenant ID returns403with no credits used - analysis domain is overridden to
ai_favorites.domaininstead of the legacy${blog_handle}.citedy.com - each persisted
ai_content_gapsrow is tagged with thisfavorite_id
- owner-checked against
200 / 400 (validation, no blog/favorite) / 401 / 402 (insufficient credits) / 403 (cross-tenant favorite_id) / 429 (10/hour rate limit) / 500.
Content Gaps — List
favorite_id: UUID — scope to a specific favorite. Hybrid filter: returns rows tagged with this favorite or legacy NULL rows whosedomainmatches the favorite’s domain (so pre-favorite gaps are not lost from the view).limit: integer 1-100 (default 100).
200 / 400 (bad query params) / 401 / 403 (cross-tenant favorite_id) / 429 / 500.
Competitor Discovery
Competitor Scout
X Intent Scout
Reddit Intent Scout
Content Ingestion
Ingest URL / Video
web_article: 1 creditpdf_document: 2 creditsyoutube_video: 5-55 credits (by duration)audio_file: 3-30 credits (by duration)
Get Ingested Content
Lead Magnets
Generate Lead Magnet
checklist | swipe_file | framework
Get Lead Magnet
Personas
List Personas
Webhooks
Manage Webhooks
post.published, post.scheduled, video.completed, video.failed, scan.completed
Error Responses
All errors follow:| HTTP | Code | Meaning |
|---|---|---|
| 400 | VALIDATION_ERROR | Invalid request body |
| 401 | UNAUTHORIZED | Missing or invalid API key |
| 402 | INSUFFICIENT_CREDITS | Not enough credits |
| 403 | FORBIDDEN | Resource belongs to another tenant |
| 429 | RATE_LIMITED | Too many requests |
| 503 | SERVICE_UNAVAILABLE | Redis or external provider unavailable |
