Developer

Integration API

Build your own in-app unlock UI. Your script asks for the key, AegisLoader checks it and binds it to the device.

Full reference (opens in a new tab)

How Custom mode works

In Custom mode the loader is bare: it never draws a key prompt. Your script owns the unlock — your ScreenGui, your branding, your copy — and hands the key to the loader before running it. A TextBox, a key saved from last session, or an ad unlock you trigger yourself all work.

The loader still does the real check. It computes the device’s HWID, verifies the key with AegisLoader and binds it to that device on first use. Validating from your UI is for a friendly error message, not for security.

  1. Your UI gets a keyFrom a TextBox, a saved file, or the ad unlock.
  2. Optional: validate itCall validate so you can say “expired” or “locked to another device” in your own words.
  3. Set getgenv().KeyThe loader reads it once when it starts.
  4. Run the loader lineIt checks the key, binds the HWID and runs your protected build. A bad key stops it before any of your code executes.

Endpoints

Base URL https://api.aegisloader.com. Every endpoint here is public and called from the client — no API key. Never put your account key in a script you ship. Responses are JSON.

{id} is a key system ID or a Custom script ID — a short code like gu93Zx0LH3 (it’s in your script’s loader line). The samples on this page use .

Rate limits

Limits are per device or per session, so one user hammering a button can’t lock out everyone else. Over the limit you get 429 with a Retry-After header and retryAfter (seconds) in the body.

Rate limits per endpoint
EndpointLimitPerNotes
/api/validate~30 / minIPValidate once when the user submits a key, not on a loop.
/gate/…/wait~60 / minIPEach call long-polls ~25s, so one covers a long wait — reconnect when it returns {}.
/loader/{id}~60 / minIPThe loader itself. Re-executing in a loop will hit this.

Errors

A bad key is not an HTTP error: validate answers 200 with "ok": false and a reason. A non-200 means the request itself was wrong or we couldn’t answer it.

HTTP statuses
StatusreasonMeaning
200ok: trueThe key is good for this device — see validate for the fields.
200key unavailableToo many validate calls from this IP. Back off — don’t validate on a loop.
400bad idThe {id} is malformed. Check you copied it from this page.
404unknown projectNo key system or Custom script has that {id}.