[{"data":1,"prerenderedAt":302},["ShallowReactive",2],{"navigation":3,"docs-search":51,"/":254,"/-surround":298},[4,8,30,43,47],{"title":5,"path":6,"stem":7},"Getting Started","/","1.index",{"title":9,"path":10,"stem":11,"children":12,"page":29},"Scripts","/scripts","2.scripts",[13,17,21,25],{"title":14,"path":15,"stem":16},"Fetch scripts","/scripts/fetch","2.scripts/fetch",{"title":18,"path":19,"stem":20},"Fetch individual scripts","/scripts/individual","2.scripts/individual",{"title":22,"path":23,"stem":24},"Search scripts","/scripts/search","2.scripts/search",{"title":26,"path":27,"stem":28},"Trending","/scripts/trending","2.scripts/trending",false,{"title":31,"path":32,"stem":33,"children":34,"page":29},"Executors","/executors","3.executors",[35,39],{"title":36,"path":37,"stem":38},"Fetch executors","/executors/fetch","3.executors/fetch",{"title":40,"path":41,"stem":42},"Update executor","/executors/update","3.executors/update",{"title":44,"path":45,"stem":46},"Migration","/migration","3.migration",{"title":48,"path":49,"stem":50},"Integrations","/integrations","4.integrations",[52,56,62,65,70,75,80,85,88,92,96,100,103,107,111,115,119,122,126,130,134,137,141,145,148,152,157,161,164,169,175,180,185,190,195,199,203,207,211,216,220,224,228,232,235,239,244,249],{"id":6,"title":5,"titles":53,"content":54,"level":55},[],"An introduction to the ScriptBlox API Welcome to the ScriptBlox API documentation! If you're here, it likely means you want to integrate the ScriptBlox API into your executor/script hub. In this short yet comprehensive documentation, we'll help you integrate the API and get the most out of it.",1,{"id":57,"title":58,"titles":59,"content":60,"level":61},"/#prerequisites","Prerequisites",[5],"Before beginning the integration, it's important to keep a few things in mind: The executor/script hub must have a stable network connection. Due to the API requiring HTTP requests (requests over the network), the device on which the API is integrated must be connected to the network, either wirelessly or with an ethernet cable.In order to help us keep our services running, we require a small but visible attribution on every integration of our API. A note stating \"Powered by ScriptBlox.com\" in a visible area is enough.The examples and guides provided in the documentation are made in multiple programming languages. You should use the one that fits your use case. In addition, these examples outline the general usage guidelines. They are not required to be made exactly as stated, but are rather made as a baseline. For example, you could use any request method/JSON parsing method you'd like. The documentation only provides a sample that does not depend on any external packages/tools. Now that that's out of the way, let's dive into the documentation with how to fetch scripts!",2,{"id":15,"title":14,"titles":63,"content":64,"level":55},[],"Fetch home page scripts or get filtered results The first endpoint, and likely one of those that will be used the most in your executor/script hub, is the fetch endpoint. This endpoint handles all general querying of ScriptBlox's script catalogue, and can be used along with filters to narrow down results.",{"id":66,"title":67,"titles":68,"content":69,"level":61},"/scripts/fetch#api-path","API Path",[14],"The API path for this endpoint is /api/script/fetch",{"id":71,"title":72,"titles":73,"content":74,"level":61},"/scripts/fetch#parameters","Parameters",[14],"In addition to plain requests for home page scripts, this endpoint accepts additional query parameters (filters) to narrow down results and make more targetted queries. The accepted parameters are: ParameterDescriptionRequiredTypeDefaultpageThe page to start fetching from (useful for paginating content)❌number1maxMaximum amount of scripts to fetch in a batch❌Any positive number up to 2020excludeMainly internal, used to exclude a certain script from the results.❌Valid script ID-modeThe script type❌free or paid-patchedWhether or not the script is patched❌1 (yes) or 0 (no)-keyWhether or not the script has a key system❌1 (yes) or 0 (no)-universalWhether or not  the script is universal❌1 (yes) or 0 (no)-verifiedWhether or not the script is verified❌1 (yes) or 0 (no)-sortByUsed to control the criteria by which to sort the results❌views | likeCount | createdAt | updatedAt | dislikeCountupdatedAtorderThe sort order❌asc (ascending) or desc (descending)descownerThe username to filter by❌string-placeIdThe game ID to filter by❌number-",{"id":76,"title":77,"titles":78,"content":79,"level":61},"/scripts/fetch#response","Response",[14],"The response, unless errored, would be of the following structure: {\n    \"result\": {\n        \"totalPages\": number,\n        \"nextPage\": number,\n        \"max\": number,\n        \"scripts\": [\n            {\n                \"_id\": \"string\",\n                \"title\": \"string\",\n                \"game\": {\n                    \"_id\": \"string\",\n                    \"name\": \"string\",\n                    \"imageUrl\": \"string\"\n                },\n                \"slug\": \"string\",\n                \"verified\": boolean,\n                \"key\": boolean,\n                \"views\": number,\n                \"scriptType\": \"string\",\n                \"isUniversal\": boolean,\n                \"isPatched\": boolean,\n                \"image\": \"string\",\n                \"createdAt\": \"string\",\n                \"script\": \"string\"\n            },\n            ...\n        ]\n    }\n} If an error occurs, the response will contain a single message field: {\n    \"message\": \"string\"\n}",{"id":81,"title":82,"titles":83,"content":84,"level":61},"/scripts/fetch#usage","Usage",[14],"using System.Text.Json;\nusing System.Net.Http.Json;\n\npublic async Task FetchScripts() {\n    HttpClient client = new HttpClient();\n    try {\n        JsonElement scripts = await client.GetFromJsonAsync\u003CJsonElement>(\"https://scriptblox.com/api/script/fetch\"); // 20 most recent scripts. Also known as home page scripts.\n        foreach(JsonElement script in scripts.GetProperty(\"result\").GetProperty(\"scripts\")) {\n            // Use the script to, for example, display it in a window/page\n            Application.Current.Dispatcher.Invoke(() => {\n                // Example: ScriptPanel is a StackPanel defined in your XAML\n                ScriptPanel.Children.Add(new TextBlock(){\n                    Text = $\"Title: {script.GetProperty(\"title\").GetString()}\\nSlug: \\n{script.GetProperty(\"slug\").GetString()}\"\n                });\n            });\n        }\n    }\n    catch (HttpRequestException e)\n    {\n        // Network error or invalid URL\n        Application.Current.Dispatcher.Invoke(() =>\n        {\n            ScriptPanel.Children.Add(new TextBlock()\n            {\n                Text = $\"Network error while fetching scripts:\\n{e.Message}\",\n                Margin = new Thickness(10)\n            });\n        });\n    }\n    catch (JsonException e)\n    {\n        // JSON parsing error\n        Application.Current.Dispatcher.Invoke(() =>\n        {\n            ScriptPanel.Children.Add(new TextBlock()\n            {\n                Text = $\"Error parsing JSON response:\\n{e.Message}\",\n                Margin = new Thickness(10)\n            });\n        });\n    }\n    catch (Exception e)\n    {\n        // General exception\n        Application.Current.Dispatcher.Invoke(() =>\n        {\n            ScriptPanel.Children.Add(new TextBlock()\n            {\n                Text = $\"Unexpected error:\\n{e.Message}\",\n                Margin = new Thickness(10)\n            });\n        });\n    }\n}\n\nfetch(\"https://scriptblox.com/api/script/fetch\") // 20 most recent scripts. Also known as home page scripts.\n    .then((res) => res.json())\n    .then((data) => {\n        // Example: the page contains an element with id=\"results\"\n        const results = document.getElementById('results');\n\n        // Loop through the scripts and display them on the page\n        for (const script of data.result.scripts) {\n            // Create a new div to hold each script's information\n            const scriptElement = document.createElement('div');\n            scriptElement.classList.add('script');\n\n            // Add script title\n            const titleElement = document.createElement('h3');\n            titleElement.textContent = `Title: ${script.title}`;\n            scriptElement.appendChild(titleElement);\n\n            // Add script slug\n            const slugElement = document.createElement('p');\n            slugElement.textContent = `Slug: ${script.slug}`;\n            scriptElement.appendChild(slugElement);\n\n            // Add the script to the container\n            scriptsContainer.appendChild(scriptElement);\n        }\n    })\n    .catch((error) => {\n        console.error('Error while fetching scripts', error);\n        // Display an error message on the page\n        const errorMessage = document.createElement('p');\n        errorMessage.textContent = `Error while fetching scripts: ${error.message}`;\n        document.getElementById('results').appendChild(errorMessage);\n    });\n\nlocal ScreenGui = Instance.new(\"ScreenGui\",game:GetService(\"CoreGui\"))\nlocal Frame = Instance.new(\"Frame\", ScreenGui)\nlocal HttpService = game:GetService(\"HttpService\")\n\nlocal success, result = pcall(function()\n    return HttpService:GetAsync(\"https://scriptblox.com/api/script/fetch\") -- 20 most recent scripts. Also known as home page scripts.\nend)\n\nif success then\n    local scripts = HttpService:JSONDecode(result)\n\n    for i, script in next, scripts.result.scripts do\n        -- Example: create a TextLabel for each script\n        local newTextLabel = Instance.new(\"TextLabel\")\n        newTextLabel.Text = \"Title: \" .. script.title .. \"\\nSlug: \" .. script.slug\n        newTextLabel.Size = UDim2.new(1, 0, 0, 50)\n        newTextLabel.Parent = Frame\n    end\nelse\n    warn(\"Failed to fetch scripts: \" .. result)\nend\nlocal ScreenGui = Instance.new(\"ScreenGui\",game:GetService(\"CoreGui\"))\nlocal Frame = Instance.new(\"Frame\", ScreenGui)\n\nlocal scriptJson = game:HttpGet(\"https://scriptblox.com/api/script/fetch\") -- 20 most recent scripts. Also known as home page scripts.\n\nlocal scripts = game:GetService(\"HttpService\"):JSONDecode(scriptJson)\n\nfor i, script in next, scripts.result.scripts do\n    -- Example: create a TextLabel for each script\n    local newTextLabel = Instance.new(\"TextLabel\")\n    newTextLabel.Text = \"Title: \" .. script.title .. \"\\nSlug: \" .. script.slug\n    newTextLabel.Size = UDim2.new(1, 0, 0, 50)\n    newTextLabel.Parent = Frame  \nend html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}",{"id":19,"title":18,"titles":86,"content":87,"level":55},[],"Obtain details for a specific script Fetching scripts is great when you want to look for scripts to use. However, if you already have a script in mind, fetching a list could be unnecessary, and in stead you may want to fetch that specific script alone. For that, we have a dedicated endpoint that returns the details of the script. Another endpoint is also provided if you just need its raw script.",{"id":89,"title":67,"titles":90,"content":91,"level":61},"/scripts/individual#api-path",[18],"The API path for this is divided into 2 endpoints: For the details of the script - The API path is /api/script/:scriptFor the raw script - The API path is /api/script/raw/:script",{"id":93,"title":72,"titles":94,"content":95,"level":61},"/scripts/individual#parameters",[18],"Both endpoints receive just a single parameter, script, which is the route parameter placed in the last portion of the API path. ParameterDescriptionRequiredTypeDefaultscriptThe script identifier✅string-",{"id":97,"title":77,"titles":98,"content":99,"level":61},"/scripts/individual#response",[18],"The response, unless errored, would be of the following structure: {\n    \"script\": {\n        \"_id\": \"string\",\n        \"title\": \"string\",\n        \"game\": {\n            \"_id\": \"string\",\n            \"gameId\": number,\n            \"name\": \"string\",\n            \"imageUrl\": \"string\"\n        },\n        \"features\": \"string\",\n        \"tags\": [\n            \"string\",\n            ...\n        ],\n        \"script\": \"string\",\n        \"owner\": {\n            \"_id\": \"string\",\n            \"username\": \"string\",\n            \"verified\": boolean,\n            \"profilePicture\": \"string\",\n            \"status\": \"string\",\n        },\n        \"image\": \"string\",\n        \"slug\": \"string\",\n        \"verified\": boolean,\n        \"keyLink\": \"string\",\n        \"views\": number,\n        \"scriptType\": \"string\",\n        \"isUniversal\": boolean,\n        \"isPatched\": boolean,\n        \"visibility\": \"string\",\n        \"createdAt\": \"string\",\n        \"likeCount\": number,\n        \"dislikeCount\": number,\n        \"liked\": boolean,\n        \"disliked\": boolean,\n        \"isFav\": boolean\n    }\n}\nThe raw script If an error occurs, the response will contain a single message field: {\n    \"message\": \"string\"\n} html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}",{"id":23,"title":22,"titles":101,"content":102,"level":55},[],"Search for scripts based on a query and filters The search endpoint behaves very similarly to the fetch endpoint, and is designed specifically for searching throughout the scripts catalogue. Unlike the fetch endpoint, the search query (q) is required.",{"id":104,"title":67,"titles":105,"content":106,"level":61},"/scripts/search#api-path",[22],"The API path for this endpoint is /api/script/search",{"id":108,"title":72,"titles":109,"content":110,"level":61},"/scripts/search#parameters",[22],"Like the fetch endpoint, the search endpoint also accepts a list of parameters to make more targetted and narrower queries. The accepted parameters are: ParameterDescriptionRequiredTypeDefaultqThe search query✅string-pageThe page to start fetching from (useful for paginating content)❌number1maxMaximum amount of scripts to fetch in a batch❌Any positive number up to 2020modeThe script type❌free or paid-patchedWhether or not the script is patched❌1 (yes) or 0 (no)-keyWhether or not the script has a key system❌1 (yes) or 0 (no)-universalWhether or not  the script is universal❌1 (yes) or 0 (no)-verifiedWhether or not the script is verified❌1 (yes) or 0 (no)-sortByUsed to control the criteria by which to sort the results❌views | likeCount | createdAt | updatedAt | dislikeCount | accuracyupdatedAtorderThe sort order❌asc (ascending) or desc (descending)descstrictWhether to enable strict searching❌true (yes) or false (no)trueownerThe username to filter by❌string-placeIdThe game ID to filter by❌number-",{"id":112,"title":77,"titles":113,"content":114,"level":61},"/scripts/search#response",[22],"The response, unless errored, would be of the following structure: {\n    \"result\": {\n        \"totalPages\": number,\n        \"scripts\": [\n            {\n                \"_id\": \"string\",\n                \"title\": \"string\",\n                \"game\": {\n                    \"_id\": \"string\",\n                    \"name\": \"string\",\n                    \"imageUrl\": \"string\"\n                },\n                \"slug\": \"string\",\n                \"verified\": boolean,\n                \"key\": boolean,\n                \"views\": number,\n                \"scriptType\": \"string\",\n                \"isUniversal\": boolean,\n                \"isPatched\": boolean,\n                \"createdAt\": \"string\",\n                \"updatedAt\": \"string\",\n                \"image\": \"string\",\n                \"script\": \"string\",\n                \"matched\": [\n                    \"string\",\n                    ...\n                ]\n            },\n            ...\n        ]\n    }\n} If an error occurs, the response will contain a single message field: {\n    \"message\": \"string\"\n}",{"id":116,"title":82,"titles":117,"content":118,"level":61},"/scripts/search#usage",[22],"using System.Text.Json;\nusing System.Net.Http.Json;\n\npublic async Task FetchScripts() {\n    HttpClient client = new HttpClient();\n    try {\n        JsonElement scripts = await client.GetFromJsonAsync\u003CJsonElement>(\"https://scriptblox.com/api/script/search?q=admin\"); // 20 most recent scripts that relate to \"admin\"\n        foreach(JsonElement script in scripts.GetProperty(\"result\").GetProperty(\"scripts\")) {\n            // Use the script to, for example, display it in a window/page\n            Application.Current.Dispatcher.Invoke(() => {\n                // Example: ScriptPanel is a StackPanel defined in your XAML\n                ScriptPanel.Children.Add(new TextBlock(){\n                    Text = $\"Title: {script.GetProperty(\"title\").GetString()}\\nSlug: \\n{script.GetProperty(\"slug\").GetString()}\"\n                });\n            });\n        }\n    }\n    catch (HttpRequestException e)\n    {\n        // Network error or invalid URL\n        Application.Current.Dispatcher.Invoke(() =>\n        {\n            ScriptPanel.Children.Add(new TextBlock()\n            {\n                Text = $\"Network error while fetching scripts:\\n{e.Message}\",\n                Margin = new Thickness(10)\n            });\n        });\n    }\n    catch (JsonException e)\n    {\n        // JSON parsing error\n        Application.Current.Dispatcher.Invoke(() =>\n        {\n            ScriptPanel.Children.Add(new TextBlock()\n            {\n                Text = $\"Error parsing JSON response:\\n{e.Message}\",\n                Margin = new Thickness(10)\n            });\n        });\n    }\n    catch (Exception e)\n    {\n        // General exception\n        Application.Current.Dispatcher.Invoke(() =>\n        {\n            ScriptPanel.Children.Add(new TextBlock()\n            {\n                Text = $\"Unexpected error:\\n{e.Message}\",\n                Margin = new Thickness(10)\n            });\n        });\n    }\n}\n\nfetch(\"https://scriptblox.com/api/script/search?q=admin\"); // 20 most recent scripts that relate to \"admin\"\n    .then((res) => res.json())\n    .then((data) => {\n        // Example: the page contains an element with id=\"results\"\n        const results = document.getElementById('results');\n\n        // Loop through the scripts and display them on the page\n        for (const script of data.result.scripts) {\n            // Create a new div to hold each script's information\n            const scriptElement = document.createElement('div');\n            scriptElement.classList.add('script');\n\n            // Add script title\n            const titleElement = document.createElement('h3');\n            titleElement.textContent = `Title: ${script.title}`;\n            scriptElement.appendChild(titleElement);\n\n            // Add script slug\n            const slugElement = document.createElement('p');\n            slugElement.textContent = `Slug: ${script.slug}`;\n            scriptElement.appendChild(slugElement);\n\n            // Add the script to the container\n            scriptsContainer.appendChild(scriptElement);\n        }\n    })\n    .catch((error) => {\n        console.error('Error while fetching scripts', error);\n        // Display an error message on the page\n        const errorMessage = document.createElement('p');\n        errorMessage.textContent = `Error while fetching scripts: ${error.message}`;\n        document.getElementById('results').appendChild(errorMessage);\n    });\n\nlocal ScreenGui = Instance.new(\"ScreenGui\",game:GetService(\"CoreGui\"))\nlocal Frame = Instance.new(\"Frame\", ScreenGui)\nlocal HttpService = game:GetService(\"HttpService\")\n\nlocal success, result = pcall(function()\n    return HttpService:GetAsync(\"https://scriptblox.com/api/script/search?q=admin\") -- 20 most recent scripts that relate to \"admin\"\nend)\n\nif success then\n    local scripts = HttpService:JSONDecode(result)\n\n    for i, script in next, scripts.result.scripts do\n        -- Example: create a TextLabel for each script\n        local newTextLabel = Instance.new(\"TextLabel\")\n        newTextLabel.Text = \"Title: \" .. script.title .. \"\\nSlug: \" .. script.slug\n        newTextLabel.Size = UDim2.new(1, 0, 0, 50)\n        newTextLabel.Parent = Frame\n    end\nelse\n    warn(\"Failed to fetch scripts: \" .. result)\nend\nlocal ScreenGui = Instance.new(\"ScreenGui\",game:GetService(\"CoreGui\"))\nlocal Frame = Instance.new(\"Frame\", ScreenGui)\n\nlocal scriptJson = game:HttpGet(\"https://scriptblox.com/api/script/search?q=admin\") -- 20 most recent scripts that relate to \"admin\"\n\nlocal scripts = game:GetService(\"HttpService\"):JSONDecode(scriptJson)\n\nfor i, script in next, scripts.result.scripts do\n    -- Example: create a TextLabel for each script\n    local newTextLabel = Instance.new(\"TextLabel\")\n    newTextLabel.Text = \"Title: \" .. script.title .. \"\\nSlug: \" .. script.slug\n    newTextLabel.Size = UDim2.new(1, 0, 0, 50)\n    newTextLabel.Parent = Frame  \nend\n:: html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}",{"id":27,"title":26,"titles":120,"content":121,"level":55},[],"Fetch the currently trending scripts Fetching/searching is great to look through the ScriptBlox script catalogue and see what there is, but what about top scripts at the moment? For this exact purpose, we have the trending endpoint, that returns a targetted list of the scripts that received the most interactions from the community.",{"id":123,"title":67,"titles":124,"content":125,"level":61},"/scripts/trending#api-path",[26],"The API path for this endpoint is /api/script/trending",{"id":127,"title":72,"titles":128,"content":129,"level":61},"/scripts/trending#parameters",[26],"The trending endpoint receives no parameters.",{"id":131,"title":77,"titles":132,"content":133,"level":61},"/scripts/trending#response",[26],"The response, unless errored, would be of the following structure: {\n    \"result\": {\n        \"max\": number,\n        \"scripts\": [\n            {\n                \"_id\": \"string\",\n                \"title\": \"string\",\n                \"game\": {\n                    \"_id\": \"string\",\n                    \"name\": \"string\",\n                    \"imageUrl\": \"string\"\n                },\n                \"slug\": \"string\",\n                \"verified\": boolean,\n                \"key\": boolean,\n                \"views\": number,\n                \"scriptType\": \"string\",\n                \"isPatched\": boolean,\n                \"isUniversal\": boolean,\n                \"createdAt\": \"string\",\n                \"image\": \"string\",\n            },\n            ...\n        ]\n    }\n} If an error occurs, the response will contain a single message field: {\n    \"message\": \"string\"\n} html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"id":37,"title":36,"titles":135,"content":136,"level":55},[],"Fetch the list of our available executors The executors fetch endpoint allows you to get our list of executors.",{"id":138,"title":67,"titles":139,"content":140,"level":61},"/executors/fetch#api-path",[36],"The API path for this endpoint is /api/executor/list",{"id":142,"title":77,"titles":143,"content":144,"level":61},"/executors/fetch#response",[36],"The response, unless errored, would be of the following structure: [\n  {\n    \"_id\": \"string\",\n    \"name\": \"string\",\n    \"patched\": boolean,\n    \"platform\": \"string\",\n    \"website\": \"string\",\n    \"discord\": \"string\",\n    \"version\": \"string\",\n    \"versionDate\": \"string\",\n    \"thumbnail\": \"string\",\n    \"store\": \"string\",\n    \"type\": \"Free/Paid\"\n  },\n  ...\n] If an error occurs, the response will contain a single message field: {\n    \"message\": \"string\"\n} html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"id":41,"title":40,"titles":146,"content":147,"level":55},[],"Update your executor in our executors list NOTE: Unlike other endpoints in this documentation, this endpoint is a POST endpoint. The update endpoint allows you to update you executor's information in our executors list, including name, description, discord link, and much more.",{"id":149,"title":67,"titles":150,"content":151,"level":61},"/executors/update#api-path",[40],"The API path for this endpoint is /api/executor/update",{"id":153,"title":154,"titles":155,"content":156,"level":61},"/executors/update#body","Body",[40],"The endpoint accepts the following body: KeyDescriptionRequiredTypeDefaultidThe name of the executor to update✅string-api_keyThe API key of the executor✅string-nameNew name for the executor❌string-descriptionThe description of the executor❌string-platformThe platform the executor works on❌iOS | Android | Windows | macOS | Roblox VNG-patchedWhether or not the executor is patched❌boolean-websiteExecutor website❌string-discordThe discord server of the executor❌Valid Discord link-storeExecutor store link❌string-versionThe version of the executor (for manual overrides, generally unnecessary if you set up a version endpoint)❌string-playerVersionThe compatible client version (for manual overrides, generally unnecessary if you set up a version endpoint)❌string-endpointThe version endpoint (for automatic version tracking)❌Valid URL-developersThe list of developers, as a single string❌string-updateWhether or not this should trigger a visible update on site (this should be turned off in case of, for example, typo fixes)❌booleantrue",{"id":158,"title":77,"titles":159,"content":160,"level":61},"/executors/update#response",[40],"If the update succeeded, the following response will be returned: {\n    \"message\": \"Executor updated successfully!\"\n} If no changes were found (fields weren't provided or are matching the current ones), the following response will be returned: {\n    \"message\": \"No changes detected!\"\n} If an error occurs, the response will contain a single message field: {\n    \"message\": \"string\"\n} html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"id":45,"title":44,"titles":162,"content":163,"level":55},[],"Migration steps to the new API On March 28th, 2025, ScriptBlox has entered a new reality. With growing popularity and increased traffic, there was a limit to how many performance improvements, new features, and bug fixes we can release on the website alone. We understood that in order to meet the new demands, we must also begin updating our API. From that day on, we are actively looking for ways to optimize our API structure and responses. For each such change that requires adaptation in services utilizing the API, this page will provide the exact change, release date, the reasoning, and the migration steps for the change.",{"id":165,"title":166,"titles":167,"content":168,"level":61},"/migration#changes-to-script-searchingfetching-endpoints-released-march-28-2025","Changes to script searching/fetching endpoints (released: March 28, 2025)",[44],"The script search and fetch endpoints have received a major change in accepted parameters.",{"id":170,"title":171,"titles":172,"content":173,"level":174},"/migration#what-changed","What changed",[44,166],"The filters parameter has been deprecated in favor of more explicit, separate parameters.",3,{"id":176,"title":177,"titles":178,"content":179,"level":174},"/migration#reason-for-change","Reason for change",[44,166],"Having separate top level parameters for filters provides more explicit context for the request. It avoids ambiguity between filters and sorts and makes it easier to expand and provide more thorough and fine-tuned filtering capabilities.",{"id":181,"title":182,"titles":183,"content":184,"level":174},"/migration#migration-steps","Migration steps",[44,166],"Remove all filters and replace each with their respective top level parameter. filters=paid/filters=free has been removed entirely due to the existence of the mode parameter (mode=paid/mode=free)- https://scriptblox.com/api/script/fetch?filters=free\n+ https://scriptblox.com/api/script/fetch?mode=free\nfilters=verified/filters=unverified should be replaced with the verified parameter (verified=1/verified=0)- https://scriptblox.com/api/script/fetch?filters=unverified\n+ https://scriptblox.com/api/script/fetch?verified=0\nfilters=newest/filters=oldest/filters=mostviewed/filters=leastviewed should be replaced with the order parameter along with the sortBy parameter (sortBy=createdAt&order=desc/sortBy=createdAt&order=asc/sortBy=views&order=desc/sortBy=views&order=asc)- https://scriptblox.com/api/script/fetch?filters=mostviewed\n+ https://scriptblox.com/api/script/fetch?sortBy=views&order=desc\nfilters=hot should be replaced with a request to the dedicated endpoint. More information here.- https://scriptblox.com/api/script/fetch?filters=hot\n+ https://scriptblox.com/api/script/trending",{"id":186,"title":187,"titles":188,"content":189,"level":174},"/migration#fallback-grace-period","Fallback grace period",[44,166],"The grace period has expired. The grace period explanation is reserved for historic purposes If migration isn't possible immediately, a grace period is provided during which you must add the legacy_filters parameter to the request (legacy_filters=true). - https://scriptblox.com/api/script/fetch?filters=verified\n+ https://scriptblox.com/api/script/fetch?filters=verified&legacy_filters=true Without this parameter, your queries will result in an error. This is done to ensure you have adequate time to migrate safely and without long term disruptions. However, once the grace period expires, this parameter will be sunset and lose all effect, and you will be met with an error response if the filters key is kept in use.",{"id":191,"title":192,"titles":193,"content":194,"level":61},"/migration#changes-to-script-tags-released-march-28-2025","Changes to script tags (released: March 28, 2025)",[44],"The tags have had a change in structure.",{"id":196,"title":171,"titles":197,"content":198,"level":174},"/migration#what-changed-1",[44,192],"The tags are now a plain array of strings, as opposed to an array of objects.",{"id":200,"title":177,"titles":201,"content":202,"level":174},"/migration#reason-for-change-1",[44,192],"The previous approach did not have much benefit, as it was contributing to more clutter and payload size, and have not had any effect on the overall behavior. The new approach simplifies it, and brings some performance improvements to our end.",{"id":204,"title":182,"titles":205,"content":206,"level":174},"/migration#migration-steps-1",[44,192],"Remove all references to _id and id in tags, as these have been removed. Remove all references to name, as the tag is now the value. tag[\"name\"] -> tag",{"id":208,"title":187,"titles":209,"content":210,"level":174},"/migration#fallback-grace-period-1",[44,192],"The grace period has expired. The grace period explanation is reserved for historic purposes If migration isn't possible immediately, a grace period is provided during which you can add the legacy_tags parameter to the request (legacy_tags=true), that will return the tags to the previous state (albeit with randomized ID's). - https://scriptblox.com/api/script/[slug]\n+ https://scriptblox.com/api/script/[slug]?legacy_tags=true",{"id":212,"title":213,"titles":214,"content":215,"level":61},"/migration#changes-to-script-images-released-march-28-2025","Changes to script images (released: March 28, 2025)",[44],"The images of scripts have been slightly changed in structure.",{"id":217,"title":171,"titles":218,"content":219,"level":174},"/migration#what-changed-2",[44,213],"The images of the scripts have been moved into the direct image property.",{"id":221,"title":177,"titles":222,"content":223,"level":174},"/migration#reason-for-change-2",[44,213],"The new approach heavily simplifies game handling on our end. It brings major performance improvements and allows us to better handle fallback images if a custom image is unavailable. Additionally, it brings us the future capabilities to further expand the script filtering system by game.",{"id":225,"title":182,"titles":226,"content":227,"level":174},"/migration#migration-steps-2",[44,213],"All references of game.imageUrl should be replaced with image. game[\"imageUrl\"] -> image",{"id":229,"title":187,"titles":230,"content":231,"level":174},"/migration#fallback-grace-period-2",[44,213],"The grace period has expired. The grace period explanation is reserved for historic purposes If migration isn't possible immediately, a grace period is provided during which you can add the legacy_img parameter to the request (legacy_img=true), that will return the image in the game.imageUrl, as it was previously. - https://scriptblox.com/api/script/[slug]\n+ https://scriptblox.com/api/script/[slug]?legacy_img=true html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"id":49,"title":48,"titles":233,"content":234,"level":55},[],"ScriptBlox API integrations Implementing the ScriptBlox API directly gives you the greatest control over how you use it and interact with it. However, you may not want to deal with the trouble of implementing the API calls yourself. In such case, you can use one of the existing community-made libraries that provide a convenient wrapper around the API. Below, we will list some of the most popular integrations that are available for use. If you have an integration that you would like to see listed here, please contact us on our Discord server.",{"id":236,"title":48,"titles":237,"content":238,"level":61},"/integrations#integrations",[48],"",{"id":240,"title":241,"titles":242,"content":243,"level":174},"/integrations#c-integrations","C# integrations",[48,48],"ScriptBloxApi - Supports all current endpoints, developed by RiisDev.None yet!",{"id":245,"title":246,"titles":247,"content":248,"level":174},"/integrations#js-integrations","JS integrations",[48,48],"scriptblox-api - Supports all current endpoints, developed by YellowGregs.ScriptBlox.js - Supports all current endpoints, developed by xbcq1490.",{"id":250,"title":251,"titles":252,"content":253,"level":174},"/integrations#luau-integrations","Luau integrations",[48,48],"None yet!",{"id":255,"title":5,"body":256,"description":292,"extension":293,"meta":294,"navigation":295,"path":6,"seo":296,"stem":7,"__hash__":297},"docs/1.index.md",{"type":257,"value":258,"toc":289},"minimark",[259,263,266,270,273,286],[260,261,262],"p",{},"Welcome to the ScriptBlox API documentation!",[260,264,265],{},"If you're here, it likely means you want to integrate the ScriptBlox API into your executor/script hub. In this short yet comprehensive documentation, we'll help you integrate the API and get the most out of it.",[267,268,58],"h2",{"id":269},"prerequisites",[260,271,272],{},"Before beginning the integration, it's important to keep a few things in mind:",[274,275,276,280,283],"ol",{},[277,278,279],"li",{},"The executor/script hub must have a stable network connection. Due to the API requiring HTTP requests (requests over the network), the device on which the API is integrated must be connected to the network, either wirelessly or with an ethernet cable.",[277,281,282],{},"In order to help us keep our services running, we require a small but visible attribution on every integration of our API. A note stating \"Powered by ScriptBlox.com\" in a visible area is enough.",[277,284,285],{},"The examples and guides provided in the documentation are made in multiple programming languages. You should use the one that fits your use case. In addition, these examples outline the general usage guidelines. They are not required to be made exactly as stated, but are rather made as a baseline. For example, you could use any request method/JSON parsing method you'd like. The documentation only provides a sample that does not depend on any external packages/tools.",[260,287,288],{},"Now that that's out of the way, let's dive into the documentation with how to fetch scripts!",{"title":238,"searchDepth":61,"depth":61,"links":290},[291],{"id":269,"depth":61,"text":58},"An introduction to the ScriptBlox API","md",{},true,{"title":5,"description":292},"9of3fLCDotBT5YATJKoxtYDdOCjLJPkOohfwc4T-dJk",[299,300],null,{"title":14,"path":15,"stem":16,"description":301,"navigation":295,"children":-1},"Fetch home page scripts or get filtered results",1764101556408]