curl --request GET \
--url https://api.worldmonitor.app/api/news/v1/search-claim-headlinesimport requests
url = "https://api.worldmonitor.app/api/news/v1/search-claim-headlines"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.worldmonitor.app/api/news/v1/search-claim-headlines', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.worldmonitor.app/api/news/v1/search-claim-headlines",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.worldmonitor.app/api/news/v1/search-claim-headlines"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.worldmonitor.app/api/news/v1/search-claim-headlines")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.worldmonitor.app/api/news/v1/search-claim-headlines")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"feedCached": 241,
"feedTotal": 241,
"headlines": [
{
"link": "https://example.com/news/synthetic-example",
"publishedAt": 1768478400000,
"source": "Example Feed",
"title": "Synthetic example headline sharing the claim's words"
}
],
"readAt": "2026-01-15T12:00:00.000Z",
"searchedFeeds": 216,
"searchedHeadlines": 4140,
"state": "complete"
}{
"violations": [
{
"field": "<string>",
"description": "<string>"
}
]
}{
"message": "<string>"
}{
"message": "<string>"
}SearchClaimHeadlines
SearchClaimHeadlines returns the fresh headlines from every configured feed that share a claim’s words, so the /verify page and verify_claim can build its coverage card.
curl --request GET \
--url https://api.worldmonitor.app/api/news/v1/search-claim-headlinesimport requests
url = "https://api.worldmonitor.app/api/news/v1/search-claim-headlines"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.worldmonitor.app/api/news/v1/search-claim-headlines', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.worldmonitor.app/api/news/v1/search-claim-headlines",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.worldmonitor.app/api/news/v1/search-claim-headlines"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.worldmonitor.app/api/news/v1/search-claim-headlines")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.worldmonitor.app/api/news/v1/search-claim-headlines")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"feedCached": 241,
"feedTotal": 241,
"headlines": [
{
"link": "https://example.com/news/synthetic-example",
"publishedAt": 1768478400000,
"source": "Example Feed",
"title": "Synthetic example headline sharing the claim's words"
}
],
"readAt": "2026-01-15T12:00:00.000Z",
"searchedFeeds": 216,
"searchedHeadlines": 4140,
"state": "complete"
}{
"violations": [
{
"field": "<string>",
"description": "<string>"
}
]
}{
"message": "<string>"
}{
"message": "<string>"
}Query Parameters
The claim or headline, up to 300 characters. Empty returns only the counts.
Optional JMESPath expression applied server-side to project or reduce the JSON response before it is returned (mirrors the MCP jmespath argument). Invalid expressions, expressions larger than 1024 UTF-8 bytes, or projections that exceed the 256 KB output cap return HTTP 400 with a {_jmespath_error, original_keys} envelope. Grammar and worked examples: https://www.worldmonitor.app/docs/mcp-jmespath.
Response
Successful response
SearchClaimHeadlinesResponse holds the headlines that share the claim's words, for building its coverage card.
Show child attributes
Show child attributes
Fresh headlines searched.
Feeds those headlines came from.
Configured full-variant English feeds.
Feeds whose parsed cache was available.
complete | partial | unavailable. Unavailable searched nothing.
When the feed caches were read, ISO 8601.
Was this page helpful?
