Aviation Weather

The CheckWX API allows for programmatic access to CheckWX.com’s aviation weather database.

Using our API you can retrieve current METAR and TAF data for use in web, desktop and mobile applications.

METAR and TAF data can be requested in a raw and/or decoded format.

Our API is Free with some restrictions on request limits

You must register for a free API key at CheckWX.com

 Processing....
 Processing....
 Processing....
 Processing....
 

Getting Started

This documentation is structured first by a group of related functionality: STATION, METAR or TAF. Then by endpoint which is a specific method within that API that performs one action and is located at a specific URL.

  • The API is organized around REST
  • All requests should be made over SSL
  • All request and response bodies, including errors, are encoded in JSON by default

Each endpoint in this documentation is described using several parts:

  • Base URL https://api.checkwx.com/
  • API Endpoint
  • Header Parameters
  • URL Parameters
  • Querystring Parameters
 

Authentication

All endpoints require an API key, which is unique for each user.

You must register for a free API key at CheckWX.com

  • Provided your API key as a Header Parameter with each request as shown in the examples
  • In all our examples replace API_KEY with your unique API key

Nothing will work unless you include your API key!

Source Code Examples
$ curl 'https://api.checkwx.com/{endpoint}/' -H 'X-API-Key: API_KEY' 
$.ajax({
  type: 'GET',
  url: 'https://api.checkwx.com/{endpoint}/',
  headers: { 'X-API-Key': 'API_KEY'  },
  dataType: 'json',
  success: function (result) {
    console.log(result)
  }
});
<?php
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, 'https://api.checkwx.com/{endpoint}/');
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-API-Key: API_KEY']);

  $result = curl_exec ($ch);
  curl_close ($ch);
  print_r($result);
?>
import requests

hdr = { 'X-API-Key': 'API_KEY' }
req = requests.get('https://api.checkwx.com/{endpoint}/', headers=hdr)
print(req.text)
require 'net/http'

uri = URI('https://api.checkwx.com/{endpoint}/')

Net::HTTP.start(uri.host, uri.port,: use_ssl => uri.scheme ==
  'https') do |http |
    req = Net::HTTP::Get.new uri
  req.add_field("X-API-Key", "API_KEY")
  

resp = http.request req
puts resp.body
end
 

JSON/XML

All response bodies consist of a UTF-8-encoded, JSON-formatted object, including errors.

Support for XML response data will end on March 1st, 2019. All responses will only be sent in JSON.

 

JSON Formatting

Normally JSON-formatted response data is compressed in a single line standard format.

However for human readability, you can specify a Querysting parameter which will return the JSON with line wraps and spacing.

This is especially useful when viewing the response JSON using CURL on the commandline.

This Querysting parameter is ignored if you request XML as the response type

Querystring Parameters
Parameter Description  
pretty=1 Pretty print JSON response. optional
URL Examples
Station https://api.checkwx.com/station?pretty=1
METAR Decoded https://api.checkwx.com/metar/krdu/decoded?pretty=1
TAF Decoded https://api.checkwx.com/taf/krdu/decoded?pretty=1
 

API Limits

API requests are limited to 2,000 requests per day

All ICAO codes count towards the rate limits, not just individual HTTPS API requests.

For example, you can make a single API call and specify multiple ICAO codes, each ICAO would count as its own API call, even though you are only making one HTTPS API request.

To illustrate this concept, see the examples below:

Example Requests Number of API Calls
https://api.checkwx/com/station/KPIE
https://api.checkwx/com/station/KSPG
https://api.checkwx/com/station/KLAL
3
https://api.checkwx/com/station/KPIE,KSPG,KLAL 3

If you exceed 2000 requests per day, the server will block your incoming requests.

  • Your 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 other overloads on our system:

  • Creating multiple API accounts to circumvent API limits
  • Polling aggressively instead of caching responses
  • Making API calls with a high concurrency

Users that excessively or persistently exceed their rate limits may be disabled

 

Examples

Each endpoint has some basic source code language examples to make integration easier.

Currently we have examples for the following programming languages:

  • CURL
  • JQuery
  • PHP
  • Python
  • Ruby

You can switch the programming language of the examples with the tabs listed under Source Code Examples in the endpoint documentation.

There are also some good examples on Github for working with our API. One recommended repo is api.checkwx.com-examples.

Parameters are displayed as :paramter placeholders in all URL examples. Please do not include the colon in the actual API call.

Example

https://api.checkwx.com/station/:icao

Real Usage

https://api.checkwx.com/station/KPIE

 

.NET Wrapper

Nathanael Nordentoft has written a public .NET/C# wrapper

The wrapper is written to give users three ways of communicating with our API:

  • The RAW JSON services which will deliver the raw JSON response and HTTP status code from the API

  • The RAW XML services which will deliver the raw XML response and HTTP status code from the API

  • The .NET object services which will deserialize and deliver domain objects from the delivered JSON

 

Error Messages

Successful API requests are returned with a status code of 200.

If you receive a status code in the range of 400 to 450, please check the error section in the response data for the exact error message and resolution.

Code Name Description
200 OK Successful request and response
400 Bad Request Malformed parameters or other bad request
401 Unauthorized Your API key is invalid
402 Over quota Over plan quota on this endpoint
403 Forbidden Invalid request
404 Not found The resource or endpoint does not exist
422 Validation error A validation error occurred
50X Internal Server Error An error occurred with our API
 

Station Overview

Stations are any Airport, Heliport, Seaplane Base, Gliderport, Weather Reporting Station, etc.

  • Stations are identified by a four-character alphanumeric ICAO code

  • Our database contains over 44,000 ICAO codes to choose from

You can search a listing of all ICAO codes on CheckWX.com

 

Station Fields

The following table lists the fields which are returned by all Station endpoints.

If a field is marked as Conditional, the field will not be included in the response JSON if data does not exist for that field. Therefore your code should check for the existence of these fields before attempting to access the data.

