Developer API
A small read-only JSON API for bots and external tools — including in-game portals — to browse plugins and look up a plugin's current version and download link. Only published (approved) plugins are ever returned.
List / browse plugins
Returns every published plugin, optionally filtered and paginated. All parameters are optional and can be combined.
GET https://onlyplugins.lol/?action=api_plugins
GET https://onlyplugins.lol/?action=api_plugins&category=combat
GET https://onlyplugins.lol/?action=api_plugins&name=raid
GET https://onlyplugins.lol/?action=api_plugins&author=SomeAuthor
GET https://onlyplugins.lol/?action=api_plugins&sort=updated&page=1&per_page=50
category — exact category key (see categories in the response for valid keys).
name — partial, case-insensitive match on the plugin name.
author — partial, case-insensitive match on the publisher's username.
sort — name (default), updated, or downloads.
page / per_page — pagination, per_page capped at 100 (default 50).
{
"status": "ok",
"count": 2,
"total": 137,
"page": 1,
"per_page": 50,
"total_pages": 3,
"categories": { "combat": "Combat", "economy": "Economy", "...": "..." },
"plugins": [ { "...": "see full plugin object below" } ]
}
Look up a single plugin by name
Exact match is tried first, then a partial match. If more than one plugin shares that name, add author to disambiguate — otherwise you'll get "status": "ambiguous" with every candidate listed.
GET https://onlyplugins.lol/?action=api_plugin&name=PluginName
GET https://onlyplugins.lol/?action=api_plugin&name=PluginName&author=SomeAuthor
Look up by id or slug
GET https://onlyplugins.lol/?action=api_plugin&id=<plugin-id>
GET https://onlyplugins.lol/?action=api_plugin&slug=<plugin-slug>
Looking up a single, unambiguous plugin (by id/slug, or by name+author when it resolves to exactly one match) also includes the plugin's full raw description and changelog text — omitted from list responses to keep those payloads small.
The plugin object
Both endpoints above return plugins in this same shape, whether as a single-item list (api_plugin) or a page of results (api_plugins):
{
"id": "...",
"slug": "...",
"name": "...",
"author": "...",
"version": "1.2.0",
"category": "combat",
"category_label": "Combat",
"summary": "Short one-line description.",
"tags": ["raid", "pvp"],
"rating": 4.6,
"rating_count": 12,
"downloads": 4213,
"file_size": 20480,
"icon_url": "https://.../uploads/icons/....jpg",
"banner_url": "https://.../uploads/banners/....jpg",
"has_staging_build": false,
"download_url": "https://.../?action=download&id=...",
"page_url": "https://.../?page=view&id=...",
"created_at": "2025-06-01T00:00:00+00:00",
"updated_at": "2026-01-01T00:00:00+00:00",
"description": "Full raw description text (only on single-plugin lookups).",
"changelog": "Full raw changelog text (only on single-plugin lookups)."
}
status is one of ok, ambiguous, not_found, or error. Compare the version field against what's installed to know if an update is available, then fetch download_url. icon_url/banner_url may be null if none is set.