Plugin Store API

Browse, search, and download Infinite Yield plugins directly from your Lua scripts. All endpoints return JSON.

Base URL

https://iyplugins.pages.dev

All paths below are relative to this URL.

Endpoints

Get All Plugins (Lightweight)

GET /data/api.json
Returns a lightweight list of all plugins with name, author, date, and file URLs.

Get All Plugins (Full Data)

GET /data/plugins.json
Returns the full database including descriptions, embeds, reactions, code blocks, and embedded source code.

Download a Plugin File

GET /plugins/{id}/{filename}
Downloads the raw .iy plugin file. The id and filename are found in the plugin's files array.

Response Schema — api.json

Field Type Description
version string API version
updated_at string ISO 8601 timestamp of last update
total number Total number of plugins
plugins[] array Array of plugin objects
plugins[].id string Unique plugin ID
plugins[].name string Plugin display name
plugins[].author string Author display name
plugins[].date string Upload date (ISO 8601)
plugins[].files[] array Plugin .iy files
plugins[].files[].filename string File name (e.g. "fly.iy")
plugins[].files[].url string Relative download path
plugins[].files[].size number File size in bytes
plugins[].loadstring_urls array URLs found inside loadstring() calls

Lua Examples

List All Plugins

Lua
local HttpService = game:GetService("HttpService")
local BASE = "https://iyplugins.pages.dev"

local response = game:HttpGet(BASE .. "/data/api.json")
local data = HttpService:JSONDecode(response)

print("Total plugins: " .. tostring(data.total))
for _, plugin in ipairs(data.plugins) do
    print(plugin.name .. " by " .. plugin.author)
end

Search by Name

Lua
local HttpService = game:GetService("HttpService")
local BASE = "https://iyplugins.pages.dev"

local function searchPlugins(query)
    local response = game:HttpGet(BASE .. "/data/api.json")
    local data = HttpService:JSONDecode(response)
    local results = {}
    for _, plugin in ipairs(data.plugins) do
        if string.find(string.lower(plugin.name), string.lower(query)) then
            table.insert(results, plugin)
        end
    end
    return results
end

local found = searchPlugins("fly")
for _, p in ipairs(found) do
    print("Found: " .. p.name .. " (" .. p.files[1].filename .. ")")
end

Download a Plugin

Lua
local HttpService = game:GetService("HttpService")
local BASE = "https://iyplugins.pages.dev"

local response = game:HttpGet(BASE .. "/data/api.json")
local data = HttpService:JSONDecode(response)

local plugin = data.plugins[1]
local file = plugin.files[1]
local code = game:HttpGet(BASE .. "/" .. file.url)

print("Downloaded " .. file.filename .. " (" .. tostring(file.size) .. " bytes)")
print(code)

Download and Execute

Lua
local HttpService = game:GetService("HttpService")
local BASE = "https://iyplugins.pages.dev"

local function loadPlugin(name)
    local response = game:HttpGet(BASE .. "/data/api.json")
    local data = HttpService:JSONDecode(response)
    for _, plugin in ipairs(data.plugins) do
        if string.lower(plugin.name) == string.lower(name) then
            local code = game:HttpGet(BASE .. "/" .. plugin.files[1].url)
            return loadstring(code)()
        end
    end
    warn("Plugin not found: " .. name)
end

loadPlugin("fly")

Download All to Workspace

Lua (Exploit)
local HttpService = game:GetService("HttpService")
local BASE = "https://iyplugins.pages.dev"

local function downloadAll()
    print("Fetching plugin list...")
    local response = game:HttpGet(BASE .. "/data/api.json")
    local data = HttpService:JSONDecode(response)
    
    for i, plugin in ipairs(data.plugins) do
        print(string.format("[%d/%d] Downloading: %s", i, data.total, plugin.name))
        for _, file in ipairs(plugin.files) do
            local success, content = pcall(function()
                return game:HttpGet(BASE .. "/" .. file.url)
            end)
            
            if success then
                writefile(file.filename, content)
            else
                warn("Failed to download: " .. file.filename)
            end
        end
    end
    print("Download complete! All files saved directly to workspace/")
end

downloadAll()

FAQ

How often is the data updated?

The plugin database is updated manually. Check the updated_at field in the API response to see when the last update was!

What's the difference between api.json and plugins.json?

api.json is lightweight — it only contains the essential fields needed to browse and download plugins. plugins.json is the full database with descriptions, embeds, reactions, and embedded source code. Use api.json for Lua scripts and plugins.json if you need everything.