https://www.brainiac.software/api/v1/news-intelligence/original-source-trace$0.05 USDCTrace original news sources
Cluster similar articles and identify the earliest published item. Later reprints are not treated as independent confirmation.
Body
| Field | Required | Notes |
|---|---|---|
text | No | string |
json | No | string |
csv | No | string |
file | No | object; Object |
articles | No | array; Array |
claims | No | array; Array |
events | No | array; Array |
rss | No | object; Object |
asOf | No | string |
country | No | string |
Request exampleJSON
{
"articles": [
{
"id": "A-1",
"title": "Ministry announces flood relief package",
"outlet": "Official Wire",
"url": "https://example.invalid/a1",
"publishedAt": "2026-10-01T08:00:00.000Z",
"body": "The ministry announced a flood relief package today.",
"country": "US"
},
{
"id": "A-2",
"title": "Ministry announces flood relief package",
"outlet": "City Paper",
"url": "https://example.invalid/a2",
"publishedAt": "2026-10-01T12:00:00.000Z",
"body": "The ministry announced a flood relief package today.",
"country": "US",
"syndicatedFrom": "Official Wire"
}
]
}Response exampleJSON
{
"checkedAt": "2026-11-04T21:00:00.000Z",
"status": "traced",
"clusterCount": 1,
"items": [
{
"clusterId": "CL-1",
"originalArticleId": "A-1",
"originalOutlet": "Official Wire",
"originalUrl": "https://example.invalid/a1",
"originalPublishedAt": "2026-10-01T08:00:00.000Z",
"reprintCount": 1,
"articleIds": [
"A-1",
"A-2"
],
"outlets": [
"Official Wire",
"City Paper"
],
"repeatedPublicationTreatedAsConfirmation": false,
"independentConfirmationClaimed": false
}
],
"repeatedPublicationTreatedAsConfirmation": false,
"independentConfirmationClaimed": false,
"paidProviderUsed": false,
"apiKeyRequired": false,
"publicSources": [],
"findings": [
{
"kind": "observation",
"code": "syndication_or_repeat",
"subject": "A-1",
"detail": "Similar articles were clustered. Repeated publication is not independent confirmation."
}
],
"limitations": [
"Articles, claims, and events are copied only from labeled fields supplied by the caller, or from a key-free public RSS/Atom response when an rss.url is requested.",
"No paid news API is used and no API key is required.",
"Repeated publication or syndication of the same claim is never treated as independent confirmation.",
"Claim extraction uses local heuristics on supplied text. Missing quotes and attributions are not invented.",
"Source independence counts distinct outlets only; similar or syndicated copies stay labeled as non-independent repeats."
]
}cURL
curl -i -X POST "https://www.brainiac.software/api/v1/news-intelligence/original-source-trace" \
-H 'content-type: application/json' \
-H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
--data-binary @- <<'JSON'
{
"articles": [
{
"id": "A-1",
"title": "Ministry announces flood relief package",
"outlet": "Official Wire",
"url": "https://example.invalid/a1",
"publishedAt": "2026-10-01T08:00:00.000Z",
"body": "The ministry announced a flood relief package today.",
"country": "US"
},
{
"id": "A-2",
"title": "Ministry announces flood relief package",
"outlet": "City Paper",
"url": "https://example.invalid/a2",
"publishedAt": "2026-10-01T12:00:00.000Z",
"body": "The ministry announced a flood relief package today.",
"country": "US",
"syndicatedFrom": "Official Wire"
}
]
}
JSONhttps://www.brainiac.software/api/v1/news-intelligence/syndication-cluster$0.04 USDCCluster syndicated news articles
Group near-duplicate titles and bodies into syndication clusters without counting repeats as confirmation.
Body
| Field | Required | Notes |
|---|---|---|
text | No | string |
json | No | string |
csv | No | string |
file | No | object; Object |
articles | No | array; Array |
claims | No | array; Array |
events | No | array; Array |
rss | No | object; Object |
asOf | No | string |
country | No | string |
Request exampleJSON
{
"articles": [
{
"id": "A-1",
"title": "Bridge closure begins Monday",
"outlet": "Outlet A",
"publishedAt": "2026-09-10T09:00:00.000Z",
"body": "Officials said the bridge closure begins Monday for repairs."
},
{
"id": "A-2",
"title": "Bridge closure begins Monday",
"outlet": "Outlet B",
"publishedAt": "2026-09-10T11:00:00.000Z",
"body": "Officials said the bridge closure begins Monday for repairs."
},
{
"id": "A-3",
"title": "Unrelated market update",
"outlet": "Outlet C",
"publishedAt": "2026-09-10T10:00:00.000Z",
"body": "Markets were mixed in afternoon trading."
}
]
}Response exampleJSON
{
"checkedAt": "2026-11-04T21:00:00.000Z",
"status": "clustered",
"clusterCount": 1,
"items": [
{
"id": "CL-1",
"articleIds": [
"A-1",
"A-2"
],
"outlets": [
"Outlet A",
"Outlet B"
],
"earliestId": "A-1",
"earliestPublishedAt": "2026-09-10T09:00:00.000Z",
"similarity": 0.72,
"independentConfirmationClaimed": false,
"repeatedPublicationTreatedAsConfirmation": false
}
],
"repeatedPublicationTreatedAsConfirmation": false,
"independentConfirmationClaimed": false,
"paidProviderUsed": false,
"apiKeyRequired": false,
"publicSources": [],
"findings": [
{
"kind": "observation",
"code": "syndication_or_repeat",
"subject": "A-1",
"detail": "Similar articles were clustered. Repeated publication is not independent confirmation."
}
],
"limitations": [
"Articles, claims, and events are copied only from labeled fields supplied by the caller, or from a key-free public RSS/Atom response when an rss.url is requested.",
"No paid news API is used and no API key is required.",
"Repeated publication or syndication of the same claim is never treated as independent confirmation.",
"Claim extraction uses local heuristics on supplied text. Missing quotes and attributions are not invented.",
"Source independence counts distinct outlets only; similar or syndicated copies stay labeled as non-independent repeats."
]
}cURL
curl -i -X POST "https://www.brainiac.software/api/v1/news-intelligence/syndication-cluster" \
-H 'content-type: application/json' \
-H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
--data-binary @- <<'JSON'
{
"articles": [
{
"id": "A-1",
"title": "Bridge closure begins Monday",
"outlet": "Outlet A",
"publishedAt": "2026-09-10T09:00:00.000Z",
"body": "Officials said the bridge closure begins Monday for repairs."
},
{
"id": "A-2",
"title": "Bridge closure begins Monday",
"outlet": "Outlet B",
"publishedAt": "2026-09-10T11:00:00.000Z",
"body": "Officials said the bridge closure begins Monday for repairs."
},
{
"id": "A-3",
"title": "Unrelated market update",
"outlet": "Outlet C",
"publishedAt": "2026-09-10T10:00:00.000Z",
"body": "Markets were mixed in afternoon trading."
}
]
}
JSONhttps://www.brainiac.software/api/v1/news-intelligence/claim-extract$0.04 USDCExtract news claims
Extract claim-like sentences and quotes from supplied article text using local heuristics.
Body
| Field | Required | Notes |
|---|---|---|
text | No | string |
json | No | string |
csv | No | string |
file | No | object; Object |
articles | No | array; Array |
claims | No | array; Array |
events | No | array; Array |
rss | No | object; Object |
asOf | No | string |
country | No | string |
Request exampleJSON
{
"articles": [
{
"id": "A-1",
"title": "Mayor denies resignation rumor",
"outlet": "Local News",
"body": "The mayor said the resignation rumor is false. \"I am not resigning,\" the mayor said according to the statement."
}
]
}Response exampleJSON
{
"checkedAt": "2026-11-04T21:00:00.000Z",
"status": "extracted",
"claimCount": 2,
"items": [
{
"id": "A-1-S-1",
"text": "Mayor denies resignation rumor The mayor said the resignation rumor is false.",
"normalized": "mayor denies resignation rumor the mayor said the resignation rumor is false",
"articleId": "A-1",
"polarity": "negating",
"country": "",
"event": "",
"source": "Local News",
"repeatedPublicationTreatedAsConfirmation": false,
"independentConfirmationClaimed": false
},
{
"id": "A-1-S-2",
"text": "\"I am not resigning,\" the mayor said according to the statement.",
"normalized": "i am not resigning the mayor said according to the statement",
"articleId": "A-1",
"polarity": "negating",
"country": "",
"event": "",
"source": "Local News",
"repeatedPublicationTreatedAsConfirmation": false,
"independentConfirmationClaimed": false
}
],
"repeatedPublicationTreatedAsConfirmation": false,
"independentConfirmationClaimed": false,
"paidProviderUsed": false,
"apiKeyRequired": false,
"publicSources": [],
"findings": [],
"limitations": [
"Articles, claims, and events are copied only from labeled fields supplied by the caller, or from a key-free public RSS/Atom response when an rss.url is requested.",
"No paid news API is used and no API key is required.",
"Repeated publication or syndication of the same claim is never treated as independent confirmation.",
"Claim extraction uses local heuristics on supplied text. Missing quotes and attributions are not invented.",
"Source independence counts distinct outlets only; similar or syndicated copies stay labeled as non-independent repeats."
]
}cURL
curl -i -X POST "https://www.brainiac.software/api/v1/news-intelligence/claim-extract" \
-H 'content-type: application/json' \
-H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
--data-binary @- <<'JSON'
{
"articles": [
{
"id": "A-1",
"title": "Mayor denies resignation rumor",
"outlet": "Local News",
"body": "The mayor said the resignation rumor is false. \"I am not resigning,\" the mayor said according to the statement."
}
]
}
JSONhttps://www.brainiac.software/api/v1/news-intelligence/claim-source-match$0.05 USDCMatch claims to sources
Match supplied or extracted claims to articles by text overlap. Multiple outlets repeating a claim are not independent confirmation.
Body
| Field | Required | Notes |
|---|---|---|
text | No | string |
json | No | string |
csv | No | string |
file | No | object; Object |
articles | No | array; Array |
claims | No | array; Array |
events | No | array; Array |
rss | No | object; Object |
asOf | No | string |
country | No | string |
Request exampleJSON
{
"claims": [
{
"id": "C-1",
"text": "The ministry announced a flood relief package today.",
"articleId": "A-1"
}
],
"articles": [
{
"id": "A-1",
"title": "Flood relief announced",
"outlet": "Official Wire",
"body": "The ministry announced a flood relief package today."
},
{
"id": "A-2",
"title": "Flood relief announced",
"outlet": "City Paper",
"body": "The ministry announced a flood relief package today."
}
]
}Response exampleJSON
{
"checkedAt": "2026-11-04T21:00:00.000Z",
"status": "matched",
"claimCount": 1,
"items": [
{
"claimId": "C-1",
"text": "The ministry announced a flood relief package today.",
"matchCount": 2,
"distinctOutletCount": 2,
"matches": [
{
"articleId": "A-1",
"outlet": "Official Wire",
"score": 1,
"kind": "exactish"
},
{
"articleId": "A-2",
"outlet": "City Paper",
"score": 1,
"kind": "exactish"
}
],
"repeatedPublicationTreatedAsConfirmation": false,
"independentConfirmationClaimed": false,
"syndicatedRepeatLikely": true
}
],
"repeatedPublicationTreatedAsConfirmation": false,
"independentConfirmationClaimed": false,
"paidProviderUsed": false,
"apiKeyRequired": false,
"publicSources": [],
"findings": [
{
"kind": "observation",
"code": "claim_repeat",
"subject": "C-1",
"detail": "The same or similar claim appears in multiple articles. Repeats are not independent confirmation."
}
],
"limitations": [
"Articles, claims, and events are copied only from labeled fields supplied by the caller, or from a key-free public RSS/Atom response when an rss.url is requested.",
"No paid news API is used and no API key is required.",
"Repeated publication or syndication of the same claim is never treated as independent confirmation.",
"Claim extraction uses local heuristics on supplied text. Missing quotes and attributions are not invented.",
"Source independence counts distinct outlets only; similar or syndicated copies stay labeled as non-independent repeats."
]
}cURL
curl -i -X POST "https://www.brainiac.software/api/v1/news-intelligence/claim-source-match" \
-H 'content-type: application/json' \
-H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
--data-binary @- <<'JSON'
{
"claims": [
{
"id": "C-1",
"text": "The ministry announced a flood relief package today.",
"articleId": "A-1"
}
],
"articles": [
{
"id": "A-1",
"title": "Flood relief announced",
"outlet": "Official Wire",
"body": "The ministry announced a flood relief package today."
},
{
"id": "A-2",
"title": "Flood relief announced",
"outlet": "City Paper",
"body": "The ministry announced a flood relief package today."
}
]
}
JSONhttps://www.brainiac.software/api/v1/news-intelligence/event-timeline-build$0.04 USDCBuild news event timeline
Order supplied events or dated articles into a timeline without inventing missing dates.
Body
| Field | Required | Notes |
|---|---|---|
text | No | string |
json | No | string |
csv | No | string |
file | No | object; Object |
articles | No | array; Array |
claims | No | array; Array |
events | No | array; Array |
rss | No | object; Object |
asOf | No | string |
country | No | string |
Request exampleJSON
{
"events": [
{
"id": "E-1",
"date": "2026-10-01",
"country": "US",
"title": "Relief package announced",
"articleId": "A-1",
"source": "Official Wire"
},
{
"id": "E-2",
"date": "2026-10-03",
"country": "US",
"title": "Aid distribution begins",
"articleId": "A-3",
"source": "City Paper"
}
]
}Response exampleJSON
{
"checkedAt": "2026-11-04T21:00:00.000Z",
"status": "built",
"eventCount": 2,
"items": [
{
"id": "E-1",
"date": "2026-10-01",
"country": "US",
"title": "Relief package announced",
"summary": "",
"articleId": "A-1",
"source": "Official Wire",
"repeatedPublicationTreatedAsConfirmation": false,
"independentConfirmationClaimed": false
},
{
"id": "E-2",
"date": "2026-10-03",
"country": "US",
"title": "Aid distribution begins",
"summary": "",
"articleId": "A-3",
"source": "City Paper",
"repeatedPublicationTreatedAsConfirmation": false,
"independentConfirmationClaimed": false
}
],
"repeatedPublicationTreatedAsConfirmation": false,
"independentConfirmationClaimed": false,
"paidProviderUsed": false,
"apiKeyRequired": false,
"publicSources": [],
"findings": [],
"limitations": [
"Articles, claims, and events are copied only from labeled fields supplied by the caller, or from a key-free public RSS/Atom response when an rss.url is requested.",
"No paid news API is used and no API key is required.",
"Repeated publication or syndication of the same claim is never treated as independent confirmation.",
"Claim extraction uses local heuristics on supplied text. Missing quotes and attributions are not invented.",
"Source independence counts distinct outlets only; similar or syndicated copies stay labeled as non-independent repeats."
]
}cURL
curl -i -X POST "https://www.brainiac.software/api/v1/news-intelligence/event-timeline-build" \
-H 'content-type: application/json' \
-H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
--data-binary @- <<'JSON'
{
"events": [
{
"id": "E-1",
"date": "2026-10-01",
"country": "US",
"title": "Relief package announced",
"articleId": "A-1",
"source": "Official Wire"
},
{
"id": "E-2",
"date": "2026-10-03",
"country": "US",
"title": "Aid distribution begins",
"articleId": "A-3",
"source": "City Paper"
}
]
}
JSONhttps://www.brainiac.software/api/v1/news-intelligence/correction-history-detect$0.03 USDCDetect news correction history
Flag correction, update, and retraction wording or updatedAt changes in supplied articles.
Body
| Field | Required | Notes |
|---|---|---|
text | No | string |
json | No | string |
csv | No | string |
file | No | object; Object |
articles | No | array; Array |
claims | No | array; Array |
events | No | array; Array |
rss | No | object; Object |
asOf | No | string |
country | No | string |
Request exampleJSON
{
"articles": [
{
"id": "A-1",
"title": "Correction: attendance figure updated",
"outlet": "City Paper",
"publishedAt": "2026-09-01T10:00:00.000Z",
"updatedAt": "2026-09-01T18:00:00.000Z",
"body": "Editor's note: This story was corrected to update the attendance figure."
},
{
"id": "A-2",
"title": "Unrelated briefing",
"outlet": "Outlet B",
"publishedAt": "2026-09-02T10:00:00.000Z",
"body": "Officials held a routine briefing."
}
]
}Response exampleJSON
{
"checkedAt": "2026-11-04T21:00:00.000Z",
"status": "checked",
"articleCount": 2,
"correctionSignalCount": 1,
"items": [
{
"articleId": "A-1",
"outlet": "City Paper",
"publishedAt": "2026-09-01T10:00:00.000Z",
"updatedAt": "2026-09-01T18:00:00.000Z",
"detected": true,
"signalCount": 6,
"signals": [
"correction",
"updated",
"editor's note",
"corrected",
"update"
],
"repeatedPublicationTreatedAsConfirmation": false,
"independentConfirmationClaimed": false
},
{
"articleId": "A-2",
"outlet": "Outlet B",
"publishedAt": "2026-09-02T10:00:00.000Z",
"updatedAt": "",
"detected": false,
"signalCount": 0,
"signals": [],
"repeatedPublicationTreatedAsConfirmation": false,
"independentConfirmationClaimed": false
}
],
"repeatedPublicationTreatedAsConfirmation": false,
"independentConfirmationClaimed": false,
"paidProviderUsed": false,
"apiKeyRequired": false,
"publicSources": [],
"findings": [
{
"kind": "observation",
"code": "correction_signal",
"subject": "A-1",
"detail": "Correction/update wording or an updatedAt distinct from publishedAt was found."
}
],
"limitations": [
"Articles, claims, and events are copied only from labeled fields supplied by the caller, or from a key-free public RSS/Atom response when an rss.url is requested.",
"No paid news API is used and no API key is required.",
"Repeated publication or syndication of the same claim is never treated as independent confirmation.",
"Claim extraction uses local heuristics on supplied text. Missing quotes and attributions are not invented.",
"Source independence counts distinct outlets only; similar or syndicated copies stay labeled as non-independent repeats."
]
}cURL
curl -i -X POST "https://www.brainiac.software/api/v1/news-intelligence/correction-history-detect" \
-H 'content-type: application/json' \
-H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
--data-binary @- <<'JSON'
{
"articles": [
{
"id": "A-1",
"title": "Correction: attendance figure updated",
"outlet": "City Paper",
"publishedAt": "2026-09-01T10:00:00.000Z",
"updatedAt": "2026-09-01T18:00:00.000Z",
"body": "Editor's note: This story was corrected to update the attendance figure."
},
{
"id": "A-2",
"title": "Unrelated briefing",
"outlet": "Outlet B",
"publishedAt": "2026-09-02T10:00:00.000Z",
"body": "Officials held a routine briefing."
}
]
}
JSONhttps://www.brainiac.software/api/v1/news-intelligence/source-independence-analyze$0.04 USDCAnalyze news source independence
Count distinct outlets and mark syndicated/similar copies as non-independent. Repeats are never claimed as confirmation.
Body
| Field | Required | Notes |
|---|---|---|
text | No | string |
json | No | string |
csv | No | string |
file | No | object; Object |
articles | No | array; Array |
claims | No | array; Array |
events | No | array; Array |
rss | No | object; Object |
asOf | No | string |
country | No | string |
Request exampleJSON
{
"articles": [
{
"id": "A-1",
"title": "Policy draft leaked",
"outlet": "Outlet A",
"url": "https://a.example.invalid/1",
"body": "A policy draft leaked overnight according to officials."
},
{
"id": "A-2",
"title": "Policy draft leaked",
"outlet": "Outlet B",
"url": "https://b.example.invalid/2",
"body": "A policy draft leaked overnight according to officials.",
"syndicatedFrom": "Outlet A"
},
{
"id": "A-3",
"title": "Markets open higher",
"outlet": "Outlet C",
"url": "https://c.example.invalid/3",
"body": "Markets opened higher on earnings news."
}
]
}Response exampleJSON
{
"checkedAt": "2026-11-04T21:00:00.000Z",
"status": "analyzed",
"outletCount": 3,
"hostCount": 3,
"syndicatedClusterCount": 1,
"distinctOutletCount": 3,
"items": [
{
"articleId": "A-1",
"outlet": "Outlet A",
"host": "a.example.invalid",
"inSyndicationCluster": true,
"independentConfirmationClaimed": false,
"repeatedPublicationTreatedAsConfirmation": false
},
{
"articleId": "A-2",
"outlet": "Outlet B",
"host": "b.example.invalid",
"inSyndicationCluster": true,
"independentConfirmationClaimed": false,
"repeatedPublicationTreatedAsConfirmation": false
},
{
"articleId": "A-3",
"outlet": "Outlet C",
"host": "c.example.invalid",
"inSyndicationCluster": false,
"independentConfirmationClaimed": false,
"repeatedPublicationTreatedAsConfirmation": false
}
],
"repeatedPublicationTreatedAsConfirmation": false,
"independentConfirmationClaimed": false,
"paidProviderUsed": false,
"apiKeyRequired": false,
"publicSources": [],
"findings": [
{
"kind": "observation",
"code": "non_independent_repeat",
"subject": "A-1",
"detail": "Article participates in a similar/syndicated cluster and is not counted as independent confirmation."
},
{
"kind": "observation",
"code": "non_independent_repeat",
"subject": "A-2",
"detail": "Article participates in a similar/syndicated cluster and is not counted as independent confirmation."
}
],
"limitations": [
"Articles, claims, and events are copied only from labeled fields supplied by the caller, or from a key-free public RSS/Atom response when an rss.url is requested.",
"No paid news API is used and no API key is required.",
"Repeated publication or syndication of the same claim is never treated as independent confirmation.",
"Claim extraction uses local heuristics on supplied text. Missing quotes and attributions are not invented.",
"Source independence counts distinct outlets only; similar or syndicated copies stay labeled as non-independent repeats."
]
}cURL
curl -i -X POST "https://www.brainiac.software/api/v1/news-intelligence/source-independence-analyze" \
-H 'content-type: application/json' \
-H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
--data-binary @- <<'JSON'
{
"articles": [
{
"id": "A-1",
"title": "Policy draft leaked",
"outlet": "Outlet A",
"url": "https://a.example.invalid/1",
"body": "A policy draft leaked overnight according to officials."
},
{
"id": "A-2",
"title": "Policy draft leaked",
"outlet": "Outlet B",
"url": "https://b.example.invalid/2",
"body": "A policy draft leaked overnight according to officials.",
"syndicatedFrom": "Outlet A"
},
{
"id": "A-3",
"title": "Markets open higher",
"outlet": "Outlet C",
"url": "https://c.example.invalid/3",
"body": "Markets opened higher on earnings news."
}
]
}
JSONhttps://www.brainiac.software/api/v1/news-intelligence/contradiction-detect$0.05 USDCDetect news claim contradictions
Find affirming vs negating overlapping claims, and label near-duplicate repeats without treating them as confirmation.
Body
| Field | Required | Notes |
|---|---|---|
text | No | string |
json | No | string |
csv | No | string |
file | No | object; Object |
articles | No | array; Array |
claims | No | array; Array |
events | No | array; Array |
rss | No | object; Object |
asOf | No | string |
country | No | string |
Request exampleJSON
{
"claims": [
{
"id": "C-1",
"text": "Officials confirmed the bridge will open next week.",
"polarity": "affirming",
"articleId": "A-1"
},
{
"id": "C-2",
"text": "Officials denied the bridge will open next week.",
"polarity": "negating",
"articleId": "A-2"
},
{
"id": "C-3",
"text": "Officials confirmed the bridge will open next week.",
"polarity": "affirming",
"articleId": "A-3"
}
]
}Response exampleJSON
{
"checkedAt": "2026-11-04T21:00:00.000Z",
"status": "checked",
"pairCount": 3,
"items": [
{
"kind": "contradiction",
"leftClaimId": "C-1",
"rightClaimId": "C-2",
"overlap": 0.857,
"leftPolarity": "affirming",
"rightPolarity": "negating",
"leftArticleId": "A-1",
"rightArticleId": "A-2",
"independentConfirmationClaimed": false,
"repeatedPublicationTreatedAsConfirmation": false
},
{
"kind": "repeat",
"leftClaimId": "C-1",
"rightClaimId": "C-3",
"overlap": 1,
"leftPolarity": "affirming",
"rightPolarity": "affirming",
"leftArticleId": "A-1",
"rightArticleId": "A-3",
"independentConfirmationClaimed": false,
"repeatedPublicationTreatedAsConfirmation": false
},
{
"kind": "contradiction",
"leftClaimId": "C-2",
"rightClaimId": "C-3",
"overlap": 0.857,
"leftPolarity": "negating",
"rightPolarity": "affirming",
"leftArticleId": "A-2",
"rightArticleId": "A-3",
"independentConfirmationClaimed": false,
"repeatedPublicationTreatedAsConfirmation": false
}
],
"repeatedPublicationTreatedAsConfirmation": false,
"independentConfirmationClaimed": false,
"paidProviderUsed": false,
"apiKeyRequired": false,
"publicSources": [],
"findings": [
{
"kind": "conflict",
"code": "claim_contradiction",
"subject": "C-1|C-2",
"detail": "Affirming and negating claims with overlapping content were found."
},
{
"kind": "observation",
"code": "same_claim_repeat",
"subject": "C-1|C-3",
"detail": "Near-duplicate claims were found. Repeat publication is not independent confirmation."
},
{
"kind": "conflict",
"code": "claim_contradiction",
"subject": "C-2|C-3",
"detail": "Affirming and negating claims with overlapping content were found."
}
],
"limitations": [
"Articles, claims, and events are copied only from labeled fields supplied by the caller, or from a key-free public RSS/Atom response when an rss.url is requested.",
"No paid news API is used and no API key is required.",
"Repeated publication or syndication of the same claim is never treated as independent confirmation.",
"Claim extraction uses local heuristics on supplied text. Missing quotes and attributions are not invented.",
"Source independence counts distinct outlets only; similar or syndicated copies stay labeled as non-independent repeats."
]
}cURL
curl -i -X POST "https://www.brainiac.software/api/v1/news-intelligence/contradiction-detect" \
-H 'content-type: application/json' \
-H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
--data-binary @- <<'JSON'
{
"claims": [
{
"id": "C-1",
"text": "Officials confirmed the bridge will open next week.",
"polarity": "affirming",
"articleId": "A-1"
},
{
"id": "C-2",
"text": "Officials denied the bridge will open next week.",
"polarity": "negating",
"articleId": "A-2"
},
{
"id": "C-3",
"text": "Officials confirmed the bridge will open next week.",
"polarity": "affirming",
"articleId": "A-3"
}
]
}
JSONhttps://www.brainiac.software/api/v1/news-intelligence/country-event-monitor$0.04 USDCMonitor country news events
Filter supplied articles and events by country into a dated monitor list.
Body
| Field | Required | Notes |
|---|---|---|
text | No | string |
json | No | string |
csv | No | string |
file | No | object; Object |
articles | No | array; Array |
claims | No | array; Array |
events | No | array; Array |
rss | No | object; Object |
asOf | No | string |
country | No | string |
Request exampleJSON
{
"country": "US",
"articles": [
{
"id": "A-1",
"title": "US flood relief announced",
"country": "US",
"outlet": "Official Wire",
"publishedAt": "2026-10-01T08:00:00.000Z",
"body": "Relief announced."
},
{
"id": "A-2",
"title": "EU market note",
"country": "EU",
"outlet": "EU Desk",
"publishedAt": "2026-10-01T09:00:00.000Z",
"body": "Markets noted."
}
],
"events": [
{
"id": "E-1",
"date": "2026-10-03",
"country": "US",
"title": "Aid distribution begins",
"source": "City Paper"
}
]
}Response exampleJSON
{
"checkedAt": "2026-11-04T21:00:00.000Z",
"status": "monitored",
"country": "US",
"articleCount": 1,
"eventCount": 1,
"items": [
{
"date": "2026-10-01T08:00:00.000Z",
"kind": "article",
"id": "A-1",
"title": "US flood relief announced",
"country": "US",
"outlet": "Official Wire"
},
{
"date": "2026-10-03",
"kind": "event",
"id": "E-1",
"title": "Aid distribution begins",
"country": "US",
"outlet": "City Paper"
}
],
"repeatedPublicationTreatedAsConfirmation": false,
"independentConfirmationClaimed": false,
"paidProviderUsed": false,
"apiKeyRequired": false,
"publicSources": [],
"findings": [],
"limitations": [
"Articles, claims, and events are copied only from labeled fields supplied by the caller, or from a key-free public RSS/Atom response when an rss.url is requested.",
"No paid news API is used and no API key is required.",
"Repeated publication or syndication of the same claim is never treated as independent confirmation.",
"Claim extraction uses local heuristics on supplied text. Missing quotes and attributions are not invented.",
"Source independence counts distinct outlets only; similar or syndicated copies stay labeled as non-independent repeats."
]
}cURL
curl -i -X POST "https://www.brainiac.software/api/v1/news-intelligence/country-event-monitor" \
-H 'content-type: application/json' \
-H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
--data-binary @- <<'JSON'
{
"country": "US",
"articles": [
{
"id": "A-1",
"title": "US flood relief announced",
"country": "US",
"outlet": "Official Wire",
"publishedAt": "2026-10-01T08:00:00.000Z",
"body": "Relief announced."
},
{
"id": "A-2",
"title": "EU market note",
"country": "EU",
"outlet": "EU Desk",
"publishedAt": "2026-10-01T09:00:00.000Z",
"body": "Markets noted."
}
],
"events": [
{
"id": "E-1",
"date": "2026-10-03",
"country": "US",
"title": "Aid distribution begins",
"source": "City Paper"
}
]
}
JSONhttps://www.brainiac.software/api/v1/news-intelligence/verification-evidence-report$0.08 USDCBuild news verification evidence report
Aggregate source tracing, syndication, claims, contradictions, corrections, and independence findings. Repeats are never independent confirmation.
Body
| Field | Required | Notes |
|---|---|---|
text | No | string |
json | No | string |
csv | No | string |
file | No | object; Object |
articles | No | array; Array |
claims | No | array; Array |
events | No | array; Array |
rss | No | object; Object |
asOf | No | string |
country | No | string |
Request exampleJSON
{
"articles": [
{
"id": "A-1",
"title": "Ministry announces flood relief package",
"outlet": "Official Wire",
"publishedAt": "2026-10-01T08:00:00.000Z",
"body": "The ministry announced a flood relief package today.",
"country": "US"
},
{
"id": "A-2",
"title": "Ministry announces flood relief package",
"outlet": "City Paper",
"publishedAt": "2026-10-01T12:00:00.000Z",
"body": "The ministry announced a flood relief package today.",
"country": "US",
"syndicatedFrom": "Official Wire"
},
{
"id": "A-3",
"title": "Correction: aid figure updated",
"outlet": "City Paper",
"publishedAt": "2026-10-02T09:00:00.000Z",
"updatedAt": "2026-10-02T15:00:00.000Z",
"body": "Correction: the aid figure was updated in this report.",
"country": "US"
}
],
"claims": [
{
"id": "C-1",
"text": "The ministry announced a flood relief package today.",
"polarity": "affirming",
"articleId": "A-1"
},
{
"id": "C-2",
"text": "Officials denied that a flood relief package was announced.",
"polarity": "negating",
"articleId": "A-4"
}
]
}Response exampleJSON
{
"checkedAt": "2026-11-04T21:00:00.000Z",
"status": "reported",
"articleCount": 3,
"sections": {
"originalSources": {
"clusterCount": 2
},
"syndication": {
"clusterCount": 1
},
"claims": {
"claimCount": 2
},
"claimMatches": {
"claimCount": 2
},
"timeline": {
"eventCount": 3
},
"corrections": {
"correctionSignalCount": 1
},
"independence": {
"distinctOutletCount": 2,
"syndicatedClusterCount": 1
},
"contradictions": {
"pairCount": 1
},
"country": {
"country": "",
"articleCount": 3
}
},
"note": "Repeated or syndicated publication of the same claim is counted as a repeat only and is never treated as independent confirmation.",
"originalSources": [
{
"clusterId": "CL-1",
"originalArticleId": "A-1",
"originalOutlet": "Official Wire",
"originalUrl": "",
"originalPublishedAt": "2026-10-01T08:00:00.000Z",
"reprintCount": 1,
"articleIds": [
"A-1",
"A-2"
],
"outlets": [
"Official Wire",
"City Paper"
],
"repeatedPublicationTreatedAsConfirmation": false,
"independentConfirmationClaimed": false
},
{
"clusterId": "CL-2",
"originalArticleId": "A-3",
"originalOutlet": "City Paper",
"originalUrl": "",
"originalPublishedAt": "2026-10-02T09:00:00.000Z",
"reprintCount": 0,
"articleIds": [
"A-3"
],
"outlets": [
"City Paper"
],
"repeatedPublicationTreatedAsConfirmation": false,
"independentConfirmationClaimed": false
}
],
"syndication": [
{
"id": "CL-1",
"articleIds": [
"A-1",
"A-2"
],
"outlets": [
"Official Wire",
"City Paper"
],
"earliestId": "A-1",
"earliestPublishedAt": "2026-10-01T08:00:00.000Z",
"similarity": 0.72,
"independentConfirmationClaimed": false,
"repeatedPublicationTreatedAsConfirmation": false
}
],
"contradictions": [
{
"kind": "contradiction",
"leftClaimId": "C-1",
"rightClaimId": "C-2",
"overlap": 0.667,
"leftPolarity": "affirming",
"rightPolarity": "negating",
"leftArticleId": "A-1",
"rightArticleId": "A-4",
"independentConfirmationClaimed": false,
"repeatedPublicationTreatedAsConfirmation": false
}
],
"repeatedPublicationTreatedAsConfirmation": false,
"independentConfirmationClaimed": false,
"paidProviderUsed": false,
"apiKeyRequired": false,
"publicSources": [],
"findings": [
{
"kind": "observation",
"code": "syndication_or_repeat",
"subject": "A-1",
"detail": "Similar articles were clustered. Repeated publication is not independent confirmation."
},
{
"kind": "observation",
"code": "claim_repeat",
"subject": "C-1",
"detail": "The same or similar claim appears in multiple articles. Repeats are not independent confirmation."
},
{
"kind": "observation",
"code": "claim_repeat",
"subject": "C-2",
"detail": "The same or similar claim appears in multiple articles. Repeats are not independent confirmation."
},
{
"kind": "observation",
"code": "correction_signal",
"subject": "A-3",
"detail": "Correction/update wording or an updatedAt distinct from publishedAt was found."
},
{
"kind": "observation",
"code": "non_independent_repeat",
"subject": "A-1",
"detail": "Article participates in a similar/syndicated cluster and is not counted as independent confirmation."
},
{
"kind": "observation",
"code": "non_independent_repeat",
"subject": "A-2",
"detail": "Article participates in a similar/syndicated cluster and is not counted as independent confirmation."
},
{
"kind": "conflict",
"code": "claim_contradiction",
"subject": "C-1|C-2",
"detail": "Affirming and negating claims with overlapping content were found."
},
{
"kind": "observation",
"code": "country_unfiltered",
"subject": "",
"detail": "No country filter was supplied, so all articles/events are listed."
}
],
"limitations": [
"Articles, claims, and events are copied only from labeled fields supplied by the caller, or from a key-free public RSS/Atom response when an rss.url is requested.",
"No paid news API is used and no API key is required.",
"Repeated publication or syndication of the same claim is never treated as independent confirmation.",
"Claim extraction uses local heuristics on supplied text. Missing quotes and attributions are not invented.",
"Source independence counts distinct outlets only; similar or syndicated copies stay labeled as non-independent repeats."
]
}cURL
curl -i -X POST "https://www.brainiac.software/api/v1/news-intelligence/verification-evidence-report" \
-H 'content-type: application/json' \
-H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
--data-binary @- <<'JSON'
{
"articles": [
{
"id": "A-1",
"title": "Ministry announces flood relief package",
"outlet": "Official Wire",
"publishedAt": "2026-10-01T08:00:00.000Z",
"body": "The ministry announced a flood relief package today.",
"country": "US"
},
{
"id": "A-2",
"title": "Ministry announces flood relief package",
"outlet": "City Paper",
"publishedAt": "2026-10-01T12:00:00.000Z",
"body": "The ministry announced a flood relief package today.",
"country": "US",
"syndicatedFrom": "Official Wire"
},
{
"id": "A-3",
"title": "Correction: aid figure updated",
"outlet": "City Paper",
"publishedAt": "2026-10-02T09:00:00.000Z",
"updatedAt": "2026-10-02T15:00:00.000Z",
"body": "Correction: the aid figure was updated in this report.",
"country": "US"
}
],
"claims": [
{
"id": "C-1",
"text": "The ministry announced a flood relief package today.",
"polarity": "affirming",
"articleId": "A-1"
},
{
"id": "C-2",
"text": "Officials denied that a flood relief package was announced.",
"polarity": "negating",
"articleId": "A-4"
}
]
}
JSON