Active weather alerts over U.S. land
by Orvyn · 1 source · a report every 5 min
Signed by Orvyn from the provider’s API
Per call
$0.002
sold in packs
Smallest payment
$0.20
what Orvyn settles on chain
A report every
5 min
from 1 source
Uptime, 30 days
Measuring · 2 of 7 days
measured by Orvyn
Calls, last 30 days
0
Endpoint
GET /v1/feeds/orvyn/us-active-weather-alerts/latest
Bought a pack on this feed? Your code spends it with one header. Make an API key, then use the first example below.
- One call
- $0.002, sold in packs only
- Pack of 100
- $0.20, valid 30 days
- Pack of 1,000
- $2.00, valid 30 days
- History page
- 5 calls
- Pays
- 0xe240cF24…EfDe4C92
API key
# For a pack you already bought. Make a key in the dashboard, under API keys. curl https://orvyn.me/gw/v1/feeds/orvyn/us-active-weather-alerts/latest \ -H "Authorization: Bearer <your API key>" # The calls left in your packs. curl https://orvyn.me/gw/v1/packs \ -H "Authorization: Bearer <your API key>"
HTTP
# 1. Ask. The answer is 402 with the price, in the PAYMENT-REQUIRED header. curl -i https://orvyn.me/gw/v1/feeds/orvyn/us-active-weather-alerts/latest # 2. Sign the USDG authorization it describes, then ask again. curl https://orvyn.me/gw/v1/feeds/orvyn/us-active-weather-alerts/latest \ -H "PAYMENT-SIGNATURE: <base64 payment payload>"
TypeScript
import {Orvyn} from '@orvyn/sdk'
const orvyn = new Orvyn({gatewayUrl: 'https://orvyn.me/gw', account, maxSpendUsdg: 5_000_000n})
const report = await orvyn.read('orvyn/us-active-weather-alerts') // pays, or spends a pack, by itself
report.value // 0 decimals, a bigint
report.checks // already verified: signer, kind, decimals, payload, ageTypeScript, with an API key
import {Orvyn} from '@orvyn/sdk'
// No wallet on the server: the key spends calls you bought ahead and cannot buy more.
const orvyn = new Orvyn({gatewayUrl: 'https://orvyn.me/gw', apiKey: process.env.ORVYN_API_KEY})
const report = await orvyn.read('orvyn/us-active-weather-alerts') // one call from your pack, nothing signed
report.value // 0 decimals, a bigint
report.callsLeft // what the pack still holdsSolidity
import {OrvynConsumer} from "@orvyn/contracts/src/OrvynConsumer.sol";
contract Example is OrvynConsumer {
bytes32 constant US_ACTIVE_WEATHER_ALERTS = 0x5d0d379c82f6d725c245b61a607224f3febaccf7150750f4ed3174dbb3f251a0;
function settle(bytes calldata report, bytes calldata sig) external {
int256 value = _readOnce(US_ACTIVE_WEATHER_ALERTS, report, sig, Policy({
maxAgeSec: 600,
allowedKinds: KIND_MANAGED,
minValue: 0,
maxValue: type(int256).max
}));
// use value, scaled by 0 decimals
}
}Agents (MCP)
{
"mcpServers": {
"orvyn": {
"command": "npx",
"args": ["-y", "@orvyn/mcp"],
"env": {"ORVYN_GATEWAY_URL": "https://orvyn.me/gw", "ORVYN_PRIVATE_KEY": "<a wallet made for this agent>", "ORVYN_MAX_SPEND_USDG": "1000000"}
}
}
}Agents (MCP), with an API key
{
"mcpServers": {
"orvyn": {
"command": "npx",
"args": ["-y", "@orvyn/mcp"],
"env": {"ORVYN_GATEWAY_URL": "https://orvyn.me/gw", "ORVYN_API_KEY": "<your API key>"}
}
}
}Response schema
{
"type": "object",
"title": "Active weather alerts over U.S. land",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"value",
"observedAtMs"
],
"properties": {
"value": {
"type": "string"
},
"observedAtMs": {
"type": "string"
}
}
}