Field Type Description Conditional
icao string ICAO airport code or station indicator  
name string Station name  
activated string Activated Month/Year Yes
city string City Yes
country array Array with the following properties Yes
country.code string Country code abbreviation  
country.name string Country full text name Yes
elevation array Array with the following properties Yes
elevation.feet integer Elevation in feet Yes
elevation.meters integer Elevation in meters Yes
elevation.method string Method used to determine elevation - ‘Surveyed’ or ‘Estimated’ Yes
iata string IATA airport code or station indicator Yes
latitude array Array with the following properties  
latitude.decimal float Latitude in decimal degrees  
latitude.degrees string Latitude in degrees, minutes, seconds  
longitude array Array with the following properties Yes
longitude.decimal float Longitude in decimal degrees  
longitude.degrees string Longitude in degrees, minutes, seconds  
magnetic_variation array Array with the following properties Yes
magnetic_variation.position string The angle between magnetic north and true north Yes
magnetic_variation.year string Year of last magnetic variation determination Yes
sectional string Station appears on this FAA Sectional chart (US/Canada) Yes
state array Array with the following properties Yes
state.code string State/province abbreviation Yes
state.name string State/province full text name Yes
status string Status - ‘Operational’ or ‘Closed’ Yes
timezone array Array with the following properties  
timezone.gmt signed integer Timezone offset subtracted or added to GMT time  
timezone.dst signed integer Timezone offset subtracted or added to GMT time including DST  
timezone.tzid string Timezone text string  
type string Type ‘Airport’, ‘Heliport’, ‘Seaplane Base’, etc. Yes
useage string Useage ‘Public’, ‘Private’, ‘Military’, etc. Yes

All errors will return JSON in the following format:

 

/station/:icao

Returns the latest Station information for a one or more ICAO codes.

Header Parameters
Parameter Description  
X-API-Key Your unique API key required
URL Parameters
Parameter Description  
icao A single ICAO code or multiple ICAO codes seperated by commas. Maximum of 20 ICAO codes per request. required
Source Code Examples
$ curl 'https://api.checkwx.com/station/:icao' -H 'X-API-Key: API_KEY' 
$.ajax({
  type: 'GET',
  url: 'https://api.checkwx.com/station/:icao',
  headers: { 'X-API-Key': 'API_KEY'  },
  dataType: 'json',
  success: function (result) {
    console.log(result)
  }
});
<?php
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, 'https://api.checkwx.com/station/:icao');
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-API-Key: API_KEY']);

  $result = curl_exec ($ch);
  curl_close ($ch);
  print_r($result);
?>
import requests

hdr = { 'X-API-Key': 'API_KEY' }
req = requests.get('https://api.checkwx.com/station/:icao', headers=hdr)
print(req.text)
require 'net/http'

uri = URI('https://api.checkwx.com/station/:icao')

Net::HTTP.start(uri.host, uri.port,: use_ssl => uri.scheme ==
  'https') do |http |
    req = Net::HTTP::Get.new uri
  req.add_field("X-API-Key", "API_KEY")
  

resp = http.request req
puts resp.body
end
URL Examples
Single ICAO https://api.checkwx.com/station/kpie
Multiple ICAOs https://api.checkwx.com/station/kpie,kspg,klal
 Processing....
 

/station/:icao/radius/:radius

Returns the latest Station information for stations within a miles radius of a single ICAO code.

The results are sorted based on the distance from the requested ICAO code.

Additional response fields are included in the response data to show the distance and direction from the requested ICAO parameter.

Additional Response Fields
Field Type Description
radius array Array with the following properties
radius.from string Base location ICAO
radius.miles float Distance from base location in miles
radius.meters float Distance from base location in meters
radius.bearing integer Bearing from base location (0-360)
radius.direction string Compass text from base location (N/NE/E/SE/S/SW/W/NW)
Header Parameters
Parameter Description  
X-API-Key Your unique API key required
URL Parameters
Parameter Description  
icao A single ICAO code or multiple ICAO codes seperated by commas. Maximum of 20 ICAO codes per request. required
radius The surrounding radius in miles from the ICAO code. 250 miles is the maximum radius. required
Querystring Parameters
Parameter Description  
filter=A Filter the results by station type (A, H, G, S, W, O)

A = Airport
H = Heliport
G = Gliderport
S = Seaplane Base
W = Weather Station
O = Other
optional
Source Code Examples
$ curl 'https://api.checkwx.com/station/icao/:icao/radius/:radius' -H 'X-API-Key: API_KEY' 
$.ajax({
  type: 'GET',
  url: 'https://api.checkwx.com/station/icao/:icao/radius/:radius',
  headers: { 'X-API-Key': 'API_KEY'  },
  dataType: 'json',
  success: function (result) {
    console.log(result)
  }
});
<?php
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, 'https://api.checkwx.com/station/icao/:icao/radius/:radius');
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-API-Key: API_KEY']);

  $result = curl_exec ($ch);
  curl_close ($ch);
  print_r($result);
?>
import requests

hdr = { 'X-API-Key': 'API_KEY' }
req = requests.get('https://api.checkwx.com/station/icao/:icao/radius/:radius', headers=hdr)
print(req.text)
require 'net/http'

uri = URI('https://api.checkwx.com/station/icao/:icao/radius/:radius')

Net::HTTP.start(uri.host, uri.port,: use_ssl => uri.scheme ==
  'https') do |http |
    req = Net::HTTP::Get.new uri
  req.add_field("X-API-Key", "API_KEY")
  

resp = http.request req
puts resp.body
end
URL Examples
Radius https://api.checkwx.com/station/kpie/radius/25
Radius + Type https://api.checkwx.com/station/kpie/radius/25?filter=A
 Processing....
 

/station/lat/:latitude/lon/:longitude

Returns the latest Station information for a single station nearest to the parameters latitude and longitude.

Additional response fields are included in the response data to show the distance and direction from the requested latitude and longitude parameters.

Additional Response Fields
Field Type Description
radius array Array with the following properties
radius.from string Base location ICAO
radius.miles float Distance from base location in miles
radius.meters float Distance from base location in meters
radius.bearing integer Bearing from base location (0-360)
radius.direction string Compass text from base location (N/NE/E/SE/S/SW/W/NW)
Header Parameters
Parameter Description  
X-API-Key Your unique API key required
URL Parameters
Parameter Description  
latitude The decimal latitude required
longitude The decimal longitude required
Querystring Parameters
Parameter Description  
filter Filter the results by station type (A, H, G, S, W, O)

