- API is only available over HTTPS at
https://api.skylines.aero/
- HTTP will show
404 Not Found
- All data is sent and received as JSON
- Blank fields are included as
null
- All timestamps are returned in ISO 8601 format:
YYYY-MM-DDTHH:MM:SSZ
-
Authentication failure results in
401 Unauthorized
-
Several failed authentication attemps result in temporary block for the user and
403 Forbidden
-
Missing resource access results in
404 Not Found
or403 Forbidden
, depending on the resource -
Three ways to authenticate:
- Basic Authentication
Authorization: bearer TOKEN
headeraccess_token
query parameter
- 30 items by default
?page
parameter to select page?page=1
is the first page- no
?page
parameter means first page ?per_page
parameter to increase items per page limit (up to 100)
- Pagination info is included in the
Link
header next
,last
,first
,prev
are supportedrel
values
Link: <https://api.skylines.aero/v1/flights?page=3&per_page=100>; rel="next",
<https://api.skylines.aero/v1/flights?page=50&per_page=100>; rel="last"
Linebreak is included for readability.
- Authenticated requests: 5.000 requests per hour and user
- Unauthenticated requests: 60 requests per hour and IP
X-Rate-Limit-Limit
header shows maximum number of requests that the consumer is permitted to make per hour -X-Rate-Limit-Remaining
header shows number of requests remaining in the current rate limit windowX-Rate-Limit-Reset
header shows remaining time in seconds until the current rate limit window resets- Reached limit will result in
403 Forbidden
User-Agent
header is required and must not be empty- Request without
User-Agent
header is rejected with403 Forbidden
- Resources return
ETag
andLast-Modified
headers - Resource requests return
304 Not Modified
if requested with matchingIf-None-Match
orIf-Modified-Since
headers 304 Not Modified
responses do not count against the Rate Limit
- Supported from any
Origin
- Requests with token may be limited to the
Origin
that created the token
- Supported through
callback
parameter - Data is enveloped in
data
property, headers and HTTP status code inmeta
- JSONP envelope sent as JSON with
?envelope=true
- Always returns
200 Ok
GET /airfields
GET /airfields/:airfield_id
GET /airspaces
GET /airspaces/:airspace_id
(Experimental)
GET /events
GET /users/:user_id/events
GET /user/events
GET /flights
GET /flights/:flight_id
PATCH /flights/:flight_id
DELETE /flights/:flight_id
GET /flights/:flight_id/comments
POST /flights/:flight_id/comments
GET /flights/:flight_id/phases
GET /flights/:flight_id/encounters
GET /groups
GET /users/:user_id/groups
GET /user/groups
GET /groups/:group_id
POST /groups
PATCH /groups/:group_id
DELETE /groups/:group_id
GET /groups/:group_id/members
PUT /groups/:group_id/members/:user_id
DELETE /groups/:group_id/members/:user_id
GET /igcs
GET /igcs/:igc_id
PATCH /igcs/:igc_id
GET /igcs/:igc_id/content{?access_token=DOWNLOAD-TOKEN}
POST /igcs
Also accepts archives with 1..n IGC files inside.
(Experimental)
GET /live
GET /live/:live_id
(Experimental)
GET /track.php
GET /client.php
(Experimental)
GET /notifications
PUT /notifications
PATCH /notifications/:notification_id
(Experimental)
GET /ranking/users
GET /ranking/clubs
GET /ranking/airfields
GET /search?q=abc123
GET /sessions
POST /sessions
GET /session
DELETE /session
DELETE /sessions/:session_id
(Experimental)
GET /statistics
GET /users/:user_id/statistics
GET /groups/:group_id/statistics
GET /users
POST /users
GET /users/:user_id
GET /users/:user_id/followers
GET /users/:user_id/following
GET /user
PATCH /user
GET /user/followers
GET /user/following
PUT /user/following/:user_id
DELETE /user/following/:user_id