Pastesk turns your Lua code into a loadstring your executor runs, backed by a raw link that stays up. This page explains every button, every link, the public API and API keys. For the full endpoint reference with a live tester, see the API page.
You give it a Lua script. It gives you back one line that looks like this:
loadstring(game:HttpGet("https://pastesk.pages.dev/raw/abc12345"))()Paste that single line into your executor and it downloads your script straight from pastesk and runs it. You never re-paste your whole script again: fix the code on pastesk, convert, and anyone holding the old loadstring line keeps working once they re-run it, because the line itself points at the link, not the code.
Three steps, start to finish:
pcall(function() ... end). If your code throws an error, the executor shows the error instead of crashing silently. Good while testing.-- like this) before hosting. Makes the raw link smaller and hides your notes from anyone who opens it.Already hosting your script somewhere else (GitHub raw, another paste site, your own server)? Paste that link in step 2 and Pastesk just builds the loadstring around it. No upload happens, and nothing is stored on pastesk.
Every convert you make is listed under Recent links so you can grab a loadstring again later. This list is saved in your browser only (local storage) — nobody else can see it, and clearing your browser data clears it. Delete a single link from the list with Delete link.
| What you get | Looks like | What it's for |
|---|---|---|
| Loadstring | loadstring(game:HttpGet(...))() | The one-liner you paste into an executor. Runs your script live from pastesk. |
| Raw link | /raw/abc12345 | Your script as plain text. Opens in any browser, works in Discord, bots, curl, anything. |
| Delete link | shown once after upload | A private key that removes the paste for good. Save it somewhere if you might want the script gone later. |
The delete key is the only way to remove a paste without an API key, and it is shown exactly once. There is no "forgot my delete key" recovery, so save it when you see it. Adding .txt to a raw link (/raw/abc12345.txt) forces a plain-text download, which some bots and Discord embeds prefer.
Copy the loadstring, paste it in the executor's input box, press execute. The script downloads each time it runs, so updates you re-upload show up on the next execute (tick Skip cache while iterating).
Raw links on pastesk are plain text with open CORS, so https://pastesk.pages.dev/raw/abc12345 can be dropped straight in a message, a webhook, or a bot command. Add .txt if you want a downloadable file instead of an embed.
Anything that can make an HTTP GET request can read your script: userscripts, game servers, CI pipelines, your own tools. The API page shows the same links as JSON responses.
Scripts converted on this site are stored on pastesk's own storage and stay up permanently — they don't expire, no account needed. Limits: 100 KB per paste, and rate limits by IP listed in the next section.
/loaders/... links) still work but live on paste.gg with a 7-day expiry. If a very old link died, that's why. New conversions made on the homepage use pastesk's permanent storage instead.Deleted is deleted: removing a paste (delete key or API) makes the raw link return "paste not found" immediately, and the executor loadstring stops working with it.
A key is optional. Without one you can still use the whole site and API. With one you get 200 pastes per hour instead of 20, and you can list and delete your own pastes through the API. Generate one on the homepage or the API page — no account, no email.
psk_ string, shown exactly once when created. Pastesk stores only a hash of it, so nobody (not even the site) can show it to you again. Copy it somewhere safe.Authorization: Bearer psk_... or x-api-key: psk_....| Situation | Limit | Resets |
|---|---|---|
| Creating pastes, no key | 20 / hour | rolling hour |
| Creating pastes, with key | 200 / hour | rolling hour |
| New key creation | 1 per 24 h, 5 lifetime | 24 h after your last key |
Everything on the site is also a clean REST API at https://pastesk.pages.dev. Full request/response details and a try-it-now tester live on the API page; here's the map:
| Endpoint | What it does | Needs a key? |
|---|---|---|
| POST /api/v1/pastes | Create a paste, get raw + delete link | optional |
| GET /api/v1/pastes/:id | Paste info as JSON | no |
| GET /raw/:id | Plain-text content (the raw link) | no |
| DELETE /api/v1/pastes/:id | Delete with delete key or owning key | delete key |
| GET /api/v1/me | List the pastes your key created | yes |
| POST /api/v1/keys | Create an API key | no (limits apply) |
| DELETE /api/v1/keys | Revoke the key you send | yes |
CORS is wide open, responses are JSON, and errors come back as readable JSON too (rate_limited, too_large, invalid_api_key...), so bots and scripts fail gracefully.
Yes, and no. Every feature on the site and API is free with no account, no email, nothing to sign up for. API keys are free too.
Ones made on this site: no, they're permanent until you delete them. Only the legacy paste.gg links from the original converter expire (7 days).
If the paste was made with an API key you still hold, yes — the key can delete it. Otherwise there's no recovery; the delete key exists only at creation time.
A loadstring runs whatever is at the link, live, every time. Only paste loadstrings from people or sites you trust, and never run one you haven't checked by opening its raw link first. Think of it like running someone else's script directly.
The paste at that link was deleted (or it was a legacy paste.gg link that hit its 7-day expiry). Re-upload the script and use the new loadstring.
Anyone with the raw link can read it. Treat a paste like a public file: don't put passwords, tokens, or anything private in it. There are no private pastes.
Any plain text: .lua, .txt, .log. There's no size limit beyond 100 KB per paste.
Yes — your black / white choice is saved in your browser and applies across the converter, API page, and docs.