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.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 a401 response.
Rate limits
In addition to the credit cost, per-user rate limits apply:Request
string[]
required
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.
string[]
required
The platforms to pull signals from. Must contain at least one value. Accepted values (lowercase):
x, reddit, youtube, news, web, financial.number
required
Maximum number of signals to collect across all sources. Must be an integer between
10 and 200.Response
boolean
true when the brief was successfully generated and persisted.object
The full Intelligence Brief result. See the brief fields section below.
object
Credit consumption details for this request.
object
Timing breakdown for the request.
string[]
Optional array of non-fatal warnings, such as partial source failures or mock data usage. Omitted when there are no warnings.
object
Diagnostic information about which sources succeeded or failed.
Brief fields
Thebrief object contains the full IntelligenceBriefResult. All fields marked optional are additive and may be absent in results from earlier schema versions.
string
UUID of the saved brief record in the database.
string
ISO 8601 timestamp when the brief was saved.
string
A prose summary of the key findings across all signals and narratives.
number
Overall authenticity of the signal set,
0–100. Lower scores indicate higher likelihood of coordinated or inauthentic activity.string
Evidence-based explanation of the
authenticity_score. Present in schema v2.1+.object
Aggregate emotional signal across all analyzed content.
array
Array of dominant narratives detected across platforms.
array
High-signal accounts or sources the LLM identified as authoritative on the topic.
object
Structured risk evaluation of the narrative landscape.
object
Breakdown of how many signals were analyzed per platform.
array
Optional (v2.2+). Accounts identified as primary drivers of adversarial narratives.
object
Optional (v2.2+). Coordination evidence and technical indicators.
object
Optional (v2.3+). Dissonance gauge comparing social vs. institutional sentiment.
array
Optional (v2.4+). Tickers and market theses the LLM infers from narrative signals.
Code example
Error responses
GET /api/intelligence/briefs
Retrieve a paginated list of your historical Intelligence Briefs.Authentication
Requires a signed-in session. Returns401 for unauthenticated requests.
Query parameters
number
default:"20"
Number of briefs to return per page. Maximum
100.number
default:"0"
Zero-based offset for pagination.
string
default:"date"
Sort field. Accepted values:
date, signal_count.string
default:"desc"
Sort direction. Accepted values:
asc, desc.string
default:"all"
Time window filter. Accepted values:
all, week (last 7 days), month (last 30 days).Response
array
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.number
Total number of briefs matching the query (before pagination). Use this with
limit and offset to implement page controls.