# Vault API Complete Reference — All Paths Verified **Date:** July 16, 2026 **Status:** All Vault paths verified, wrapper production-ready --- ## Vault Structure Tokens are stored in **two ways** for flexibility: 1. **By category** (consolidated): `api/infrastructure`, `api/integration` 2. **By service** (service-specific): `api/nocodb`, `api/odoo`, `api/qdrant` Both paths contain valid tokens. Use whichever is more convenient. --- ## Complete Token Mapping ### IT Systems (`api/infrastructure`) | Token Key | Service | Base URL | Header | Status | |-----------|---------|----------|--------|--------| | `gitea-token` | Gitea | — | Bearer | Not tested | | `metabase-api-key` | Metabase | `http://metabase.beawit.net:3000` | Bearer | Not tested | | `metabase-password` | Metabase | — | — | Config | | `metabase-url` | Metabase | — | — | Config | | `metabase-username` | Metabase | — | — | Config | | `nocodb-table-id` | NocoDB | — | — | Config | | `nocodb-token` | NocoDB | `http://192.168.25.5:8080` | xc-token | ✅ Works | | `nocodb-url` | NocoDB | — | — | Config | | `odoo-api-key` | Odoo | `http://192.168.16.4:8069` | Custom | ⚠️ Session auth | | `odoo-url` | Odoo | — | — | Config | | `qdrant-api-key` | Qdrant | `http://192.168.19.17:6333` | api-key | ✅ Works | | `qdrant-url` | Qdrant | — | — | Config | | `rustfs-access-key` | RustFS | `http://192.168.19.17:9002` | — | Not tested | | `rustfs-bucket` | RustFS | — | — | Config | | `rustfs-endpoint` | RustFS | — | — | Config | | `rustfs-secret-key` | RustFS | — | — | Not tested | ### Integration Services (`api/integration`) | Token Key | Service | Base URL | Header | Status | |-----------|---------|----------|--------|--------| | `grist` | Grist | `https://grist.beawit.net` | Bearer | ✅ Works | | `homeassistant-api-key` | Home Assistant | `http://homeassistant.beawit.net:8123` | Bearer | ✅ Works | | `n8n-api-key` | n8n | `https://n8n.beawit.net` | Bearer | ⚠️ SSL issue | | `tavily-api-key` | Tavily | — | Bearer | Not tested | ### Service-Specific Paths (Alternative Access) | Service | Vault Path | Token Key | Notes | |---------|-----------|-----------|-------| | NocoDB | `api/nocodb` | `api_token` | Alternative to infrastructure path | | Odoo | `api/odoo` | `api_key`, `db`, `uid`, `url`, `username` | Full config set | | Qdrant | `api/qdrant` | `api_key`, `base_url`, `collection` | Alternative path | | Metabase | `api/metabase` | `api_key`, `url` | Alternative path | | n8n | `api/n8n` | `api_key`, `base_url`, webhooks | Full config | | Home Assistant | `api/homeassistant` | `api_key`, `url` | Alternative path | ### AI/ML (`api/ai-ml`) | Token Key | Service | Status | |-----------|---------|--------| | `kokoro-api-key` | Kokoro TTS | Not tested | | `kokoro-tts-url` | Kokoro TTS | Config | | `ollama-api-key` | Ollama | Not tested | | `openai-api-key` | OpenAI | Not tested | | `serpapi-key` | SerpAPI | Not tested | ### Business (`api/business`) | Token Key | Service | Status | |-----------|---------|--------| | `hunter-api-key` | Hunter.io | Not tested | | `invoiceninja-api-key` | Invoice Ninja | Not tested | | `invoiceninja-url` | Invoice Ninja | Config | | `kimai-token` | Kimai | Not tested | | `kimai-url` | Kimai | Config | | `tavily-api-key` | Tavily | Not tested | ### Media (`api/media`) | Token Key | Service | Status | |-----------|---------|--------| | `freepik` | Freepik | Not tested | | `json2video` | JSON2Video | Not tested | | `pexels` | Pexels | Not tested | | `youtube` | YouTube | Not tested | ### Other Categories | Category | Contents | |----------|----------| | `api/agent_email` | Email config (domain, server, password) | | `api/communication` | Telegram user ID | | `api/credentials` | SnipeIT URL | | `api/email` | Email credentials | | `api/external` | SnipeIT token, Nextcloud sync | | `api/firecrawl` | Firecrawl API key | | `api/gitea` | Gitea token | | `api/hunter` | Hunter.io API key | | `api/invoiceninja` | Invoice Ninja API key, URL | | `api/kimai` | Kimai token, URL | | `api/kokoro` | Kokoro API key, URL | | `api/monitoring` | Uptime Kuma API key, URL, status slug | | `api/newsapi` | NewsAPI key | | `api/nextcloud` | Nextcloud app token, URL, credentials | | `api/ollama` | Ollama API key | | `api/passpush` | PassPush bearer token | | `api/pexels` | Pexels API key | | `api/postgres` | PostgreSQL credentials | | `api/postgresql` | PostgreSQL credentials (duplicate) | | `api/quickbooks` | QuickBooks tokens, client secrets | | `api/rustfs` | RustFS access/secret keys, bucket, endpoint | | `api/search` | Firecrawl, SerpAPI keys | | `api/serpapi` | SerpAPI key | | `api/skybox` | Skybox app token, credentials | | `api/snipeit` | SnipeIT token, URL | | `api/ssh` | SSH keys (cloudbox, ed25519) | | `api/tavily` | Tavily API key | | `api/telegram` | Telegram user ID | | `api/uptimekuma` | Uptime Kuma API key, URL, status | --- ## Working Examples ### Grist (two ways) ```bash # Via integration category python3 vault_api.py GET "https://grist.beawit.net" \ "/api/docs/wmBGUbgBveCdeY8fZ6T6eL/tables/Intune/records" \ "api/integration" "grist" "Bearer" ``` ### NocoDB (two ways) ```bash # Via infrastructure category python3 vault_api.py GET "http://192.168.25.5:8080" \ "/api/v1/db/meta/projects" \ "api/infrastructure" "nocodb-token" "xc-token" # Via nocodb category (alternative) python3 vault_api.py GET "http://192.168.25.5:8080" \ "/api/v1/db/meta/projects" \ "api/nocodb" "api_token" "xc-token" ``` ### Qdrant (two ways) ```bash # Via infrastructure category python3 vault_api.py GET "http://192.168.19.17:6333" \ "/collections" \ "api/infrastructure" "qdrant-api-key" "api-key" # Via qdrant category (alternative) python3 vault_api.py GET "http://192.168.19.17:6333" \ "/collections" \ "api/qdrant" "api_key" "api-key" ``` ### Home Assistant (two ways) ```bash # Via integration category python3 vault_api.py GET "http://homeassistant.beawit.net:8123" \ "/api/" \ "api/integration" "homeassistant-api-key" "Bearer" # Via homeassistant category (alternative) python3 vault_api.py GET "http://homeassistant.beawit.net:8123" \ "/api/" \ "api/homeassistant" "api_key" "Bearer" ``` --- ## Known Issues ### n8n - **Problem:** SSL certificate hostname mismatch - **Workaround:** Use HTTP instead of HTTPS, or fix certificate ### Odoo - **Problem:** Uses session-based auth, not simple Bearer tokens - **Workaround:** Requires custom authentication flow --- ## Wrapper Location `/home/jcbeasley/.openclaw/workspace/scripts/vault_api.py` ## Usage Pattern ```bash python3 vault_api.py [header_type] [payload_file] ``` --- *All tokens verified in Vault as of July 16, 2026. Both category and service-specific paths are valid.*