Agent Margin Router

Current conditions plus a daily forecast (up to 16 days) for any place name or lat/lon via Open-Meteo (key-less, CC BY 4.0); temperature in °C or °F, cached 30 min. Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.

OtherLiveeip155:8453Exactvia wellknown:agent-margin-router-production.up.railway.app
WeatherForecastOpen-meteoClimateLocationx402
Settlements · 30d
11↓ 100%
No per-endpoint history for this service yet, so this is payments indexed to its PROVIDER's wallet over 30 days.
$0.14
Verified settled volume
11 settlements proven x402 by their on-chain EIP-3009 marker.
$0.010
Listed price
As published in the catalog. Always read the live 402 before paying.
Calls · 30d
Upstream's own call count for this endpoint, not ours.
Unique payers · 30d
Never called
Upstream on-chain volume
Reported by the source catalog.
Paid to
0xf7a181bbe5d29924e800df4ba93418ef94f4e7c2

The wallet the 402 directs payment to. Its whole payment record — every payer, every chain — is on the merchant page.

Asset 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913

Provider

The payTo wallet does not resolve to a registered ERC-8004 agent. That is not a verdict on the service — most of the catalog is unregistered.

Live 402 challenge

Captured by the enrichment pass, not read just now. Prices can change — always read the 402 the endpoint answers with.