A = Airport
H = Heliport
G = Gliderport
S = Seaplane Base
W = Weather Station
O = Other
optional
Source Code Examples
$ curl 'https://api.checkwx.com/station/lat/:latitude/lon/:longitude' -H 'X-API-Key: API_KEY' 
$.ajax({
  type: 'GET',
  url: 'https://api.checkwx.com/station/lat/:latitude/lon/:longitude',
  headers: { 'X-API-Key': 'API_KEY'  },
  dataType: 'json',
  success: function (result) {
    console.log(result)
  }
});
<?php
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, 'https://api.checkwx.com/station/lat/:latitude/lon/:longitude');
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-API-Key: API_KEY']);

  $result = curl_exec ($ch);
  curl_close ($ch);
  print_r($result);
?>
import requests

hdr = { 'X-API-Key': 'API_KEY' }
req = requests.get('https://api.checkwx.com/station/lat/:latitude/lon/:longitude', headers=hdr)
print(req.text)
require 'net/http'

uri = URI('https://api.checkwx.com/station/lat/:latitude/lon/:longitude')

Net::HTTP.start(uri.host, uri.port,: use_ssl => uri.scheme ==
  'https') do |http |
    req = Net::HTTP::Get.new uri
  req.add_field("X-API-Key", "API_KEY")
  

resp = http.request req
puts resp.body
end
URL Examples
Lat/Lon https://api.checkwx.com/station/lat/40.72/lon/-73.99
Lat/Lon + Type https://api.checkwx.com/station/lat/40.72/lon/-73.99?filter=A
 Processing....
 

/station/lat/:latitude/lon/:longitude/radius/:radius

Returns the latest Station information for multiple stations within a specified radius of the parameters latitude and longitude.

Additional response fields are included in the response data to show the distance and direction from the requested latitude and longitude parameters.

Additional Response Fields
Field Type Description
radius array Array with the following properties
radius.from string Base location ICAO
radius.miles float Distance from base location in miles
radius.meters float Distance from base location in meters
radius.bearing integer Bearing from base location (0-360)
radius.direction string Compass text from base location (N/NE/E/SE/S/SW/W/NW)
Header Parameters
Parameter Description  
X-API-Key Your unique API key required
URL Parameters
Parameter Description  
latitude The decimal latitude required
longitude The decimal longitude required
radius The surrounding radius in miles from the ICAO code. 250 miles is the maximum radius. required
Querystring Parameters
Parameter Description  
filter=A Filter the results by station type (A, H, G, S, W, O)

A = Airport
H = Heliport
G = Gliderport
S = Seaplane Base
W = Weather Station
O = Other
optional
URL Examples
Lat/Lon Radius https://api.checkwx.com/station/lat/40.72/lon/-73.99/radius/10
Source Code Examples
$ curl 'https://api.checkwx.com/station/lat/:latitude/lon/:longitude/radius/:radius' -H 'X-API-Key: API_KEY' 
$.ajax({
  type: 'GET',
  url: 'https://api.checkwx.com/station/lat/:latitude/lon/:longitude/radius/:radius',
  headers: { 'X-API-Key': 'API_KEY'  },
  dataType: 'json',
  success: function (result) {
    console.log(result)
  }
});
<?php
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, 'https://api.checkwx.com/station/lat/:latitude/lon/:longitude/radius/:radius');
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-API-Key: API_KEY']);

  $result = curl_exec ($ch);
  curl_close ($ch);
  print_r($result);
?>
import requests

hdr = { 'X-API-Key': 'API_KEY' }
req = requests.get('https://api.checkwx.com/station/lat/:latitude/lon/:longitude/radius/:radius', headers=hdr)
print(req.text)
require 'net/http'

uri = URI('https://api.checkwx.com/station/lat/:latitude/lon/:longitude/radius/:radius')

Net::HTTP.start(uri.host, uri.port,: use_ssl => uri.scheme ==
  'https') do |http |
    req = Net::HTTP::Get.new uri
  req.add_field("X-API-Key", "API_KEY")
  

resp = http.request req
puts resp.body
end
 Processing....
 

/station/:icao/timestamp

Returns the latest Station timestamp for a one or more ICAO codes.

  • The timezone ID and offsets to GMT/DST
  • The current time in both station local timezone and UTC formats.
  • The sunrise/sunset times in both station local timezone and UTC formats.
Response Fields
Field Type Description
icao string ICAO airport code or station indicator
name string Station name
timezone array Array with the following properties
timezone.gmt signed integer Timezone offset subtracted or added to GMT time
timezone.dst signed integer Timezone offset subtracted or added to GMT time including DST
timezone.tzid string Timezone id text string
timezone.zone string Timezone zone text string
timestamp array Array with the following properties
timestamp.local.current string Current local timestamp
timestamp.local.date string Local Date YYYY-MM-DD
timestamp.local.time string Local Time HH:MM:SS
timestamp.utc.current string Current UTC timestamp
timestamp.utc.date string UTC Date YYYY-MM-DD
timestamp.utc.time string UTC Time HH:MM:SS
sunrise_sunset array Array with the following properties
sunrise_sunset.local.sun_rise string Sunrise local HH:MM:SS
sunrise_sunset.local.sun_set string Sunset local HH:MM:SS
sunrise_sunset.local.civil_dawn string Civil dawn local HH:MM:SS
sunrise_sunset.local.civil_dusk string Civil dusk local HH:MM:SS
sunrise_sunset.utc.sun_rise string Sunrise GMT HH:MM:SS
sunrise_sunset.utc.sun_set string Sunset GMT HH:MM:SS
sunrise_sunset.utc.civil_dawn string Civil dawn GMT HH:MM:SS
sunrise_sunset.utc.civil_dusk string Civil dusk GMT HH:MM:SS
Header Parameters
Parameter Description  
X-API-Key Your unique API key required
URL Parameters
Parameter Description  
icao A single ICAO code or multiple ICAO codes seperated by commas. Maximum of 20 ICAO codes per request. required
Source Code Examples
$ curl 'https://api.checkwx.com/station/:icao/timestamp' -H 'X-API-Key: API_KEY' 
$.ajax({
  type: 'GET',
  url: 'https://api.checkwx.com/station/:icao/timestamp',
  headers: { 'X-API-Key': 'API_KEY'  },
  dataType: 'json',
  success: function (result) {
    console.log(result)
  }
});
<?php
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, 'https://api.checkwx.com/station/:icao/timestamp');
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-API-Key: API_KEY']);

  $result = curl_exec ($ch);
  curl_close ($ch);
  print_r($result);
