ATIS Relay API

Authentication

Create a free ATIS Relay account and issue a key under Account → API key. Include this header on every request:

X-Api-Key: <token>

One key per account. Keys can be revoked from the same page.

Available Endpoints

GET /api/atis

Retrieve the latest D-ATIS for one airport. Requires icao. Available on Free, ATIS Relay Plus, and Commercial.

curl "https://atisrelay.com/api/atis?icao=KSFO" \
  -H "X-Api-Key: $TOKEN"

Response:
{
  "atis": {
    "airportID": "KSFO",
    "atisCode": "B",
    "letter": "B",
    "dataBody": "SFO ATIS INFO B 1656Z. ..."
  },
  "departure": null,
  "arrival": null
}

GET /api/datis/all

Returns every current D-ATIS in one response. ATIS Relay Plus and Commercial only. Free keys receive 403. The server caches this payload for 5 minutes and shares that cache across callers. Each key may call this endpoint once every 5 minutes. A second call inside that window returns 429 with Retry-After. This endpoint does not count against the per-airport per-minute burst used by GET /api/atis and GET /api/atis_relay_airport.

curl "https://atisrelay.com/api/datis/all" \
  -H "X-Api-Key: $TOKEN"

Response:
{
  "cached_at": "2026-10-17T19:00:00Z",
  "cache_ttl_seconds": 300,
  "airports": {
    "KSFO": {
      "atis": { "airportID": "KSFO", "letter": "B", "dataBody": "SFO ATIS INFO B 1656Z. ..." },
      "departure": null,
      "arrival": null
    }
  }
}

GET /api/atis/all

Commercial only. Plus and Free keys receive 403. Returns every current ATIS, AWOS, and D-ATIS transcript plus parsed values (information letter, Zulu time, wind, visibility, and altimeter) in the same shape the per-airport endpoint uses for those fields. Runway geometry stays on GET /api/runways. Audio links are Commercial only and expire after 24 hours. Request a new link after it expires. The server caches the condition data for 5 minutes and shares that cache across callers. Audio links are created when the response is sent. Each key may call this endpoint once every 5 minutes. A second call inside that window returns 429 with Retry-After. This endpoint does not count against the per-airport per-minute burst.

curl "https://atisrelay.com/api/atis/all" \
  -H "X-Api-Key: $TOKEN"

Response:
{
  "cached_at": "2026-10-17T19:00:00Z",
  "cache_ttl_seconds": 300,
  "airports": [
    {
      "icao": "KSFO",
      "name": "San Francisco International Airport",
      "transcript": "Information Bravo...",
      "transcript_letter": "B",
      "transcript_valid_time": 1730225400,
      "call_status": "ready",
      "audio": "https://atisrelay.com/api/audio/TOKEN",
      "source": "phone",
      "datis": { "atis": { "letter": "B" }, "departure": null, "arrival": null },
      "parsed": { "letter": "B", "zulu_time": 1730225400, "wind": "28012KT", "visibility": "10", "altimeter": "3008" }
    }
  ]
}

GET /api/atis_relay_airport

Airport info plus latest conditions. Requires icao. Available on Free, ATIS Relay Plus, and Commercial. Audio links are included for ATIS Relay Plus and Commercial keys. Free keys receive audio as null and a notice that audio requires a paid plan. Audio links expire after 24 hours. Request a new link after it expires. Fetching an audio link counts against the key's per-minute and daily limits. Paid keys may add include=notams to attach the same NOTAMs the airport pages use. Free keys that pass include=notams still receive the normal airport payload plus a notice that NOTAMs require a paid plan.

curl "https://atisrelay.com/api/atis_relay_airport?icao=KSFO&include=notams" \
  -H "X-Api-Key: $TOKEN"

Response:
{
  "transcript": "Information Bravo...",
  "transcript_letter": "B",
  "transcript_valid_time": 1730225400,
  "call_status": "ready",
  "audio": "https://atisrelay.com/api/audio/TOKEN",
  "metar": { "report": "KSFO 121656Z ...", "flight_rules": "VFR" },
  "datis": { "raw": "..." },
  "airport": { "icao": "KSFO", "name": "San Francisco International Airport" },
  "notams": [
    { "text": "!SFO 10/001 RWY 28L CLSD", "type": "N", "effective_dt": "2026-10-01T12:00:00Z", "age": "new" }
  ]
}

GET /api/atis_relay_index

Lists supported airports.

