Your entry shows Up while the Vortex version you report matches the live one. Send that version from your own build, server or CI and you never have to open the Developers page again.
Pick how you want it to run, fill in your id, and copy. Your key is never typed here: every script reads it from VORTEX_KEY.
The last part of your page address: vortexexps.win/windhover.
Keep the key secret. Store it as an environment variable or a CI secret. Never put it in your repo or inside the build you give to users: anyone could pull it out and edit your entry.
Base address https://vortexexps.win. Everything is JSON, and CORS is open for browser calls.
/api/updateneeds your keyChange your own entry. Send the key as Authorization: Bearer YOUR_KEY. Only the fields you send change, and a key only works on its own entry.
| Field | What it is |
|---|---|
idrequired | Your entry's id, lowercase. Same as your page address. |
version | The Vortex version you support, like 0.9.6. Up when it equals the live version, Down otherwise. Up to 32 characters. |
own | Your own release, like 1.0.4. Shown with your entry. Up to 32 characters. |
state | "auto" for released, or "dev" for not out yet, which keeps you off the list. |
note | A short line shown with your entry. Up to 120 characters. |
tags | An array from: Internal External Paid Free In Testing Private Windows Linux MacOS. It replaces your current tags. |
links | An object with any of website, discord, showcase. Only http(s) links are kept, and "" clears one. |
| Status | Meaning |
|---|---|
200 | Saved. The body is { "ok": true, "exploit": { ... } }: your entry as the site now shows it. |
400 | The body was not JSON, id was missing, or state was not auto or dev. |
401 | No key was sent. |
403 | That key does not belong to this entry. |
404 | No entry has that id. |
429 | Too many requests. The limit is 120 a minute per address. |
{
"ok": true,
"exploit": {
"id": "windhover",
"name": "WindHover",
"category": "executor",
"tags": ["Internal", "Free", "Windows"],
"own": "1.2",
"version": "0.9.6",
"note": "",
"links": { "website": "https://example.com/" },
"state": "up",
"updated": 1794018785034
}
}
/api/executor/{id}publicOne entry, with its uptime, recent updates and history. vortex is the live Vortex version, and executor.version is what is reported for you right now. Entries marked dev answer 404 here.
# the two fields an auto-updater needs
curl -s https://vortexexps.win/api/executor/windhover | jq '{live: .vortex, reported: .executor.version}'
/api/statuspublicThe whole list. vortex is the live Vortex client version, or null when it could not be read, and exploits holds every entry with its state: up, down, dev or unknown. Entries in dev are listed here but have no public page, so /api/executor/{id} answers 404 for them. Answers are cached for about a minute.
curl -s https://vortexexps.win/api/status | jq .vortex
A few things that save a support message.