?>
import requests

hdr = { 'X-API-Key': 'API_KEY' }
req = requests.get('https://api.checkwx.com/station/:icao/timestamp', headers=hdr)
print(req.text)
require 'net/http'

uri = URI('https://api.checkwx.com/station/:icao/timestamp')

Net::HTTP.start(uri.host, uri.port,: use_ssl => uri.scheme ==
  'https') do |http |
    req = Net::HTTP::Get.new uri
  req.add_field("X-API-Key", "API_KEY")
  

resp = http.request req
puts resp.body
end
URL Examples
Single ICAO https://api.checkwx.com/station/kpie/timestamp
Multiple ICAOs https://api.checkwx.com/station/kpie,kspg,klal/timestamp
 Processing....
 

METAR Overview

METAR is a format for reporting current weather information.

METAR weather reports are predominantly used by pilots in fulfillment of a part of a pre-flight weather briefing, and by meteorologists, who use aggregated METAR information to assist in weather forecasting.

METARs typically come from airports or permanent weather observation stations. Reports are generated once an hour or half-hour, but if conditions change significantly, a report known as a special (SPECI) may be issued. Some METARs are encoded by automated airport weather stations located at airports, military bases, and other sites. Some locations still use augmented observations, which are recorded by digital sensors, encoded via software, and then reviewed by certified weather observers or forecasters prior to being transmitted. Observations may also be taken by trained observers or forecasters who manually observe and encode their observations prior to transmission.

A typical METAR contains data for the temperature, dew point, wind direction and speed, precipitation, cloud cover and heights, visibility, and barometric pressure. A METAR may also contain information on precipitation amounts, lightning, and other information that would be of interest to pilots or meteorologists.

METAR is the most common format in the world for the transmission of observational weather data. It is highly standardized through the International Civil Aviation Organization, which allows it to be understood throughout most of the world.

CheckWX’s decoded METAR, decodes the raw METAR to creates keys and values for each part in a METAR. We also include additional weather information and conversions in the response data.

 

METAR Raw vs Decoded

By default all METAR endpoints return data in a raw format.

By adding the decoded URL Parameter to any METAR endpoint, both the raw and decoded METAR will be included in the response data.

View the example responses to see the difference between raw and decoded responses.

URL Examples
Raw https://api.checkwx.com/metar/kpie
Decoded https://api.checkwx.com/metar/kpie/decoded
 Processing....
 Processing....
 

METAR Fields

The following table lists the fields which are returned by all decoded METAR endpoints.

If a field is marked as Conditional, the field will not be included in the response JSON if data does not exist for that field. Therefore your code should check for the existence of these fields before attempting to access the data.

Field Type Description Conditional
icao string ICAO airport code or station indicator  
station.name string Station name  
observed date METAR observed ISODate in UTC  
raw_text string Raw METAR text string  
barometer array Array with the following properties Yes
barometer.hg decimal Barometer in inches of mercury Yes
barometer.kpa decimal Barometer in kilopascals Yes
barometer.mb decimal Barometer in millibars Yes
ceiling array Array with the following properties Yes
ceiling.code string Ceiling abbreviation code Yes
ceiling.text string Ceiling English text Yes
ceiling.feet_agl decimal Ceiling feet above ground level Yes
ceiling.meters_agl decimal Ceiling meters above ground level Yes
clouds array Array of cloud levels each with the following properties Yes
clouds.code string Ceiling abbreviation code Yes
clouds.text string Ceiling English text Yes
clouds.base_feet_agl decimal Ceiling feet above ground level Yes
clouds.base_meters_agl decimal Ceiling meters above ground level Yes
conditions array Array of conditions each with the following properties Yes
conditions.code string Condition abbreviation code Yes
conditions.text string Condition English text Yes
dewpoint array Array with the following properties Yes
dewpoint.celsius integer Dewpoint in celsius Yes
dewpoint.fahrenheit integer Dewpoint in fahrenheit Yes
elevation array Array with the following properties Yes
elevation.feet integer Elevation in feet Yes
elevation.meters integer Elevation in meters Yes
flight_category string Flight rules category

VFR
MVFR
IFR
LIFR
Yes
humidity array Array with the following properties Yes
humidity.percent integer Humidity percentage Yes
rain.inches integer Rainfall in inches Yes
snow.inches integer Snowfall in inches Yes
temperature array Array with the following properties Yes
temperature.celsius integer Temperature in celsius Yes
temperature.fahrenheit integer Temperature in fahrenheit Yes
visibility array Array with the following properties Yes
visibility.miles string Visibility in miles (Expressed as a string to support values like ‘1/2 mile’) Yes
visibility.miles_float float Visibility in miles converted to float Yes
visibility.meters string Visibility in meters (Expressed as a string to support values like ‘> 9000’) Yes
visibility.meters_float float Visibility in meters converted to float Yes
wind array Array with the following properties Yes
wind.degrees integer Wind direction in degrees Yes
wind.speed_kts integer Wind speed in knots Yes
wind.speed_mph integer Wind speed in miles per hour Yes
wind.speed_mps integer Wind speed in meters per second Yes
wind.gust_kts integer Wind gust speed in knots Yes
wind.gust_mph integer Wind gust speed in miles per hour Yes
wind.gust_mps integer Wind gust speed in meters per second Yes
 

/metar/:icao

Returns the latest METAR information for a one or more ICAO codes.

Header Parameters
Parameter Description  
X-API-Key Your unique API key required
URL Parameters
Parameter Description  
icao A single ICAO code or multiple ICAO codes seperated by commas. Maximum of 20 ICAO codes per request. required
decoded The response data will include decoded METAR information optional
Source Code Examples
$ curl 'https://api.checkwx.com/metar/:icao' -H 'X-API-Key: API_KEY' 
$.ajax({
  type: 'GET',
  url: 'https://api.checkwx.com/metar/:icao',
  headers: { 'X-API-Key': 'API_KEY'  },
  dataType: 'json',
  success: function (result) {
    console.log(result)
  }
});
<?php
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, 'https://api.checkwx.com/metar/:icao');
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-API-Key: API_KEY']);

  $result = curl_exec ($ch);
  curl_close ($ch);
  print_r($result);
