Skip to content
VOL for Developers

Build knowledge maps into your product

A public REST API, a typed TypeScript SDK, React atoms for the graph and the chat, and a script embed. Everything VOL does, available to you.

Public API

A clean, predictable REST API

JSON over HTTPS, API-key authentication, consistent errors and binary graph endpoints optimised for the 3D viewer.

API reference
terminal
curl https://vol.com/api/v1/search \
  -H "X-API-Key: $VOL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"case":"papers","query":"perovskite stability","topK":5}'
  • POST/v1/chat
  • POST/v1/search
  • GET/v1/cases
  • GET/v1/graph/{case}/meta
  • GET/v1/graph/{case}/nodes/{i}
  • GET/v1/graph/{case}/neighbors/{i}
Graph & Chat components

React atoms for maps and chat

Drop VolGraph and VolChat into any React app. They share one provider, stream answers and highlight cited nodes automatically.

  • Themeable with VOL UI tokens
  • Lazy-loaded 3D viewer
  • Fully typed props and events
Components docs
Research.tsx
import { VolProvider, VolChat, VolGraph, type VolGraphFocus } from "@vol/atoms";

export function Research() {
  const [focus, setFocus] = useState<VolGraphFocus>();
  return (
    <VolProvider apiKey={import.meta.env.VITE_VOL_KEY} defaultCase="papers">
      <VolGraph focus={focus} height={480} />
      <VolChat
        onAnswer={(r) => setFocus({ citations: r.citations.map((c) => c.nodeIndex), clusters: r.clusters })}
      />
    </VolProvider>
  );
}
Embed

One script tag, anywhere

No framework needed. The embed installs a Web Component with Shadow DOM styles, plus inline, floating-button and modal modes.

  • ~8 kB gzip
  • Inline, floating or popup
  • Events for analytics
Embed guide
index.html
<script>
  (function (w, d, src) {
    w.Vol = w.Vol || function () { (w.Vol.q = w.Vol.q || []).push(arguments); };
    var s = d.createElement("script"); s.async = true; s.src = src; d.head.appendChild(s);
  })(window, document, "https://vol.com/embed/embed.js");
  Vol("init", { apiKey: "vol_live_…", case: "papers" });
  Vol("floatingButton", { buttonText: "Ask VOL" });
</script>
OAuth

Create an OAuth client

Let your users connect their VOL workspace to your app with scoped, revocable access. API keys work today for server-to-server use.

  1. 01Register your appName, logo and redirect URLs in Settings → Developer.
  2. 02Request scopeschat:read, search:read, graph:read, workspaces:read.
  3. 03Exchange the codeStandard authorization code flow with PKCE.

OAuth clients are in beta for Organizations and Enterprise plans.Request access.

FAQ

Frequently asked questions

These are some of our most frequently asked questions.

How do I get an API key?

Sign in, open Settings → API keys and create a key. The full key is shown only once; store it securely.

Are there rate limits?

Yes, generous per-plan limits. Responses include rate-limit headers, and the SDK retries politely.

Is there an OpenAPI spec?

Yes. The API reference in the docs is generated from the OpenAPI document served by the API.

Start building with VOL

  • Product of the day1st
  • Product of the week1st
  • Product of the month1st