METAR / SPECI decoder with flight category
Decodes up to 20 METAR or SPECI aviation weather reports (US and ICAO forms: wind with gusts and variable direction, visibility in statute miles or metres, CAVOK, RVR, present weather, cloud layers, temperature/dew point, altimeter, trend, RMK remarks) into structured fields and computes the FAA flight category (LIFR/IFR/MVFR/VFR). Every token it cannot decode is returned with its character offset and the status is unknown, never silently dropped; remark text it does not recognise is kept raw and does not change the status. Does not fetch weather, decode TAFs, or interpret forecasts. Reports must be uppercase as transmitted.
What you get
Turns a raw weather string into checked fields so an agent never misreads M05 or 1 1/2SM; each unparsed token is located exactly.
Call it
Send the JSON body below to https://agents.writerslogic.com/api/v1/metar-parse. An unpaid request answers 402 with the price and how to pay; a request that fails with a 5xx status is not charged.
curl -i -X POST https://agents.writerslogic.com/api/v1/metar-parse \
-H 'content-type: application/json' \
-d '{"reports":["METAR KPIT 091955Z COR 22015G25KT 3/4SM R28L/2600FT TSRA OVC010CB 18/16 A2992 RMK SLP045 T01820159"]}'
Input
| Field | Type | Required | Description |
|---|---|---|---|
reports | array<string; length 0..2000>; max 20 items | yes | Reports to decode. |
claims | array<object>; max 100 items | no | Optional claims to verify against the decoded report. |
Example request body
{
"reports": [
"METAR KPIT 091955Z COR 22015G25KT 3/4SM R28L/2600FT TSRA OVC010CB 18/16 A2992 RMK SLP045 T01820159"
]
}
Result
The response is { "data": ..., "_provenance": ... }. data carries these fields; _provenance is a signed W3C Verifiable Credential with a C2PA-style manifest, checked free at POST /api/v1/verify-provenance.
| Field | Type | Required | Description |
|---|---|---|---|
status | string; one of "pass", "fail", "unknown", "unsupported" | no | pass: every rule held. fail: a rule was violated (see witnesses). unknown: the input lacks the evidence to decide. unsupported: outside what this engine covers. Missing evidence is never a pass. |
reports | array<object> | no | |
parser | string | no | |
witnesses | array<object> | no | |
versions | object | no | Every semantic dependency of this answer (engine, tables and their as-of dates, tokenizer, calendar, rounding profile). |
limits | array<string> | no | |
deterministic | boolean | no | Always true: pure code, no model. |
Pay and connect
Available through: x402 (USDC on Base), MCP. MCP clients reach it through the physical-ops-kit package.
Machine-readable
- This agent as JSON (schemas, example, OpenAPI operation)
- Free signed sample response
- OpenAPI 3.1 · Catalog · Index of every agent