/Introduction

Getting Started

TrueSource API

The TrueSource API provides programmatic access to media intelligence data. Integrate bias ratings, ownership chains, claim verification, and AI-powered analysis into your applications with a simple REST API.

Newsrooms & Journalists

Automate source credibility checks

Research & Academia

Build datasets for media studies

Apps & Extensions

Add bias badges and credibility signals

Content Platforms

Enrich content with ownership data

Authentication

All API requests require a Bearer token in the Authorization header. Get your API key from the Settings page.

Example request
curl -H "Authorization: Bearer ts_live_abc123..." \
  https://truesource.app/api/v1/bias-rating/reuters.com

Base URL

All endpoints are relative to the following base URL:

https://truesource.app/api/v1

All responses are JSON with Content-Type: application/json.

Rate Limits

Every response includes rate limit headers so you can track your usage:

Response headers
X-RateLimit-Limit: 100        # Your per-minute limit
X-RateLimit-Remaining: 87     # Requests remaining
X-RateLimit-Reset: 1720000000 # Unix timestamp when limit resets
TierRequests/MonthRate Limit
Explorer1005 req/min
Starter5,00030 req/min
Growth25,000100 req/min
Scale100,000300 req/min
EnterpriseUnlimitedCustom

Error Handling

Errors return a consistent JSON structure with an HTTP status code, error type, and human-readable message.

Error response
{
  "error": "RATE_LIMITED",
  "message": "Rate limit exceeded. Retry after 2025-01-15T12:00:00Z",
  "retryAfter": 1736942400
}
StatusErrorDescription
400BAD_REQUESTInvalid or missing parameters
401UNAUTHORIZEDMissing or invalid API key
403FORBIDDENEndpoint not available on your tier
404NOT_FOUNDResource does not exist
429RATE_LIMITEDRate or quota limit exceeded
500INTERNAL_ERRORUnexpected server error

Endpoints

API Reference

GET/api/v1/bias-rating/{domain}

Look up the bias rating, factual reporting score, and ownership info for any news source by domain.

Parameters

NameTypeDescription
domain*stringDomain of the news source (e.g. reuters.com)
Request
curl -H "Authorization: Bearer YOUR_API_KEY" \
  https://truesource.app/api/v1/bias-rating/reuters.com
Response
{
  "domain": "reuters.com",
  "source": "Reuters",
  "biasRating": "CENTER",
  "factualReporting": "VERY_HIGH",
  "credibilityScore": 94,
  "owner": "Thomson Reuters Corporation"
}
POST/api/v1/analyze

Submit an article URL for full AI analysis. Returns bias rating, confidence score, legitimacy score, reasoning, and highlighted evidence passages.

Parameters

NameTypeDescription
url*stringFull URL of the article to analyze
Request
curl -X POST -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/article"}' \
  https://truesource.app/api/v1/analyze
Response
{
  "biasRating": "LEFT_CENTER",
  "biasConfidence": 0.82,
  "legitimacyScore": 78,
  "reasoning": "Article uses loaded language in describing...",
  "highlightedPassages": [
    { "text": "devastating policy failure", "type": "LOADED_LANGUAGE" },
    { "text": "experts unanimously agree", "type": "APPEAL_TO_AUTHORITY" }
  ]
}
POST/api/v1/claims/extract

Extract factual claims from article text. Returns claims with verbatim quotes, attribution, confidence ratings, and primary source types.

Parameters

NameTypeDescription
text*stringArticle text to extract claims from
urlstringOptional article URL for context
Request
curl -X POST -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text": "The president signed the bill into law on Tuesday..."}' \
  https://truesource.app/api/v1/claims/extract
Response
{
  "claims": [
    {
      "claimText": "The president signed the bill into law",
      "verbatimQuote": "signed the bill into law on Tuesday...",
      "confidence": 0.91,
      "attribution": "White House",
      "primarySourceType": "GOVERNMENT_RECORD"
    }
  ]
}
POST/api/v1/claims/verify