?>
import requests

hdr = { 'X-API-Key': 'API_KEY' }
req = requests.get('https://api.checkwx.com/metar/:icao', headers=hdr)
print(req.text)
require 'net/http'

uri = URI('https://api.checkwx.com/metar/:icao')

Net::HTTP.start(uri.host, uri.port,: use_ssl => uri.scheme ==
  'https') do |http |
    req = Net::HTTP::Get.new uri
  req.add_field("X-API-Key", "API_KEY")
  

resp = http.request req
puts resp.body
end
URL Examples
Raw Single https://api.checkwx.com/metar/kpie
Raw Multiple https://api.checkwx.com/metar/kpie,kspg
Decoded Single https://api.checkwx.com/metar/kpie/decoded
Decoded Multiple https://api.checkwx.com/metar/kpie,kspg/decoded
 Processing....
 Processing....
 

/metar/:icao/radius/:radius

Returns the latest METAR information for stations within a miles radius of a single ICAO code.

The results are sorted based on the distance from the requested ICAO code.

Additional response fields are included in the response data to show the distance and direction from the requested ICAO parameter.

Additional Response Fields
Field Type Description
radius array Array with the following properties
radius.from string Base location ICAO
radius.miles float Distance from base location in miles
radius.meters float Distance from base location in meters
radius.bearing integer Bearing from base location (0-360)
radius.direction string Compass text from base location (N/NE/E/SE/S/SW/W/NW)
Header Parameters
Parameter Description  
X-API-Key Your unique API key required
URL Parameters
Parameter Description  
icao A single ICAO code or multiple ICAO codes seperated by commas. Maximum of 20 ICAO codes per request. required
radius The surrounding radius in miles from the ICAO code. 250 miles is the maximum radius. required
decoded The response data will include decoded METAR information optional
Querystring Parameters
Parameter Description  
include=1 Includes the base ICAO in the results. optional
Source Code Examples
$ curl 'https://api.checkwx.com/metar/icao/:icao/radius/:radius' -H 'X-API-Key: API_KEY' 
$.ajax({
  type: 'GET',
  url: 'https://api.checkwx.com/metar/icao/:icao/radius/:radius',
  headers: { 'X-API-Key': 'API_KEY'  },
  dataType: 'json',
  success: function (result) {
    console.log(result)
  }
});
<?php
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, 'https://api.checkwx.com/metar/icao/:icao/radius/:radius');
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-API-Key: API_KEY']);

  $result = curl_exec ($ch);
  curl_close ($ch);
  print_r($result);
?>
import requests

hdr = { 'X-API-Key': 'API_KEY' }
req = requests.get('https://api.checkwx.com/metar/icao/:icao/radius/:radius', headers=hdr)
print(req.text)
require 'net/http'

uri = URI('https://api.checkwx.com/metar/icao/:icao/radius/:radius')

Net::HTTP.start(uri.host, uri.port,: use_ssl => uri.scheme ==
  'https') do |http |
    req = Net::HTTP::Get.new uri
  req.add_field("X-API-Key", "API_KEY")
  

resp = http.request req
puts resp.body
end
URL Examples
Radius Raw https://api.checkwx.com/metar/krdu/radius/50
Radius Decoded https://api.checkwx.com/metar/krdu/radius/50/decoded
Radius Include https://api.checkwx.com/metar/krdu/radius/50/decoded/?include=1
 Processing....
 Processing....
 

/metar/lat/:latitude/lon/:longitude

Returns the latest METAR information for a single station nearest to the parameters latitude and longitude.

Additional response fields are included in the response data to show the distance and direction from the requested latitude and longitude parameters.

Additional Response Fields
Field Type Description
radius array Array with the following properties
radius.from string Base location ICAO
radius.miles float Distance from base location in miles
radius.meters float Distance from base location in meters
radius.bearing integer Bearing from base location (0-360)
radius.direction string Compass text from base location (N/NE/E/SE/S/SW/W/NW)
Header Parameters
Parameter Description  
X-API-Key Your unique API key required
URL Parameters
Parameter Description  
latitude The decimal latitude required
longitude The decimal longitude required
decoded The response data will include decoded METAR information optional
Source Code Examples
$ curl 'https://api.checkwx.com/metar/lat/:latitude/lon/:longitude' -H 'X-API-Key: API_KEY' 
$.ajax({
  type: 'GET',
  url: 'https://api.checkwx.com/metar/lat/:latitude/lon/:longitude',
  headers: { 'X-API-Key': 'API_KEY'  },
  dataType: 'json',
  success: function (result) {
    console.log(result)
  }
});
<?php
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, 'https://api.checkwx.com/metar/lat/:latitude/lon/:longitude');
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-API-Key: API_KEY']);

  $result = curl_exec ($ch);
  curl_close ($ch);
  print_r($result);
?>
import requests

hdr = { 'X-API-Key': 'API_KEY' }
req = requests.get('https://api.checkwx.com/metar/lat/:latitude/lon/:longitude', headers=hdr)
print(req.text)
require 'net/http'

uri = URI('https://api.checkwx.com/metar/lat/:latitude/lon/:longitude')

Net::HTTP.start(uri.host, uri.port,: use_ssl => uri.scheme ==
  'https') do |http |
    req = Net::HTTP::Get.new uri
  req.add_field("X-API-Key", "API_KEY")
  

resp = http.request req
puts resp.body
end
URL Examples
Lat/Lon Raw https://api.checkwx.com/metar/lat/40.72/lon/-73.99
Lat/Lon Decoded https://api.checkwx.com/metar/lat/40.72/lon/-73.99/decoded
 Processing....
 Processing....
 

/metar/lat/:latitude/lon/:longitude/radius/:radius

Returns the latest METAR information for multiple stations within a specified radius of the parameters latitude and longitude.

Additional response fields are included in the response data to show the distance and direction from the requested latitude and longitude parameters.