curl https://atisrelay.com/api/atis_relay_index \
  -H "X-Api-Key: $TOKEN"

Response:
{
  "datis": ["KJFK", "KLAX", "KSFO"],
  "transcribed": ["KAPA", "KCRQ", "KSEE"]
}

GET /api/atis_relay_dial

Initiates ATIS capture for non-D-ATIS airports. Requires icao. ATIS Relay Plus and Commercial only (402 on a free key).

curl "https://atisrelay.com/api/atis_relay_dial?icao=KSEE" \
  -H "X-Api-Key: $TOKEN"

Response:
{ "message": "Call in progress" }

GET /api/audio/:token

Fetches the audio for a link returned by GET /api/atis_relay_airport or GET /api/atis/all. ATIS Relay Plus and Commercial only. Audio links expire after 24 hours. Request a new link after it expires. Each fetch counts against the key's per-minute and daily limits. Expired or invalid links return 404.

curl -L "https://atisrelay.com/api/audio/TOKEN" \
  -H "X-Api-Key: $TOKEN"

GET /api/notams

Returns current NOTAMs for one airport. Requires icao. ATIS Relay Plus and Commercial only. Free keys receive 403. Reuses the same FAA NOTAM fetch and 15-minute cache as uncovered airport pages. Counts against the normal per-key minute and daily limits.

curl "https://atisrelay.com/api/notams?icao=KSEE" \
  -H "X-Api-Key: $TOKEN"

Response:
{
  "icao": "KSEE",
  "notams": [
    { "text": "!SEE 10/001 TWY A CLSD", "type": "N", "effective_dt": "2026-10-01T12:00:00Z", "effective_end_dt": "2026-10-15T23:59:00Z", "age": "new" }
  ]
}

GET /api/runways

Returns runway data. Provide icao or faa_loc_id.

curl "https://atisrelay.com/api/runways?icao=KSFO" \
  -H "X-Api-Key: $TOKEN"

Response:
[
  { "rwy_id": "10L/28R", "rwy_len": 11870, "rwy_width": 200, "surface": "ASPH" }
]

GET /api/freqs

Returns frequencies. Provide icao or faa_loc_id.

curl "https://atisrelay.com/api/freqs?icao=KSFO" \
  -H "X-Api-Key: $TOKEN"

Response:
[
  { "name": "TOWER", "frequency": "120.50", "twr_comm_call": "San Francisco Tower" }
]

GET /api/airport_rmks

Returns FAA airport remarks. Provide icao or faa_loc_id.

curl "https://atisrelay.com/api/airport_rmks?icao=KSFO" \
  -H "X-Api-Key: $TOKEN"

Response:
[
  { "element": "SERVICES", "remark": "FUEL 100LL JET A" }
]

Plans

Free

$0

Personal API key

  • Digital ATIS, METAR, and airport data
  • Phone-line ATIS/AWOS is included when it's already on the site: if someone else requested it, or a community station transcribed it
  • Free keys can't start a new phone-line dial
  • Bulk dumps and NOTAMs need a paid plan
Sign up

ATIS Relay Plus

$5.99/month

$24.99/year

Plus membership benefits

  • Phone-line ATIS/AWOS
  • Unlimited on-demand ATIS in the app, on the web, or by text
  • Cancel any time

API

  • Start new phone-line ATIS/AWOS captures
  • 100 new dials per UTC month
  • Station hosts get 3× the dials: 300 new dials per UTC month
  • Bulk D-ATIS
  • Per-airport NOTAMs
Subscribe

Commercial

Contact us

support@flyownnav.com

  • All ATIS Relay Plus API access
  • Bulk ATIS, AWOS, and D-ATIS
Contact us

By accessing or using the API, you agree to our API Terms and Terms of Service, including:

  • Attribution: Applications must link to ATISrelay.com.
  • FAA Data: SWIM data must display NOT FOR OPERATIONAL USE.
  • Data Quality: Warnings about unreliable or outdated data must be displayed.
  • Liability: Data is provided as-is, without warranty. Liability is limited, and you agree to indemnify us for claims arising from misuse or violations of the terms.

The API is not a substitute for official aviation information, and you must communicate this to the end users of your API integration.

What's included

Free keys can read digital ATIS, METAR, airport data, and any phone-line or community transcript that's already on the site: another request, or a community station. GET /api/atis_relay_airport returns that existing report. Audio links on that endpoint and on GET /api/atis/all are ATIS Relay Plus and Commercial only.