Fact-check a specific claim against known sources. Returns a verdict, confidence score, supporting evidence, and explanation.

Parameters

NameTypeDescription
claim*stringThe claim to fact-check
Request
curl -X POST -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"claim": "Inflation hit 9.1% in June 2022"}' \
  https://truesource.app/api/v1/claims/verify
Response
{
  "claim": "Inflation hit 9.1% in June 2022",
  "verdict": "TRUE",
  "confidence": 0.97,
  "sources": [
    { "name": "Bureau of Labor Statistics", "url": "https://bls.gov/..." }
  ],
  "explanation": "CPI-U rose 9.1% year-over-year in June 2022..."
}
GET/api/v1/owner/{id}

Get the full ownership chain for a media entity including parent companies, subsidiaries, and corporate structure.

Parameters

NameTypeDescription
id*stringOwner ID from TrueSource database
Request
curl -H "Authorization: Bearer YOUR_API_KEY" \
  https://truesource.app/api/v1/owner/clx1234abc
Response
{
  "id": "clx1234abc",
  "name": "CNN",
  "type": "MEDIA_COMPANY",
  "parent": {
    "name": "Warner Bros. Discovery",
    "type": "CONGLOMERATE"
  },
  "subsidiaries": ["CNN International", "HLN"]
}
GET/api/v1/owner/{id}/donations

Retrieve FEC political donation data for a media owner including recipients, amounts, party breakdown, and election cycles.

Parameters

NameTypeDescription
id*stringOwner ID
cyclestringElection cycle year (e.g. 2024)
Request
curl -H "Authorization: Bearer YOUR_API_KEY" \
  https://truesource.app/api/v1/owner/clx1234abc/donations
Response
{
  "owner": "Warner Bros. Discovery",
  "totalDonations": 2450000,
  "cycles": ["2022", "2024"],
  "partyBreakdown": {
    "DEM": 0.58, "REP": 0.35, "OTHER": 0.07
  },
  "topRecipients": [
    { "name": "Senate Leadership Fund", "amount": 250000 }
  ]
}
GET/api/v1/story/{id}/coverage

Get the coverage spectrum for a story cluster showing which political perspectives are represented and where coverage gaps exist.

Parameters

NameTypeDescription
id*stringStory cluster ID
Request
curl -H "Authorization: Bearer YOUR_API_KEY" \
  https://truesource.app/api/v1/story/sty_abc123/coverage
Response
{
  "storyId": "sty_abc123",
  "title": "Federal Reserve Interest Rate Decision",
  "articleCount": 12,
  "biasSpectrum": {
    "LEFT": 3, "LEFT_CENTER": 4,
    "CENTER": 2, "RIGHT_CENTER": 2, "RIGHT": 1
  },
  "gaps": ["FAR_RIGHT"]
}
POST/api/v1/tweet/analyze

Fact-check a tweet by URL or text content. Returns claim extraction, verdict for each claim, and author credibility score.

Parameters

NameTypeDescription
tweetUrlstringURL of the tweet to analyze
textstringTweet text (if URL not provided)
Request
curl -X POST -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"tweetUrl": "https://x.com/user/status/123456"}' \
  https://truesource.app/api/v1/tweet/analyze
Response
{
  "claims": [
    {
      "text": "Unemployment is at a 50-year low",
      "verdict": "MOSTLY_TRUE",
      "confidence": 0.85
    }
  ],
  "authorCredibility": 72,
  "overallAssessment": "Largely accurate with minor context missing"
}

Reference

Pricing

Start with 100 free requests per month. No credit card required.

TierPriceRequests/mo
ExplorerFree100
Starter$49/mo5,000
GrowthPopular$199/mo25,000
Scale$499/mo100,000
EnterpriseCustomUnlimited

All paid tiers include commercial usage rights. Enterprise plans include custom SLAs and dedicated infrastructure.

FAQ

Ready to get started?

Start with 100 free requests per month. No credit card required.