API Usage

Required roles: AIS Charts API, AIS Charts Data via Cloud — Roles
Base endpoint: https://ais-charts-api.ibosoft.net.tr:2087
Reference documents: none
Attribution: show ibonav.aero wherever this data is displayed
Data sources: see the ibonav.aero User Guide; the source of each coverage is given in Coverage Match List
Last updated: 18 OCT 2026

Depending on your use, the original data sources may also need to be credited.

The AIS Charts API serves the ibonav.aero chart library as a file tree: AIP documents and charts, other chart sources (FAA, military FLIP, VFR manuals …) and the files used for chart geolocation. You browse the tree folder by folder, list the files of a folder and download a file.

  • Raw data: to download the files directly, without the API, or to download many files or whole folders at once more easily, see AIP Files and Other Charts Files in Files / Raw Data via Cloud.

Root directories

The tree has six root directories. The first path segment of every request is one of them.

Chart files

Root directory Content
aip-charts AIP documents and charts
other-charts Charts and documents of other sources

Chart geolocation

These root directories serve the geolocation of the charts on a map; how they are used is described in Geo Server › Chart Geolocation. This section covers the chart files.

Root directory Content
aip-geolocated-charts-project-files Project files of the AIP charts
aip-obstacle-data-sets-project-files Project files of the AIP obstacle data sets
other-geolocated-charts-project-files Project files of the other charts
other-view-only-geolocated-charts-project-files Charts available only as geolocated map layers, without a source file in other-charts

Below a root directory come the coverage folders (e.g. IBOSOFT-LT, PAMS-LT, US-TPP-…), then the folders described in Directory Hierarchy. Which coverage folder is which coverage: Coverage Match List.


Endpoints

Endpoint Returns
GET /get-directory-index/{root}/{path} Subfolders one level below path
GET /get-file-index/{root}/{path} All files below path, at any depth
GET /get-file/{root}/{file path} The file itself
GET /get-shared-config Coverage names, groups and chart type labels
GET /get-all-directory-index/{root} Every file of a root directory (large, see below)

path is relative to the root directory, /-separated. Folder and file names contain spaces, brackets and non-ASCII letters: URL-encode each segment (encodeURIComponent), keep the / between them.

/get-directory-index/{root}/{path}

Lists the subfolders directly below path (one level, sorted by name). Files are not listed. For the top level of a root directory, end the address with / and leave path empty.

GET https://ais-charts-api.ibosoft.net.tr:2087/get-directory-index/aip-charts/
GET https://ais-charts-api.ibosoft.net.tr:2087/get-directory-index/aip-charts/IBOSOFT-LT/airac
{
  "directory": "aip-charts",
  "path": "IBOSOFT-LT/airac",
  "subdirectories": [
    "0000 - Older Archives",
    "1703 - Eff 30-MAR-17",
    "…",
    "2610 - Eff 01-OCT-2026"
  ]
}

A path that does not exist returns an empty subdirectories list (not 404).

/get-file-index/{root}/{path}

Returns every file below path, including those in deeper subfolders. Folders are not listed separately; each file carries its full path.

GET https://ais-charts-api.ibosoft.net.tr:2087/get-file-index/aip-charts/IBOSOFT-LT/airac/2610%20-%20Eff%2001-OCT-2026/Charts%20-%20AD2%20Aerodromes/LTAC%20-%20ESB%20-%20ANKARA%20-%20Esenbo%C4%9Fa
{
  "directory": "aip-charts",
  "subdir": "IBOSOFT-LT/airac/2610 - Eff 01-OCT-2026/Charts - AD2 Aerodromes/LTAC - ESB - ANKARA - Esenboğa",
  "file_count": 80,
  "last_indexed": "2026-10-17T22:15:12.817396+00:00",
  "files": [
    {
      "path": "IBOSOFT-LT/airac/2610 - Eff 01-OCT-2026/Charts - AD2 Aerodromes/LTAC - ESB - ANKARA - Esenboğa/LTAC - ADC - Aerodrome Chart.pdf",
      "name": "LTAC - ADC - Aerodrome Chart.pdf",
      "size": 512205
    }
  ]
}
Field Description
files[].path Path from the root directory; use it as is with /get-file
files[].name File name
files[].size Size in bytes
last_indexed Time of the index the answer is built from (UTC)