Additional Response Fields
Field Type Description
radius array Array with the following properties
radius.from string Base location ICAO
radius.miles float Distance from base location in miles
radius.meters float Distance from base location in meters
radius.bearing integer Bearing from base location (0-360)
radius.direction string Compass text from base location (N/NE/E/SE/S/SW/W/NW)
Header Parameters
Parameter Description  
X-API-Key Your unique API key required
URL Parameters
Parameter Description  
latitude The decimal latitude required
longitude The decimal longitude required
radius The surrounding radius in miles from the ICAO code. 250 miles is the maximum radius. required
decoded The response data will include decoded METAR information optional
Source Code Examples
$ curl 'https://api.checkwx.com/metar/lat/:lat/lon/:longitude/radius/:radius' -H 'X-API-Key: API_KEY' 
$.ajax({
  type: 'GET',
  url: 'https://api.checkwx.com/metar/lat/:lat/lon/:longitude/radius/:radius',
  headers: { 'X-API-Key': 'API_KEY'  },
  dataType: 'json',
  success: function (result) {
    console.log(result)
  }
});
<?php
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, 'https://api.checkwx.com/metar/lat/:lat/lon/:longitude/radius/:radius');
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-API-Key: API_KEY']);

  $result = curl_exec ($ch);
  curl_close ($ch);
  print_r($result);
?>
import requests

hdr = { 'X-API-Key': 'API_KEY' }
req = requests.get('https://api.checkwx.com/metar/lat/:lat/lon/:longitude/radius/:radius', headers=hdr)
print(req.text)
require 'net/http'

uri = URI('https://api.checkwx.com/metar/lat/:lat/lon/:longitude/radius/:radius')

Net::HTTP.start(uri.host, uri.port,: use_ssl => uri.scheme ==
  'https') do |http |
    req = Net::HTTP::Get.new uri
  req.add_field("X-API-Key", "API_KEY")
  

resp = http.request req
puts resp.body
end
URL Examples
Lat/Lon Radius Raw https://api.checkwx.com/metar/lat/40.72/lon/-73.99/radius/100
Lat/Lon Radius Decoded https://api.checkwx.com/metar/lat/40.72/lon/-73.99/radius/100/decoded
 Processing....
 Processing....
 

TAF Overview

TAF is a format for reporting forecast weather information.

Terminal Aerodrome Forecast (TAF) is a format for reporting weather forecast information, particularly as it relates to aviation. TAFs are issued every six hours for major civil airfields: 0000, 0600, 1200 and 1800 UTC, and generally apply to a 24- or 30-hour period, and an area within approximately five statute miles (8.0 km) (or 5 nautical miles (9.3 km) in Canada) from the center of an airport runway complex. TAFS are issued every three hours for military airfields and some civil airfields and cover a period ranging from 3 hours to 30 hours.

TAFs complement and use similar encoding to METAR reports. They are produced by a human forecaster based on the ground. For this reason there are considerably fewer TAF locations than there are airports for which METARs are available. TAFs can be more accurate than Numerical Weather Forecasts, since they take into account local, small-scale, geographic effects.

In the United States the weather forecasters responsible for the TAFs in their respective areas are located within one of the 122 Weather Forecast Offices operated by the United States’ National Weather Service. In contrast, a trend type forecast (TTF), which is similar to a TAF, is always produced by a person on-site where the TTF applies. In the United Kingdom most TAFs at military airfields are produced locally, however TAFs for civil airfields are produced at the Met Office headquarters in Exeter.

TAF is the most common format in the world for the transmission of forecast weather data. It is highly standardized through the International Civil Aviation Organization, which allows it to be understood throughout most of the world.

CheckWX’s decoded TAF, decodes the raw TAF to creates keys and values for each part in a TAF. We also include additional weather information and conversions in the response data.

 

TAF Raw vs Decoded

By default all TAF endpoints return data in a raw format.

By adding the decoded URL Parameter to any TAF endpoint, both the raw and decoded TAF will be included in the response data.

View the example responses to see the difference between raw and decoded responses.

URL Examples
Raw https://api.checkwx.com/taf/kpie
Decoded https://api.checkwx.com/taf/kpie/decoded
 Processing....
 Processing....
 

TAF Fields

The following table lists the fields which are returned by all decoded TAF endpoints.

If a field is marked as Conditional, the field will not be included in the response JSON if data does not exist for that field. Therefore your code should check for the existence of these fields before attempting to access the data.

Field Type Description Conditional
icao string ICAO airport code or station indicator  
station.name string Station name  
timestamp array Array with the following properties  
timestamp.issued date TAF issued ISODate in UTC  
timestamp.from date Overall forecast from ISODate in UTC  
timestamp.to date Overall forecast to ISODate in UTC  
raw_text string Raw TAF text string  
forecast array Array with the following properties  
forecast.timestamp array Array with the following properties  
forecast.timestamp.from date Section forecast from ISODate in UTC  
forecast.timestamp.to date Section forecast to ISODate in UTC  
forecast.change array Array with the following properties  
forecast.change.probability number Change probability percentage Yes
forecast.change.indicator array Array with the following properties  
forecast.change.indicatorcode string Change abbreviation code Yes
forecast.change.indicator.text string Change English text Yes
forecast.change.indicator.desc string Change English description Yes
forecast.clouds array Array of cloud levels each with the following properties Yes
forecast.clouds.code string Cloud abbreviation code Yes
forecast.clouds.text string Cloud English text Yes
forecast.clouds.base_feet_agl decimal Ceiling feet above ground level Yes
forecast.clouds.base_meters_agl decimal Ceiling meters above ground level Yes
forecast.conditions array Array of conditions each with the following properties Yes
forecast.conditions.code string Condition abbreviation code Yes
forecast.conditions.text string Condition English text Yes
forecast.visibility array Array with the following properties Yes
forecast.visibility.miles string Visibility in miles (Expressed as a string to support values like ‘1/2 mile’) Yes
forecast.visibility.miles_float float Visibility in miles converted to float Yes
forecast.visibility.meters string Visibility in meters (Expressed as a string to support values like ‘> 9000’) Yes
forecast.visibility.meters_float float Visibility in meters converted to float Yes
forecast.wind array Array with the following properties Yes
forecast.wind.degrees integer Wind direction in degrees Yes
forecast.wind.speed_kts integer Wind speed in knots Yes
forecast.wind.speed_mph integer Wind speed in miles per hour Yes
forecast.wind.speed_mps integer Wind speed in meters per second Yes
forecast.wind.gust_kts integer Wind gust speed in knots Yes
forecast.wind.gust_mph integer Wind gust speed in miles per hour Yes
forecast.wind.gust_mps integer Wind gust speed in meters per second Yes
 

