GetFredSeriesBatch
curl --request POST \
--url https://api.worldmonitor.app/api/economic/v1/get-fred-series-batch \
--header 'Content-Type: application/json' \
--header 'X-WorldMonitor-Key: <api-key>' \
--data '
{
"limit": 25,
"seriesIds": [
"GDP"
]
}
'import requests
url = "https://api.worldmonitor.app/api/economic/v1/get-fred-series-batch"
payload = {
"limit": 25,
"seriesIds": ["GDP"]
}
headers = {
"X-WorldMonitor-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-WorldMonitor-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({limit: 25, seriesIds: ['GDP']})
};
fetch('https://api.worldmonitor.app/api/economic/v1/get-fred-series-batch', 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/economic/v1/get-fred-series-batch",
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([
'limit' => 25,
'seriesIds' => [
'GDP'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-WorldMonitor-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://api.worldmonitor.app/api/economic/v1/get-fred-series-batch"
payload := strings.NewReader("{\n \"limit\": 25,\n \"seriesIds\": [\n \"GDP\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-WorldMonitor-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://api.worldmonitor.app/api/economic/v1/get-fred-series-batch")
.header("X-WorldMonitor-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"limit\": 25,\n \"seriesIds\": [\n \"GDP\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.worldmonitor.app/api/economic/v1/get-fred-series-batch")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-WorldMonitor-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"limit\": 25,\n \"seriesIds\": [\n \"GDP\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"fetched": 1,
"requested": 1,
"results": {
"exampleKey": {
"frequency": "example",
"observations": [
{
"date": "2026-01-15",
"value": 1.5
}
],
"seriesId": "GDP",
"title": "example",
"units": "example"
}
}
}{
"violations": [
{
"field": "<string>",
"description": "<string>"
}
]
}{
"error": "<string>"
}{
"error": "<string>",
"code": "subscription_lapsed",
"requiredTier": 123,
"currentTier": 123,
"planKey": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"message": "<string>"
}{
"error": "<string>",
"code": "renewal_verification_pending",
"requiredTier": 123
}{
"message": "<string>"
}EconomicService
GetFredSeriesBatch
GetFredSeriesBatch retrieves multiple FRED series in a single call.
POST
/
api
/
economic
/
v1
/
get-fred-series-batch
GetFredSeriesBatch
curl --request POST \
--url https://api.worldmonitor.app/api/economic/v1/get-fred-series-batch \
--header 'Content-Type: application/json' \
--header 'X-WorldMonitor-Key: <api-key>' \
--data '
{
"limit": 25,
"seriesIds": [
"GDP"
]
}
'import requests
url = "https://api.worldmonitor.app/api/economic/v1/get-fred-series-batch"
payload = {
"limit": 25,
"seriesIds": ["GDP"]
}
headers = {
"X-WorldMonitor-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-WorldMonitor-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({limit: 25, seriesIds: ['GDP']})
};
fetch('https://api.worldmonitor.app/api/economic/v1/get-fred-series-batch', 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/economic/v1/get-fred-series-batch",
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([
'limit' => 25,
'seriesIds' => [
'GDP'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-WorldMonitor-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://api.worldmonitor.app/api/economic/v1/get-fred-series-batch"
payload := strings.NewReader("{\n \"limit\": 25,\n \"seriesIds\": [\n \"GDP\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-WorldMonitor-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://api.worldmonitor.app/api/economic/v1/get-fred-series-batch")
.header("X-WorldMonitor-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"limit\": 25,\n \"seriesIds\": [\n \"GDP\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.worldmonitor.app/api/economic/v1/get-fred-series-batch")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-WorldMonitor-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"limit\": 25,\n \"seriesIds\": [\n \"GDP\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"fetched": 1,
"requested": 1,
"results": {
"exampleKey": {
"frequency": "example",
"observations": [
{
"date": "2026-01-15",
"value": 1.5
}
],
"seriesId": "GDP",
"title": "example",
"units": "example"
}
}
}{
"violations": [
{
"field": "<string>",
"description": "<string>"
}
]
}{
"error": "<string>"
}{
"error": "<string>",
"code": "subscription_lapsed",
"requiredTier": 123,
"currentTier": 123,
"planKey": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"message": "<string>"
}{
"error": "<string>",
"code": "renewal_verification_pending",
"requiredTier": 123
}{
"message": "<string>"
}Authorizations
WorldMonitorKeyApiKeyHeader
User-issued WorldMonitor API key.
Headers
Optional client-generated idempotency key. Retrying a POST with the same key and an identical request body replays the original response (only the status, body, and Content-Type are reproduced) instead of re-executing; reusing the key with a different body is rejected with 422. For mutations this avoids duplicating the side effect, while for batch-read POSTs it replays a cached snapshot that can be up to 24 hours stale. Keys are scoped per authenticated caller (falling back to the source IP for unauthenticated endpoints) and retained for 24 hours.
Required string length:
1 - 255Pattern:
^[\x21-\x7E]{1,255}$Body
application/json
Was this page helpful?
