Global Data System
Build global-ready products without the data infrastructure
Accurate geocoding, timezone resolution, holiday calendars, and address intelligence. One endpoint, every country.
Get API keyEngine
Global Data Engine
Resolve any address or coordinates into a complete location profile. Timezone, working days, and holiday status included.
{
"address": "Alexanderplatz 1, Berlin",
"country_code": "DE"
}
{
"country": "DE",
"city": "Berlin",
"timezone": "Europe/Berlin",
"utc_offset": "+02:00",
"working_days_this_month": 21,
"is_holiday": false,
"coordinates": {
"lat": 52.52,
"lng": 13.405
}
}
International products need reliable location and scheduling data. The Global Data Engine combines geocoding, timezone, and calendar signals so you can localize experiences, schedule tasks correctly, and handle compliance requirements across every region without stitching together multiple calls.
API Reference
Base URL: https://requiems.xyz
Overview
Use Cases
- Detect timezone and locale from an address or coordinates for personalized UX
- Know exactly which days are working days in any country for scheduling
- Validate and standardize billing or shipping addresses globally
- Identify user jurisdiction for GDPR, tax, and regulatory requirements
- Show localized holiday calendars and working hour windows in your product
Features
API Endpoints
Resolve Location
Resolve an address or coordinates into a full location profile β city, country, timezone, UTC offset, current time, working days this month, and next holiday.
https://requiems.xyz/v1/systems/location/resolve
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| address | string |
Optional | Human-readable address string to geocode. Either address or coordinates is required. |
| coordinates | object |
Optional | Coordinates object for reverse geocoding. Either address or coordinates is required. Shape: {lat: float, lng: float} |
| country_code | string |
Optional | ISO 3166-1 alpha-2 country code hint. Overrides the geocoder-inferred country code when provided. |
Try it out
Live DemoRequest
Human-readable address string to geocode. Either address or coordinates is required.
Enter JSON object
Coordinates object for reverse geocoding. Either address or coordinates is required. Shape: {lat: float, lng: float}
ISO 3166-1 alpha-2 country code hint. Overrides the geocoder-inferred country code when provided.
Response Fields
| Field | Type | Description |
|---|---|---|
| address | string |
Normalized full address returned by the geocoder |
| city | string |
City name |
| country | string |
Full country name |
| country_code | string |
ISO 3166-1 alpha-2 country code |
| coordinates | object |
Resolved lat/lng coordinates |
| timezone | string |
IANA timezone identifier (e.g. Europe/Berlin). Null when timezone resolution fails. |
| utc_offset | string |
UTC offset string (e.g. +02:00). Null when timezone resolution fails. |
| current_time | string |
Current local time in RFC3339 format. Null when timezone resolution fails. |
| is_holiday_today | boolean |
True when today is a public holiday in the resolved country |
| working_days_this_month | integer |
Number of working days (excluding weekends and public holidays) in the current calendar month |
| next_holiday | object |
Next public holiday within 90 days. Shape: {date: YYYY-MM-DD, name: string, type: national} |
| flags | array<string> |
Non-fatal warnings. Possible values: timezone_unavailable, calendar_unavailable |
Code Examples
curl -X POST https://requiems.xyz/v1/systems/location/resolve \
-H "requiems-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"address": "Alexanderplatz 1, Berlin", "country_code": "DE"}'
import requests
response = requests.post(
"https://requiems.xyz/v1/systems/location/resolve",
headers={"requiems-api-key": "YOUR_API_KEY"},
json={"address": "Alexanderplatz 1, Berlin", "country_code": "DE"}
)
data = response.json()["data"]
print(f"Timezone: {data['timezone']}, Working days: {data['working_days_this_month']}")
if data["next_holiday"]:
print(f"Next holiday: {data['next_holiday']['name']} on {data['next_holiday']['date']}")
const { data } = await fetch('https://requiems.xyz/v1/systems/location/resolve', {
method: 'POST',
headers: { 'requiems-api-key': 'YOUR_API_KEY', 'Content-Type': 'application/json' },
body: JSON.stringify({ address: 'Alexanderplatz 1, Berlin', country_code: 'DE' })
}).then(r => r.json());
console.log(data.timezone, data.working_days_this_month, data.next_holiday);
require 'net/http'
require 'json'
uri = URI('https://requiems.xyz/v1/systems/location/resolve')
request = Net::HTTP::Post.new(uri)
request['requiems-api-key'] = 'YOUR_API_KEY'
request['Content-Type'] = 'application/json'
request.body = { address: 'Alexanderplatz 1, Berlin', country_code: 'DE' }.to_json
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |h| h.request(request) }
data = JSON.parse(response.body)['data']
puts "#{data['timezone']}, working days: #{data['working_days_this_month']}"
Error Responses
validation_failed
Neither address nor coordinates was provided
upstream_error
Geocoding service was unavailable
unauthorized
Missing or invalid API key
Timezone from IP
Resolve the timezone, UTC offset, and DST status for any IPv4 or IPv6 address without needing an address string.
https://requiems.xyz/v1/systems/timezone/from-ip/{ip}
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| ip | string |
Required | IPv4 or IPv6 address to resolve |
Try it out
Live DemoRequest
IPv4 or IPv6 address to resolve
Response Fields
| Field | Type | Description |
|---|---|---|
| ip | string |
The IP address as provided |
| city | string |
City resolved from the IP |
| country_code | string |
ISO 3166-1 alpha-2 country code |
| timezone | string |
IANA timezone identifier. Null when timezone resolution fails. |
| utc_offset | string |
UTC offset string. Null when timezone resolution fails. |
| dst_active | boolean |
True when daylight saving time is currently active. Null when timezone resolution fails. |
| current_time | string |
Current local time in RFC3339 format |
Code Examples
curl https://requiems.xyz/v1/systems/timezone/from-ip/92.168.1.1 \
-H "requiems-api-key: YOUR_API_KEY"
import requests
ip = "92.168.1.1"
response = requests.get(
f"https://requiems.xyz/v1/systems/timezone/from-ip/{ip}",
headers={"requiems-api-key": "YOUR_API_KEY"}
)
data = response.json()["data"]
print(f"Timezone: {data['timezone']}, DST: {data['dst_active']}")
const ip = '92.168.1.1';
const { data } = await fetch(
`https://requiems.xyz/v1/systems/timezone/from-ip/${ip}`,
{ headers: { 'requiems-api-key': 'YOUR_API_KEY' } }
).then(r => r.json());
console.log(data.timezone, data.utc_offset);
Error Responses
ip_not_found
The IP address could not be geolocated
unauthorized
Missing or invalid API key
Business Calendar
Retrieve working days, public holidays, and next upcoming holiday for any country and optional year/month. Covers 100+ countries.
https://requiems.xyz/v1/systems/business-calendar/{country}
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| country | string |
Required | ISO 3166-1 alpha-2 country code (e.g. DE, US, FR) |
| year | integer |
Optional | Year to retrieve the calendar for. Defaults to the current year. |
| month | integer |
Optional | Month (1β12). When provided, returns month-scoped working day count, total days, weekend days, and filtered holidays. |
Try it out
Live DemoRequest
ISO 3166-1 alpha-2 country code (e.g. DE, US, FR)
Year to retrieve the calendar for. Defaults to the current year.
Month (1β12). When provided, returns month-scoped working day count, total days, weekend days, and filtered holidays.
Response Fields
| Field | Type | Description |
|---|---|---|
| country_code | string |
ISO 3166-1 alpha-2 country code echoed from the path parameter |
| year | integer |
Year the calendar covers |
| month | integer |
Month scope. Present only when the month query parameter was provided. |
| working_days | integer |
Number of working days (excluding weekends and public holidays) in the scope |
| total_days | integer |
Total calendar days in the month. Present only when month is provided. |
| weekend_days | integer |
Number of weekend days in the month. Present only when month is provided. |
| holidays | array<object> |
List of public holidays in the scope. Each item: {date: YYYY-MM-DD, name: string, type: national} |
| holiday_count | integer |
Count of holidays in the holidays array |
| next_holiday | object |
Next public holiday within 90 days from today. Shape: {date, name, type} |
Code Examples
curl "https://requiems.xyz/v1/systems/business-calendar/DE?year=2026&month=6" \
-H "requiems-api-key: YOUR_API_KEY"
import requests
response = requests.get(
"https://requiems.xyz/v1/systems/business-calendar/DE",
headers={"requiems-api-key": "YOUR_API_KEY"},
params={"year": 2026, "month": 6}
)
data = response.json()["data"]
print(f"Working days: {data['working_days']}, Holidays: {data['holiday_count']}")
const { data } = await fetch(
'https://requiems.xyz/v1/systems/business-calendar/DE?year=2026&month=6',
{ headers: { 'requiems-api-key': 'YOUR_API_KEY' } }
).then(r => r.json());
console.log(data.working_days, data.holidays);
Error Responses
validation_failed
Country is not a 2-letter ISO code, or year/month is out of the valid range
unauthorized
Missing or invalid API key
Frequently Asked Questions
All-in-one backend for SaaS products
Authentication, validation, fraud detection, payments intelligence, and global data, delivered through one unified API.