JSON API Reference
A static JSON API lets GCS software and tooling discover available scripts, their metadata,
and download links without scraping the website.
All responses use Content-Type: application/json and are served as static files,
so they can be fetched directly or cached aggressively.
All paths below are relative to the site root
(/lua_ardupilot_scripts).
Prepend the base URL when running on a sub-path.
/api/v1/types.json
Returns the list of script categories with how many scripts each contains.
Response - array of objects
[
{ "type": "applets", "count": 46 },
{ "type": "drivers", "count": 1 },
{ "type": "tools", "count": 2 }
]
| Field | Type | Description |
|---|---|---|
type |
string | Category identifier (applets, drivers, tools) |
count |
integer | Number of scripts in this category |
/api/v1/scripts.json
Returns every script's metadata. The description field (full markdown body)
is omitted here to keep the payload small - fetch the per-script endpoint for the full text.
Response
{
"total": 49,
"results": [
{
"name": "BatteryTag",
"type": "applets",
"short_description": "Adds a battery ID tag to the log.",
"min_firmware": "4.1",
"version": "1.0",
"date": "2023-06-01",
"download_url": "/applets/BatteryTag.lua",
"page_url": "/scripts/applets/BatteryTag",
"status": "working",
"vehicle": ["all"],
"description": null
},
...
]
}
| Field | Type | Description |
|---|---|---|
total |
integer | Total number of scripts |
results |
array | Array of script objects (see fields below) |
name |
string | Unique script identifier (matches the .lua file stem) |
type |
string | Category: applets, drivers, or tools |
short_description |
string | One-line summary |
min_firmware |
string | Minimum ArduPilot firmware version required (MAJOR.MINOR[.PATCH]) |
version |
string | Script version (semantic version: MAJOR.MINOR[.PATCH]) |
date |
string (YYYY-MM-DD) | Last updated date |
download_url |
string | Absolute or root-relative URL to the raw .lua file |
page_url |
string | Root-relative URL to the HTML detail page for this script |
status |
string | Script status: working or broken. Broken scripts are excluded from
the default browse view. |
vehicle |
array of strings | Supported vehicle types (all, copter, plane,
rover) |
description |
null | Always null in the list endpoint - use the per-script endpoint for the full
body |
/api/v1/scripts/{type}/{name}/index.json
Returns the full metadata for a single script, including its
description field which contains the raw Markdown source.
Path parameters
| Parameter | Description |
|---|---|
type |
Category: applets, drivers, or tools |
name |
Script name, e.g. BatteryTag |
Response - same fields as the list endpoint, with description populated
{
"name": "BatteryTag",
"type": "applets",
"short_description": "Adds a battery ID tag to the log.",
"min_firmware": "4.1",
"version": "1.0",
"date": "2023-06-01",
"download_url": "/applets/BatteryTag.lua",
"page_url": "/scripts/applets/BatteryTag",
"status": "working",
"vehicle": ["all"],
"description": "# BatteryTag\n\nThis script ..."
}