Resource / 174
healthyUnnamed resource.
Before your agent schedules a delivery, plans outdoor work or hedges short-term weather exposure: a point forecast of 2 m temperature, precipitation and 10 m wind — plus opt-in convective, humidity, cloud and snow variables — for any GPS point or city. Deterministic NOAA GFS at 0.25 deg to 16 days (384 h), NOAA GEFS ensemble mean at 0.5 deg to 35 days (840 h); the lead selector is optional (omitted, the forecast defaults to the current analysis time) and the response names the model that served it and the exact forecast step.
| State | Network | Scheme | Atomic amount | Asset | payTo / untrusted |
|---|---|---|---|---|---|
| active | eip155:8453 | exact | 10000 | 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 | 0x4465825B0ac713aA2Fa07Ea29023020804A128ee |
| active | solana:5eykt4usfv8p8njdtrepy1vzqkqzkvdp | exact | 10000 | EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v | Ae1uowYSjbH47uCiZMmc51Aqxf964b1Fs4d1bjaPmMN6 |
| active | eip155:8453 | exact | 1000 | 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 | 0x4465825B0ac713aA2Fa07Ea29023020804A128ee |
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 22:00:01 UTC GET · HTTP 402 · 171ms · accepts 3 · base 2 ok
Accepts snapshot
[
{
"amount": "10000",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"assetTransferMethod": null,
"extra": {
"name": "USD Coin",
"version": "2"
},
"maxTimeoutSeconds": 60,
"network": "eip155:8453",
"payTo": "0x4465825B0ac713aA2Fa07Ea29023020804A128ee",
"paymentFlow": null,
"raw": {
"amount": "10000",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"maxTimeoutSeconds": 60,
"max_timeout_seconds": 60,
"network": "eip155:8453",
"payTo": "0x4465825B0ac713aA2Fa07Ea29023020804A128ee",
"pay_to": "0x4465825B0ac713aA2Fa07Ea29023020804A128ee",
"scheme": "exact"
},
"scheme": "exact"
},
{
"amount": "10000",
"asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"assetTransferMethod": null,
"extra": {
"domain": "invoket.com",
"feePayer": "GVJJ7rdGiXr5xaYbRwRbjfaJL7fmwRygFi1H6aGqDveb"
},
"maxTimeoutSeconds": 60,
"network": "solana:5eykt4usfv8p8njdtrepy1vzqkqzkvdp",
"payTo": "Ae1uowYSjbH47uCiZMmc51Aqxf964b1Fs4d1bjaPmMN6",
"paymentFlow": null,
"raw": {
"amount": "10000",
"asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"extra": {
"domain": "invoket.com",
"feePayer": "GVJJ7rdGiXr5xaYbRwRbjfaJL7fmwRygFi1H6aGqDveb"
},
"maxTimeoutSeconds": 60,
"max_timeout_seconds": 60,
"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"payTo": "Ae1uowYSjbH47uCiZMmc51Aqxf964b1Fs4d1bjaPmMN6",
"pay_to": "Ae1uowYSjbH47uCiZMmc51Aqxf964b1Fs4d1bjaPmMN6",
"scheme": "exact"
},
"scheme": "exact"
},
{
"amount": "1000",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"assetTransferMethod": null,
"extra": {
"name": "USD Coin",
"version": "2"
},
"maxTimeoutSeconds": 60,
"network": "eip155:8453",
"payTo": "0x4465825B0ac713aA2Fa07Ea29023020804A128ee",
"paymentFlow": null,
"raw": {
"amount": "1000",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"maxTimeoutSeconds": 60,
"max_timeout_seconds": 60,
"network": "eip155:8453",
"payTo": "0x4465825B0ac713aA2Fa07Ea29023020804A128ee",
"pay_to": "0x4465825B0ac713aA2Fa07Ea29023020804A128ee",
"scheme": "exact"
},
"scheme": "exact"
}
]
PaymentRequired raw
{
"accepts": [
{
"amount": "10000",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"maxTimeoutSeconds": 60,
"network": "eip155:8453",
"payTo": "0x4465825B0ac713aA2Fa07Ea29023020804A128ee",
"scheme": "exact"
},
{
"amount": "10000",
"asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"extra": {
"domain": "invoket.com",
"feePayer": "GVJJ7rdGiXr5xaYbRwRbjfaJL7fmwRygFi1H6aGqDveb"
},
"maxTimeoutSeconds": 60,
"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"payTo": "Ae1uowYSjbH47uCiZMmc51Aqxf964b1Fs4d1bjaPmMN6",
"scheme": "exact"
},
{
"amount": "1000",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"maxTimeoutSeconds": 60,
"network": "eip155:8453",
"payTo": "0x4465825B0ac713aA2Fa07Ea29023020804A128ee",
"scheme": "exact"
}
],
"error": "PAYMENT-SIGNATURE header is required",
"extensions": {
"bazaar": {
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"headers": {
"additionalProperties": {
"type": "string"
},
"type": "object"
},
"method": {
"enum": [
"GET",
"HEAD",
"DELETE"
],
"type": "string"
},
"queryParams": {
"properties": {
"city": {
"description": "Optional on its own - City or place name, resolved against the embedded GeoNames cities500 gazetteer: exact name match (case- and accent-insensitive, no fuzzy matching), ties broken by population (most populous wins). Alias: location. Narrow with country=<ISO 3166 alpha-2>. Alternative: pass lat + lon directly instead. The resolved place is echoed back as data.location.",
"type": "string"
},
"horizon_h": {
"description": "Optional. Forecast lead time in hours from the analysis cycle, 0-840 (35 days). Up to 384 h served from the deterministic GFS 0.25 deg run; beyond 384 h from the GEFS ensemble mean at 0.5 deg (an average of 31 members, not a single deterministic scenario: smoothed extremes, so trend rather than threshold triggers). If the target falls beyond the window currently available (its exact end shifts with ingestion cycles), the request is served at the latest available step and the response sets lead.clamped=true with the valid_time actually served. Alternatives (at most one of the three; all omitted defaults to the current analysis time, horizon_h=0): valid_time (RFC 3339 instant — never clamped, out-of-window returns 400) or date (YYYY-MM-DD calendar day, served at 12:00 UTC that day; weekday names like 'Wednesday' are rejected with a 400 that spells out the expected format).",
"type": "string"
},
"variables": {
"description": "Optional. Comma-separated selector of the variable families to return; defines the exact set served (omit it for the default temperature,precipitation,wind). Base families: temperature, precipitation, wind. Opt-in families from the deterministic GFS (<= 384 h only): convective (surface CAPE/CIN plus a qualitative convective_risk — an instability proxy for thunderstorm/hail risk, NOT a calibrated hail probability), humidity (2 m relative humidity), clouds (total cloud cover), snow (snow depth on the ground and whether precipitation is falling as snow). An opt-in family requested beyond 384 h, or missing at the grid cell, is served as a null block with coverage.complete=false naming it — never extrapolated.",
"type": "string"
}
},
"required": [],
"type": "object"
},
"schema": {
"type": "object"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method"
],
"type": "object"
},
"output": {
"properties": {
"example": {
"type": "object"
},
"type": {
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}
}
},
"resource": {
"description": "Before your agent schedules a delivery, plans outdoor work or hedges short-term weather exposure: a point forecast of 2 m temperature, precipitation and 10 m wind — plus opt-in convective, humidity, cloud and snow variables — for any GPS point or city. Deterministic NOAA GFS at 0.25 deg to 16 days (384 h), NOAA GEFS ensemble mean at 0.5 deg to 35 days (840 h) — beyond 16 days the value is an ensemble mean with smoothed extremes: trend, not threshold triggers. The lead selector is optional (omitted, the forecast defaults to the current analysis time) and the response names the model that served it and the exact forecast step.",
"mimeType": "application/json",
"url": "https://api.invoket.com/weather/forecast"
},
"x402Version": 2
}
Response headers
{
"connection": "keep-alive",
"content-length": "13840",
"content-security-policy": "default-src 'none'; frame-ancestors 'none'",
"content-type": "application/json",
"date": "Wed, 12 Aug 2026 22:00:00 GMT",
"payment-required": "eyJ4NDAyVmVyc2lvbiI6MiwiZXJyb3IiOiJQQVlNRU5ULVNJR05BVFVSRSBoZWFkZXIgaXMgcmVxdWlyZWQiLCJyZXNvdXJjZSI6eyJ1cmwiOiJodHRwczovL2FwaS5pbnZva2V0LmNvbS93ZWF0aGVyL2ZvcmVjYXN0IiwiZGVzY3JpcHRpb24iOiJCZWZvcmUgeW91ciBhZ2VudCBzY2hlZHVsZXMgYSBkZWxpdmVyeSwgcGxhbnMgb3V0ZG9vciB3b3JrIG9yIGhlZGdlcyBzaG9ydC10ZXJtIHdlYXRoZXIgZXhwb3N1cmU6IGEgcG9pbnQgZm9yZWNhc3Qgb2YgMiBtIHRlbXBlcmF0dXJlLCBwcmVjaXBpdGF0aW9uIGFuZCAxMCBtIHdpbmQg4oCUIHBsdXMgb3B0LWluIGNvbnZlY3RpdmUsIGh1bWlkaXR5LCBjbG91ZCBhbmQgc25vdyB2YXJpYWJsZXMg4oCUIGZvciBhbnkgR1BTIHBvaW50IG9yIGNpdHkuIERldGVybWluaXN0aWMgTk9BQSBHRlMgYXQgMC4yNSBkZWcgdG8gMTYgZGF5cyAoMzg0IGgpLCBOT0FBIEdFRlMgZW5zZW1ibGUgbWVhbiBhdCAwLjUgZGVnIHRvIDM1IGRheXMgKDg0MCBoKSDigJQgYmV5b25kIDE2IGRheXMgdGhlIHZhbHVlIGlzIGFuIGVuc2VtYmxlIG1lYW4gd2l0aCBzbW9vdGhlZCBleHRyZW1lczogdHJlbmQsIG5vdCB0aHJlc2hvbGQgdHJpZ2dlcnMuIFRoZSBsZWFkIHNlbGVjdG9yIGlzIG9wdGlvbmFsIChvbWl0dGVkLCB0aGUgZm9yZWNhc3QgZGVmYXVsdHMgdG8gdGhlIGN1cnJlbnQgYW5hbHlzaXMgdGltZSkgYW5kIHRoZSByZXNwb25zZSBuYW1lcyB0aGUgbW9kZWwgdGhhdCBzZXJ2ZWQgaXQgYW5kIHRoZSBleGFjdCBmb3JlY2FzdCBzdGVwLiIsIm1pbWVUeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LCJhY2NlcHRzIjpbeyJzY2hlbWUiOiJleGFjdCIsIm5ldHdvcmsiOiJlaXAxNTU6ODQ1MyIsImFtb3VudCI6IjEwMDAwIiwiYXNzZXQiOiIweDgzMzU4OWZDRDZlRGI2RTA4ZjRjN0MzMkQ0ZjcxYjU0YmRBMDI5MTMiLCJwYXlUbyI6IjB4NDQ2NTgyNUIwYWM3MTNhQTJGYTA3RWEyOTAyMzAyMDgwNEExMjhlZSIsIm1heFRpbWVvdXRTZWNvbmRzIjo2MCwiZXh0cmEiOnsibmFtZSI6IlVTRCBDb2luIiwidmVyc2lvbiI6IjIifX0seyJzY2hlbWUiOiJleGFjdCIsIm5ldHdvcmsiOiJzb2xhbmE6NWV5a3Q0VXNGdjhQOE5KZFRSRXBZMXZ6cUtxWkt2ZHAiLCJhbW91bnQiOiIxMDAwMCIsImFzc2V0IjoiRVBqRldkZDVBdWZxU1NxZU0ycU4xeHp5YmFwQzhHNHdFR0drWnd5VER0MXYiLCJwYXlUbyI6IkFlMXVvd1lTamJINDd1Q2laTW1jNTFBcXhmOTY0YjFGczRkMWJqYVBtTU42IiwibWF4VGltZW91dFNlY29uZHMiOjYwLCJleHRyYSI6eyJkb21haW4iOiJpbnZva2V0LmNvbSIsImZlZVBheWVyIjoiR1ZKSjdyZEdpWHI1eGFZYlJ3UmJqZmFKTDdmbXdSeWdGaTFINmFHcUR2ZWIifX0seyJzY2hlbWUiOiJleGFjdCIsIm5ldHdvcmsiOiJlaXAxNTU6ODQ1MyIsImFtb3VudCI6IjEwMDAiLCJhc3NldCI6IjB4ODMzNTg5ZkNENmVEYjZFMDhmNGM3QzMyRDRmNzFiNTRiZEEwMjkxMyIsInBheVRvIjoiMHg0NDY1ODI1QjBhYzcxM2FBMkZhMDdFYTI5MDIzMDIwODA0QTEyOGVlIiwibWF4VGltZW91dFNlY29uZHMiOjYwLCJleHRyYSI6eyJuYW1lIjoiVVNEIENvaW4iLCJ2ZXJzaW9uIjoiMiJ9fV0sImV4dGVuc2lvbnMiOnsiYmF6YWFyIjp7InNjaGVtYSI6eyIkc2NoZW1hIjoiaHR0cHM6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQvMjAyMC0xMi9zY2hlbWEiLCJwcm9wZXJ0aWVzIjp7ImlucHV0Ijp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjpmYWxzZSwicHJvcGVydGllcyI6eyJoZWFkZXJzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6Im9iamVjdCJ9LCJtZXRob2QiOnsiZW51bSI6WyJHRVQiLCJIRUFEIiwiREVMRVRFIl0sInR5cGUiOiJzdHJpbmcifSwicXVlcnlQYXJhbXMiOnsicHJvcGVydGllcyI6eyJjaXR5Ijp7ImRlc2NyaXB0aW9uIjoiT3B0aW9uYWwgb24gaXRzIG93biAtIENpdHkgb3IgcGxhY2UgbmFtZSwgcmVzb2x2ZWQgYWdhaW5zdCB0aGUgZW1iZWRkZWQgR2VvTmFtZXMgY2l0aWVzNTAwIGdhemV0dGVlcjogZXhhY3QgbmFtZSBtYXRjaCAoY2FzZS0gYW5kIGFjY2VudC1pbnNlbnNpdGl2ZSwgbm8gZnV6enkgbWF0Y2hpbmcpLCB0aWVzIGJyb2tlbiBieSBwb3B1bGF0aW9uIChtb3N0IHBvcHVsb3VzIHdpbnMpLiBBbGlhczogbG9jYXRpb24uIE5hcnJvdyB3aXRoIGNvdW50cnk9PElTTyAzMTY2IGFscGhhLTI+LiBBbHRlcm5hdGl2ZTogcGFzcyBsYXQgKyBsb24gZGlyZWN0bHkgaW5zdGVhZC4gVGhlIHJlc29sdmVkIHBsYWNlIGlzIGVjaG9lZCBiYWNrIGFzIGRhdGEubG9jYXRpb24uIiwidHlwZSI6InN0cmluZyJ9LCJob3Jpem9uX2giOnsiZGVzY3JpcHRpb24iOiJPcHRpb25hbC4gRm9yZWNhc3QgbGVhZCB0aW1lIGluIGhvdXJzIGZyb20gdGhlIGFuYWx5c2lzIGN5Y2xlLCAwLTg0MCAoMzUgZGF5cykuIFVwIHRvIDM4NCBoIHNlcnZlZCBmcm9tIHRoZSBkZXRlcm1pbmlzdGljIEdGUyAwLjI1IGRlZyBydW47IGJleW9uZCAzODQgaCBmcm9tIHRoZSBHRUZTIGVuc2VtYmxlIG1lYW4gYXQgMC41IGRlZyAoYW4gYXZlcmFnZSBvZiAzMSBtZW1iZXJzLCBub3QgYSBzaW5nbGUgZGV0ZXJtaW5pc3RpYyBzY2VuYXJpbzogc21vb3RoZWQgZXh0cmVtZXMsIHNvIHRyZW5kIHJhdGhlciB0aGFuIHRocmVzaG9sZCB0cmlnZ2VycykuIElmIHRoZSB0YXJnZXQgZmFsbHMgYmV5b25kIHRoZSB3aW5kb3cgY3VycmVudGx5IGF2YWlsYWJsZSAoaXRzIGV4YWN0IGVuZCBzaGlmdHMgd2l0aCBpbmdlc3Rpb24gY3ljbGVzKSwgdGhlIHJlcXVlc3QgaXMgc2VydmVkIGF0IHRoZSBsYXRlc3QgYXZhaWxhYmxlIHN0ZXAgYW5kIHRoZSByZXNwb25zZSBzZXRzIGxlYWQuY2xhbXBlZD10cnVlIHdpdGggdGhlIHZhbGlkX3RpbWUgYWN0dWFsbHkgc2VydmVkLiBBbHRlcm5hdGl2ZXMgKGF0IG1vc3Qgb25lIG9mIHRoZSB0aHJlZTsgYWxsIG9taXR0ZWQgZGVmYXVsdHMgdG8gdGhlIGN1cnJlbnQgYW5hbHlzaXMgdGltZSwgaG9yaXpvbl9oPTApOiB2YWxpZF90aW1lIChSRkMgMzMzOSBpbnN0YW50IOKAlCBuZXZlciBjbGFtcGVkLCBvdXQtb2Ytd2luZG93IHJldHVybnMgNDAwKSBvciBkYXRlIChZWVlZLU1NLUREIGNhbGVuZGFyIGRheSwgc2VydmVkIGF0IDEyOjAwIFVUQyB0aGF0IGRheTsgd2Vla2RheSBuYW1lcyBsaWtlICdXZWRuZXNkYXknIGFyZSByZWplY3RlZCB3aXRoIGEgNDAwIHRoYXQgc3BlbGxzIG91dCB0aGUgZXhwZWN0ZWQgZm9ybWF0KS4iLCJ0eXBlIjoic3RyaW5nIn0sInZhcmlhYmxlcyI6eyJkZXNjcmlwdGlvbiI6Ik9wdGlvbmFsLiBDb21tYS1zZXBhcmF0ZWQgc2VsZWN0b3Igb2YgdGhlIHZhcmlhYmxlIGZhbWlsaWVzIHRvIHJldHVybjsgZGVmaW5lcyB0aGUgZXhhY3Qgc2V0IHNlcnZlZCAob21pdCBpdCBmb3IgdGhlIGRlZmF1bHQgdGVtcGVyYXR1cmUscHJlY2lwaXRhdGlvbix3aW5kKS4gQmFzZSBmYW1pbGllczogdGVtcGVyYXR1cmUsIHByZWNpcGl0YXRpb24sIHdpbmQuIE9wdC1pbiBmYW1pbGllcyBmcm9tIHRoZSBkZXRlcm1pbmlzdGljIEdGUyAoPD0gMzg0IGggb25seSk6IGNvbnZlY3RpdmUgKHN1cmZhY2UgQ0FQRS9DSU4gcGx1cyBhIHF1YWxpdGF0aXZlIGNvbnZlY3RpdmVfcmlzayDigJQgYW4gaW5zdGFiaWxpdHkgcHJveHkgZm9yIHRodW5kZXJzdG9ybS9oYWlsIHJpc2ssIE5PVCBhIGNhbGlicmF0ZWQgaGFpbCBwcm9iYWJpbGl0eSksIGh1bWlkaXR5ICgyIG0gcmVsYXRpdmUgaHVtaWRpdHkpLCBjbG91ZHMgKHRvdGFsIGNsb3VkIGNvdmVyKSwgc25vdyAoc25vdyBkZXB0aCBvbiB0aGUgZ3JvdW5kIGFuZCB3aGV0aGVyIHByZWNpcGl0YXRpb24gaXMgZmFsbGluZyBhcyBzbm93KS4gQW4gb3B0LWluIGZhbWlseSByZXF1ZXN0ZWQgYmV5b25kIDM4NCBoLCBvciBtaXNzaW5nIGF0IHRoZSBncmlkIGNlbGwsIGlzIHNlcnZlZCBhcyBhIG51bGwgYmxvY2sgd2l0aCBjb3ZlcmFnZS5jb21wbGV0ZT1mYWxzZSBuYW1pbmcgaXQg4oCUIG5ldmVyIGV4dHJhcG9sYXRlZC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6W10sInR5cGUiOiJvYmplY3QifSwic2NoZW1hIjp7InR5cGUiOiJvYmplY3QifSwidHlwZSI6eyJjb25zdCI6Imh0dHAiLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJ0eXBlIiwibWV0aG9kIl0sInR5cGUiOiJvYmplY3QifSwib3V0cHV0Ijp7InByb3BlcnRpZXMiOnsiZXhhbXBsZSI6eyJ0eXBlIjoib2JqZWN0In0sInR5cGUiOnsidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidHlwZSJdLCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJpbnB1dCJdLCJ0eXBlIjoib2JqZWN0In19fX0=",
"referrer-policy": "strict-origin-when-cross-origin",
"server": "nginx",
"strict-transport-security": "max-age=63072000; includeSubDomains",
"x-content-type-options": "nosniff"
}
Response body
{
"accepts": [
{
"amount": "10000",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"maxTimeoutSeconds": 60,
"network": "eip155:8453",
"payTo": "0x4465825B0ac713aA2Fa07Ea29023020804A128ee",
"scheme": "exact"
},
{
"amount": "10000",
"asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"extra": {
"domain": "invoket.com",
"feePayer": "GVJJ7rdGiXr5xaYbRwRbjfaJL7fmwRygFi1H6aGqDveb"
},
"maxTimeoutSeconds": 60,
"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"payTo": "Ae1uowYSjbH47uCiZMmc51Aqxf964b1Fs4d1bjaPmMN6",
"scheme": "exact"
},
{
"amount": "1000",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"extra": {
"name": "USD Coin",
"version": "2"
},
"maxTimeoutSeconds": 60,
"network": "eip155:8453",
"payTo": "0x4465825B0ac713aA2Fa07Ea29023020804A128ee",
"scheme": "exact"
}
],
"error": "PAYMENT-SIGNATURE header is required",
"extensions": {
"bazaar": {
"info": {
"input": {
"headers": {
"accept": "application/json"
},
"method": "GET",
"queryParams": {
"city": "Zurich",
"horizon_h": "24",
"variables": "temperature,precipitation,wind,convective,humidity,clouds,snow"
},
"schema": {
"properties": {
"city": {
"description": "Optional on its own - City or place name, resolved against the embedded GeoNames cities500 gazetteer: exact name match (case- and accent-insensitive, no fuzzy matching), ties broken by population (most populous wins). Alias: location. Narrow with country=<ISO 3166 alpha-2>. Alternative: pass lat + lon directly instead. The resolved place is echoed back as data.location.",
"type": "string"
},
"horizon_h": {
"description": "Optional. Forecast lead time in hours from the analysis cycle, 0-840 (35 days). Up to 384 h served from the deterministic GFS 0.25 deg run; beyond 384 h from the GEFS ensemble mean at 0.5 deg (an average of 31 members, not a single deterministic scenario: smoothed extremes, so trend rather than threshold triggers). If the target falls beyond the window currently available (its exact end shifts with ingestion cycles), the request is served at the latest available step and the response sets lead.clamped=true with the valid_time actually served. Alternatives (at most one of the three; all omitted defaults to the current analysis time, horizon_h=0): valid_time (RFC 3339 instant — never clamped, out-of-window returns 400) or date (YYYY-MM-DD calendar day, served at 12:00 UTC that day; weekday names like 'Wednesday' are rejected with a 400 that spells out the expected format).",
"type": "string"
},
"variables": {
"description": "Optional. Comma-separated selector of the variable families to return; defines the exact set served (omit it for the default temperature,precipitation,wind). Base families: temperature, precipitation, wind. Opt-in families from the deterministic GFS (<= 384 h only): convective (surface CAPE/CIN plus a qualitative convective_risk — an instability proxy for thunderstorm/hail risk, NOT a calibrated hail probability), humidity (2 m relative humidity), clouds (total cloud cover), snow (snow depth on the ground and whether precipitation is falling as snow). An opt-in family requested beyond 384 h, or missing at the grid cell, is served as a null block with coverage.complete=false naming it — never extrapolated.",
"type": "string"
}
},
"required": [],
"type": "object"
},
"type": "http"
},
"output": {
"example": {
"data": {
"clouds": {
"total_cover_pct": 35.0
},
"convective": {
"cape_jkg": 640.0,
"cin_jkg": -18.0,
"inhibited": false,
"risk": "low"
},
"coverage": {
"complete": true
},
"grid": {
"distance_km": 12.8,
"lat": 47.25,
"lon": 8.5
},
"horizon_h": 24,
"humidity": {
"relative_pct": 58.0
},
"lat": 47.36667,
"lead": {
"cycle": "2026-07-05T00:00:00+00:00",
"horizon_h": 24,
"step_time": "2026-07-06T00:00:00+00:00",
"valid_time": "2026-07-06T00:00:00+00:00"
},
"location": {
"admin1": "ZH",
"country": "CH",
"lat": 47.36667,
"lon": 8.55,
"name": "Zürich",
"source": "GeoNames"
},
"lon": 8.55,
"precipitation": {
"total_mm": 0.0
},
"snow": {
"depth_m": 0.0,
"is_snow": false
},
"temperature": {
"celsius": 22.8
},
"wind": {
"direction_deg": 215.0,
"speed_ms": 2.7
}
},
"provenance": {
"dataset": "gfs",
"fetched_at": "2026-07-05T04:35:00Z",
"freshness": {
"kind": "live"
},
"source": "GFS"
}
},
"schema": {
"properties": {
"data": {
"properties": {
"clouds": {
"properties": {
"total_cover_pct": {
"description": "Total (whole-column) cloud cover in percent; null when unavailable at the grid cell",
"type": [
"number",
"null"
]
}
},
"required": [
"total_cover_pct"
],
"type": "object"
},
"convective": {
"properties": {
"cape_jkg": {
"description": "Surface-based Convective Available Potential Energy in J/kg (raw GFS value); null when unavailable at the grid cell or beyond the deterministic window",
"type": [
"number",
"null"
]
},
"cin_jkg": {
"description": "Convective Inhibition in J/kg (raw, negative or zero); a strong cap suppresses convection despite high CAPE. Secondary: null CIN alone does not degrade coverage",
"type": [
"number",
"null"
]
},
"inhibited": {
"description": "True when CIN <= -100 J/kg (a strong cap likely to suppress convection despite instability); reported separately, it never changes the risk category. null when CIN is unavailable",
"type": [
"boolean",
"null"
]
},
"risk": {
"description": "Qualitative instability proxy derived from surface CAPE — an instability/thunderstorm-hail-risk proxy, NOT a calibrated hail probability (hail also needs shear, freezing level…). Scale (NWS/SPC conventions, J/kg): none [<100), low [100,1000), moderate [1000,2500), high [2500,4000), extreme [>=4000). null when CAPE is unavailable",
"type": [
"string",
"null"
]
}
},
"required": [
"cape_jkg",
"cin_jkg",
"inhibited",
"risk"
],
"type": "object"
},
"coverage": {
"properties": {
"complete": {
"type": "boolean"
},
"reason": {
"description": "Which requested family could not be served for this point and step, present when 'complete' is false — the block is then served with null values rather than extrapolated",
"type": "string"
}
},
"required": [
"complete"
],
"type": "object"
},
"date": {
"type": "string"
},
"grid": {
"properties": {
"distance_km": {
"type": "number"
},
"lat": {
"type": "number"
},
"lon": {
"type": "number"
}
},
"required": [
"distance_km",
"lat",
"lon"
],
"type": "object"
},
"horizon_h": {
"description": "Echo of the requested lead time in hours, always counted from the deterministic GFS cycle. Beyond 384 h the answer comes from the GEFS 00Z cycle, structurally one cycle behind, so lead.horizon_h counts more hours from that cycle for the same instant: compare lead.valid_time, not the two horizon counts.",
"type": "integer"
},
"humidity": {
"properties": {
"relative_pct": {
"description": "2 m relative humidity in percent; null when unavailable at the grid cell",
"type": [
"number",
"null"
]
}
},
"required": [
"relative_pct"
],
"type": "object"
},
"lat": {
"type": "number"
},
"lead": {
"description": "Resolved lead: analysis cycle, requested instant, lead hours, and the exact forecast step served; clamped=true when horizon_h was reduced to the latest available step. horizon_h here is recounted from the cycle that served the data (see data.horizon_h). step_offset_secs (signed seconds, step_time minus valid_time, present only when non-zero) is how far the served step sits from the instant asked for: a step covers the interval that follows it, so an unaligned instant is served by the preceding step — up to 4 h on the 6-hourly GEFS tail. Never interpolated between steps; coverage.reason spells the gap out and coverage.complete stays true.",
"properties": {
"clamped": {
"type": "boolean"
},
"cycle": {
"type": "string"
},
"horizon_h": {
"type": "integer"
},
"step_offset_secs": {
"type": "integer"
},
"step_time": {
"type": "string"
},
"valid_time": {
"type": "string"
}
},
"required": [
"cycle",
"horizon_h",
"valid_time"
],
"type": "object"
},
"location": {
"description": "Echo of the resolved place when city=/location= was used: name, ISO country, admin1 code and the exact GeoNames coordinates the lookup was served at",
"properties": {
"admin1": {
"type": "string"
},
"country": {
"type": "string"
},
"lat": {
"type": "number"
},
"lon": {
"type": "number"
},
"name": {
"type": "string"
},
"source": {
"type": "string"
}
},
"required": [
"admin1",
"country",
"lat",
"lon",
"name",
"source"
],
"type": "object"
},
"lon": {
"type": "number"
},
"precipitation": {
"properties": {
"total_mm": {
"description": "Forecast precipitation for the served step (mm). Beyond 384 h (dataset=gefs) every value served — this one, temperature and wind alike — is a ~30-member ensemble mean: averaging spreads rain across members, so heavy-rain steps and dry steps are largely absent (tail measured 0.4-1.8 mm/day vs 0.0-13.1 on the deterministic segment). Never build a threshold trigger on that range; dataset=gfs is the segment that resolves extremes.",
"type": [
"number",
"null"
]
}
},
"required": [
"total_mm"
],
"type": "object"
},
"snow": {
"properties": {
"depth_m": {
"description": "Snow depth on the ground in metres (state, SNOD); distinct from is_snow. null when unavailable at the grid cell",
"type": [
"number",
"null"
]
},
"is_snow": {
"description": "Whether precipitation at the served step is falling as snow (GFS categorical CSNOW); distinct from depth_m. null when unavailable at the grid cell",
"type": [
"boolean",
"null"
]
}
},
"required": [
"depth_m",
"is_snow"
],
"type": "object"
},
"temperature": {
"properties": {
"celsius": {
"type": [
"number",
"null"
]
}
},
"required": [
"celsius"
],
"type": "object"
},
"valid_time": {
"type": "string"
},
"wind": {
"properties": {
"direction_deg": {
"type": [
"number",
"null"
]
},
"speed_ms": {
"type": [
"number",
"null"
]
}
},
"required": [
"direction_deg",
"speed_ms"
],
"type": "object"
}
},
"required": [
"coverage",
"grid",
"lat",
"lead",
"lon"
],
"type": "object"
},
"provenance": {
"properties": {
"dataset": {
"description": "Stable machine identifier of the model that served the response, one of: gfs (deterministic NOAA GFS 0.25 deg, <= 384 h), gefs (NOAA GEFS ensemble mean 0.5 deg, beyond 384 h). Branch on this field rather than parsing provenance.source, which carries the human-readable label (the GEFS label spells out that it is an ensemble mean) whose wording is not part of the contract.",
"type": "string"
},
"fetched_at": {
"type": "string"
},
"freshness": {
"properties": {
"kind": {
"type": "string"
}
},
"required": [
"kind"
],
"type": "object"
},
"source": {
"description": "Human-readable label of the model that served the response: 'GFS' (deterministic, 0.25 deg, <= 384 h) or 'NOAA GEFS ensemble mean (35-day, 0.5 deg)' beyond — the label spells out that the long-range answer is an ensemble mean, not a deterministic scenario. Written for humans, its exact wording is not part of the contract: branch on provenance.dataset.",
"type": "string"
}
},
"required": [
"dataset",
"fetched_at",
"freshness",
"source"
],
"type": "object"
}
},
"required": [
"data",
"provenance"
],
"type": "object"
},
"type": "json"
}
},
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"headers": {
"additionalProperties": {
"type": "string"
},
"type": "object"
},
"method": {
"enum": [
"GET",
"HEAD",
"DELETE"
],
"type": "string"
},
"queryParams": {
"properties": {
"city": {
"description": "Optional on its own - City or place name, resolved against the embedded GeoNames cities500 gazetteer: exact name match (case- and accent-insensitive, no fuzzy matching), ties broken by population (most populous wins). Alias: location. Narrow with country=<ISO 3166 alpha-2>. Alternative: pass lat + lon directly instead. The resolved place is echoed back as data.location.",
"type": "string"
},
"horizon_h": {
"description": "Optional. Forecast lead time in hours from the analysis cycle, 0-840 (35 days). Up to 384 h served from the deterministic GFS 0.25 deg run; beyond 384 h from the GEFS ensemble mean at 0.5 deg (an average of 31 members, not a single deterministic scenario: smoothed extremes, so trend rather than threshold triggers). If the target falls beyond the window currently available (its exact end shifts with ingestion cycles), the request is served at the latest available step and the response sets lead.clamped=true with the valid_time actually served. Alternatives (at most one of the three; all omitted defaults to the current analysis time, horizon_h=0): valid_time (RFC 3339 instant — never clamped, out-of-window returns 400) or date (YYYY-MM-DD calendar day, served at 12:00 UTC that day; weekday names like 'Wednesday' are rejected with a 400 that spells out the expected format).",
"type": "string"
},
"variables": {
"description": "Optional. Comma-separated selector of the variable families to return; defines the exact set served (omit it for the default temperature,precipitation,wind). Base families: temperature, precipitation, wind. Opt-in families from the deterministic GFS (<= 384 h only): convective (surface CAPE/CIN plus a qualitative convective_risk — an instability proxy for thunderstorm/hail risk, NOT a calibrated hail probability), humidity (2 m relative humidity), clouds (total cloud cover), snow (snow depth on the ground and whether precipitation is falling as snow). An opt-in family requested beyond 384 h, or missing at the grid cell, is served as a null block with coverage.complete=false naming it — never extrapolated.",
"type": "string"
}
},
"required": [],
"type": "object"
},
"schema": {
"type": "object"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method"
],
"type": "object"
},
"output": {
"properties": {
"example": {
"type": "object"
},
"type": {
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}
}
},
"resource": {
"description": "Before your agent schedules a delivery, plans outdoor work or hedges short-term weather exposure: a point forecast of 2 m temperature, precipitation and 10 m wind — plus opt-in convective, humidity, cloud and snow variables — for any GPS point or city. Deterministic NOAA GFS at 0.25 deg to 16 days (384 h), NOAA GEFS ensemble mean at 0.5 deg to 35 days (840 h) — beyond 16 days the value is an ensemble mean with smoothed extremes: trend, not threshold triggers. The lead selector is optional (omitted, the forecast defaults to the current analysis time) and the response names the model that served it and the exact forecast step.",
"mimeType": "application/json",
"url": "https://api.invoket.com/weather/forecast"
},
"x402Version": 2
}
Request headers
{
"accept": "*/*",
"user-agent": "Fetch402Bot/0.1 (+https://fetch402.com/crawler; contact: crawler@fetch402.com)"
}
Machine contract
Schemas.
{
"headers": {
"accept": "application/json"
},
"method": "GET",
"queryParams": {
"city": "Zurich",
"horizon_h": "24",
"variables": "temperature,precipitation,wind,convective,humidity,clouds,snow"
},
"schema": {
"properties": {
"city": {
"description": "City or place name, resolved against the embedded GeoNames cities500 gazetteer: exact name match (case- and accent-insensitive, no fuzzy matching), ties broken by population (most populous wins). Alias: location. Narrow with country=<ISO 3166 alpha-2>. Alternative: pass lat + lon directly instead. The resolved place is echoed back as data.location.",
"type": "string"
},
"horizon_h": {
"description": "Forecast lead time in hours from the analysis cycle, 0-840 (35 days). Up to 384 h served from the deterministic GFS 0.25 deg run; beyond 384 h from the GEFS ensemble mean at 0.5 deg (an average of 31 members, not a single deterministic scenario). If the target falls beyond the window currently available (its exact end shifts with ingestion cycles), the request is served at the latest available step and the response sets lead.clamped=true with the valid_time actually served. Alternatives (at most one of the three; all omitted defaults to the current analysis time, horizon_h=0): valid_time (RFC 3339 instant — never clamped, out-of-window returns 400) or date (YYYY-MM-DD calendar day, served at 12:00 UTC that day; weekday names like 'Wednesday' are rejected with a 400 that spells out the expected format).",
"type": "string"
},
"variables": {
"description": "Comma-separated selector of the variable families to return; defines the exact set served (omit it for the default temperature,precipitation,wind). Base families: temperature, precipitation, wind. Opt-in families from the deterministic GFS (<= 384 h only): convective (surface CAPE/CIN plus a qualitative convective_risk — an instability proxy for thunderstorm/hail risk, NOT a calibrated hail probability), humidity (2 m relative humidity), clouds (total cloud cover), snow (snow depth on the ground and whether precipitation is falling as snow). An opt-in family requested beyond 384 h, or missing at the grid cell, is served as a null block with coverage.complete=false naming it — never extrapolated.",
"type": "string"
}
},
"required": [
"city",
"horizon_h",
"variables"
],
"type": "object"
},
"type": "http"
}
{
"example": {
"data": {
"clouds": {
"total_cover_pct": 35
},
"convective": {
"cape_jkg": 640,
"cin_jkg": -18,
"inhibited": false,
"risk": "low"
},
"coverage": {
"complete": true
},
"grid": {
"distance_km": 12.8,
"lat": 47.25,
"lon": 8.5
},
"horizon_h": 24,
"humidity": {
"relative_pct": 58
},
"lat": 47.36667,
"lead": {
"cycle": "2026-07-05T00:00:00+00:00",
"horizon_h": 24,
"step_time": "2026-07-06T00:00:00+00:00",
"valid_time": "2026-07-06T00:00:00+00:00"
},
"location": {
"admin1": "ZH",
"country": "CH",
"lat": 47.36667,
"lon": 8.55,
"name": "Zürich",
"source": "GeoNames"
},
"lon": 8.55,
"precipitation": {
"total_mm": 0
},
"snow": {
"depth_m": 0,
"is_snow": false
},
"temperature": {
"celsius": 22.8
},
"wind": {
"direction_deg": 215,
"speed_ms": 2.7
}
},
"provenance": {
"fetched_at": "2026-07-05T04:35:00Z",
"freshness": {
"kind": "live"
},
"source": "GFS"
}
},
"schema": {
"properties": {
"data": {
"properties": {
"clouds": {
"properties": {
"total_cover_pct": {
"description": "Total (whole-column) cloud cover in percent; null when unavailable at the grid cell",
"type": "number"
}
},
"required": [
"total_cover_pct"
],
"type": "object"
},
"convective": {
"properties": {
"cape_jkg": {
"description": "Surface-based Convective Available Potential Energy in J/kg (raw GFS value); null when unavailable at the grid cell or beyond the deterministic window",
"type": "number"
},
"cin_jkg": {
"description": "Convective Inhibition in J/kg (raw, negative or zero); a strong cap suppresses convection despite high CAPE. Secondary: null CIN alone does not degrade coverage",
"type": "number"
},
"inhibited": {
"description": "True when CIN <= -100 J/kg (a strong cap likely to suppress convection despite instability); reported separately, it never changes the risk category. null when CIN is unavailable",
"type": "boolean"
},
"risk": {
"description": "Qualitative instability proxy derived from surface CAPE — an instability/thunderstorm-hail-risk proxy, NOT a calibrated hail probability (hail also needs shear, freezing level…). Scale (NWS/SPC conventions, J/kg): none [<100), low [100,1000), moderate [1000,2500), high [2500,4000), extreme [>=4000). null when CAPE is unavailable",
"type": "string"
}
},
"required": [
"cape_jkg",
"cin_jkg",
"inhibited",
"risk"
],
"type": "object"
},
"coverage": {
"properties": {
"complete": {
"type": "boolean"
}
},
"required": [
"complete"
],
"type": "object"
},
"grid": {
"properties": {
"distance_km": {
"type": "number"
},
"lat": {
"type": "number"
},
"lon": {
"type": "number"
}
},
"required": [
"distance_km",
"lat",
"lon"
],
"type": "object"
},
"horizon_h": {
"type": "integer"
},
"humidity": {
"properties": {
"relative_pct": {
"description": "2 m relative humidity in percent; null when unavailable at the grid cell",
"type": "number"
}
},
"required": [
"relative_pct"
],
"type": "object"
},
"lat": {
"type": "number"
},
"lead": {
"description": "Resolved lead: analysis cycle, requested instant, lead hours, and the exact forecast step served; clamped=true when horizon_h was reduced to the latest available step",
"properties": {
"cycle": {
"type": "string"
},
"horizon_h": {
"type": "integer"
},
"step_time": {
"type": "string"
},
"valid_time": {
"type": "string"
}
},
"required": [
"cycle",
"horizon_h",
"step_time",
"valid_time"
],
"type": "object"
},
"location": {
"description": "Echo of the resolved place when city=/location= was used: name, ISO country, admin1 code and the exact GeoNames coordinates the lookup was served at",
"properties": {
"admin1": {
"type": "string"
},
"country": {
"type": "string"
},
"lat": {
"type": "number"
},
"lon": {
"type": "number"
},
"name": {
"type": "string"
},
"source": {
"type": "string"
}
},
"required": [
"admin1",
"country",
"lat",
"lon",
"name",
"source"
],
"type": "object"
},
"lon": {
"type": "number"
},
"precipitation": {
"properties": {
"total_mm": {
"type": "number"
}
},
"required": [
"total_mm"
],
"type": "object"
},
"snow": {
"properties": {
"depth_m": {
"description": "Snow depth on the ground in metres (state, SNOD); distinct from is_snow. null when unavailable at the grid cell",
"type": "number"
},
"is_snow": {
"description": "Whether precipitation at the served step is falling as snow (GFS categorical CSNOW); distinct from depth_m. null when unavailable at the grid cell",
"type": "boolean"
}
},
"required": [
"depth_m",
"is_snow"
],
"type": "object"
},
"temperature": {
"properties": {
"celsius": {
"type": "number"
}
},
"required": [
"celsius"
],
"type": "object"
},
"wind": {
"properties": {
"direction_deg": {
"type": "number"
},
"speed_ms": {
"type": "number"
}
},
"required": [
"direction_deg",
"speed_ms"
],
"type": "object"
}
},
"required": [
"clouds",
"convective",
"coverage",
"grid",
"horizon_h",
"humidity",
"lat",
"lead",
"location",
"lon",
"precipitation",
"snow",
"temperature",
"wind"
],
"type": "object"
},
"provenance": {
"properties": {
"fetched_at": {
"type": "string"
},
"freshness": {
"properties": {
"kind": {
"type": "string"
}
},
"required": [
"kind"
],
"type": "object"
},
"source": {
"description": "Which model served the response: 'GFS' (deterministic, 0.25 deg, <= 384 h) or 'NOAA GEFS ensemble mean (35-day, 0.5 deg)' beyond",
"type": "string"
}
},
"required": [
"fetched_at",
"freshness",
"source"
],
"type": "object"
}
},
"required": [
"data",
"provenance"
],
"type": "object"
},
"type": "json"
}