Account & API keys
Identity and API key management. Keys belong to a user; create the first one from the app (user session), then any of that user’s credentials can manage them.
| Method | Path |
|---|---|
| GET | /api/v1/me |
| GET | /api/v1/keys |
| POST | /api/v1/keys |
| DELETE | /api/v1/keys/{id} |
Current user
Section titled “Current user”GET /api/v1/me
Identity behind the credentials.
Auth: API key (X-API-Key) or user session
curl "https://vol.example.com/api/v1/me" \ -H "X-API-Key: $VOL_API_KEY"import { VolClient } from "@vol/sdk";
const vol = new VolClient({ baseUrl: "https://vol.example.com/api", apiKey: process.env.VOL_API_KEY });await vol.me();import os, requests
r = requests.get( "https://vol.example.com/api/v1/me", headers={"X-API-Key": os.environ["VOL_API_KEY"]}, timeout=60,)r.raise_for_status()print(r.json())Response 200
{ "id": "4b0c…", "email": "you@example.com"}List API keys
Section titled “List API keys”GET /api/v1/keys
Keys owned by the current user. Only the prefix is returned.
Auth: API key (X-API-Key) or user session
curl "https://vol.example.com/api/v1/keys" \ -H "X-API-Key: $VOL_API_KEY"import { VolClient } from "@vol/sdk";
const vol = new VolClient({ baseUrl: "https://vol.example.com/api", apiKey: process.env.VOL_API_KEY });await vol.keys.list();import os, requests
r = requests.get( "https://vol.example.com/api/v1/keys", headers={"X-API-Key": os.environ["VOL_API_KEY"]}, timeout=60,)r.raise_for_status()print(r.json())Response 200
[ { "id": "key_8f2a", "name": "production backend", "prefix": "vol_live_3kq", "createdAt": "2026-10-01T09:12:00Z", "lastUsedAt": "2026-10-15T18:03:11Z" }]Create API key
Section titled “Create API key”POST /api/v1/keys
Creates a key. The full key is returned only once.
From the API schema: The full key (
vol_live_...) is returned only in this response; store it safely.
Auth: API key (X-API-Key) or user session
Request body
{ "name": "production backend"}curl -X POST "https://vol.example.com/api/v1/keys" \ -H "X-API-Key: $VOL_API_KEY" \ -H "Content-Type: application/json" \ -d '{"name":"production backend"}'import { VolClient } from "@vol/sdk";
const vol = new VolClient({ baseUrl: "https://vol.example.com/api", apiKey: process.env.VOL_API_KEY });const { key } = await vol.keys.create("production backend");import os, requests
r = requests.post( "https://vol.example.com/api/v1/keys", headers={"X-API-Key": os.environ["VOL_API_KEY"]}, json={ "name": "production backend" }, timeout=60,)r.raise_for_status()print(r.json())Response 201
{ "id": "key_8f2a", "name": "production backend", "prefix": "vol_live_3kq", "createdAt": "2026-10-16T10:00:00Z", "lastUsedAt": null, "key": "vol_live_3kq…"}Revoke API key
Section titled “Revoke API key”DELETE /api/v1/keys/{id}
Revokes a key immediately. Returns 204 No Content.
Auth: API key (X-API-Key) or user session
curl -X DELETE "https://vol.example.com/api/v1/keys/key_8f2a" \ -H "X-API-Key: $VOL_API_KEY"import { VolClient } from "@vol/sdk";
const vol = new VolClient({ baseUrl: "https://vol.example.com/api", apiKey: process.env.VOL_API_KEY });await vol.keys.revoke("key_8f2a");import os, requests
r = requests.delete( "https://vol.example.com/api/v1/keys/key_8f2a", headers={"X-API-Key": os.environ["VOL_API_KEY"]}, timeout=60,)r.raise_for_status()# 204 No ContentResponse: 204 No Content
interface ApiKey { id: string; name: string; prefix: string; createdAt: string; lastUsedAt: string | null }