Developers
UplinkOS developer API
Check your apps and send new versions from your own tools. This API manages your own UplinkOS apps only. To read or run a server, use the Server API.
#Your key
- Make it on the API key page once you are approved. Keys start with
upk_. - It is shown once, so copy it somewhere safe. Uplink only keeps a hash of it.
- Making a new key stops the old one right away.
- Keep it on your own computer or server. Never put it in your app's web page, because anyone could read it there.
- Studio does not need a key.
#Signing in
Send your key in the Authorization header on every request.
Terminal
curl https://uplinkrblx.xyz/api/v1/me \
-H "Authorization: Bearer upk_your_key"#Endpoints
Base address: https://uplinkrblx.xyz/api/v1
| Method | Path | What it does |
|---|---|---|
| GET | /me | Your developer account and key details |
| GET | /options | Categories, data kinds, age ratings, repository hosts and upload limits |
| POST | /uploads?name=app.zip | Upload a code file or archive (raw bytes, up to 25 MB). Answers with a file token |
| GET | /uploads | Files you uploaded that are not part of a version yet |
| GET | /store | Every app in the UplinkOS App Store |
| GET | /apps | Your apps |
| GET | /apps/:id | One of your apps and its versions |
| POST | /apps | Submit a new app for review |
| POST | /apps/:id/submissions | Send a new version of an app for review |
| DELETE | /apps/:id/submissions/pending | Withdraw the version waiting for review |
#Upload your code
Send a .zip, .tar.gz, .tar or single code files. Put the token you get back in files when you send the version. Unused uploads are deleted after 24 hours.
Terminal
curl -X POST "https://uplinkrblx.xyz/api/v1/uploads?name=weather-1.1.0.zip" \
-H "Authorization: Bearer upk_your_key" \
-H "Content-Type: application/octet-stream" \
--data-binary @weather-1.1.0.zipAnswer
{
"file": {
"token": "9f2c…",
"name": "weather-1.1.0.zip",
"kind": "zip",
"size": 482113,
"files": 37
}
}#Send a new version
The body has the same fields as the submit form on the portal. Send files, repoUrl, or both. icon is optional on updates and is a data: URL.
Terminal
curl -X POST https://uplinkrblx.xyz/api/v1/apps/12/submissions \
-H "Authorization: Bearer upk_your_key" \
-H "Content-Type: application/json" \
-d @version.jsonversion.json
{
"name": "Weather",
"tagline": "Live ER:LC weather",
"description": "At least 50 characters about what the app does and how to use it.",
"category": "Utilities",
"version": "1.1.0",
"whatsNew": "Faster radar",
"appUrl": "https://weather.example.com",
"files": ["9f2c…"],
"repoUrl": "https://github.com/you/weather",
"repoRef": "v1.1.0",
"repoAccess": "public",
"framework": "Vanilla JS",
"buildNotes": "",
"license": "MIT",
"screenshots": ["https://example.com/shot.png"],
"supportUrl": "https://discord.gg/example",
"privacyUrl": "https://example.com/privacy",
"data": ["none"],
"dataNote": "",
"external": "",
"ageRating": "everyone",
"money": "free",
"team": "",
"testNotes": "Open the app and pick a postal.",
"confirmOwn": true,
"confirmRules": true,
"confirmSame": true
}#Errors and limits
- Errors look like
{"error":{"code":"…","message":"…"}}. - 401 means the key is missing, wrong, replaced or revoked. 403 means your developer access was revoked.
- 60 requests a minute per key (see the
x-ratelimitheaders) and 10 submissions an hour. Going over answers 429 withretry-after. - Every call is logged with its time, path and result, and kept for 30 days.