VortexExps api
Developers Back to the site

Update your status automatically

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.

  1. ReportTell us which Vortex version your build works on.
  2. We compareIt is checked against the live Vortex client every 5 minutes.
  3. Up or DownSame version is Up. Anything else is Down until you report again.
Checking the live Vortex version…

Get your script

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.

Add your own check. As written, this reports every new Vortex version the moment it is out, working or not. Put a real test where the script says so, so you only report a version your build actually runs on. People use this status to decide what to download.

Reference

Base address https://vortexexps.win. Everything is JSON, and CORS is open for browser calls.

POST/api/updateneeds your key

Change 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.

FieldWhat it is
idrequiredYour entry's id, lowercase. Same as your page address.
versionThe Vortex version you support, like 0.9.6. Up when it equals the live version, Down otherwise. Up to 32 characters.
ownYour 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.
noteA short line shown with your entry. Up to 120 characters.
tagsAn array from: Internal External Paid Free In Testing Private Windows Linux MacOS. It replaces your current tags.
linksAn object with any of website, discord, showcase. Only http(s) links are kept, and "" clears one.

Answers

StatusMeaning
200Saved. The body is { "ok": true, "exploit": { ... } }: your entry as the site now shows it.
400The body was not JSON, id was missing, or state was not auto or dev.
401No key was sent.
403That key does not belong to this entry.
404No entry has that id.
429Too 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
  }
}
GET/api/executor/{id}public

One 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}'
GET/api/statuspublic

The 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

Good to know

A few things that save a support message.