Implements the subset of the isitagentready.com checklist that maps to
real capabilities of this site:
- RFC 8288 Link headers on every browser response advertising
service-doc (/algo), about, privacy-policy, and sitemap.
- Markdown-for-Agents content negotiation: requests with
Accept: text/markdown for / or /algo return real markdown
(curated summary + verbatim algo.md) with x-markdown-tokens hint.
Other paths still 406 — no synthesizing markdown from LiveView HTML.
- Content-Signal directive in robots.txt declaring
search=yes, ai-train=no, ai-input=no.
- RFC 9727 API catalog at /.well-known/api-catalog with the sole
public endpoint (/api/contacts/map) linking status -> /health and
service-desc -> /openapi.json (a new minimal OpenAPI 3.0 spec).
- Agent Skills Discovery index at /.well-known/agent-skills/index.json
listing two skill documents (fetch-contacts, read-algorithm) with
sha256 digests computed at compile time; documents served at
/.well-known/agent-skills/{name}/SKILL.md.
Skipped (don't match actual site capabilities): Web Bot Auth JWKS,
OAuth/OIDC discovery, MCP server card.
32 lines
1.2 KiB
Markdown
32 lines
1.2 KiB
Markdown
# Fetch contacts dataset
|
|
|
|
The NTMS microwave propagation service publishes its full amateur-radio contact (QSO) calibration dataset as a single public JSON endpoint. No authentication is required.
|
|
|
|
## Endpoint
|
|
|
|
```
|
|
GET https://prop.w5isp.com/api/contacts/map
|
|
```
|
|
|
|
The response is pre-gzipped when the client sends `Accept-Encoding: gzip` (roughly 1 MB compressed, 5 MB decompressed). Cached at the origin for 60 s.
|
|
|
|
## Response shape
|
|
|
|
A single JSON array where each element is a fixed-length tuple:
|
|
|
|
```
|
|
[lat1, lon1, lat2, lon2, band_mhz, callsign1, callsign2, mode, distance_km, qso_timestamp_iso8601, id_uuid]
|
|
```
|
|
|
|
- `lat1/lon1` and `lat2/lon2` are the two station locations (WGS84 degrees).
|
|
- `band_mhz` is an integer in MHz (e.g. `1296`, `10000`, `24000`).
|
|
- `callsign1/callsign2` are uppercase amateur callsigns or `null` if unknown.
|
|
- `mode` is a string (`CW`, `SSB`, `FT8`, …) or `null`.
|
|
- `distance_km` is a number or `null`.
|
|
- `qso_timestamp_iso8601` is `YYYY-MM-DDTHH:MM:SSZ`.
|
|
- `id_uuid` is the stable UUID for the contact; fetch details at `/contacts/{id_uuid}`.
|
|
|
|
## Machine-readable specs
|
|
|
|
- OpenAPI 3.0 spec: `GET /openapi.json`
|
|
- API catalog (RFC 9727): `GET /.well-known/api-catalog`
|