Getting Started
This guide is intended for developers who want to build applications that interact with the CheckWX aviation weather data API. It introduces the core concepts of the API, explains how requests and responses work, and provides the information needed to make your first successful request.
The CheckWX API provides access to real-time and historical aviation weather data, including METARs, TAFs, and station metadata. The API follows REST principles, uses predictable resource-oriented URLs, and returns JSON-formatted responses.
Base URL
All API requests must be made securely over HTTPS using the following base URL:
https://api.checkwx.com/
Versioning Overview
Our API uses URL versioning to ensure stability and backward compatibility. The current release is Version 2, andv2must be included in every endpoint path.
Example Path
https://api.checkwx.com/v2/{endpoint}
Why Versioning Matters
Versioning allows us to improve and expand the API without breaking existing integrations. By explicitly versioning your requests, you gain more control over upgrade timing and reduce risk from unexpected changes.
Support for Legacy Versions
We continue to support Version 1 for existing users, however Version 1 will no longer receive updates. For access to the latest features, performance improvements, and enhanced documentation, we strongly recommend migrating to Version 2.
See the Version 2 Migration Guide for detailed steps and examples to help you transition smoothly.
Future Versions
New major versions will be introduced in a backward-compatible way whenever possible. When breaking changes are necessary, we will provide advanced notice, clear migration paths, and thorough documentation.
Endpoints
The CheckWX API is organized around REST. Our API has predictable resource-oriented URLs, accepts GET requests, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs.
This documentation is structured first by a group of related functionality: Station, METAR, TAF, etc., and then by endpoint.
Endpoints are a specific method within that API that performs one action and is located at a specific URL.
- All requests should be made using HTTPS
- All endpoints use the HTTP GET method
- Responses are JSON-encoded
- All parameters are required unless otherwise specified
Each endpoint in this documentation is described using several parts:
- Base URL
- Endpoint Path
- Path Parameters
- Query Parameters
Authentication
All API endpoints require an API key. Each key is unique to an account and can be found on your Profile page.
Keep your API key secure and never expose it in publicly accessible code such as client-side JavaScript or public repositories.
In order to use our services you must provided your API key with each request using one of these two options:
HTTP Header (recommended)
X-API-Key: YOUR_API_KEY
Query Parameter
https://api.checkwx.com/metar/KJFK?x-api-key=YOUR_API_KEY
Making Your First Request
The example below retrieves the latest METAR for a single ICAO station using curl.
curl -H "X-API-Key: YOUR_API_KEY" https://api.checkwx.com/metar/KJFK
For development and debugging, you can also use your API key in a browser request:
https://api.checkwx.com/metar/KJFK?x-api-key=YOUR_API_KEY
A successful request returns a 200 OK response and a JSON formatted response.
JSON Response
All of our API response bodies consist of a UTF-8-encoded, JSON-formatted object in the following format:
{
"results": 0,
"data": [...]
}
- The results value will indicate the number of results returned
- The data array will be populated with the API response data
- All timestamps are returned in UTC
- Responses are encoded using UTF-8.
Error Response
Successful API requests are returned with a status code of 200.
Any non-200 HTTP response code can be considered an error.
If you receive a status code in the range of 400 to 500, please check the error section in the JSON response data for the exact error message and resolution.
API Daily Limits
All of our API Plans have different levels of daily request limits.
Each API call you make to our services counts as one request, regardless of the number of parameters.
To illustrate this concept, see the following example:
https://api.checkwx.com/v2/metar/KPIE
https://api.checkwx.com/v2/metar/KSPG
https://api.checkwx.com/v2/metar/KLAL
https://api.checkwx.com/v2/metar/KPIE,KSPG,KLAL
Should you exceed your daily request limit:
- The API service will block your incoming requests and return a 429 Too Many Requests response status code
- The daily rate limit counter will reset to zero at 00:00 UTC
To prevent exceeding your request limit you should consider caching the responses:
- METAR and TAF requests should be requested and then cached for at least 15 minutes
- STATION requests should be requested and then cached for at least 24 hours
To improve connections and experiences for all our users, we block some accounts when we see suspicious activity or loads on our system:
- Creating multiple API accounts to circumvent API limits
- Poaling aggressively instead of caching responses
- Making API calls with a high concurrency
Note
Users that excessively or persistently exceed their daily rate limits may have their API account disabled or terminated.
ICAO Path Limits
All endpoints that allow multiple ICAOs seperated by commans, will only accept a maximum of 25 ICAOs in a single API request.
If you try to request more than 25 ICAOs in a request, only the first 25 ICAOs will be included in the response data.
For example, if you need data for 100 different ICAOs, you would need to submit 4 requests with 25 ICAOs in each request.