explaingit

altered-tech/unifi-openapi-specs

Analysis updated 2026-05-18

4PythonAudience · developerLicense

TLDR

A community project that scrapes Ubiquiti's UniFi API documentation daily and repackages it as ready to use OpenAPI specs and Postman collections.

Mindmap

mindmap
  root((unifi-openapi-specs))
    What it does
      Scrapes UniFi API docs
      Publishes OpenAPI specs
    Tech stack
      Python
      OpenAPI
      GitHub Actions
    Use cases
      Client generation
      Version lookup
    Audience
      Developers
      Integrators

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Download a ready made OpenAPI spec for the UniFi Network, Protect, Site Manager, or Mobility API to plug into Postman or Swagger UI.

USE CASE 2

Generate a client library automatically from a UniFi API OpenAPI spec using a code generator.

USE CASE 3

Look up the exact API version that matches an older UniFi console firmware still in use.

What is it built with?

PythonOpenAPIGitHub Actions

How does it compare?

altered-tech/unifi-openapi-specs1038lab/agnes-aiadeliox/klein-head-swap
Stars444
LanguagePythonPythonPython
Setup difficultyeasymoderate
Complexity2/53/5
Audiencedevelopervibe coderdesigner

Figures from each repo's GitHub metadata at analysis time.

In plain English

unifi-openapi-specs is a community project that collects and organizes API documentation for Ubiquiti's UniFi products, covering the Site Manager, Network, Protect, and Mobility services. UniFi does not officially publish these specifications in a ready to use, machine readable format on its own, so this project fetches them directly from Ubiquiti's developer website and repackages them as OpenAPI specification files and Postman collections, two common formats that developer tools already understand. Every version of each service's API that Ubiquiti has published is kept here, going back several releases for Network and Protect, so a developer working against an older console firmware version can still find the matching specification instead of only the latest one. Each specification lists both ways a UniFi console can be reached, either directly over the local network or through Ubiquiti's cloud connector service. The project provides direct download links to every spec file, which plug straight into tools like Swagger UI, Postman, Insomnia, or code generators that can automatically build a client library from an OpenAPI file. There is also a small browsable documentation site for looking through the specifications without any extra tooling. Behind the scenes, a script written in Python fetches the raw specification files from Ubiquiti's site, cleans up naming so the files follow the OpenAPI standard correctly, and adjusts certain schema definitions so stricter code generation tools can handle them without errors. A scheduled GitHub Action runs this script automatically once a day, so newly released API versions get added without anyone doing it by hand. The project can also be run locally with Python 3.11 or newer to fetch, discover, or validate specs yourself. It is released under the MIT license and is not affiliated with or endorsed by Ubiquiti.

Copy-paste prompts

Prompt 1
Help me use the UniFi Network OpenAPI spec from this repo to generate a client library.
Prompt 2
Explain how this project's daily GitHub Action keeps the API specs up to date.
Prompt 3
Walk me through running api-scraper.py locally to fetch and validate UniFi specs.
Prompt 4
Show me how to find the OpenAPI spec matching my UniFi Protect console version.

Frequently asked questions

What is unifi-openapi-specs?

A community project that scrapes Ubiquiti's UniFi API documentation daily and repackages it as ready to use OpenAPI specs and Postman collections.

What language is unifi-openapi-specs written in?

Mainly Python. The stack also includes Python, OpenAPI, GitHub Actions.

Who is unifi-openapi-specs for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.