Ask for a folder at the level you need: a request at coverage level returns every file of every AIRAC cycle of that coverage.

/get-file/{root}/{file path}

Returns the file. PDF and images (.pdf, .png, .jpg, .jpeg, .gif, .svg, .webp) are sent for display in the browser (Content-Disposition: inline), other files as a download (attachment).

GET https://ais-charts-api.ibosoft.net.tr:2087/get-file/aip-charts/IBOSOFT-LT/airac/2610%20-%20Eff%2001-OCT-2026/Charts%20-%20AD2%20Aerodromes/LTAC%20-%20ESB%20-%20ANKARA%20-%20Esenbo%C4%9Fa/LTAC%20-%20ADC%20-%20Aerodrome%20Chart.pdf

/get-shared-config

The configuration shared by the ibonav.aero chart viewers and map:

Field Content
chartLabels Chart types (ADC, SID, STAR, IAC …): label, title, the name parts that identify them in file names, colour
aip.coverages AIP coverage names by coverage key (see Coverage Match List)
aip.coverageGroups AIP coverage groups (Ibosoft, PAMS, ICAO)
aip.sectionPatterns, aip.nonAiracPatterns Patterns that recognise the section folders (Part 1–3, AD 2/AD 3 charts, ENR 6, obstacles, AIC, AMDT, SUP)
aip.defaultCoverage Coverage opened by default
otherCharts.coverageLabels Other Charts coverage names by coverage key; enr: true = en-route/area charts
otherCharts.coverageGroups Other Charts coverage groups

Fetch it once and cache it; it changes rarely.

/get-all-directory-index/{root}

Returns every file of a root directory in one answer (name, file_count, last_indexed, files[] as above). For aip-charts this is more than 100 000 files and about 25 MB. Use it only for a full synchronisation, not for browsing; prefer get-directory-index and get-file-index.


Browsing the tree

The folder and file lists come from an index that is rebuilt every 3 minutes, so a file added on the server appears within a few minutes. Browse top-down:

  1. Coverage: get-directory-index/aip-charts/ → coverage folders. Show their names with get-shared-config (how a folder name is read).
  2. AIRAC / non-AIRAC: get-directory-index/aip-charts/{coverage} → airac, non-airac.
  3. AIRAC cycle: get-directory-index/aip-charts/{coverage}/airac → effective date folders. The folder names differ per source (2610 - Eff 01-OCT-2026, WEF 01-OCT-26); 0000 - Older Archives holds older material.
  4. Section: get-directory-index/…/airac/{cycle} → Part 1 - General (GEN), Part 2 - En-route (ENR), Part 3 - Aerodromes (AD0-AD1), Charts - AD2 Aerodromes, Charts - AD3 Heliports, Obstacle Data Sets.
  5. Aerodrome: get-directory-index/…/Charts - AD2 Aerodromes → one folder per aerodrome, named after its ICAO location indicator (LTAC - ESB - ANKARA - Esenboğa, LTAC).
  6. Files: get-file-index/…/{aerodrome} → the AD 2 text and the charts of the aerodrome.
  7. Download: get-file/aip-charts/{files[].path}.

Sections that hold files directly (Part 1–3, non-AIRAC folders) are read with get-file-index at step 4. The full layout, including Other Charts: Directory Hierarchy.

Finding a chart for an aerodrome: take the coverages whose identifier values match the start of the aerodrome's identifier (its ICAO location indicator, or an AIXM identifier of up to 6 characters when it has none; see Coverage Match List), take the latest AIRAC folder, and look for the aerodrome folder whose name starts with that identifier in Charts - AD2 Aerodromes / Charts - AD3 Heliports.

Geolocation files

The geolocation root directories mirror the chart folders. How to find the geolocation file of a chart and display it: Geo Server › Chart Geolocation.


Errors

Code Meaning
400 Invalid path (path leaving the root directory), or the path is a folder (/get-file)
403 File type not served (/get-file)
404 Unknown root directory, or file not found (/get-file)
503 Index not ready yet (shortly after a server restart): retry after a few seconds