VOLUME
Developer · REST API

A REST API you can actually finish reading.

Every VOLUME workspace can generate API keys under Settings → API keys. Pass them as Authorization: Bearer vk_live_… on every request. All responses are JSON.

 

Authentication

Every request must include an Authorization header with a Bearer token generated in your dashboard. Tokens are workspace-scoped and can be revoked at any time.

curl https://www.volumevirtual.com/api/public/v1/tours \
  -H "Authorization: Bearer vk_live_YOUR_TOKEN_HERE"
  • Rate limit: 120 GET / min · 60 POST / min per key. 429 with a Retry-After header when exceeded.
  • Requests without a valid Bearer token return 401 unauthorized.
  • Revoked keys stop working immediately — no grace window.
/tours

Tours

GET/tours

List every tour in the workspace, newest first. Supports cursor pagination via ?cursor=.

curl "https://www.volumevirtual.com/api/public/v1/tours?limit=25&status=live" \
  -H "Authorization: Bearer vk_live_…"
Example response
{
  "data": [
    {
      "id":            "01H8G4…",
      "slug":          "2381-bellevue",
      "address":       "2381 Bellevue Ave",
      "area":          "West Vancouver",
      "vertical":      "RE",
      "status":        "live",
      "file_size_mb":  14.2,
      "rooms_walked":  12,
      "view_count":    412,
      "published_at":  "2026-08-12T18:04:00Z",
      "created_at":    "2026-08-12T17:32:11Z",
      "poster_url":    "https://cdn.volumevirtual.com/…/poster.jpg"
    }
  ],
  "next_cursor": "2026-08-01T00:00:00Z"
}
GET/tours/:slug

Full detail for a single tour — includes the download URL for the .ply file.

curl "https://www.volumevirtual.com/api/public/v1/tours/2381-bellevue" \
  -H "Authorization: Bearer vk_live_…"
/leads

Leads

GET/leads

List showing requests. Same pagination model as tours.

curl "https://www.volumevirtual.com/api/public/v1/leads?status=new&limit=50" \
  -H "Authorization: Bearer vk_live_…"
POST/leads

Capture a new lead from an external form (e.g. a partner site or MLS integration).

curl -X POST "https://www.volumevirtual.com/api/public/v1/leads" \
  -H "Authorization: Bearer vk_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "name":      "Michael Chen",
    "email":     "michael@example.com",
    "phone":     "+1 604-555-0100",
    "tour_slug": "2381-bellevue",
    "message":   "Available Saturday morning?",
    "source":    "mls-portal"
  }'
Example response
{
  "data": {
    "id":         "01H8H2…",
    "created_at": "2026-09-04T18:04:00Z"
  }
}
 

Errors + status codes

  • 400 — bad request body / invalid parameters
  • 401 — missing or invalid Bearer token
  • 404 — resource not in your workspace (no info leak)
  • 429 — rate-limit exceeded, honor Retry-After
  • 500 — our fault — captured to Sentry, safe to retry with backoff
 

Prefer webhooks?

Every event that happens in your workspace can also be pushed to an HTTPS endpoint you own — signed with HMAC-SHA256, retried on failure, replayable from the dashboard. Configure under Settings → Integrations.

Need something we don't expose yet?

Email enterprise@volumevirtual.com with your use case. If it's reasonable, it usually ships in a week.