GET /api/atis_relay_dial starts a new phone-line capture and needs the ATIS Relay plan (402 on a free key, 429 after the monthly dial cap of 100 new dials per UTC month). Station hosts get 3× the dials: 300 new dials per UTC month.

GET /api/datis/all and GET /api/notams need ATIS Relay Plus or Commercial. GET /api/atis/all is Commercial only.

Status Codes

  • 200 OK success.
  • 202 Accepted a new phone-line capture was started (GET /api/atis_relay_dial).
  • 400 Bad Request a required parameter is missing (icao on airport endpoints).
  • 401 Unauthorized missing or invalid API key.
  • 402 Payment Required a free API key cannot start a new phone-line dial.
  • 403 Forbidden the key's plan cannot use this endpoint, or a personal API key was used on an app-only endpoint (GET /api/recents).
  • 404 Not Found resource unavailable, including an expired or invalid audio link.
  • 429 Too Many Requests daily, burst, monthly phone-line, or bulk 5-minute limit exceeded.
  • 502 Bad Gateway NOTAMs could not be fetched right now (GET /api/notams).

GET /api/recents is for the ATIS Relay iOS app (app_key) and the GPT inbound bearer token. Personal X-Api-Key tokens receive 403.

Rate limits

Personal API keys are limited by plan. These caps apply to the key.

Plan Per minute Per day Phone-line dials
Free 10 500 Cannot start a new phone-line dial
ATIS Relay Plus 30 1000 100 new dials per UTC month
Commercial 60 5000 No monthly dial cap

Automated or excessive use may be limited.

Response headers

Successful and limited API-key responses include:

  • X-RateLimit-Limit: daily request allowance for the key
  • X-RateLimit-Remaining: requests left in the current UTC day
  • X-RateLimit-Reset: when the daily window resets (ISO-8601 UTC)

When a key is over its minute or daily cap, the API returns 429 Too Many Requests and sets Retry-After to the number of seconds to wait. For a burst limit that is usually 60 seconds. For the daily cap it is the time left in the UTC day. GET /api/audio/:token counts against the same per-minute burst and daily limits as GET /api/atis_relay_airport.

GET /api/datis/all and GET /api/atis/all allow one successful call per key every 5 minutes. Those calls do not increment the per-airport per-minute burst. If you call again sooner, the API returns 429 and Retry-After is the time left in that 5-minute window.

API Terms

Use of the ATIS Relay Application Programming Interface (API) is subject to the ATIS Relay Terms of Service. The following additional conditions apply:

  • Attribution. Unless otherwise agreed in writing, applications using the API must provide a visible link to ATISrelay.com.
  • FAA Data. Data originating from Federal Aviation Administration (FAA) System Wide Information Management (SWIM) must display the warning: NOT FOR OPERATIONAL USE.
  • No FAA Endorsement. You may not represent or imply that the API, its data, or your application is approved, certified, or endorsed by the FAA.
  • Data Quality Warnings. You are responsible for checking and prominently displaying any warnings indicating that information is outdated, incomplete, unavailable, or of questionable quality. You may not suppress or misrepresent warnings provided by the API.
  • Operational Restrictions. The API is provided for informational purposes and must not be relied upon as the sole source of information for flight operations or safety-critical decisions. Users must independently verify information through appropriate official sources.
  • Disclaimer of Warranties. The API and its data are provided “AS IS” and “AS AVAILABLE,” without warranties of any kind, express or implied, including warranties of accuracy, completeness, availability, fitness for a particular purpose, or non-infringement, to the maximum extent permitted by law.
  • Limitation of Liability. To the maximum extent permitted by law, Torrey Systems, LLC, its owners, officers, employees, and agents shall not be liable for indirect, incidental, consequential, special, or punitive damages arising from use of the API, including losses resulting from inaccurate, delayed, incomplete, or unavailable data. Their total aggregate liability arising out of or relating to the API shall not exceed the greater of $100 or the fees paid by you for the API during the preceding 12 months. Nothing in this provision excludes liability that cannot lawfully be limited.
  • Indemnification. You agree to defend, indemnify, and hold harmless Torrey Systems, LLC, its owners, officers, employees, and agents against third-party claims, liabilities, damages, and reasonable legal expenses arising from your violation of these terms, unlawful use of the API, or negligent or willful misconduct in connection with the API.

Commercial inquiries: support@flyownnav.com