Ask whether a set of addons is likely to work together on a player's simulator, before anything is installed. The Hangar Addons Manager uses it, and your own installer or tool can too. It reads what creators list on each addon page (simulator builds, required aircraft, required libraries and known conflicts) and answers with advice. It never refuses anything: every answer is a list of warnings your tool can show or ignore.
The request
POST https://hangaraddons.com/api/addon-compatibility/check with a JSON body. No key is needed.
| Field | Type | What it is |
|---|---|---|
addonIds | list of ids | The addons about to be installed. Required, up to 30. |
installedAddonIds | list of ids | The addons already installed. Up to 500. Needed to find conflicts and met requirements. |
simulator | text | MSFS2020, MSFS2024 or XPlane. Leave it out when unknown, and the build and simulator checks are skipped. |
build | text | The simulator build, like 1.38.2 or 12.1.4. Leave it out when unknown. |
Ids are the addon ids from the public API. A request with too many ids is refused with a 400.
curl -X POST "https://hangaraddons.com/api/addon-compatibility/check" \
-H "Content-Type: application/json" \
-d '{
"addonIds": ["0b6f2f5e-2b50-4c5d-a3a7-0d1d1c8d7a11"],
"installedAddonIds": ["7c1f0e0a-6a37-45a0-9e0c-9d9a0b9b3f22"],
"simulator": "MSFS2024",
"build": "1.38.2"
}'
The answer
{
"warnings": [
{
"code": "MISSING_REQUIRED_ADDON",
"severity": "warning",
"message": "Winter Livery Pack needs Livery Core Library, which is not installed.",
"addonIds": ["0b6f2f5e-2b50-4c5d-a3a7-0d1d1c8d7a11", "5d0a7b3c-1c5e-4a2a-8c1f-3a9b0c2d4e55"]
}
],
"addons": [
{ "id": "0b6f2f5e-2b50-4c5d-a3a7-0d1d1c8d7a11", "title": "Winter Livery Pack", "slug": "winter-livery-pack-0b6f2f5e" },
{ "id": "5d0a7b3c-1c5e-4a2a-8c1f-3a9b0c2d4e55", "title": "Livery Core Library", "slug": "livery-core-library-5d0a7b3c" }
],
"unknownAddonIds": [],
"buildRecognized": true
}
messageis a plain sentence you can show as it is.addonIdslists the addons involved. The first is the addon the warning is about, the second (when there is one) is the other addon. Look titles up inaddons, and open an addon athttps://hangaraddons.com/addons/{slug}.severityiswarningfor something that is likely to cause trouble andnoticefor something worth knowing.unknownAddonIdsholds ids fromaddonIdsthat are not on the site. An addon that is not public is listed here too, so nothing unpublished is ever revealed.buildRecognizedisfalsewhenbuildcould not be read as a build number. The build checks are skipped then.- An empty
warningslist means nothing was found. It does not promise that everything works.
Warning codes
The codes do not change meaning, so switch on them. New ones may be added, so treat an unknown code as a plain warning and show its message.
| Code | Severity | Meaning |
|---|---|---|
BUILD_TOO_OLD | warning | The simulator build is older than the lowest build the creator lists. |
BUILD_TOO_NEW | warning | The simulator build is newer than the highest build the creator confirmed. It may still work. |
SIMULATOR_NOT_LISTED | notice | The addon does not list this simulator as supported. |
MISSING_REQUIRED_ADDON | warning | A required library is not installed and not part of the request. Followed down a chain of libraries, a few levels deep. |
MISSING_REQUIRED_AIRCRAFT | warning | The aircraft addon this one is made for is not installed. |
MISSING_REQUIRED_AIRCRAFT_TYPE | notice | The addon is made for an aircraft type and no aircraft addon for it was found. The simulator's own aircraft are not addons, so this may be fine. |
REQUIRED_ADDON_UNAVAILABLE | notice | A requirement points at an addon that is not public right now. |
CONFLICTS_WITH_ADDON | warning | The creator of one of the two addons lists them as a conflict. It counts whichever addon the creator wrote it on. |
Limits
- 30 addons to install and 500 installed ids in one request. The server answers with a fixed number of database queries however many ids you send.
- Up to 100 warnings come back, most important first.
- 600 requests an hour per address. A
429comes with aRetry-Afterheader. - Nothing is stored. The request is not tied to an account.