Ask which of the creator projects a player has installed have a newer release, whether it fits their simulator build, what changed and where to get it. The Hangar Addons Manager is the first client in mind, and your own tool can use it too. It answers for one signed in member at a time.
The request
POST https://hangaraddons.com/api/creator-updater/check with a JSON body and the member's access token: Authorization: Bearer <token>.
| Field | Type | What it is |
|---|---|---|
installed | list | What is installed. Required, up to 200 items. |
installed[].projectId | id | The creator project. Use this or addonId. |
installed[].addonId | id | The Hangar Addons id of the installed addon. The Manager knows this one, and the check finds the project from it. |
installed[].version | text | The installed version, like 1.1.0 or 1.2.0-beta.1. |
simulator | text | MSFS2020, MSFS2024 or XPlane. Leave it out when unknown. |
build | text | The simulator build, like 1.38.2. Leave it out when unknown. |
includePrereleases | true or false | Offer a beta when it is the newest. Someone who already runs a beta is offered newer betas without asking. |
curl -X POST "https://hangaraddons.com/api/creator-updater/check" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"installed": [
{ "addonId": "0b6f2f5e-2b50-4c5d-a3a7-0d1d1c8d7a11", "version": "1.1.0" },
{ "projectId": "5d0a7b3c-1c5e-4a2a-8c1f-3a9b0c2d4e55", "version": "2.0.0" }
],
"simulator": "MSFS2024",
"build": "1.38.2"
}'
The answer
{
"items": [
{
"projectId": "5d0a7b3c-1c5e-4a2a-8c1f-3a9b0c2d4e55",
"addonId": "0b6f2f5e-2b50-4c5d-a3a7-0d1d1c8d7a11",
"installedVersion": "1.1.0",
"status": "UpdateAvailable",
"isNewer": true,
"project": { "id": "5d0a...", "name": "Fokker F27", "slug": "fokker-f27", "creatorName": "Awesome Aircraft Development", "creatorSlug": "awesomeaircraft" },
"latest": {
"releaseId": "9c1e...",
"version": "1.2.0",
"releaseName": "Winter update",
"isPrerelease": false,
"releasedAtUtc": "2026-11-01T12:00:00Z",
"changelogMarkdown": "- Fixed the autopilot",
"compatibility": { "fits": true, "warnings": [] },
"download": {
"addonId": "7a42...",
"pageUrl": "/addons/fokker-f27-7a42c1d0",
"files": [
{
"fileId": "e1f0...",
"fileName": "fokker-f27-1.2.0.zip",
"sizeBytes": 183500800,
"simulatorId": null,
"linkUrl": "/api/addons/7a42.../files/e1f0.../link",
"recordUrl": "/api/addons/7a42.../files/e1f0.../download"
}
]
}
},
"accessReason": null
}
],
"buildRecognized": true
}
Items come back in the order you sent them.
Status
| Status | Meaning |
|---|---|
UpToDate | The installed version is the newest one offered. |
UpdateAvailable | A newer release exists and the member may have it. isNewer is true. |
NoAccess | A newer release exists but the member may not have it. accessReason says why: PURCHASE_REQUIRED or NOT_PUBLISHED. Its notes and files are left out. |
NoRelease | The project has no published release yet. |
NotFound | No creator project matches the id. It may be private or removed. |
UnknownVersion | The installed version could not be read as a version, so it cannot be compared. |
Versions are compared the way semantic versioning says: numbers one by one (1.10 is above 1.9), and a prerelease comes before the release it leads up to (1.0.0-beta.1 is below 1.0.0). Deprecated releases are never offered.
Compatibility
compatibility.warnings uses the same codes as the compatibility check: BUILD_TOO_OLD, BUILD_TOO_NEW, SIMULATOR_NOT_LISTED, MISSING_REQUIRED_ADDON and the rest. fits is false when any warning has the severity warning. It is advice, so show it and let the member decide. The check also looks at the other addons you list in installed.
Getting the files
The files are the current main files of the release, one for each simulator. To download one, call linkUrl with the member's token to get a short lived address, fetch it, and call recordUrl so the download is counted. These are the same calls the website makes.
Limits
- 200 installed items in one request.
- 600 requests an hour per address. A
429comes with aRetry-Afterheader. - Nothing is stored about the request.