curl --request POST \
--url https://catchall.newscatcherapi.com/catchAll/initialize \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"query": "Series B funding rounds for SaaS startups",
"context": "Focus on funding amount and company name"
}
'import requests
url = "https://catchall.newscatcherapi.com/catchAll/initialize"
payload = {
"query": "Series B funding rounds for SaaS startups",
"context": "Focus on funding amount and company name"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
query: 'Series B funding rounds for SaaS startups',
context: 'Focus on funding amount and company name'
})
};
fetch('https://catchall.newscatcherapi.com/catchAll/initialize', 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://catchall.newscatcherapi.com/catchAll/initialize",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'query' => 'Series B funding rounds for SaaS startups',
'context' => 'Focus on funding amount and company name'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://catchall.newscatcherapi.com/catchAll/initialize"
payload := strings.NewReader("{\n \"query\": \"Series B funding rounds for SaaS startups\",\n \"context\": \"Focus on funding amount and company name\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://catchall.newscatcherapi.com/catchAll/initialize")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"query\": \"Series B funding rounds for SaaS startups\",\n \"context\": \"Focus on funding amount and company name\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://catchall.newscatcherapi.com/catchAll/initialize")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"query\": \"Series B funding rounds for SaaS startups\",\n \"context\": \"Focus on funding amount and company name\"\n}"
response = http.request(request)
puts response.read_body{
"query": "Series B funding rounds for SaaS startups",
"context": "Focus on funding amount and company name",
"validators": [
{
"name": "is_series_b_funding",
"description": "true if the web page describes a Series B funding round",
"type": "boolean"
},
{
"name": "is_saas_startup",
"description": "true if the company receiving funding is a SaaS startup",
"type": "boolean"
}
],
"enrichments": [
{
"name": "funding_amount",
"description": "Extract the amount of funding received in the Series B round",
"type": "number"
},
{
"name": "investee_company",
"description": "Extract the name of the SaaS startup receiving the funding",
"type": "company"
},
{
"name": "investor_company",
"description": "Extract the name of the lead investor",
"type": "company"
},
{
"name": "funding_date",
"description": "Extract the date when the funding round was announced",
"type": "date"
}
],
"start_date": "2026-02-19T00:00:00Z",
"end_date": "2026-02-24T00:00:00Z",
"date_modification_message": [
"No dates were provided; using a default window of 5 days."
]
}{
"detail": "X-API-Key header is required for this endpoint"
}{
"detail": "Invalid API key"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Initialize job
Get suggested validators, enrichments, and date ranges for a query.
curl --request POST \
--url https://catchall.newscatcherapi.com/catchAll/initialize \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"query": "Series B funding rounds for SaaS startups",
"context": "Focus on funding amount and company name"
}
'import requests
url = "https://catchall.newscatcherapi.com/catchAll/initialize"
payload = {
"query": "Series B funding rounds for SaaS startups",
"context": "Focus on funding amount and company name"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
query: 'Series B funding rounds for SaaS startups',
context: 'Focus on funding amount and company name'
})
};
fetch('https://catchall.newscatcherapi.com/catchAll/initialize', 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://catchall.newscatcherapi.com/catchAll/initialize",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'query' => 'Series B funding rounds for SaaS startups',
'context' => 'Focus on funding amount and company name'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://catchall.newscatcherapi.com/catchAll/initialize"
payload := strings.NewReader("{\n \"query\": \"Series B funding rounds for SaaS startups\",\n \"context\": \"Focus on funding amount and company name\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://catchall.newscatcherapi.com/catchAll/initialize")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"query\": \"Series B funding rounds for SaaS startups\",\n \"context\": \"Focus on funding amount and company name\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://catchall.newscatcherapi.com/catchAll/initialize")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"query\": \"Series B funding rounds for SaaS startups\",\n \"context\": \"Focus on funding amount and company name\"\n}"
response = http.request(request)
puts response.read_body{
"query": "Series B funding rounds for SaaS startups",
"context": "Focus on funding amount and company name",
"validators": [
{
"name": "is_series_b_funding",
"description": "true if the web page describes a Series B funding round",
"type": "boolean"
},
{
"name": "is_saas_startup",
"description": "true if the company receiving funding is a SaaS startup",
"type": "boolean"
}
],
"enrichments": [
{
"name": "funding_amount",
"description": "Extract the amount of funding received in the Series B round",
"type": "number"
},
{
"name": "investee_company",
"description": "Extract the name of the SaaS startup receiving the funding",
"type": "company"
},
{
"name": "investor_company",
"description": "Extract the name of the lead investor",
"type": "company"
},
{
"name": "funding_date",
"description": "Extract the date when the funding round was announced",
"type": "date"
}
],
"start_date": "2026-02-19T00:00:00Z",
"end_date": "2026-02-24T00:00:00Z",
"date_modification_message": [
"No dates were provided; using a default window of 5 days."
]
}{
"detail": "X-API-Key header is required for this endpoint"
}{
"detail": "Invalid API key"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Body
Request to get validator, enrichment, and date range suggestions for a query.
Response
Suggestions retrieved successfully
Start date for web search (ISO 8601 format with UTC timezone).
Defines the start of the search window by web page discovery date, not event date. Web pages discovered within this range may describe events from any time period.
Must be within plan's allowed search depth. Default is 5 days before current date if not specified.
"2026-01-30T00:00:00Z"
End date for web search (ISO 8601 format with UTC timezone).
Defines the end of the search window by web page discovery date, not event date. Web pages discovered within this range may describe events from any time period.
Must be within plan's allowed search depth and after start_date. Default is current date if not specified.
"2026-02-05T00:00:00Z"
Messages explaining date adjustments due to plan limits.
Empty array if no modifications were needed. Contains human-readable messages when requested dates exceed plan's allowed lookback period.
[
"start_date must be >= 2025-01-23, your plan limited to lookback 365 days; we modified start_date to 2025-01-23."
]
Was this page helpful?