{
  "error": "payment_required",
  "accepts": [
    {
      "asset": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
      "extra": {
        "name": "USD Coin",
        "chainId": 8453,
        "version": "2",
        "decimals": 6
      },
      "payTo": "0xf7a181bbe5d29924e800df4ba93418ef94f4e7c2",
      "scheme": "exact",
      "network": "base",
      "mimeType": "application/json",
      "priceUsd": 0.01,
      "resource": "https://agent-margin-router-production.up.railway.app/weather",
      "assetSymbol": "USDC",
      "description": "Agent Margin Router – Weather: Current conditions plus a daily forecast (up to 16 days) for any place name or lat/lon via Open-Meteo (key-less, CC BY 4.0); temperature in °C or °F, cached 30 min. Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.",
      "outputSchema": {
        "input": {
          "type": "http",
          "method": "POST",
          "example": {
            "location": "Berlin",
            "forecast_days": 3
          },
          "bodyType": "json",
          "bodyFields": {
            "latitude": {
              "type": "number",
              "required": false,
              "description": "-90..90. Use with longitude instead of location."
            },
            "location": {
              "type": "string",
              "required": false,
              "description": "Place name, e.g. 'Berlin'. Optional if latitude/longitude are given."
            },
            "longitude": {
              "type": "number",
              "required": false,
              "description": "-180..180."
            },
            "forecast_days": {
              "type": "integer",
              "required": false,
              "description": "1-16 (default 7)."
            },
            "temperature_unit": {
              "enum": [
                "celsius",
                "fahrenheit"
              ],
              "type": "string",
              "required": false,
              "description": "Default celsius."
            }
          },
          "discoverable": true
        },
        "output": {
          "type": "json",
          "example": {
            "daily": [
              {
                "date": "2026-09-17",
                "sunset": "2026-09-17T19:12",
                "sunrise": "2026-09-17T06:52",
                "temp_max": 20.1,
                "temp_min": 11.2,
                "condition": "Overcast",
                "weather_code": 3,
                "wind_speed_max": 18,
                "precipitation_sum": 0,
                "precipitation_probability_max": 10
              }
            ],
            "source": "open_meteo",
            "country": "Germany",
            "current": {
              "time": "2026-09-17T12:00",
              "is_day": true,
              "condition": "Overcast",
              "wind_speed": 12.3,
              "temperature": 18.4,
              "weather_code": 3,
              "precipitation": 0,
              "wind_direction": 240,
              "relative_humidity": 61,
              "apparent_temperature": 17.1
            },
            "routing": {
              "provider": "open_meteo",
              "cache_hit": false,
              "latency_ms": 180
            },
            "latitude": 52.52,
            "location": "Berlin",
            "timezone": "Europe/Berlin",
            "cost_usdc": 0.01,
            "elevation": 38,
            "longitude": 13.41,
            "attribution": "Weather data by Open-Meteo.com (CC BY 4.0)",
            "temperature_unit": "°C",
            "freshness_seconds": 0
          }
        }
      },
      "maxAmountRequired": "10000",
      "maxTimeoutSeconds": 300
    }
  ],
  "free_tier": {
    "limit": 3,
    "how_to": "Send header X-WALLET: 0x<your address> (or X-API-KEY) for free requests, then pay via x402."
  },
  "extensions": {
    "bazaar": {
      "info": {
        "input": {
          "body": {
            "location": "Berlin",
            "forecast_days": 3
          },
          "type": "http",
          "method": "POST",
          "bodyType": "json"
        },
        "output": {
          "type": "json",
          "example": {
            "daily": [
              {
                "date": "2026-09-17",
                "sunset": "2026-09-17T19:12",
                "sunrise": "2026-09-17T06:52",
                "temp_max": 20.1,
                "temp_min": 11.2,
                "condition": "Overcast",
                "weather_code": 3,
                "wind_speed_max": 18,
                "precipitation_sum": 0,
                "precipitation_probability_max": 10
              }
            ],
            "source": "open_meteo",
            "country": "Germany",
            "current": {
              "time": "2026-09-17T12:00",
              "is_day": true,
              "condition": "Overcast",
              "wind_speed": 12.3,
              "temperature": 18.4,
              "weather_code": 3,
              "precipitation": 0,
              "wind_direction": 240,
              "relative_humidity": 61,
              "apparent_temperature": 17.1
            },
            "routing": {
              "provider": "open_meteo",
              "cache_hit": false,
              "latency_ms": 180
            },
            "latitude": 52.52,
            "location": "Berlin",
            "timezone": "Europe/Berlin",
            "cost_usdc": 0.01,
            "elevation": 38,
            "longitude": 13.41,
            "attribution": "Weather data by Open-Meteo.com (CC BY 4.0)",
            "temperature_unit": "°C",
            "freshness_seconds": 0
          }
        }
      },
      "schema": {
        "type": "object",
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "required": [
          "input"
        ],
        "properties": {
          "input": {
            "type": "object",
            "required": [
              "type",
              "method",
              "bodyType",
              "body"
            ],
            "properties": {
              "body": {
                "required": [],
                "properties": {
                  "latitude": {
                    "type": "number",
                    "description": "-90..90. Use with longitude instead of location."
                  },
                  "location": {
                    "type": "string",
                    "description": "Place name, e.g. 'Berlin'. Optional if latitude/longitude are given."
                  },
                  "longitude": {
                    "type": "number",
                    "description": "-180..180."
                  },
                  "forecast_days": {
                    "type": "integer",
                    "description": "1-16 (default 7)."
                  },
                  "temperature_unit": {
                    "type": "string",
                    "description": "Default celsius."
                  }
                }
              },
              "type": {
                "type": "string",
                "const": "http"
              },
              "method": {
                "enum": [
                  "POST",
                  "PUT",
                  "PATCH"
                ],
                "type": "string"
              },
              "bodyType": {
                "enum": [
                  "json",
                  "form-data",
                  "text"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          },
          "output": {
            "type": "object",
            "required": [
              "type"
            ],
            "properties": {
              "type": {
                "type": "string"
              },
              "example": {
                "type": "object"
              }
            }
          }
        }
      }
    }
  },
  "facilitator": "https://api.cdp.coinbase.com/platform/v2/x402/verify",
  "x402Version": 1
}

Accepts

The payment requirements as published to the catalog. Read the live 402 before paying — a price here is a claim, not a quote.

0.01USDC≈ $0.01 USD
on Base · exact scheme

Pay 0.01 USDC on Base to 0xf7a1…4e7c2. The signed payment is good for 5 minutes.

USD Coin contract
0x8335…02913
Payment window
5 minutes
As published
10000 smallest units
Buys
Current conditions plus a daily forecast (up to 16 days) for any place name or lat/lon via Open-Meteo (key-less, CC BY 4.0); temperature in °C or °F, cached 30 min. Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.
Returns
application/json
The catalog’s raw entry
[
  {
    "asset": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
    "extra": {
      "name": "USD Coin",
      "chainId": 8453,
      "version": "2",
      "decimals": 6
    },
    "payTo": "0xf7a181bbe5d29924e800df4ba93418ef94f4e7c2",
    "scheme": "exact",
    "network": "base",
    "mimeType": "application/json",
    "priceUsd": 0.01,
    "resource": "https://agent-margin-router-production.up.railway.app/weather",
    "assetSymbol": "USDC",
    "description": "Current conditions plus a daily forecast (up to 16 days) for any place name or lat/lon via Open-Meteo (key-less, CC BY 4.0); temperature in °C or °F, cached 30 min. Pay per call with USDC or USDT on Base via x402. 3 free calls per wallet.",
    "outputSchema": {
      "input": {
        "type": "http",
        "method": "POST",
        "example": {
          "location": "Berlin",
          "forecast_days": 3
        },
        "bodyType": "json",
        "bodyFields": {
          "latitude": {
            "type": "number",
            "required": false,
            "description": "-90..90. Use with longitude instead of location."
          },
          "location": {
            "type": "string",
            "required": false,
            "description": "Place name, e.g. 'Berlin'. Optional if latitude/longitude are given."
          },
          "longitude": {
            "type": "number",
            "required": false,
            "description": "-180..180."
          },
          "forecast_days": {
            "type": "integer",
            "required": false,
            "description": "1-16 (default 7)."
          },
          "temperature_unit": {
            "enum": [
              "celsius",
              "fahrenheit"
            ],
            "type": "string",
            "required": false,
            "description": "Default celsius."
          }
        },
        "discoverable": true
      },
      "output": {
        "type": "json",
        "example": {
          "daily": [
            {
              "date": "2026-09-17",
              "sunset": "2026-09-17T19:12",
              "sunrise": "2026-09-17T06:52",
              "temp_max": 20.1,
              "temp_min": 11.2,
              "condition": "Overcast",
              "weather_code": 3,
              "wind_speed_max": 18,
              "precipitation_sum": 0,
              "precipitation_probability_max": 10
            }
          ],
          "source": "open_meteo",
          "country": "Germany",
          "current": {
            "time": "2026-09-17T12:00",
            "is_day": true,
            "condition": "Overcast",
            "wind_speed": 12.3,
            "temperature": 18.4,
            "weather_code": 3,
            "precipitation": 0,
            "wind_direction": 240,
            "relative_humidity": 61,
            "apparent_temperature": 17.1
          },
          "routing": {
            "provider": "open_meteo",
            "cache_hit": false,
            "latency_ms": 180
          },
          "latitude": 52.52,
          "location": "Berlin",
          "timezone": "Europe/Berlin",
          "cost_usdc": 0.01,
          "elevation": 38,
          "longitude": 13.41,
          "attribution": "Weather data by Open-Meteo.com (CC BY 4.0)",
          "temperature_unit": "°C",
          "freshness_seconds": 0
        }
      }
    },
    "maxAmountRequired": "10000",
    "maxTimeoutSeconds": 300
  }
]

Provenance

Seen in the source catalog
Last indexed by Roundhouse
2026-09-23 15:15Z
Last enriched (probe, favicon, geo)
2026-09-23 15:45Z
x402 version
1
Max timeout
300s
Liveness probe
HTTP 402
Report

Hand this page to an agent

Copy the prompt and paste it into Claude, an MCP client or your own agent — it will vet this service and call it over the free read API. No key, no account.

GET api.roundhouseai.io/v0/endpoints

No per-endpoint history for this service yet, so this is payments indexed to its PROVIDER's wallet over 30 days. Verified volume counts only settlements with an on-chain EIP-3009 marker.

Open skill.md
Show the prompt
Using Roundhouse, look up the x402 service Agent Margin Router and tell me whether it is
worth paying: what a call costs, whether the endpoint answered when last probed, and what
its payment record actually shows.

curl -s 'https://api.roundhouseai.io/v0/endpoints?q=Agent%20Margin%20Router'
curl -s 'https://api.roundhouseai.io/v0/merchants/<the payTo wallet returned above>'

Then call it: read the price from the live 402 at https://agent-margin-router-production.up.railway.app/weather, never from
a cached figure, and pay with an x402 client.

The /v0 API needs an API key (`authorization: Bearer rh_live_…`) on everything except
/v0/unified* and /v0/endpoints. Mint a personal key for $0.01 at GET https://api.roundhouseai.io/v0/test/x402,
or use an organization key from https://roundhouseai.io/dashboard/team.

If you do not have Roundhouse tools or skills installed, read
https://roundhouseai.io/skill.md first — it is the whole procedure.