Skip to main content

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:
WindowLimit
Per hour5 requests
Per day50 requests

Request

search_terms
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.
sources
string[]
required
The platforms to pull signals from. Must contain at least one value. Accepted values (lowercase): x, reddit, youtube, news, web, financial.
max_items
number
required
Maximum number of signals to collect across all sources. Must be an integer between 10 and 200.

Response

success
boolean
true when the brief was successfully generated and persisted.
brief
object
The full Intelligence Brief result. See the brief fields section below.
credits
object
Credit consumption details for this request.
performance
object
Timing breakdown for the request.
warnings
string[]
Optional array of non-fatal warnings, such as partial source failures or mock data usage. Omitted when there are no warnings.
data_quality
object
Diagnostic information about which sources succeeded or failed.

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.
id
string
UUID of the saved brief record in the database.
created_at
string
ISO 8601 timestamp when the brief was saved.
executive_summary
string
A prose summary of the key findings across all signals and narratives.
authenticity_score
number
Overall authenticity of the signal set, 0100. Lower scores indicate higher likelihood of coordinated or inauthentic activity.
authenticity_reasoning
string
Evidence-based explanation of the authenticity_score. Present in schema v2.1+.
emotion_profile
object
Aggregate emotional signal across all analyzed content.
primary_narratives
array
Array of dominant narratives detected across platforms.
expert_shortlist
array
High-signal accounts or sources the LLM identified as authoritative on the topic.
risk_assessment
object
Structured risk evaluation of the narrative landscape.
signal_stats
object
Breakdown of how many signals were analyzed per platform.
narrative_adversaries
array
Optional (v2.2+). Accounts identified as primary drivers of adversarial narratives.
audit_trail
object
Optional (v2.2+). Coordination evidence and technical indicators.
visual_blueprint
object
Optional (v2.3+). Dissonance gauge comparing social vs. institutional sentiment.
financial_correlations
array
Optional (v2.4+). Tickers and market theses the LLM infers from narrative signals.

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

StatusWhen 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

limit
number
default:"20"
Number of briefs to return per page. Maximum 100.
offset
number
default:"0"
Zero-based offset for pagination.
sort
string
default:"date"
Sort field. Accepted values: date, signal_count.
order
string
default:"desc"
Sort direction. Accepted values: asc, desc.
filter
string
default:"all"
Time window filter. Accepted values: all, week (last 7 days), month (last 30 days).

Response

briefs
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.
total
number
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
}