Resource / 155
healthy2s.
Resolve a coordinate to its IANA timezone and return the current UTC offset, local wall time, DST status, and short abbreviation. Query: lat (-90..90), lon (-180..180), at (optional ISO 8601 instant; defaults to now). Returns { tz, abbreviation, offsetMinutes, offsetHours, localTime, observesDst, isDst, januaryOffsetMinutes, julyOffsetMinutes, instant, source }. Polygon lookup against a CC0 timezone boundary index; offsets and DST come from the runtime tzdata so transition rules stay current. Use when scheduling for a coordinate, converting timestamps to local wall time, or checking whether a location is currently observing daylight saving.
| State | Network | Scheme | Atomic amount | Asset | payTo / untrusted |
|---|---|---|---|---|---|
| active | eip155:8453 | exact | 2500 | 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 | 0x2b6D4988Db4723E6908Db86Ab2b8dFBc51FC32C5 |
| active | solana:5eykt4usfv8p8njdtrepy1vzqkqzkvdp | exact | 2500 | EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v | TW6ntaGzvj63ZgPjszd4FCGmVTGfzv1MAYZbjYcyWhn |
All advertised payment options are stored. Base (`eip155:8453`) is the operational network for ranking and canaries; non-Base options remain visible for transparency.
healthy 2026-08-12 21:30:03 UTC GET · HTTP 402 · 108ms · accepts 2 · base 1 ok
Accepts snapshot
[
{
"amount": "2500",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"assetTransferMethod": null,
"extra": {
"name": "USD Coin",
"version": "2"
},
"maxTimeoutSeconds": 60,
"network": "eip155:8453",
"payTo": "0x2b6D4988Db4723E6908Db86Ab2b8dFBc51FC32C5",
"paymentFlow": null,
"raw": {
"amount": "2500",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"maxTimeoutSeconds": 60,
"max_timeout_seconds": 60,
"network": "eip155:8453",
"payTo": "0x2b6D4988Db4723E6908Db86Ab2b8dFBc51FC32C5",
"pay_to": "0x2b6D4988Db4723E6908Db86Ab2b8dFBc51FC32C5",
"scheme": "exact"
},
"scheme": "exact"
},
{
"amount": "2500",
"asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"assetTransferMethod": null,
"extra": {
"feePayer": "BFK9TLC3edb13K6v4YyH3DwPb5DSUpkWvb7XnqCL9b4F",
"name": "USDC",
"version": "1"
},
"maxTimeoutSeconds": 60,
"network": "solana:5eykt4usfv8p8njdtrepy1vzqkqzkvdp",
"payTo": "TW6ntaGzvj63ZgPjszd4FCGmVTGfzv1MAYZbjYcyWhn",
"paymentFlow": null,
"raw": {
"amount": "2500",
"asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"extra": {
"feePayer": "BFK9TLC3edb13K6v4YyH3DwPb5DSUpkWvb7XnqCL9b4F",
"name": "USDC",
"version": "1"
},
"maxTimeoutSeconds": 60,
"max_timeout_seconds": 60,
"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"payTo": "TW6ntaGzvj63ZgPjszd4FCGmVTGfzv1MAYZbjYcyWhn",
"pay_to": "TW6ntaGzvj63ZgPjszd4FCGmVTGfzv1MAYZbjYcyWhn",
"scheme": "exact"
},
"scheme": "exact"
}
]
PaymentRequired raw
{
"accepts": [
{
"amount": "2500",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"maxTimeoutSeconds": 60,
"network": "eip155:8453",
"payTo": "0x2b6D4988Db4723E6908Db86Ab2b8dFBc51FC32C5",
"scheme": "exact"
},
{
"amount": "2500",
"asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"extra": {
"feePayer": "BFK9TLC3edb13K6v4YyH3DwPb5DSUpkWvb7XnqCL9b4F",
"name": "USDC",
"version": "1"
},
"maxTimeoutSeconds": 60,
"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"payTo": "TW6ntaGzvj63ZgPjszd4FCGmVTGfzv1MAYZbjYcyWhn",
"scheme": "exact"
}
],
"error": "PAYMENT-SIGNATURE required",
"extensions": {
"bazaar": {
"info": {
"input": {
"method": "GET",
"queryParams": {
"at": "example",
"lat": -90,
"lon": -180
},
"type": "http"
}
},
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"properties": {
"method": {
"const": "GET"
},
"queryParams": {
"additionalProperties": false,
"properties": {
"at": {
"description": "Optional ISO 8601 instant. Defaults to the current server time.",
"type": "string"
},
"lat": {
"description": "Latitude in degrees, -90..90.",
"maximum": 90,
"minimum": -90,
"type": "number"
},
"lon": {
"description": "Longitude in degrees, -180..180.",
"maximum": 180,
"minimum": -180,
"type": "number"
}
},
"required": [
"lat",
"lon"
],
"type": "object"
},
"type": {
"const": "http"
}
},
"required": [
"type",
"method",
"queryParams"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}
}
},
"resource": {
"description": "Resolve a coordinate to its IANA timezone and return the current UTC offset, local wall time, DST status, and short abbreviation. Query: lat (-90..90), lon (-180..180), at (optional ISO 8601 instant; defaults to now). Returns { tz, abbreviation, offsetMinutes, offsetHours, localTime, observesDst, isDst, januaryOffsetMinutes, julyOffsetMinutes, instant, source }. Polygon lookup against a CC0 timezone boundary index; offsets and DST come from the runtime tzdata so transition rules stay current. Use when scheduling for a coordinate, converting timestamps to local wall time, or checking whether a location is currently observing daylight saving.",
"iconUrl": "https://2s.io/icon-512.png",
"mimeType": "application/json",
"serviceName": "2s",
"tags": [
"public-records",
"identifiers",
"ai-agents",
"us-gov-data",
"x402",
"upto-billing",
"ai-gateway",
"agent-infrastructure"
],
"url": "https://2s.io/api/timezone/lookup"
},
"x402Version": 2
}
Response headers
{
"access-control-allow-headers": "Authorization, Content-Type",
"access-control-allow-methods": "GET, POST, OPTIONS",
"access-control-allow-origin": "*",
"access-control-max-age": "86400",
"age": "0",
"cache-control": "public, max-age=0, must-revalidate",
"content-security-policy": "default-src 'none'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; connect-src 'self'; frame-ancestors 'none'; base-uri 'none'",
"content-type": "application/json",
"date": "Wed, 12 Aug 2026 21:30:03 GMT",
"payment-required": "eyJ4NDAyVmVyc2lvbiI6MiwiYWNjZXB0cyI6W3sic2NoZW1lIjoiZXhhY3QiLCJuZXR3b3JrIjoiZWlwMTU1Ojg0NTMiLCJhbW91bnQiOiIyNTAwIiwiYXNzZXQiOiIweDgzMzU4OWZDRDZlRGI2RTA4ZjRjN0MzMkQ0ZjcxYjU0YmRBMDI5MTMiLCJwYXlUbyI6IjB4MmI2RDQ5ODhEYjQ3MjNFNjkwOERiODZBYjJiOGRGQmM1MUZDMzJDNSIsIm1heFRpbWVvdXRTZWNvbmRzIjo2MCwiZXh0cmEiOnsibmFtZSI6IlVTRCBDb2luIiwidmVyc2lvbiI6IjIifX0seyJzY2hlbWUiOiJleGFjdCIsIm5ldHdvcmsiOiJzb2xhbmE6NWV5a3Q0VXNGdjhQOE5KZFRSRXBZMXZ6cUtxWkt2ZHAiLCJhbW91bnQiOiIyNTAwIiwiYXNzZXQiOiJFUGpGV2RkNUF1ZnFTU3FlTTJxTjF4enliYXBDOEc0d0VHR2tad3lURHQxdiIsInBheVRvIjoiVFc2bnRhR3p2ajYzWmdQanN6ZDRGQ0dtVlRHZnp2MU1BWVpialljeVdobiIsIm1heFRpbWVvdXRTZWNvbmRzIjo2MCwiZXh0cmEiOnsibmFtZSI6IlVTREMiLCJ2ZXJzaW9uIjoiMSIsImZlZVBheWVyIjoiQkZLOVRMQzNlZGIxM0s2djRZeUgzRHdQYjVEU1Vwa1d2YjdYbnFDTDliNEYifX1dLCJyZXNvdXJjZSI6eyJ1cmwiOiJodHRwczovLzJzLmlvL2FwaS90aW1lem9uZS9sb29rdXAiLCJkZXNjcmlwdGlvbiI6IlJlc29sdmUgYSBjb29yZGluYXRlIHRvIGl0cyBJQU5BIHRpbWV6b25lIGFuZCByZXR1cm4gdGhlIGN1cnJlbnQgVVRDIG9mZnNldCwgbG9jYWwgd2FsbCB0aW1lLCBEU1Qgc3RhdHVzLCBhbmQgc2hvcnQgYWJicmV2aWF0aW9uLiBRdWVyeTogbGF0ICgtOTAuLjkwKSwgbG9uICgtMTgwLi4xODApLCBhdCAob3B0aW9uYWwgSVNPIDg2MDEgaW5zdGFudDsgZGVmYXVsdHMgdG8gbm93KS4gUmV0dXJucyB7IHR6LCBhYmJyZXZpYXRpb24sIG9mZnNldE1pbnV0ZXMsIG9mZnNldEhvdXJzLCBsb2NhbFRpbWUsIG9ic2VydmVzRHN0LCBpc0RzdCwgamFudWFyeU9mZnNldE1pbnV0ZXMsIGp1bHlPZmZzZXRNaW51dGVzLCBpbnN0YW50LCBzb3VyY2UgfS4gUG9seWdvbiBsb29rdXAgYWdhaW5zdCBhIENDMCB0aW1lem9uZSBib3VuZGFyeSBpbmRleDsgb2Zmc2V0cyBhbmQgRFNUIGNvbWUgZnJvbSB0aGUgcnVudGltZSB0emRhdGEgc28gdHJhbnNpdGlvbiBydWxlcyBzdGF5IGN1cnJlbnQuIFVzZSB3aGVuIHNjaGVkdWxpbmcgZm9yIGEgY29vcmRpbmF0ZSwgY29udmVydGluZyB0aW1lc3RhbXBzIHRvIGxvY2FsIHdhbGwgdGltZSwgb3IgY2hlY2tpbmcgd2hldGhlciBhIGxvY2F0aW9uIGlzIGN1cnJlbnRseSBvYnNlcnZpbmcgZGF5bGlnaHQgc2F2aW5nLiIsIm1pbWVUeXBlIjoiYXBwbGljYXRpb24vanNvbiIsInNlcnZpY2VOYW1lIjoiMnMiLCJpY29uVXJsIjoiaHR0cHM6Ly8ycy5pby9pY29uLTUxMi5wbmciLCJ0YWdzIjpbInB1YmxpYy1yZWNvcmRzIiwiaWRlbnRpZmllcnMiLCJhaS1hZ2VudHMiLCJ1cy1nb3YtZGF0YSIsIng0MDIiLCJ1cHRvLWJpbGxpbmciLCJhaS1nYXRld2F5IiwiYWdlbnQtaW5mcmFzdHJ1Y3R1cmUiXX0sImVycm9yIjoiUEFZTUVOVC1TSUdOQVRVUkUgcmVxdWlyZWQiLCJleHRlbnNpb25zIjp7ImJhemFhciI6eyJpbmZvIjp7ImlucHV0Ijp7InR5cGUiOiJodHRwIiwibWV0aG9kIjoiR0VUIiwicXVlcnlQYXJhbXMiOnsibGF0IjotOTAsImxvbiI6LTE4MCwiYXQiOiJleGFtcGxlIn19fSwic2NoZW1hIjp7IiRzY2hlbWEiOiJodHRwczovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC8yMDIwLTEyL3NjaGVtYSIsInR5cGUiOiJvYmplY3QiLCJwcm9wZXJ0aWVzIjp7ImlucHV0Ijp7InR5cGUiOiJvYmplY3QiLCJwcm9wZXJ0aWVzIjp7InR5cGUiOnsiY29uc3QiOiJodHRwIn0sIm1ldGhvZCI6eyJjb25zdCI6IkdFVCJ9LCJxdWVyeVBhcmFtcyI6eyJ0eXBlIjoib2JqZWN0IiwicHJvcGVydGllcyI6eyJsYXQiOnsidHlwZSI6Im51bWJlciIsIm1pbmltdW0iOi05MCwibWF4aW11bSI6OTAsImRlc2NyaXB0aW9uIjoiTGF0aXR1ZGUgaW4gZGVncmVlcywgLTkwLi45MC4ifSwibG9uIjp7InR5cGUiOiJudW1iZXIiLCJtaW5pbXVtIjotMTgwLCJtYXhpbXVtIjoxODAsImRlc2NyaXB0aW9uIjoiTG9uZ2l0dWRlIGluIGRlZ3JlZXMsIC0xODAuLjE4MC4ifSwiYXQiOnsidHlwZSI6InN0cmluZyIsImRlc2NyaXB0aW9uIjoiT3B0aW9uYWwgSVNPIDg2MDEgaW5zdGFudC4gRGVmYXVsdHMgdG8gdGhlIGN1cnJlbnQgc2VydmVyIHRpbWUuIn19LCJyZXF1aXJlZCI6WyJsYXQiLCJsb24iXSwiYWRkaXRpb25hbFByb3BlcnRpZXMiOmZhbHNlfX0sInJlcXVpcmVkIjpbInR5cGUiLCJtZXRob2QiLCJxdWVyeVBhcmFtcyJdfX0sInJlcXVpcmVkIjpbImlucHV0Il19fX19",
"permissions-policy": "geolocation=(), camera=(), microphone=()",
"referrer-policy": "no-referrer",
"server": "Vercel",
"strict-transport-security": "max-age=63072000; includeSubDomains; preload",
"transfer-encoding": "chunked",
"x-content-type-options": "nosniff",
"x-frame-options": "DENY",
"x-matched-path": "/api/timezone/lookup",
"x-payment-requirements": "x402",
"x-vercel-cache": "MISS",
"x-vercel-id": "iad1::iad1::bhhwp-1786570203048-b7214648df76"
}
Response body
{
"accepts": [
{
"amount": "2500",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"maxTimeoutSeconds": 60,
"network": "eip155:8453",
"payTo": "0x2b6D4988Db4723E6908Db86Ab2b8dFBc51FC32C5",
"scheme": "exact"
},
{
"amount": "2500",
"asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"extra": {
"feePayer": "BFK9TLC3edb13K6v4YyH3DwPb5DSUpkWvb7XnqCL9b4F",
"name": "USDC",
"version": "1"
},
"maxTimeoutSeconds": 60,
"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"payTo": "TW6ntaGzvj63ZgPjszd4FCGmVTGfzv1MAYZbjYcyWhn",
"scheme": "exact"
}
],
"error": "PAYMENT-SIGNATURE required",
"extensions": {
"bazaar": {
"info": {
"input": {
"method": "GET",
"queryParams": {
"at": "example",
"lat": -90,
"lon": -180
},
"type": "http"
},
"output": {
"example": {
"items": [
{
"abbreviation": "example",
"instant": "example",
"isDst": false,
"januaryOffsetMinutes": 1,
"julyOffsetMinutes": 1,
"localTime": "example",
"observesDst": false,
"offsetHours": 1,
"offsetMinutes": 1,
"tz": "example"
}
],
"ok": true,
"source": {
"license": "example",
"provider": "example",
"url": "example"
},
"total": 1
},
"schema": {
"additionalProperties": false,
"properties": {
"items": {
"items": {
"additionalProperties": false,
"properties": {
"abbreviation": {
"description": "Short timezone abbreviation at `instant` — e.g. \"PDT\", \"JST\".",
"type": "string"
},
"instant": {
"description": "UTC instant the lookup was computed at (echoed `at`, or current server time).",
"type": "string"
},
"isDst": {
"description": "True if `instant` falls inside a DST/summer-shift period for this zone.",
"type": "boolean"
},
"januaryOffsetMinutes": {
"description": "Offset on Jan 15 of `instant`'s year — representative northern-hemisphere winter.",
"type": "integer"
},
"julyOffsetMinutes": {
"description": "Offset on Jul 15 of `instant`'s year — representative northern-hemisphere summer.",
"type": "integer"
},
"localTime": {
"description": "ISO 8601 local wall time with offset suffix — e.g. \"2026-06-03T08:43:15-07:00\".",
"type": "string"
},
"observesDst": {
"description": "True if this zone has different offsets across the year.",
"type": "boolean"
},
"offsetHours": {
"description": "UTC offset at `instant`, in signed hours (may be fractional for 30/45-minute zones).",
"type": "number"
},
"offsetMinutes": {
"description": "UTC offset at `instant`, in signed minutes.",
"type": "integer"
},
"tz": {
"description": "IANA timezone identifier — e.g. \"America/Los_Angeles\".",
"type": "string"
}
},
"required": [
"tz",
"abbreviation",
"offsetMinutes",
"offsetHours",
"localTime",
"observesDst",
"isDst",
"januaryOffsetMinutes",
"julyOffsetMinutes",
"instant"
],
"type": "object"
},
"type": "array"
},
"ok": {
"enum": [
true
],
"type": "boolean"
},
"source": {
"additionalProperties": false,
"properties": {
"license": {
"type": "string"
},
"provider": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"provider",
"url",
"license"
],
"type": "object"
},
"total": {
"description": "Total matching rows upstream; null when unknown.",
"nullable": true,
"type": "integer"
}
},
"required": [
"ok",
"items",
"total",
"source"
],
"type": "object"
},
"type": "json"
}
},
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"properties": {
"method": {
"const": "GET"
},
"queryParams": {
"additionalProperties": false,
"properties": {
"at": {
"description": "Optional ISO 8601 instant. Defaults to the current server time.",
"type": "string"
},
"lat": {
"description": "Latitude in degrees, -90..90.",
"maximum": 90,
"minimum": -90,
"type": "number"
},
"lon": {
"description": "Longitude in degrees, -180..180.",
"maximum": 180,
"minimum": -180,
"type": "number"
}
},
"required": [
"lat",
"lon"
],
"type": "object"
},
"type": {
"const": "http"
}
},
"required": [
"type",
"method",
"queryParams"
],
"type": "object"
},
"output": {
"additionalProperties": false,
"properties": {
"items": {
"items": {
"additionalProperties": false,
"properties": {
"abbreviation": {
"description": "Short timezone abbreviation at `instant` — e.g. \"PDT\", \"JST\".",
"type": "string"
},
"instant": {
"description": "UTC instant the lookup was computed at (echoed `at`, or current server time).",
"type": "string"
},
"isDst": {
"description": "True if `instant` falls inside a DST/summer-shift period for this zone.",
"type": "boolean"
},
"januaryOffsetMinutes": {
"description": "Offset on Jan 15 of `instant`'s year — representative northern-hemisphere winter.",
"type": "integer"
},
"julyOffsetMinutes": {
"description": "Offset on Jul 15 of `instant`'s year — representative northern-hemisphere summer.",
"type": "integer"
},
"localTime": {
"description": "ISO 8601 local wall time with offset suffix — e.g. \"2026-06-03T08:43:15-07:00\".",
"type": "string"
},
"observesDst": {
"description": "True if this zone has different offsets across the year.",
"type": "boolean"
},
"offsetHours": {
"description": "UTC offset at `instant`, in signed hours (may be fractional for 30/45-minute zones).",
"type": "number"
},
"offsetMinutes": {
"description": "UTC offset at `instant`, in signed minutes.",
"type": "integer"
},
"tz": {
"description": "IANA timezone identifier — e.g. \"America/Los_Angeles\".",
"type": "string"
}
},
"required": [
"tz",
"abbreviation",
"offsetMinutes",
"offsetHours",
"localTime",
"observesDst",
"isDst",
"januaryOffsetMinutes",
"julyOffsetMinutes",
"instant"
],
"type": "object"
},
"type": "array"
},
"ok": {
"enum": [
true
],
"type": "boolean"
},
"source": {
"additionalProperties": false,
"properties": {
"license": {
"type": "string"
},
"provider": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"provider",
"url",
"license"
],
"type": "object"
},
"total": {
"description": "Total matching rows upstream; null when unknown.",
"nullable": true,
"type": "integer"
}
},
"required": [
"ok",
"items",
"total",
"source"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}
}
},
"resource": {
"description": "Resolve a coordinate to its IANA timezone and return the current UTC offset, local wall time, DST status, and short abbreviation. Query: lat (-90..90), lon (-180..180), at (optional ISO 8601 instant; defaults to now). Returns { tz, abbreviation, offsetMinutes, offsetHours, localTime, observesDst, isDst, januaryOffsetMinutes, julyOffsetMinutes, instant, source }. Polygon lookup against a CC0 timezone boundary index; offsets and DST come from the runtime tzdata so transition rules stay current. Use when scheduling for a coordinate, converting timestamps to local wall time, or checking whether a location is currently observing daylight saving.",
"iconUrl": "https://2s.io/icon-512.png",
"mimeType": "application/json",
"serviceName": "2s",
"tags": [
"public-records",
"identifiers",
"ai-agents",
"us-gov-data",
"x402",
"upto-billing",
"ai-gateway",
"agent-infrastructure"
],
"url": "https://2s.io/api/timezone/lookup"
},
"x402Version": 2
}
Request headers
{
"accept": "*/*",
"user-agent": "Fetch402Bot/0.1 (+https://fetch402.com/crawler; contact: crawler@fetch402.com)"
}
Machine contract
Schemas.
{
"method": "GET",
"queryParams": {
"at": "example",
"lat": -90,
"lon": -180
},
"type": "http"
}
{}