Models Report
by Agent Weather in AI models & inference
Use when you are choosing or monitoring one AI model and need its live prices, price changes, context, status and events. Conditions report for one AI model listed on OpenRouter (GET /v1/models/report?id={model id}): current input/output prices per 1M tokens with 24h and 7d change (absolute and %), standard job cost (10,000 input + 1,000 output tokens, formula shown), context length and modalities, the vendor's own status page indicator and active incidents (unknown when the vendor has no free JSON status feed), listing events in the last 24h and 7d (added, removed, price change, expiration date), days until expiration, sources, timestamps and data age, plus a one-line summary. Every derived value carries its formula. A conditions report, not a ranking: no statement about how well a model performs. Unknown ids get 400 before any payment. JSON. Example (illustrative): GET /v1/models/report?id=openai/gpt-4o → {summary, prices:{input:{usd_per_1m, change_24h}}, standard_job_cost_usd, status, events}. Price: 0.01 RLUSD on XRPL mainnet (xrpl:0; RLUSD issuer rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De) or 0.01 USDC on Base.
GET https://api.agentweather.io/v1/models/report
Last 30 days
- Uptime
- 0.0%
- Response time
- - typical, - slowest 5%
- Last check
- 4 h ago: Amount "0.01" is not in atomic token units
- Next check
- in 3 days
How to call it
# See the payment challenge (nothing is charged)
curl -i -X GET "https://api.agentweather.io/v1/models/report?id=openai%2Fgpt-4o"import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
const client = new x402Client().register(
"eip155:8453",
new ExactEvmScheme(privateKeyToAccount(process.env.AGENT_KEY)),
);
const pay = wrapFetchWithPayment(fetch, client);
// Not sure it's safe to pay? Preflight it first for $0.005:
// GET https://toolvet.app/api/v1/check?url=https%3A%2F%2Fapi.agentweather.io%2Fv1%2Fmodels%2Freport
const res = await pay("https://api.agentweather.io/v1/models/report?id=openai%2Fgpt-4o");
console.log(await res.json());Example input
{
"id": "openai/gpt-4o"
}Example output
{
"data_gaps": [
{
"gap": "7d price change",
"reason": "needs a daily baseline from 7 days back (collection began 2026-10-07T13:39:34.249Z)"
}
],
"events": {
"last_24h": []
},
"example_data": false,
"issued_at": "2026-10-12T02:34:12.750Z",
"kind": "model conditions report",
"model": {
"categories": [
"vision-input"
],
"context_length": 128000,
"days_until_expiration": null,
"expiration_date": null,
"first_seen": "2026-10-07T13:39:34.249Z",
"id": "openai/gpt-4o",
"input_modalities": [
"text",
"image",
"file"
],
"name": "OpenAI: GPT-4o",
"output_modalities": [
"text"
],
"vendor": "openai"
},
"prices": {
"input": {
"change_24h": {
"abs_usd_per_1m": 0,
"pct": 0,
"reference_at": "2026-10-11T02:02:39.064Z",
"reference_usd_per_1m": 2.5
},
"usd_per_1m": 2.5
},
"output": {
"change_24h": {
"abs_usd_per_1m": 0,
"pct": 0,
"reference_at": "2026-10-11T02:02:39.064Z",
"reference_usd_per_1m": 10
},
"usd_per_1m": 10
},
"unit": "USD; OpenRouter lists USD per token as strings, reproduced verbatim in usd_per_token"
},
"report_id": "awmr-20261012T0234Z-openai/gpt-4o",
"schema_version": "model-conditions-0.1.0-draft",
"sources": [
{
"name": "OpenRouter public model list (no key)",
"observed_at": "2026-10-12T02:21:05.825Z",
"url": "https://openrouter.ai/api/v1/models"
}
],
"standard_job_cost_usd": {
"formula": "10,000 × pricing.prompt + 1,000 × pricing.completion (USD per token). A fixed reference job of 10,000 input + 1,000 output tokens; excludes per-request, image, audio, web-search, cache and other listed fees",
"input_tokens": 10000,
"output_tokens": 1000,
"value": 0.035
},
"status": {
"age_seconds": 252,
"checked_at": "2026-10-12T02:30:00.361Z",
"source": "https://status.openai.com/api/v2/summary.json",
"status": "minor",
"vendor": "openai"
},
"summary": "openai/gpt-4o: input $2.5/1M tokens, output $10/1M; no price change vs 24h ago; standard job (10k in + 1k out) $0.035; context 128000 tokens; vendor status minor (https://status.openai.com/api/v2/summary.json), 1 active incident(s); 7 event(s) in 7d; no expiration date listed."
}Security scan
- No findings. We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.
Recent checks
| When | Result | HTTP | Time | Price |
|---|---|---|---|---|
| 4 h ago | Amount "0.01" is not in atomic token units | 402 | 440 ms | $0.01 |
| 8 h ago | Amount "0.01" is not in atomic token units | 402 | 578 ms | $0.01 |
| 13 h ago | Amount "0.01" is not in atomic token units | 402 | 523 ms | $0.01 |
| 17 h ago | Amount "0.01" is not in atomic token units | 402 | 419 ms | $0.01 |
| 21 h ago | Expected HTTP 402, got 503 | 503 | 540 ms | - |
| 24 h ago | Expected HTTP 402, got 503 | 503 | 330 ms | - |
| 28 h ago | Expected HTTP 402, got 503 | 503 | 540 ms | - |
| 32 h ago | Expected HTTP 402, got 503 | 503 | 737 ms | - |
| 37 h ago | Expected HTTP 402, got 503 | 503 | 391 ms | - |
| 41 h ago | Amount "0.01" is not in atomic token units | 402 | 404 ms | $0.01 |
| 45 h ago | Expected HTTP 402, got 503 | 503 | 373 ms | - |
| 2 days ago | Expected HTTP 402, got 503 | 503 | 369 ms | - |
| 2 days ago | Expected HTTP 402, got 503 | 503 | 507 ms | - |