Authentication, rate limits and errors for the Luarmor HTTP API
Luarmor provides an HTTP API for managing scripts, users and keys.You can use it to control your Luarmor projects programmatically, manage user access, and update scripts and their settings.
IP whitelisting required: the Luarmor HTTP API is not public. Only script owners with a Luarmor account can use it, and only from a whitelisted IP address.See IP whitelisting under Authentication for more information.
Things to remember
Headers
The Content-Type header must be set to application/json in all requests.
Rate limits
Each endpoint has its own rate limits, but generally you can make 60 requests per minute.
If you exceed the limit, you get a 429 status code.
If you exceed the rate limit, it may take a while before you can make requests again.
Parameter types
You can pass parameters in four different ways:
Type
Example
Path
/data/PARAMETER_HERE/stuff
Query
/data/things/stuff?paramName=PARAMETER_HERE
Body
{ "fieldName": "PARAMETER_HERE" }
Header
{ "headerName": "HEADER VALUE" }
Authentication
All API requests require authentication via an API key. You can find your API key on your Luarmor profile, and it is also sent to you by email when you register. If you have lost it, see Account management.To find your project and script IDs, see Where is the script ID and project ID?.Most endpoints take the key in the Authorization header, with no prefix:
GET https://api.luarmor.net/v3/projects/{project_id}/usersAuthorization: YOUR_API_KEY
Your API key gives full control over your projects. Never put it in a script you distribute, and never share it with anyone you do not fully trust.
IP whitelisting
You must whitelist your server’s IP address on the Luarmor dashboard to make API calls. Otherwise, your requests will be blocked by Cloudflare.To find the IP address to whitelist, open the Luarmor IP trace page from your server and use the ip value.If you are using a service that does not give you a static IP address, you must either use a proxy with a static IP or switch to a different service.
Responses and errors
Responses are JSON. Every response includes a success boolean and, usually, a human-readable message explaining what happened.
{ "success": false, "message": "Invalid API key"}
Status
Meaning
200
The request succeeded
400
Bad request. Usually an invalid API key or a missing parameter
403
Forbidden. Usually your IP is not whitelisted, or the API key is incorrect
Gateway timeout. This can happen when uploading large scripts; see Update Script
Always check message when a request fails, as it usually tells you exactly what went wrong.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Luarmor","colors":{"primary":"#0D9373","light":"#07C983","dark":"#0D9373"},"logo":{"light":"https://mintcdn.com/luarmor/8pPKYh_Y132D2Y4u/logo/dark.png?fit=max\u0026auto=format\u0026n=8pPKYh_Y132D2Y4u\u0026q=85\u0026s=b532049847f4a9deb56871da2e8ed09b","dark":"https://mintcdn.com/luarmor/8pPKYh_Y132D2Y4u/logo/dark.png?fit=max\u0026auto=format\u0026n=8pPKYh_Y132D2Y4u\u0026q=85\u0026s=b532049847f4a9deb56871da2e8ed09b"},"favicon":"https://mintcdn.com/luarmor/8pPKYh_Y132D2Y4u/favicon.png?fit=max\u0026auto=format\u0026n=8pPKYh_Y132D2Y4u\u0026q=85\u0026s=59eee2521a825ce26b8fdd9c8cca9353","api":{"openapi":"api-reference/openapi.json","mdx":{"auth":{"method":"key"},"server":"https://api.luarmor.net"}},"navbar":{"links":[{"href":"https://discord.gg/luarmor","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://luarmor.net/dashboard"}},"footer":{"socials":{"discord":"https://discord.gg/luarmor"}},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Website","icon":"globe","href":"https://luarmor.net"},{"anchor":"Discord","icon":"discord","href":"https://discord.gg/luarmor"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"luarmor","hasAudioNarration":false,"actualSubdomain":"luarmor","customDomains":[],"gitSource":{"type":"github","owner":"stefanuk12","repo":"luarmor","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{},"buildId":"6acabf572c846af6175b1786","clientVersion":"0.0.4138","searchFilterCounts":[{"language":"default","tag":"API Reference","count":16},{"language":"default","tag":"Documentation","count":15},{"language":"default","tag":"User Management","count":8},{"language":"default","tag":"Features","count":6},{"language":"default","tag":"Scripting","count":4},{"language":"default","tag":"API Management","count":3},{"language":"default","tag":"Help","count":3},{"language":"default","tag":"Script Management","count":2},{"language":"default","tag":"Getting Started","count":2},{"language":"default","tag":"Get Started","count":2}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/introduction","slug":"/api-reference/introduction","pageMetadata":{"title":"Luarmor API","description":"Authentication, rate limits and errors for the Luarmor HTTP API","sidebarTitle":"Introduction","href":"/api-reference/introduction"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Authentication, rate limits and errors for the Luarmor HTTP API\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Table,Tip,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Luarmor provides an HTTP API for managing scripts, users and keys.`}),`\n`,_jsx(_components.p,{children:`You can use it to control your Luarmor projects programmatically, manage user access, and update scripts and their settings.`}),`\n`,_jsxs(Warning,{children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`IP whitelisting required:`}),` the Luarmor HTTP API is not public. Only script owners with a Luarmor account can use it, and only from a whitelisted IP address.`]}),_jsxs(_components.p,{children:[`See `,_jsx(_components.a,{href:`#ip-whitelisting`,children:`IP whitelisting`}),` under Authentication for more information.`]})]}),`\n`,_jsx(Heading,{level:`2`,id:`things-to-remember`,children:`Things to remember`}),`\n`,_jsx(Heading,{level:`3`,id:`headers`,children:`Headers`}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`Content-Type`}),` header must be set to `,_jsx(_components.code,{children:`application/json`}),` in all requests.`]}),`\n`,_jsx(Heading,{level:`3`,id:`rate-limits`,children:`Rate limits`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Each endpoint has its own rate limits, but generally you can make `,_jsx(_components.strong,{children:`60 requests per minute`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`If you exceed the limit, you get a `,_jsx(_components.code,{children:`429`}),` status code.`]}),`\n`]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`If you exceed the rate limit, it may take a while before you can make requests again.`})}),`\n`,_jsx(Heading,{level:`3`,id:`parameter-types`,children:`Parameter types`}),`\n`,_jsx(_components.p,{children:`You can pass parameters in four different ways:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Example`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Path`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`/data/PARAMETER_HERE/stuff`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Query`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`/data/things/stuff?paramName=PARAMETER_HERE`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Body`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`{ \"fieldName\": \"PARAMETER_HERE\" }`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Header`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`{ \"headerName\": \"HEADER VALUE\" }`})})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`authentication`,children:`Authentication`}),`\n`,_jsxs(_components.p,{children:[`All API requests require authentication via an API key. You can find your API key on your `,_jsx(_components.a,{href:`https://luarmor.net/profile`,children:`Luarmor profile`}),`, and it is also sent to you by email when you register. If you have lost it, see `,_jsx(_components.a,{href:`/troubleshooting/script-owners#account-management`,children:`Account management`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`To find your project and script IDs, see `,_jsx(_components.a,{href:`/troubleshooting/script-owners#uploading-scripts`,children:`Where is the script ID and project ID?`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`Most endpoints take the key in the `,_jsx(_components.code,{children:`Authorization`}),` header, with no prefix:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`http`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`http`,children:_jsxs(_components.code,{language:`http`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`GET`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` https://api.luarmor.net/v3/projects/{project_id}/users`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`Authorization`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` YOUR_API_KEY`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`The API key endpoints (`,_jsx(_components.a,{href:`/api-reference/endpoint/api-management/get-api-key-details`,children:`Get API Key Details`}),` and `,_jsx(_components.a,{href:`/api-reference/endpoint/api-management/get-api-key-stats`,children:`Get API Key Stats`}),`) take the API key as a path parameter instead.`]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Your API key gives full control over your projects. Never put it in a script you distribute, and never share it with anyone you do not fully trust.`})}),`\n`,_jsx(Heading,{level:`3`,id:`ip-whitelisting`,children:`IP whitelisting`}),`\n`,_jsxs(_components.p,{children:[`You must whitelist your server’s IP address on the `,_jsx(_components.a,{href:`https://luarmor.net/profile`,children:`Luarmor dashboard`}),` to make API calls. Otherwise, your requests will be blocked by Cloudflare.`]}),`\n`,_jsxs(_components.p,{children:[`To find the IP address to whitelist, open the `,_jsx(_components.a,{href:`https://api.luarmor.net/cdn-cgi/trace`,children:`Luarmor IP trace page`}),` from your server and use the `,_jsx(_components.code,{children:`ip`}),` value.`]}),`\n`,_jsx(_components.p,{children:`If you are using a service that does not give you a static IP address, you must either use a proxy with a static IP or switch to a different service.`}),`\n`,_jsx(Heading,{level:`2`,id:`responses-and-errors`,children:`Responses and errors`}),`\n`,_jsxs(_components.p,{children:[`Responses are JSON. Every response includes a `,_jsx(_components.code,{children:`success`}),` boolean and, usually, a human-readable `,_jsx(_components.code,{children:`message`}),` explaining what happened.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`4`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`4`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"success\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"message\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Invalid API key\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Status`}),_jsx(_components.th,{children:`Meaning`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`200`}),_jsx(_components.td,{children:`The request succeeded`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`400`}),_jsx(_components.td,{children:`Bad request. Usually an invalid API key or a missing parameter`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`403`}),_jsx(_components.td,{children:`Forbidden. Usually your IP is not whitelisted, or the API key is incorrect`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`404`}),_jsx(_components.td,{children:`The project, script or user does not exist`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`429`}),_jsxs(_components.td,{children:[`You exceeded the `,_jsx(_components.a,{href:`#rate-limits`,children:`rate limit`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`504`}),_jsxs(_components.td,{children:[`Gateway timeout. This can happen when uploading large scripts; see `,_jsx(_components.a,{href:`/api-reference/endpoint/script-management/update-script`,children:`Update Script`})]})]})]})]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`Always check `,_jsx(_components.code,{children:`message`}),` when a request fails, as it usually tells you exactly what went wrong.`]})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Luarmor API","description":"Authentication, rate limits and errors for the Luarmor HTTP API","sidebarTitle":"Introduction","href":"/api-reference/introduction"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Things to remember","slug":"things-to-remember","depth":2,"children":[{"title":"Headers","slug":"headers","depth":3,"children":[]},{"title":"Rate limits","slug":"rate-limits","depth":3,"children":[]},{"title":"Parameter types","slug":"parameter-types","depth":3,"children":[]}]},{"title":"Authentication","slug":"authentication","depth":2,"children":[{"title":"IP whitelisting","slug":"ip-whitelisting","depth":3,"children":[]}]},{"title":"Responses and errors","slug":"responses-and-errors","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"luarmor","siteName":"Luarmor","title":"Luarmor API - Luarmor","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-10T22:19:16.934Z","originalFileLocation":"api-reference/introduction.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Authentication, rate limits and errors for the Luarmor HTTP API\">\u003cmeta data-mint-head name=\"application-name\" content=\"Luarmor\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/luarmor/jQx-9jqXEra01BCa/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/luarmor/jQx-9jqXEra01BCa/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/luarmor/jQx-9jqXEra01BCa/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/luarmor/jQx-9jqXEra01BCa/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/luarmor/jQx-9jqXEra01BCa/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/luarmor/jQx-9jqXEra01BCa/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/luarmor/jQx-9jqXEra01BCa/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/luarmor/jQx-9jqXEra01BCa/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/luarmor/jQx-9jqXEra01BCa/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Luarmor API - Luarmor\">\u003cmeta data-mint-head property=\"og:description\" content=\"Authentication, rate limits and errors for the Luarmor HTTP API\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Luarmor\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://luarmor.mintlify.app/api-reference/introduction\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://luarmor.mintlify.site/_mintlify/api/og/v2?division=Getting+Started\u0026amp;title=Luarmor+API\u0026amp;description=Authentication%2C+rate+limits+and+errors+for+the+Luarmor+HTTP+API\u0026amp;theme=d7efb2fecdca69b72ec616b1\u0026amp;signature=bf0f1b7263ffd112b4ef168c48fd213deb362a8a173e105c44fa991ba6c2d690\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Luarmor API - Luarmor\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Authentication, rate limits and errors for the Luarmor HTTP API\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://luarmor.mintlify.site/_mintlify/api/og/v2?division=Getting+Started\u0026amp;title=Luarmor+API\u0026amp;description=Authentication%2C+rate+limits+and+errors+for+the+Luarmor+HTTP+API\u0026amp;theme=d7efb2fecdca69b72ec616b1\u0026amp;signature=bf0f1b7263ffd112b4ef168c48fd213deb362a8a173e105c44fa991ba6c2d690\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/luarmor/jQx-9jqXEra01BCa/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Luarmor\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0D9373\">\u003clink data-mint-head rel=\"canonical\" href=\"https://luarmor.mintlify.app/api-reference/introduction\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/introduction.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://luarmor.mintlify.app/#organization\",\"name\":\"Luarmor\",\"url\":\"https://luarmor.mintlify.app\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/luarmor/8pPKYh_Y132D2Y4u/logo/dark.png?fit=max\u0026auto=format\u0026n=8pPKYh_Y132D2Y4u\u0026q=85\u0026s=b532049847f4a9deb56871da2e8ed09b\"}},{\"@type\":\"WebSite\",\"@id\":\"https://luarmor.mintlify.app#website\",\"name\":\"Luarmor\",\"url\":\"https://luarmor.mintlify.app\",\"publisher\":{\"@id\":\"https://luarmor.mintlify.app/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://luarmor.mintlify.app/api-reference/introduction#webpage\",\"url\":\"https://luarmor.mintlify.app/api-reference/introduction\",\"name\":\"Luarmor API\",\"description\":\"Authentication, rate limits and errors for the Luarmor HTTP API\",\"dateModified\":\"2026-10-10T22:19:16.934Z\",\"isPartOf\":{\"@id\":\"https://luarmor.mintlify.app#website\"},\"breadcrumb\":{\"@id\":\"https://luarmor.mintlify.app/api-reference/introduction#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://luarmor.mintlify.app/api-reference/introduction#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Luarmor\",\"item\":\"https://luarmor.mintlify.app\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Luarmor API\",\"item\":\"https://luarmor.mintlify.app/api-reference/introduction\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://luarmor.mintlify.app/api-reference/introduction#article\",\"headline\":\"Luarmor API\",\"name\":\"Luarmor API\",\"description\":\"Authentication, rate limits and errors for the Luarmor HTTP API\",\"url\":\"https://luarmor.mintlify.app/api-reference/introduction\",\"mainEntityOfPage\":{\"@id\":\"https://luarmor.mintlify.app/api-reference/introduction#webpage\"},\"dateModified\":\"2026-10-10T22:19:16.934Z\",\"publisher\":{\"@id\":\"https://luarmor.mintlify.app/#organization\"},\"isPartOf\":{\"@id\":\"https://luarmor.mintlify.app#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Luarmor\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Luarmor\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/introduction.md","siteName":"Luarmor","nav":{"global":{"anchors":[{"anchor":"Website","icon":"globe","href":"https://luarmor.net"},{"anchor":"Discord","icon":"discord","href":"https://discord.gg/luarmor"}]},"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/introduction"}]},{"tab":"API Reference","groups":[{"group":"Getting Started","pages":[{"title":"Luarmor API","sidebarTitle":"Introduction","href":"/api-reference/introduction"},{"title":"SDKs \u0026 Libraries","description":"Official and community SDKs for the Luarmor API","href":"/api-reference/sdk"}]},{"group":"API Management","pages":[{"title":"Get API Status","href":"/api-reference/endpoint/api-management/get-api-status"},{"title":"Get API Key Details","href":"/api-reference/endpoint/api-management/get-api-key-details"},{"title":"Get API Key Stats","href":"/api-reference/endpoint/api-management/get-api-key-stats"}]},{"group":"User Management","pages":[{"title":"Create User/Key","href":"/api-reference/endpoint/user-management/create-userkey"},{"title":"Get Users","href":"/api-reference/endpoint/user-management/get-users"},{"title":"Update User","href":"/api-reference/endpoint/user-management/update-user"},{"title":"Delete User/Key","href":"/api-reference/endpoint/user-management/delete-userkey"},{"title":"Reset User HWID","href":"/api-reference/endpoint/user-management/reset-user-hwid"},{"title":"Link Discord ID","href":"/api-reference/endpoint/user-management/link-discord-id"},{"title":"Blacklist User","href":"/api-reference/endpoint/user-management/blacklist-user"},{"title":"Unban User","href":"/api-reference/endpoint/user-management/unban-user"}]},{"group":"Script Management","pages":[{"title":"Update Script","href":"/api-reference/endpoint/script-management/update-script"},{"title":"Get Update Progress","href":"/api-reference/endpoint/script-management/get-update-progress"}]},{"group":"For 3rd Parties","pages":[{"title":"External Key Check API","href":"/api-reference/external-key-check"}]}]}]},"basePath":"","title":"Luarmor API - Luarmor","buildId":"dpl_715YoAgvjTGBDdo8RtXmHKM22b5p","deploymentId":"dpl_715YoAgvjTGBDdo8RtXmHKM22b5p","dynamics":[],"chunks":[]}