api.invoket.com
https://api.invoket.com/weather/forecastShares a payout wallet with 40 other endpoints — its adoption is attributed from that shared wallet's traffic, not earned exclusively.
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.
Reliability & health
Uptime and response time from our own unpaid probes, plus the reliability score built from them.
Uptime
100.0% avgResponse time
p50 187ms · p95 197msData table
| Bucket | Uptime | Probes | Response time |
|---|---|---|---|
| 7/23/2026, 12:00:00 AM | 100% | 1 | 659ms |
| 7/24/2026, 12:00:00 AM | 100% | 1 | 630ms |
| 7/25/2026, 12:00:00 AM | 100% | 1 | 638ms |
| 7/26/2026, 12:00:00 AM | 100% | 1 | 660ms |
| 7/27/2026, 12:00:00 AM | 100% | 1 | 200ms |
| 7/28/2026, 12:00:00 AM | 100% | 1 | 198ms |
| 7/29/2026, 12:00:00 AM | 100% | 1 | 95ms |
| 7/30/2026, 12:00:00 AM | 100% | 1 | 94ms |
| 7/31/2026, 12:00:00 AM | 100% | 1 | 185ms |
| 8/1/2026, 12:00:00 AM | 100% | 1 | 195ms |
| 8/2/2026, 12:00:00 AM | 100% | 1 | 187ms |
| 8/3/2026, 12:00:00 AM | 100% | 1 | 185ms |
| 8/4/2026, 12:00:00 AM | 100% | 1 | 188ms |
| 8/5/2026, 12:00:00 AM | 100% | 1 | 192ms |
| 8/6/2026, 12:00:00 AM | 100% | 1 | 184ms |
| 8/7/2026, 12:00:00 AM | 100% | 1 | 197ms |
| 8/8/2026, 12:00:00 AM | 100% | 1 | 183ms |
| 8/9/2026, 12:00:00 AM | 100% | 1 | 183ms |
| 8/10/2026, 12:00:00 AM | 100% | 1 | 189ms |
| 8/11/2026, 12:00:00 AM | 100% | 1 | 188ms |
| 8/12/2026, 12:00:00 AM | 100% | 1 | 201ms |
| 8/13/2026, 12:00:00 AM | 100% | 1 | 190ms |
| 8/14/2026, 12:00:00 AM | 100% | 1 | 190ms |
| 8/15/2026, 12:00:00 AM | 100% | 1 | 179ms |
| 8/16/2026, 12:00:00 AM | 100% | 1 | 178ms |
| 8/17/2026, 12:00:00 AM | 100% | 1 | 182ms |
| 8/18/2026, 12:00:00 AM | 100% | 1 | 174ms |
| 8/19/2026, 12:00:00 AM | 100% | 20 | 184ms |
| 8/20/2026, 12:00:00 AM | 100% | 21 | 188ms |
| 8/21/2026, 12:00:00 AM | 100% | 1 | 197ms |
- Availability
- 100
- Latency
- 100
- Security
- 100
- Transparency
- 67
- Activity
- 4
How often it was reachable when we probed it (weight 35%).
How quickly it answers when it is up — fast scores high (weight 20%).
Whether it serves over working TLS / https (weight 15%).
Whether the operator disclosed what it does — description, schema, identity (weight 15%).
Observed on-chain payments to this endpoint's wallet — transactions, volume, and distinct paying wallets over the last month (weight 15%; not yet measured when we have not seen its wallet settle).
Confidence 100% — how much probe evidence backs this score. A thin history is flagged, not hidden.
See the scoring methodology for exactly how each number is computed.
Payment
- Currencies
- USDC
- Networks
- base, solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
- Facilitator
- unknown
- SDK
- unknown
Operator
- Company
- inferred — unknown
- Jurisdiction
- —
- Registrar
- Register SPA
- Domain registered
- 2026-06-15
- Hosting network
- FR-OVH-20150522
- Hosting country
- FR
Operator context is derived from public RDAP/TLS records and unverified. Company and country are only available for endpoints that publish them (an OV/EV TLS certificate or a non-redacted domain record); most endpoints are CDN-fronted and disclose neither.
On-chain activity (base)
Payments per day
last payment 8/17/2026Data table
| Day | Payments | Volume (USD) | Paying wallets |
|---|---|---|---|
| 7/23/2026 | 15 | 0.17 | 2 |
| 7/24/2026 | 23 | 0.26 | 2 |
| 7/25/2026 | 14 | 0.15 | 2 |
| 7/26/2026 | 14 | 0.15 | 2 |
| 7/27/2026 | 18 | 0.19 | 3 |
| 7/28/2026 | 6 | 0.06 | 1 |
| 7/29/2026 | 6 | 0.06 | 1 |
| 7/30/2026 | 6 | 0.06 | 1 |
| 7/31/2026 | 485 | 7.08 | 8 |
| 8/1/2026 | 6 | 0.06 | 1 |
| 8/2/2026 | 6 | 0.06 | 1 |
| 8/3/2026 | 6 | 0.06 | 1 |
| 8/4/2026 | 6 | 0.06 | 1 |
| 8/5/2026 | 6 | 0.06 | 1 |
| 8/6/2026 | 6 | 0.06 | 1 |
| 8/7/2026 | 6 | 0.06 | 1 |
| 8/8/2026 | 6 | 0.06 | 1 |
| 8/9/2026 | 8 | 0.08 | 3 |
| 8/10/2026 | 8 | 0.08 | 2 |
| 8/11/2026 | 6 | 0.06 | 1 |
| 8/12/2026 | 7 | 0.07 | 2 |
| 8/13/2026 | 6 | 0.06 | 1 |
| 8/14/2026 | 7 | 0.1 | 3 |
| 8/17/2026 | 33 | 1.24 | 1 |
This payout wallet is shared: figures cover all 41 endpoints paid at it, since payments cannot be attributed to one of them. Only payments settled on chains and facilitators we index.
Linked by wallet — likely same operator
On-chain agent identity and the x402 endpoint that shares its settlement wallet.
Response 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"
}