Overview
The AIRAC API provides access to worldwide aviation navigation data including waypoints, navaids, airways, airports, and procedures. Data is updated every AIRAC cycle (28 days) to ensure accuracy and compliance with current aviation standards.
Note: This documentation focuses on the public API contract: parameters, validation rules, response shapes, and caching behavior. Query endpoints return live results for the current AIRAC cycle, while example payloads are representative rather than exhaustive.
Key Features
- RESTful JSON API
- No authentication required
- AIRAC cycle-aware caching for show endpoints
- Global aviation data coverage
Contract Highlights
-
Page-based pagination with real
totalandhas_morevalues - Spatial filters match exact geometry after spatial prefiltering
- Point and bounds validation errors are returned as structured JSON
- Global search groups results by entity type instead of returning one mixed ranked list
Base URL
https://airac.net/api/v1
All API endpoints are relative to this base URL.
AIRAC Cycle
All API responses include AIRAC cycle information in the headers:
- X-AIRAC-Cycle:
- Current AIRAC cycle (e.g., "2512")
- X-AIRAC-Effective-Date:
- Cycle effective date in ISO 8601 format
- X-AIRAC-Expiration-Date:
- Cycle expiration date in ISO 8601 format
Get Current AIRAC Cycle
GET/airac/current
Returns the current AIRAC cycle information including effective dates and days remaining.
Example Request
curl -H "Accept: application/json" \
https://airac.net/api/v1/airac/current
Example Response
{
"status": "success",
"data": {
"cycle": "2512",
"effective_date": "2025-11-27T00:00:00+00:00",
"expiration_date": "2025-12-25T00:00:00+00:00",
"is_current": true,
"days_remaining": 3
}
}
Caching
Show endpoints (specific resource lookups) include cache headers that expire at the end of the current AIRAC cycle:
- Cache-Control
- Public caching with max-age until cycle expiration
- ETag
- Entity tag for conditional requests
- Last-Modified
- AIRAC cycle effective date
- Expires
- AIRAC cycle expiration date
Note: Query endpoints (searches and listings) are not cached to ensure fresh results.
Waypoints
Search Waypoints
/waypoints
Parameters:
| Parameter | Type | Description |
|---|---|---|
identifier |
string | Waypoint identifier (e.g., "ROKME") |
region |
string | ICAO region code (e.g., "K2") |
type |
string | Waypoint type code (C, I, N, R, U, V, W) |
name |
string | Waypoint name (partial match) |
page |
integer | Page number (default: 1) |
per_page |
integer | Results per page (default: 50, max: 100) |
Example Request:
GET /api/v1/waypoints?identifier=ROKME®ion=K2
Example Response:
{
"status": "success",
"data": [
{
"identifier": "ROKME",
"latitude": 34.156667,
"longitude": -117.327222,
"name": "ROKME",
"type": {
"code": "C",
"description": "Combined named intersection and RNAV"
},
"coordinates": {
"lat": 34.156667,
"lon": -117.327222
},
"url": "https://airac.net/api/v1/waypoints/K2/ROKME",
"region": "K2"
}
],
"pagination": {
"page": 1,
"per_page": 50,
"total": 1,
"has_more": false
}
}
Find Nearby Waypoints
/waypoints/nearby
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
latitude |
float | ✓ | Center latitude |
longitude |
float | ✓ | Center longitude |
radius |
float | ✓ | Search radius in nautical miles |
Example Request:
GET /api/v1/waypoints/nearby?latitude=33.9425&longitude=-118.4081&radius=20
Get Specific Waypoint
/waypoints/{identifier}
Query Parameters:
region |
string | Optional region code for disambiguation |
Example Request:
GET /api/v1/waypoints/ROKME // Returns all waypoints named ROKME
GET /api/v1/waypoints/K2/ROKME // Returns specific waypoint in region K2
Example Response:
{
"status": "success",
"data": {
"identifier": "ROKME",
"latitude": 34.156667,
"longitude": -117.327222,
"name": "ROKME",
"type": {
"code": "C",
"description": "Combined named intersection and RNAV"
},
"coordinates": {
"lat": 34.156667,
"lon": -117.327222
},
"url": "https://airac.net/api/v1/waypoints/K2/ROKME",
"region": "K2"
}
}
Note: When multiple waypoints share the same identifier, the API returns an array. Use the region in the path to get a specific waypoint.
Airways
Search Airways
/airways
Returns one entry per airway designator. Each entry includes the unique starting ICAO regions available for region-scoped detail lookup.
Parameters:
| Parameter | Type | Description |
|---|---|---|
identifier |
string | Airway identifier (e.g., "J1") |
type |
string | Route designator prefix (for example V, J, Q, T, L, S, N, U, Y, Z) |
level |
string | Flight level (low, high) |
fix |
string | Find airways containing this fix |
Example Request:
GET /api/v1/airways?identifier=W56
Example Response:
{
"status": "success",
"data": [
{
"identifier": "W56",
"regions": [
"SA",
"UL",
"VA",
"ZG"
],
"type": "W",
"url": "https://airac.net/api/v1/airways/W56"
}
]
}
Get Specific Airway
/airways/{identifier}
Returns airway details including all segments. Use the optional starting ICAO region to separate unrelated airways that reuse the same designator.
Query Parameters:
region |
string | Optional one- or two-character alphanumeric starting ICAO region from the airway listing |
Example Request:
GET /api/v1/airways/W56?region=ZG
The region parameter identifies an airway by the ICAO region of its first ordered segment. The response includes the airway's complete segment sequence, including segments in other regions. Airways with the same designator and starting region are returned as a single merged airway.
Find Route Between Fixes
/airways/route
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
from |
string | ✓ | Starting fix identifier |
to |
string | ✓ | Ending fix identifier |
Example Request:
GET /api/v1/airways/route?from=LAX&to=SFO
Airports
Search Airports
/airports
Parameters (at least one required):
| Parameter | Type | Description |
|---|---|---|
identifier |
string | ICAO/IATA/LID code |
name |
string | Airport name (partial match) |
city |
string | City name (partial match) |
country |
string | Country code |
type |
string | Airport type |
min_runway_length |
integer | Minimum runway length in feet |
Example Request:
GET /api/v1/airports?city=Los%20Angeles
Example Response:
{
"status": "success",
"data": [
{
"icao": "KLAX",
"name": "Los Angeles International Airport",
"latitude": 33.9425,
"longitude": -118.4081,
"coordinates": {
"lat": 33.9425,
"lon": -118.4081
},
"url": "https://airac.net/api/v1/airports/KLAX",
"links": {
"procedures": "https://airac.net/api/v1/airports/KLAX/procedures"
},
"iata": "LAX",
"elevation_ft": 125,
"city": "Los Angeles",
"state": "CA",
"country": "US"
}
]
}
Find Nearby Airports
/airports/nearby
Same parameters as waypoints/nearby endpoint.
Example Request:
GET /api/v1/airports/nearby?latitude=33.9425&longitude=-118.4081&radius=30
Get Specific Airport
/airports/{icao}
Accepts ICAO, IATA, or LID airport codes.
Example Request:
GET /api/v1/airports/KLAX
Procedures
Search Procedures
/procedures
Parameters (airport or type required):
| Parameter | Type | Description |
|---|---|---|
airport |
string | Airport ICAO code |
identifier |
string | Procedure identifier |
type |
string | Procedure type (SID, STAR, APP) |
runway |
string | Runway identifier |
fix |
string | Find procedures containing this fix |
Example Request:
GET /api/v1/procedures?airport=KLAX&type=SID
Example Response:
{
"status": "success",
"data": [
{
"airport": "KLAX",
"airport_url": "https://airac.net/api/v1/airports/KLAX",
"identifier": "LOOP1",
"type": {
"code": "SID",
"description": "Standard Instrument Departure"
},
"name": "LOOP ONE",
"url": "https://airac.net/api/v1/procedures/KLAX/LOOP1",
"links": {
"transitions": "https://airac.net/api/v1/procedures/KLAX/LOOP1/transitions"
},
"runway": "25L"
}
]
}
Get Specific Procedure
/procedures/{airport}/{identifier}
Returns procedure details. Without a transition parameter, returns a structured format showing all transitions and the common route. With a transition parameter, returns only that specific transition's segments.
Altitude Restrictions:
Segments may include altitude_ft and altitude_restriction (at, at_or_above, at_or_below, or between). Altitudes are expressed in feet.
For between restrictions, minimum_altitude_ft and maximum_altitude_ft provide the inclusive lower and upper limits when both source altitudes are available. The existing altitude_ft field continues to contain the upper limit for compatibility. Both range fields are omitted if either source altitude is missing.
These fields apply to segments in common_route, transitions, runway_transitions, and the segments array returned for a specific transition. For example, an ANJLL segment on KLAX BIGBR3 includes:
{
"fix_identifier": "ANJLL",
"altitude_ft": 29000,
"altitude_restriction": "between",
"minimum_altitude_ft": 24000,
"maximum_altitude_ft": 29000,
"speed_kts": 280
}
Query Parameters:
transition |
string | Optional - specific transition (e.g., "SEA", "RW28L") |
Example Request (Structured):
GET /api/v1/procedures/KPDX/HELNS6
Example Response (Structured):
{
"status": "success",
"data": {
"airport": "KPDX",
"airport_url": "https://airac.net/api/v1/airports/KPDX",
"identifier": "HELNS6",
"type": {
"code": "STAR",
"description": "Standard Terminal Arrival Route"
},
"name": "HELNS SIX",
"url": "https://airac.net/api/v1/procedures/KPDX/HELNS6",
"common_route": [
{
"sequence": 10,
"fix_identifier": "HELNS",
"fix_url": "https://airac.net/api/v1/waypoints/HELNS",
"fix_coordinates": { "lat": 46.9523, "lon": -122.3096 }
},
{
"sequence": 20,
"fix_identifier": "KRATR",
"fix_url": "https://airac.net/api/v1/waypoints/KRATR",
"fix_coordinates": { "lat": 46.2761, "lon": -122.4939 }
}
],
"transitions": {
"SEA": [
{ "sequence": 10, "fix_identifier": "SEA" },
{ "sequence": 20, "fix_identifier": "BUWZO" },
{ "sequence": 30, "fix_identifier": "HELNS" }
],
"BUWZO": [
{ "sequence": 10, "fix_identifier": "BUWZO" },
{ "sequence": 20, "fix_identifier": "HELNS" }
]
},
"runway_transitions": {
"28L": [
{ "sequence": 10, "fix_identifier": "BTG" },
{ "sequence": 20, "fix_identifier": "KPDX" }
]
},
"available_transitions": ["SEA", "BUWZO"],
"available_runways": ["03", "10B", "21", "28L", "28R"]
}
}
Example Request (Specific Transition):
GET /api/v1/procedures/KPDX/HELNS6?transition=SEA
Example Response (Specific Transition):
{
"status": "success",
"data": {
"airport": "KPDX",
"identifier": "HELNS6",
"type": { "code": "STAR", "description": "Standard Terminal Arrival Route" },
"transition": "SEA",
"segments": [
{
"sequence": 10,
"path_terminator": "TF",
"fix_identifier": "SEA"
},
{
"sequence": 20,
"path_terminator": "TF",
"fix_identifier": "BUWZO",
"fix_coordinates": { "lat": 46.9523, "lon": -122.3096 }
}
]
}
}
Get Procedure Transitions
/procedures/{airport}/{identifier}/transitions
Example Request:
GET /api/v1/procedures/KLAX/LOOP1/transitions
Routes
Router Parser
/routes/parse
Parse a route string, calculating distances and bearings between waypoints.
Query Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
origin |
string | ✓ | Origin airport ICAO code (4 letters) |
destination |
string | ✓ | Destination airport ICAO code (4 letters) |
route |
string | ✓ | Route string (max 2000 characters) |
departure_runway |
string | Departure runway (e.g., 07R, 25L). Optional but recommended for proper SID selection | |
arrival_runway |
string | Arrival runway (e.g., 27L, 09R). Optional but recommended for proper STAR selection |
Supported Route Elements:
- Waypoints: 2-5 letter identifiers (e.g., DOTSS, CIVET)
- Airways: Letter followed by numbers (e.g., J5, V23, Q822) - automatically expanded to include all intermediate waypoints
- Coordinates: Lat/Lon in format DDNDDW (e.g., 51N020W) or DDMMN/DDDMMW
- SID/STAR procedures: Alphanumeric identifiers (e.g., OBOK3D, LOGA2H) - automatically expanded to include all procedure waypoints
- NAT Tracks: NAT followed by letter or number (e.g., NATA, NATB, NAT1)
Route Processing Features:
- Airway Expansion: Airways are automatically expanded to show all intermediate waypoints between entry and exit points
- SID/STAR Expansion: Procedures are expanded to show all waypoints in the departure/arrival routing
- Runway Transitions: When departure/arrival runways are provided, appropriate runway-specific transitions are selected for SIDs/STARs
- Duplicate Removal: Consecutive duplicate waypoints are automatically removed
- Distance & Bearing: Calculates great circle distance (nm) and true bearing between each waypoint pair
Example Request:
GET /api/v1/routes/parse?origin=EDDF&destination=EGLL&route=OBOK3D%20OBOKA%20Z29%20TORNU%20BREDA%20ABNED%20L980%20LOGAN%20LOGA2H&departure_runway=07C&arrival_runway=09L
Example Response:
{
"status": "success",
"data": {
"origin": "EDDF",
"destination": "EGLL",
"total_distance": 410.2,
"segments": [
{
"from": {
"identifier": "EDDF",
"name": "Frankfurt/Main",
"type": "airport",
"coordinates": {
"lat": 50.033333,
"lon": 8.570556
}
},
"to": {
"identifier": "DF08C",
"name": "DF08C",
"type": "waypoint",
"coordinates": {
"lat": 50.049167,
"lon": 8.628056
},
"via": "OBOK3D"
},
"distance": 3.2,
"bearing": 070,
"cumulative_distance": 3.2
},
{
"from": {
"identifier": "DF08C",
"name": "DF08C",
"type": "waypoint",
"coordinates": {
"lat": 50.049167,
"lon": 8.628056
}
},
"to": {
"identifier": "DF149",
"name": "DF149",
"type": "waypoint",
"coordinates": {
"lat": 50.142778,
"lon": 8.696111
},
"via": "OBOK3D"
},
"distance": 7.2,
"bearing": 035,
"cumulative_distance": 10.4
},
// ... additional segments showing expanded SID waypoints, airway waypoints, and STAR waypoints ...
],
"errors": []
}
}
Note: Errors are non-blocking. The navlog will still be generated for valid segments.
Error Types:
airport_not_found- Origin or destination airport not found (critical error)waypoint_not_found- Waypoint identifier not found in databaseairway_not_found- Airway identifier not foundairway_endpoints_not_found- Entry or exit waypoints for airway not specifiedwaypoints_not_on_airway- Entry/exit waypoints not found on specified airwayprocedure_not_found- SID/STAR procedure not found at airportprocedure_no_segments- Procedure found but has no route segmentsprocedure_waypoint_not_found- Waypoint in procedure could not be resolvednat_track_not_supported- NAT tracks are not currently supported
Airspace
Spatial filters accept either a point (lat and lon) or a bounding box (min_lat, max_lat, min_lon, max_lon). Point and bounds filters use exact geometry matches after a spatial prefilter. For bounds validation, min_lat must be less than or equal to max_lat. For longitude wrapping, antimeridian-wrapping bounds are supported when min_lon is greater than max_lon. Controlled and restricted airspace bounds may span at most 30 degrees of latitude, 60 degrees of longitude, and 900 square degrees; split larger regions into tiles.
Search Controlled Airspace
/airspace/controlled
Search for controlled airspace areas (Class A, B, C, D, E).
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
type |
string | Exact airspace type code | |
classification |
string | Airspace class (A, B, C, D, E) | |
name |
string | Airspace name (partial match) | |
icao |
string | ICAO region code | |
airport |
string | Airport ICAO code (e.g., "KLAX") | |
altitude_ft |
integer | Return airspace that contains this altitude in feet | |
min_lat |
float | Bounding box south latitude | |
max_lat |
float | Bounding box north latitude | |
min_lon |
float | Bounding box west longitude; may be greater than max_lon to wrap the antimeridian |
|
max_lon |
float | Bounding box east longitude | |
page |
integer | Page number | |
per_page |
integer | Results per page |
Example Request:
GET /api/v1/airspace/controlled?classification=B&airport=KLAX
Example Response:
{
"status": "success",
"data": [
{
"type": "D",
"name": "LOS ANGELES",
"classification": "B",
"center": "KLAX",
"lower_limit": {
"value": 0,
"unit": "ft",
"reference": "ground",
"text": "GND"
},
"upper_limit": {
"value": 10000,
"unit": "ft",
"reference": "msl",
"text": "10000 ft MSL"
}
}
]
}
Search Restricted Airspace
/airspace/restricted
Search for restricted, prohibited, warning, and alert areas.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
type |
string | Type (A, C, D, M, P, R, T, W) | |
designation |
string | Area designation (e.g., "R-2501") | |
name |
string | Airspace name (partial match) | |
icao |
string | ICAO region code | |
altitude_ft |
integer | Return airspace that contains this altitude in feet | |
min_lat |
float | Bounding box south latitude | |
max_lat |
float | Bounding box north latitude | |
min_lon |
float | Bounding box west longitude; may be greater than max_lon to wrap the antimeridian |
|
max_lon |
float | Bounding box east longitude | |
page |
integer | Page number | |
per_page |
integer | Results per page |
Example Request:
GET /api/v1/airspace/restricted?type=R
Example Response:
{
"status": "success",
"data": [
{
"type": { "code": "R", "description": "Restricted Area" },
"designation": "2501",
"name": "Fort Irwin",
"url": "https://airac.net/api/v1/airspace/restricted/2501",
"lower_limit": {
"value": 0,
"unit": "ft",
"reference": "ground",
"text": "SFC"
},
"upper_limit": {
"value": null,
"unit": null,
"reference": "unlimited",
"text": "Unlimited"
},
"controlling_agency": "ZLA ARTCC",
"active_by_notam": true
}
]
}
Get Restricted Airspace by Designation
/airspace/restricted/{designation}
Retrieve restricted airspace information by its designation identifier.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
designation |
string | ✓ | Airspace designation (e.g., "500", "2501") |
Example Request:
GET /api/v1/airspace/restricted/500
Example Response:
{
"status": "success",
"data": {
"type": { "code": "R", "description": "Restricted Area" },
"designation": "500",
"name": "NOTO",
"url": "https://airac.net/api/v1/airspace/restricted/500",
"lower_limit": {
"value": 4000,
"unit": "ft",
"reference": "agl",
"text": "04000 ft AGL"
},
"upper_limit": {
"value": 19000,
"unit": "ft",
"reference": "standard",
"text": "FL190"
}
}
}
Search FIR/UIR Regions
/airspace/fir
Search for Flight Information Regions (FIR) and Upper Information Regions (UIR).
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
identifier |
string | FIR identifier (e.g., "KZLA") | |
name |
string | FIR name (partial match) | |
country |
string | Country code | |
type |
string | Region type: F (FIR), U (UIR), or B (combined FIR/UIR) | |
lat |
float | Latitude for point containment lookup; use with lon |
|
lon |
float | Longitude for point containment lookup; use with lat |
|
min_lat |
float | Bounding box south latitude | |
max_lat |
float | Bounding box north latitude | |
min_lon |
float | Bounding box west longitude; may be greater than max_lon to wrap the antimeridian |
|
max_lon |
float | Bounding box east longitude | |
page |
integer | Page number | |
per_page |
integer | Results per page |
Example Request:
GET /api/v1/airspace/fir?identifier=KZLA
Example Response:
{
"status": "success",
"data": [
{
"identifier": "KZLA",
"name": "Los Angeles Center",
"type": {
"code": "FIR",
"description": "Flight Information Region"
},
"url": "https://airac.net/api/v1/airspace/fir/KZLA",
"country_code": "US",
"is_subregion": false
}
]
}
Get Specific FIR/UIR
/airspace/fir/{identifier}
Retrieve detailed information about a specific FIR/UIR region.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
identifier |
string | ✓ | FIR identifier |
Example Request:
GET /api/v1/airspace/fir/KZLA
Reference Data
List All Countries
/countries
Retrieve a paginated list of all countries.
Example Request:
GET /api/v1/countries?page=1
Example Response:
{
"status": "success",
"data": [
{
"code": "US",
"name": "United States",
"url": "https://airac.net/api/v1/countries/US"
}
]
}
Get Country
/countries/{code}
Retrieve a specific country by ISO 2-letter code.
Example Request:
GET /api/v1/countries/US
List States for Country
/countries/{country}/states
Retrieve all states/provinces for a specific country.
Example Request:
GET /api/v1/countries/US/states
Example Response:
{
"status": "success",
"data": [
{
"state_code": "CA",
"name": "California",
"country_code": "US",
"country": {
"code": "US",
"name": "United States"
}
}
]
}
List All States/Provinces
/states
Retrieve a paginated list of all states/provinces.
Example Request:
GET /api/v1/states?page=1
Get State
/states/{country}/{state}
Retrieve a specific state by country and state codes.
Example Request:
GET /api/v1/states/US/CA
Global Search
Search Across All Data Types
/search
Search across all data types (waypoints, navaids, airways, airports, procedures) with a single query.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
q |
string | ✓ | Search query (minimum 2, maximum 50 characters) |
types |
array | Repeat the parameter to search specific entity groups (waypoint, navaid, airway, airport, procedure) | |
limit |
integer | Maximum results per entity type (default: 10, max: 50) |
Search results are grouped by entity type. Within each group, exact identifier/code matches first, then prefix identifier/code matches, then name substring matches where supported.
Example Request:
GET /api/v1/search?q=LAX&types=navaid&types=airport&limit=5
Example Response:
{
"status": "success",
"data": {
"waypoints": [],
"navaids": [
{
"identifier": "LAX",
"name": "LOS ANGELES",
"type": { "code": "VORTAC" },
"coordinates": { "lat": 33.935556, "lon": -118.431944 }
}
],
"airways": [],
"airports": [
{
"icao": "KLAX",
"iata": "LAX",
"name": "Los Angeles International Airport"
}
],
"procedures": []
}
}
Response Format
Success Response
{
"status": "success",
"data": {
// Response data
}
}
Paginated Response
{
"status": "success",
"data": [...],
"pagination": {
"page": 1,
"per_page": 50,
"total": 125,
"has_more": true
}
}
Error Response
{
"status": "error",
"message": "Error description"
}
Data Types
Waypoint Types
| Code | Description |
|---|---|
C |
Combined named intersection and RNAV |
I |
Unnamed, charted intersection |
N |
NDB navaid as waypoint |
R |
Named intersection |
U |
Uncharted airway intersection |
V |
VFR waypoint |
W |
RNAV waypoint |
Navaid Types
| Type | Description |
|---|---|
VOR |
VHF Omnidirectional Range |
VOR/DME |
VOR with Distance Measuring Equipment |
DME |
Distance Measuring Equipment |
TACAN |
Tactical Air Navigation |
VORTAC |
VOR with Tactical Air Navigation |
NDB |
Non-Directional Beacon |
NDB/DME |
Non-Directional Beacon with Distance Measuring Equipment |
Procedure Types
| Type | Description |
|---|---|
SID |
Standard Instrument Departure |
STAR |
Standard Terminal Arrival Route |
APP |
Instrument Approach Procedure |
Usage Guidelines
To ensure a great experience for all users, please follow these guidelines:
Best Practices
Technical Guidelines
User-Agent Requirements
Please use a descriptive User-Agent header that identifies your application:
Good Examples
MyFlightTracker/1.0 (https://myapp.com; [email protected])
AviationStats/2.1 (+https://github.com/username/repo)
RouteAnalyzer/1.0 (Discord: username#1234)
FlightPlannerPro/3.0 (https://flightplanner.pro)
AeroDataBot/1.5 (Twitter: @aerodatabot)
Bad Examples
curl/7.64.1
python-requests/2.28.0
Mozilla/5.0 (compatible)
Java/1.8.0
axios/0.27.2
Accessing JSON Data
All API endpoints return JSON data. Always include the Accept header:
curl -H "Accept: application/json" \
-H "User-Agent: MyApp/1.0 ([email protected])" \
https://airac.net/api/v1/waypoints
Pagination
The API uses page-based pagination for list endpoints:
GET /api/v1/waypoints?page=2&per_page=100
Important Notes
- • Default page size is 50 items
- • Maximum page size is 100 items
-
•
Check
has_moreto determine if additional pages exist - • Page numbering starts at 1
Rate Limits
Currently, there are no enforced rate limits. No rate limit headers are emitted today, but we still ask that you be respectful of server resources.
Best Practice: Cache successful responses when appropriate and retry transient network or 5xx failures conservatively.
Questions & Support
If you have questions about the API or need assistance:
Please include your User-Agent string when reporting issues