/taf/:icao

Returns the latest TAF information for a one or more ICAO codes.

Header Parameters
Parameter Description  
X-API-Key Your unique API key required
URL Parameters
Parameter Description  
icao A single ICAO code or multiple ICAO codes seperated by commas. Maximum of 20 ICAO codes per request. required
decoded The response data will include decoded TAF information optional
Source Code Examples
$ curl 'https://api.checkwx.com/taf/:icao' -H 'X-API-Key: API_KEY' 
$.ajax({
  type: 'GET',
  url: 'https://api.checkwx.com/taf/:icao',
  headers: { 'X-API-Key': 'API_KEY'  },
  dataType: 'json',
  success: function (result) {
    console.log(result)
  }
});
<?php
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, 'https://api.checkwx.com/taf/:icao');
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-API-Key: API_KEY']);

  $result = curl_exec ($ch);
  curl_close ($ch);
  print_r($result);
?>
import requests

hdr = { 'X-API-Key': 'API_KEY' }
req = requests.get('https://api.checkwx.com/taf/:icao', headers=hdr)
print(req.text)
require 'net/http'

uri = URI('https://api.checkwx.com/taf/:icao')

Net::HTTP.start(uri.host, uri.port,: use_ssl => uri.scheme ==
  'https') do |http |
    req = Net::HTTP::Get.new uri
  req.add_field("X-API-Key", "API_KEY")
  

resp = http.request req
puts resp.body
end
URL Examples
Raw Single https://api.checkwx.com/taf/kpie
Raw Multiple https://api.checkwx.com/taf/kpie,kspg
Decoded Single https://api.checkwx.com/taf/kpie/decoded
Decoded Multiple https://api.checkwx.com/taf/kpie,kspg/decoded
 Processing....
 Processing....
 

/taf/:icao/radius/:radius

Returns the latest TAF information for stations within a miles radius of a single ICAO code.

The results are sorted based on the distance from the requested ICAO code.

Additional response fields are included in the response data to show the distance and direction from the requested ICAO parameter.

Additional Response Fields
Field Type Description
radius array Array with the following properties
radius.from string Base location ICAO
radius.miles float Distance from base location in miles
radius.meters float Distance from base location in meters
radius.bearing integer Bearing from base location (0-360)
radius.direction string Compass text from base location (N/NE/E/SE/S/SW/W/NW)
Header Parameters
Parameter Description  
X-API-Key Your unique API key required
URL Parameters
Parameter Description  
icao A single ICAO code or multiple ICAO codes seperated by commas. Maximum of 20 ICAO codes per request. required
radius The surrounding radius in miles from the ICAO code. 100 miles is the maximum radius. required
decoded The response data will include decoded TAF information optional
Querystring Parameters
Parameter Description  
include=1 Includes the base ICAO in the results. optional
Source Code Examples
$ curl 'https://api.checkwx.com/taf/icao/:icao/radius/:radius' -H 'X-API-Key: API_KEY' 
$.ajax({
  type: 'GET',
  url: 'https://api.checkwx.com/taf/icao/:icao/radius/:radius',
  headers: { 'X-API-Key': 'API_KEY'  },
  dataType: 'json',
  success: function (result) {
    console.log(result)
  }
});
<?php
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, 'https://api.checkwx.com/taf/icao/:icao/radius/:radius');
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-API-Key: API_KEY']);

  $result = curl_exec ($ch);
  curl_close ($ch);
  print_r($result);
?>
import requests

hdr = { 'X-API-Key': 'API_KEY' }
req = requests.get('https://api.checkwx.com/taf/icao/:icao/radius/:radius', headers=hdr)
print(req.text)
require 'net/http'

uri = URI('https://api.checkwx.com/taf/icao/:icao/radius/:radius')

Net::HTTP.start(uri.host, uri.port,: use_ssl => uri.scheme ==
  'https') do |http |
    req = Net::HTTP::Get.new uri
  req.add_field("X-API-Key", "API_KEY")
  

resp = http.request req
puts resp.body
end
URL Examples
Radius Raw https://api.checkwx.com/taf/krdu/radius/60
Radius Decoded https://api.checkwx.com/taf/krdu/radius/60/decoded
Radius Include https://api.checkwx.com/taf/krdu/radius/60/decoded/?include=1
 Processing....
 Processing....
 

/taf/lat/:latitude/lon/:longitude

Returns the latest TAF information for a single station nearest to the parameters latitude and longitude.

Additional response fields are included in the response data to show the distance and direction from the requested latitude and longitude parameters.

Additional Response Fields
Field Type Description
radius array Array with the following properties
radius.from string Base location ICAO
radius.miles float Distance from base location in miles
radius.meters float Distance from base location in meters
radius.bearing integer Bearing from base location (0-360)
radius.direction string Compass text from base location (N/NE/E/SE/S/SW/W/NW)
Header Parameters
Parameter Description  
X-API-Key Your unique API key required
URL Parameters
Parameter Description  
latitude The decimal latitude required
longitude The decimal longitude required
decoded The response data will include decoded TAF information optional
Source Code Examples
$ curl 'https://api.checkwx.com/taf/lat/:latitude/lon/:longitude' -H 'X-API-Key: API_KEY' 
$.ajax({
  type: 'GET',
  url: 'https://api.checkwx.com/taf/lat/:latitude/lon/:longitude',
  headers: { 'X-API-Key': 'API_KEY'  },
  dataType: 'json',
  success: function (result) {
    console.log(result)
  }
});
<?php
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, 'https://api.checkwx.com/taf/lat/:latitude/lon/:longitude');
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-API-Key: API_KEY']);

  $result = curl_exec ($ch);
  curl_close ($ch);
  print_r($result);
?>
import requests

hdr = { 'X-API-Key': 'API_KEY' }
req = requests.get('https://api.checkwx.com/taf/lat/:latitude/lon/:longitude', headers=hdr)
print(req.text)
require 'net/http'

