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.

GET /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
GET /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
GET /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 ..."
}