Documentation Index Fetch the complete documentation index at: https://www.rhetoricaudit.com/docs/llms.txt
Use this file to discover all available pages before exploring further.
The Intelligence Brief API aggregates signals from up to six platforms — X, Reddit, YouTube, News, Web, and Financial — and produces a forensic narrative analysis covering authenticity scoring, emotion profiling, primary narratives, adversary tracking, and financial market correlations. Each run costs 2 credits and requires a signed-in account.
Intelligence Brief is in beta. The response schema is versioned (currently v2.4) and may gain new optional fields in future releases. All new fields are additive; existing fields will not be removed or renamed without a major version bump.
POST /api/intelligence/analyze
Generate a new Intelligence Brief for one or more search terms across selected platforms.
POST https://www.rhetoricaudit.com/api/intelligence/analyze
Content-Type: application/json
Authentication
This endpoint requires a signed-in Rhetoric Audit account. Authentication is resolved from your session cookie (web dashboard) or Supabase session token. Anonymous requests receive a 401 response.
Rate limits
In addition to the credit cost, per-user rate limits apply:
Window Limit Per hour 5 requests Per day 50 requests
Request
One or more search terms to analyze. The engine fetches cross-platform signals matching these terms. Minimum 1 term, maximum 10 terms. Each term must be a non-empty string.
The platforms to pull signals from. Must contain at least one value. Accepted values (lowercase): x, reddit, youtube, news, web, financial.
Maximum number of signals to collect across all sources. Must be an integer between 10 and 200.
Response
true when the brief was successfully generated and persisted.
The full Intelligence Brief result. See the brief fields section below.
Credit consumption details for this request. Credits consumed by this request (always 2).
Your credit balance after this request.
USD cost as a fixed-decimal string, e.g. "0.60".
Timing breakdown for the request. Time spent fetching signals from external sources.
Time spent in LLM analysis.
The LLM model that produced the analysis, e.g. "openai/gpt-4o-mini".
Optional array of non-fatal warnings, such as partial source failures or mock data usage. Omitted when there are no warnings.
Diagnostic information about which sources succeeded or failed. true if one or more sources failed to return data.
Source IDs that returned data successfully.
Source IDs that failed or timed out.
true if mock data was substituted (only possible in non-production environments).
Brief fields
The brief object contains the full IntelligenceBriefResult. All fields marked optional are additive and may be absent in results from earlier schema versions.
UUID of the saved brief record in the database.
ISO 8601 timestamp when the brief was saved.
A prose summary of the key findings across all signals and narratives.
Overall authenticity of the signal set, 0–100. Lower scores indicate higher likelihood of coordinated or inauthentic activity.
Evidence-based explanation of the authenticity_score. Present in schema v2.1+.
Aggregate emotional signal across all analyzed content. Show emotion_profile fields
Array of dominant narratives detected across platforms. Show primary_narratives item fields
Short title for the narrative.
Prose description of the narrative’s content and framing.
Percentage of signals carrying this narrative, 0–100.
Platforms where this narrative appears.
One of "rising", "stable", or "declining".
Optional. How quickly the narrative spread, e.g. "Rapid (jumped from X to News in <24h)".
Optional. "low", "medium", or "high".
Optional. "Yes" or "No" — whether the narrative is confined to a single ideological cluster.
High-signal accounts or sources the LLM identified as authoritative on the topic. Show expert_shortlist item fields
Account handle or source name.
Platform identifier: x, reddit, youtube, news, or web.
Description of why this source is considered expert.
Number of signals attributed to this source in the dataset.
Source verification confidence, 0–100.
Structured risk evaluation of the narrative landscape. Show risk_assessment fields
One of "low", "medium", "high", or "critical".
Array of specific risk factors identified.
Recommended actions to counter the identified risks.
Confidence in the risk assessment, 0–100.
Optional. Predicted longevity, e.g. "Short-term (72h)" or "Permanent".
Optional. Likelihood of recurrence.
Optional. Whether this narrative pattern has appeared before.
Breakdown of how many signals were analyzed per platform. Signal count from X (optional).
Signal count from Reddit (optional).
Signal count from YouTube (optional).
Signal count from News sources (optional).
Signal count from Web sources (optional).
Signal count from Financial sources (optional).
Optional (v2.2+). Accounts identified as primary drivers of adversarial narratives. Show narrative_adversaries item fields
Lowercase platform identifier.
Tactics employed, e.g. "Temporal clustering, Copy-paste repetition, Emotional baiting".
Description of the impact, e.g. "Primary driver of Fear spike".
Authenticity score 0–100. Lower values indicate more coordinated or inauthentic behavior.
Optional (v2.2+). Coordination evidence and technical indicators. Summary of coordination evidence observed.
One of "low", "medium", or "high".
Observed technical signals such as timestamp clustering, handle patterns, or phrase echoes.
Optional (v2.3+). Records where social signals preceded institutional signals. Show time_delta_flags item fields
ISO 8601 timestamp of the social signal.
ISO 8601 timestamp of the corresponding institutional signal.
Time difference in minutes. Negative values mean social led institutional.
One of "LEADING_NARRATIVE_ATTACK", "TRAILING", or "SYNCHRONOUS".
Optional excerpt from the leading signal.
Optional (v2.3+). Dissonance gauge comparing social vs. institutional sentiment. Show visual_blueprint fields
Always "dissonance_gauge".
Aggregated social sentiment score, 0–100.
Aggregated institutional sentiment score, 0–100.
The topic being measured.
Prose interpretation of the dissonance gap.
Optional (v2.4+). Tickers and market theses the LLM infers from narrative signals. Show financial_correlations item fields
Exchange ticker symbol, e.g. "TCS.NS". Empty string for non-listed entities.
Human-readable company name.
Optional SEC/EDGAR/exchange filing ID if cited.
One of "positive", "negative", or "neutral".
One of "high", "medium", or "low".
One-sentence explanation of how the narrative connects to a market outcome.
Optional. How many hours ahead of market open or next earnings the signal precedes.
Code example
curl -X POST https://www.rhetoricaudit.com/api/intelligence/analyze \
-H "Content-Type: application/json" \
-H "Cookie: <your-session-cookie>" \
-d '{
"search_terms": ["semiconductor tariffs", "chip shortage"],
"sources": ["x", "reddit", "news", "financial"],
"max_items": 100
}'
Error responses
Status When it occurs 400Invalid request body (Zod validation failure) or insufficient signals found (fewer than 5 real signals returned by sources) 401User is not authenticated 402Insufficient credits — body includes required and available fields 429Rate limit exceeded — response includes retry_after_seconds and a Retry-After header 500Server error, LLM processing failure, or database save failure
GET /api/intelligence/briefs
Retrieve a paginated list of your historical Intelligence Briefs.
GET https://www.rhetoricaudit.com/api/intelligence/briefs
Authentication
Requires a signed-in session. Returns 401 for unauthenticated requests.
Query parameters
Number of briefs to return per page. Maximum 100.
Zero-based offset for pagination.
Sort field. Accepted values: date, signal_count.
Sort direction. Accepted values: asc, desc.
Time window filter. Accepted values: all, week (last 7 days), month (last 30 days).
Response
Array of brief records. Each item has the same shape as the brief field returned by POST /api/intelligence/analyze, plus id and created_at.
Total number of briefs matching the query (before pagination). Use this with limit and offset to implement page controls.
Example
curl "https://www.rhetoricaudit.com/api/intelligence/briefs?limit=10&sort=date&order=desc&filter=week" \
-H "Cookie: <your-session-cookie>"
{
"briefs" : [
{
"id" : "d4e5f6a7-..." ,
"created_at" : "2026-05-09T10:23:00.000Z" ,
"search_terms" : [ "semiconductor tariffs" ],
"sources_used" : [ "x" , "reddit" , "news" , "financial" ],
"signal_count" : 87 ,
"executive_summary" : "..." ,
"authenticity_score" : 64 ,
"risk_assessment" : { "overall_risk_level" : "high" , ... }
}
],
"total" : 3
}