# Vault API Master Reference

**Date:** July 16, 2026  
**Purpose:** Complete mapping of all Vault tokens to services, headers, and endpoints

---

## Verified Working Patterns

### Standard Header Types

| Header Type | Format | Services |
|-------------|--------|----------|
| Bearer | `Authorization: Bearer <token>` | Grist, Home Assistant, Metabase |
| xc-token | `xc-token: <token>` | NocoDB |
| api-key | `api-key: ***` | Qdrant |
| X-Api-Key | `X-Api-Key: ***` | Some APIs |

---

## Complete Vault Token Mapping

### `api/infrastructure`

| Token Key | Service | Base URL | Header Type | Status |
|-----------|---------|----------|-------------|--------|
| `gitea-token` | Gitea | — | Bearer | Not tested |
| `metabase-api-key` | Metabase | `http://metabase.beawit.net:3000` | Bearer | Not tested |
| `metabase-password` | Metabase | — | — | Not tested |
| `metabase-url` | Metabase | — | — | Not tested |
| `metabase-username` | Metabase | — | — | Not tested |
| `nocodb-table-id` | NocoDB | — | — | Not tested |
| `nocodb-token` | NocoDB | `http://192.168.25.5:8080` | xc-token | ✅ Works |
| `nocodb-url` | NocoDB | — | — | Not tested |
| `odoo-api-key` | Odoo | `http://192.168.16.4:8069` | Custom | ⚠️ Needs custom auth |
| `odoo-url` | Odoo | — | — | Not tested |
| `qdrant-api-key` | Qdrant | `http://192.168.19.17:6333` | api-key | ✅ Works |
| `qdrant-url` | Qdrant | — | — | Not tested |
| `rustfs-access-key` | RustFS | `http://192.168.19.17:9002` | — | Not tested |
| `rustfs-bucket` | RustFS | — | — | Not tested |
| `rustfs-endpoint` | RustFS | — | — | Not tested |
| `rustfs-secret-key` | RustFS | — | — | Not tested |

### `api/integration`

| Token Key | Service | Base URL | Header Type | 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 |

### `api/ai-ml`

| Token Key | Service | Base URL | Status |
|-----------|---------|----------|--------|
| `kokoro-api-key` | Kokoro TTS | — | Not tested |
| `kokoro-tts-url` | Kokoro TTS | — | Not tested |
| `ollama-api-key` | Ollama | — | Not tested |
| `openai-api-key` | OpenAI | — | Not tested |
| `serpapi-key` | SerpAPI | — | Not tested |

### `api/business`

| Token Key | Service | Base URL | Status |
|-----------|---------|----------|--------|
| `hunter-api-key` | Hunter.io | — | Not tested |
| `invoiceninja-api-key` | Invoice Ninja | — | Not tested |
| `invoiceninja-url` | Invoice Ninja | — | Not tested |
| `kimai-token` | Kimai | — | Not tested |
| `kimai-url` | Kimai | — | Not tested |
| `tavily-api-key` | Tavily | — | Not tested |

### `api/communication`

| Token Key | Service | Base URL | Status |
|-----------|---------|----------|--------|
| `telegram-user-id` | Telegram | — | Not tested |

### `api/media`

| Token Key | Service | Base URL | Status |
|-----------|---------|----------|--------|
| `freepik` | Freepik | — | Not tested |
| `json2video` | JSON2Video | — | Not tested |
| `pexels` | Pexels | — | Not tested |
| `youtube` | YouTube | — | Not tested |

### `api/monitoring`

| Token Key | Service | Base URL | Status |
|-----------|---------|----------|--------|
| `uptime-kuma-api-key` | Uptime Kuma | — | Not tested |
| `uptime-kuma-status-slug` | Uptime Kuma | — | Not tested |
| `uptime-kuma-url` | Uptime Kuma | — | Not tested |

### `api/search`

| Token Key | Service | Base URL | Status |
|-----------|---------|----------|--------|
| `firecrawl-api-key` | Firecrawl | — | Not tested |
| `serpapi` | SerpAPI | — | Not tested |
| `serpapi-key` | SerpAPI | — | Not tested |

---

## Working Examples

### Grist
```bash
python3 vault_api.py GET "https://grist.beawit.net" \
  "/api/docs/wmBGUbgBveCdeY8fZ6T6eL/tables/Intune/records" \
  "api/integration" "grist" "Bearer"
```

### NocoDB
```bash
python3 vault_api.py GET "http://192.168.25.5:8080" \
  "/api/v1/db/meta/projects" \
  "api/infrastructure" "nocodb-token" "xc-token"
```

### Qdrant
```bash
python3 vault_api.py GET "http://192.168.19.17:6333" \
  "/collections" \
  "api/infrastructure" "qdrant-api-key" "api-key"
```

### Home Assistant
```bash
python3 vault_api.py GET "http://homeassistant.beawit.net:8123" \
  "/api/" \
  "api/integration" "homeassistant-api-key" "Bearer"
```

---

## Known Issues

### n8n
- **Problem:** SSL certificate hostname mismatch (`TLSV1_UNRECOGNIZED_NAME`)
- **Solution:** Use HTTP instead of HTTPS, or fix certificate

### Odoo
- **Problem:** Uses session-based auth, not simple Bearer tokens
- **Solution:** Requires custom authentication flow (login + session cookie)

---

## Wrapper Location

`/home/jcbeasley/.openclaw/workspace/scripts/vault_api.py`

## Usage

```bash
python3 vault_api.py <METHOD> <BASE_URL> <API_PATH> <VAULT_PATH> <TOKEN_KEY> [header_type] [payload_file]
```

---

*All tokens verified in Vault as of July 16, 2026*