uri = URI('https://api.checkwx.com/taf/lat/:latitude/lon/:longitude')

Net::HTTP.start(uri.host, uri.port,: use_ssl => uri.scheme ==
  'https') do |http |
    req = Net::HTTP::Get.new uri
  req.add_field("X-API-Key", "API_KEY")
  

resp = http.request req
puts resp.body
end
URL Examples
Lat/Lon Raw https://api.checkwx.com/taf/lat/40.72/lon/-73.99
Lat/Lon Decoded https://api.checkwx.com/taf/lat/40.72/lon/-73.99/decoded
 Processing....
 Processing....
 

/taf/lat/:latitude/lon/:longitude/radius/:radius

Returns the latest TAF information for multiple stations within a specified radius of the parameters latitude and longitude.

Additional response fields are included in the response data to show the distance and direction from the requested latitude and longitude parameters.

Additional Response Fields
Field Type Description
radius array Array with the following properties
radius.from string Base location ICAO
radius.miles float Distance from base location in miles
radius.meters float Distance from base location in meters
radius.bearing integer Bearing from base location (0-360)
radius.direction string Compass text from base location (N/NE/E/SE/S/SW/W/NW)
Header Parameters
Parameter Description  
X-API-Key Your unique API key required
URL Parameters
Parameter Description  
latitude The decimal latitude required
longitude The decimal longitude required
radius The surrounding radius in miles from the ICAO code. 250 miles is the maximum radius. required
decoded The response data will include decoded TAF information optional
Source Code Examples
$ curl 'https://api.checkwx.com/taf/lat/:lat/lon/:longitude/radius/:radius' -H 'X-API-Key: API_KEY' 
$.ajax({
  type: 'GET',
  url: 'https://api.checkwx.com/taf/lat/:lat/lon/:longitude/radius/:radius',
  headers: { 'X-API-Key': 'API_KEY'  },
  dataType: 'json',
  success: function (result) {
    console.log(result)
  }
});
<?php
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, 'https://api.checkwx.com/taf/lat/:lat/lon/:longitude/radius/:radius');
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-API-Key: API_KEY']);

  $result = curl_exec ($ch);
  curl_close ($ch);
  print_r($result);
?>
import requests

hdr = { 'X-API-Key': 'API_KEY' }
req = requests.get('https://api.checkwx.com/taf/lat/:lat/lon/:longitude/radius/:radius', headers=hdr)
print(req.text)
require 'net/http'

uri = URI('https://api.checkwx.com/taf/lat/:lat/lon/:longitude/radius/:radius')

Net::HTTP.start(uri.host, uri.port,: use_ssl => uri.scheme ==
  'https') do |http |
    req = Net::HTTP::Get.new uri
  req.add_field("X-API-Key", "API_KEY")
  

resp = http.request req
puts resp.body
end
URL Examples
Lat/Lon Radius Raw https://api.checkwx.com/taf/lat/40.72/lon/-73.99/radius/100
Lat/Lon Radius Decoded https://api.checkwx.com/taf/lat/40.72/lon/-73.99/radius/100/decoded
 Processing....
 Processing....
 

Terms of Service

The API services provided hereunder are provided “AS IS” without warranty of any kind and are for your individual and/or commercial use. Notwithstanding anything contained herein to the contrary, CheckWX.com, BluePony Technologies Inc., its related and affiliated organizations cannot and do not warrant the services for accuracy, reliability, safety or fitness for end user’s particular purposes. Therefore, end user understands and agrees that the services provided hereunder are intended to be purely advisory in nature; that they incorporate information furnished by third parties over which CheckWX.com and/or BluePony Technologies Inc., has no control; and that in no case is it intended that any information supplied by CheckWX.com and/or BluePony Technologies Inc., whether or not of its own creation, be substituted for end user’s own best judgment in any given situation.

CHECKWX.COM AND/OR BLUEPONY TECHNOLOGIES INC, IS NOT LIABLE UNDER ANY EXPRESS WARRANTY SET FORTH HEREIN; END-USER RELEASES, CONVENANTS NOT TO SUE, AND WILL INDEMNIFY AND HOLD HARMLESS CHECKWX.COM AND/OR BLUEPONY TECHNOLOGIES INC, FROM AND AGAINST, ALL CLAIMS AND LIABILITIES (INCLUDING CLAIMS BY THIRD PARTIES), AND COSTS AND EXPENSES (INCLUDING ATTORNEYS’ FEES), INCIDENT THERETO OR INCIDENT TO SUCCESSFULLY ESTABLISHING THE RIGHT TO INDEMNIFICATION, FOR INJURY TO OR DEATH OF ANY PERSON OR PERSONS, INCLUDING EMPLOYEES OF END-USER BUT NOT EMPLOYEES OF CHECKWX.COM AND/OR BLUEPONY TECHNOLOGIES INC, FOR LOSS OF OR DAMAGE TO ANY PROPERTY, INCLUDING ANY AIRCRAFT, ARISING OUT OF OR IN ANY WAY RELATING TO END-USER’S UTILIZATION AND/OR PROCESSING OF THE SERVICES OR ANY OTHER THINGS PROVIDED HEREUNDER, WHETHER OR NOT ARISING IN TORT OR OCCASIONED BY THE NEGLIGENCE OF CHECKWX.COM AND/OR BLUEPONY TECHNOLOGIES INC, EXCEPT TO THE EXTENT OF ANY OBLIGATION, LIABILITY, CLAIM OR REMEDY IN TORT DUE TO THE RECKLESSNESS OR WILLFUL MISCONDUCT OF CHECKWX.COM AND/OR BLUEPONY TECHNOLOGIES INC. END-USER’S OBLIGATIONS UNDER THIS INDEMNITY WILL SURVIVE THE EXPIRATION, TERMINATION, COMPLETION OR CANCELLATION OF THE SERVICES.

We cannot guarantee API service uptime or data availability.

 

Help

We’ve tried to structure our API documentation to cover source code samples, example responses, and error conditions for each endpoint.

Most errors can be resolved by double-checking the endpoint syntax and parameter descriptions.

Although we cannot help you with specific code implementations, we do offer limited help via email if you encounter an unrecoverable error with our API endpoints.

apihelp@checkwx.com