🌐 Idiomas: Português · English 🔗 Site (referência interativa): https://opastorello.github.io/unifi-api-docs/
Espelho automático e versionado da documentação oficial da API UniFi (developer.ui.com), pronto para humanos e IAs/LLMs (Markdown + OpenAPI).
⚠️ Espelho não oficial, mantido para consulta e automação. A fonte autoritativa é sempre developer.ui.com.
🔌 Servidor MCP: estas specs alimentam o opastorello/unifi-mcp — um servidor MCP completo da UniFi (Local + Remoto via Cloud Connector) com passthrough auto-atualizável sobre a Integration v1.
Para cada aplicação (Site Manager, Network, Protect, Mobility) e cada versão publicada, este repositório guarda:
<app>/<versão>/openapi.json- a especificação OpenAPI completa (todos os paths, schemas, exemplos). É a fonte da verdade.<app>/<versão>/reference.md- referência em Markdown gerada do OpenAPI (índice, parâmetros, corpo, resposta e exemplos cURL Local e Remoto).
Índices para consumo rápido:
llms.txt- índice no padrão llmstxt.org, pensado para LLMs.catalog.json- catálogo em JSON (apps → versões → contagens).skill.md- skill pronta para agentes consultarem a API.
ℹ️ Os
openapi.jsonsão espelho fiel da origem. Algumas versões 3.1.0 da Ubiquiti têm pequenos desvios do schema OpenAPI (ex.:info.licensevazio na Network; umdescriptionausente na Protect), preservados como na origem. São JSON válidos e usáveis - apenas validadores estritos acusam.
As APIs por aplicação (Network / Protect / Mobility) rodam localmente em cada console e podem ser acessadas de dois jeitos:
| 🏠 Local | ☁️ Remoto (Cloud Connector) | |
|---|---|---|
| Header | X-API-KEY |
X-API-Key |
| Chave | console → Integrations | unifi.ui.com → Settings → API Keys |
| Rede local? | necessária | dispensada (ok atrás de CGNAT) |
| Requisito | - | firmware ≥ 5.0.3 |
🏠 Local - direto no console:
curl -H "X-API-KEY: $CHAVE_LOCAL" \
"https://<console>/proxy/<app>/integration/v1/…"☁️ Remoto - via nuvem, sem acesso à rede local:
curl -H "X-API-Key: $CHAVE_SITE_MANAGER" \
"https://api.ui.com/v1/connector/consoles/{id}/<app>/integration/v1/…"O caminho após /integration é idêntico nos dois modos. O Site Manager é a API de nuvem multi-site (https://api.ui.com/v1/…) e inclui o Cloud Connector usado pelo modo Remoto.
| App | Última versão | Categorias | Operações | Paths | OpenAPI | Referência | Doc oficial |
|---|---|---|---|---|---|---|---|
| network | v10.3.58 |
13 | 73 | 44 | json | md | origem |
| protect | v7.1.46 |
22 | 73 | 54 | json | md | origem |
| site-manager | v1.0.0 |
1 | 9 | 9 | json | md | origem |
| mobility | v1.0.0 |
4 | 8 | 7 | json | md | origem |
📜 Histórico completo - 34 versões
network
| Versão | Categorias | Operações | Paths | Modificado | OpenAPI | Referência | Doc oficial |
|---|---|---|---|---|---|---|---|
v10.3.58 ⭐ |
13 | 73 | 44 | 2026-06-02 | json | md | origem |
v10.1.84 |
12 | 67 | 38 | 2026-06-02 | json | md | origem |
v10.0.162 |
11 | 50 | 32 | 2026-06-02 | json | md | origem |
v9.5.21 |
5 | 15 | 12 | 2026-06-02 | json | md | origem |
v9.4.19 |
5 | 15 | 12 | 2026-06-02 | json | md | origem |
v9.4.17 |
5 | 15 | 12 | 2026-06-02 | json | md | origem |
v9.3.45 |
5 | 15 | 12 | 2026-06-02 | json | md | origem |
v9.3.43 |
5 | 15 | 12 | 2026-06-02 | json | md | origem |
v9.2.87 |
5 | 15 | 12 | 2026-06-02 | json | md | origem |
v9.2.86 |
5 | 15 | 12 | 2026-06-02 | json | md | origem |
v9.1.120 |
5 | 15 | 12 | 2026-06-02 | json | md | origem |
protect
| Versão | Categorias | Operações | Paths | Modificado | OpenAPI | Referência | Doc oficial |
|---|---|---|---|---|---|---|---|
v7.1.46 ⭐ |
22 | 73 | 54 | 2026-06-02 | json | md | origem |
v7.1.42 |
22 | 73 | 54 | 2026-06-02 | json | md | origem |
v7.0.107 |
12 | 35 | 25 | 2026-06-02 | json | md | origem |
v7.0.104 |
12 | 35 | 25 | 2026-06-02 | json | md | origem |
v7.0.94 |
12 | 35 | 25 | 2026-06-02 | json | md | origem |
v6.2.88 |
12 | 35 | 25 | 2026-06-02 | json | md | origem |
v6.2.87 |
12 | 35 | 25 | 2026-06-02 | json | md | origem |
v6.2.83 |
12 | 35 | 25 | 2026-06-02 | json | md | origem |
v6.2.72 |
12 | 35 | 25 | 2026-06-02 | json | md | origem |
v6.1.79 |
12 | 35 | 25 | 2026-06-02 | json | md | origem |
v6.1.78 |
12 | 35 | 25 | 2026-06-02 | json | md | origem |
v6.1.75 |
12 | 35 | 25 | 2026-06-02 | json | md | origem |
v6.1.68 |
12 | 35 | 25 | 2026-06-02 | json | md | origem |
v6.1.65 |
12 | 35 | 25 | 2026-06-02 | json | md | origem |
v6.0.53 |
12 | 35 | 25 | 2026-06-02 | json | md | origem |
v6.0.47 |
12 | 35 | 25 | 2026-06-02 | json | md | origem |
v6.0.41 |
12 | 35 | 25 | 2026-06-02 | json | md | origem |
v5.3.48 |
12 | 35 | 25 | 2026-06-02 | json | md | origem |
v5.3.45 |
12 | 35 | 25 | 2026-06-02 | json | md | origem |
v5.3.41 |
12 | 35 | 25 | 2026-06-02 | json | md | origem |
v5.3.38 |
12 | 35 | 25 | 2026-06-02 | json | md | origem |
python update_docs.py # todas as versões de todos os apps
python update_docs.py --latest-only # só a versão mais recente de cada app
python update_docs.py --app network # um app específico
python update_docs.py --dry-run # mostra o que mudaria, sem escrever
python update_readme.py # atualiza badges + catálogo dos READMEs
python validate.py # valida integridade (JSON, catálogo, links)Não precisa de navegador nem de credenciais: o update_docs.py lê o sitemap.xml oficial, descobre os pares app/versão, baixa o payload RSC de cada página (header RSC: 1) e extrai o OpenAPI completo embutido. Tudo com a biblioteca padrão do Python.
O workflow .github/workflows/update-docs.yml roda diariamente (e sob demanda), regenera tudo e faz commit apenas quando a documentação muda na origem - então versões novas aparecem sozinhas assim que a Ubiquiti as publica.