Analyze Topic Demand
Workflow contract for topic demand across SEO keywords, Google Trends, AI answers, and conversations.
Overview
Workflow endpoints run their primitives in parallel and return each primitive's full output, labeled per source. Pricing is calculated from the primitives that ran successfully plus the selected model rates — failed or skipped steps are not charged.
Reference
POST
/v1/workflows/topic-demand$0.37 · flat per call
Parameters
topicrequired | string | Topic, keyword, category, or audience demand to analyze. |
countryoptional | string | ISO-2 country code for localized SEO keyword data. Default: "us". |
timeframeoptional | string | Trend window for demand checks. Default: "past_12_months". |
modelsoptional | array of enum (chatgpt | claude | perplexity | gemini | google_ai_overview) | Optional model subset. Omit to query all five AI surfaces (chatgpt, claude, perplexity, gemini, google_ai_overview). Pass ["perplexity"] or ["perplexity","claude"] when the user asks for specific surfaces or wants to reduce cost. |
Request
curl https://api.cite42.dev/v1/workflows/topic-demand \
-X POST \
-H "Authorization: Bearer $CITE42_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "topic": "generative engine optimization", "timeframe": "past_12_months" }'Response
{
"status": "workflow_result",
"workflow": "analyze_topic_demand",
"summary": "Measure demand for a topic across SEO keywords, Google Trends, AI answers, and audience conversations.",
"results": [
{ "endpoint": "/v1/search", "tool": "cite42_search", "ok": true, "why": "...", "data": { "query": "...", "results": [ "…per-model answers with citations…" ] } },
{ "endpoint": "/v1/keywords", "tool": "cite42_keywords", "ok": true, "why": "...", "data": { "keyword": "...", "volume": 4400, "cpc": 6.2, "ideas": [ "…" ] } },
{ "endpoint": "/v1/reddit/trends", "tool": "cite42_reddit_trends", "ok": true, "why": "...", "data": { "risingThreads": [ "…" ], "painPoints": [ "…" ], "repeatedQuestions": [ "…" ] } }
]
}