Skip to main content
qlaud has two HTTP surfaces. Same auth, same wallet, same per-user billing. Different power-vs-simplicity tradeoff. The one you pick determines what your AI app gets out of the box.

TL;DR

Side-by-side

When to use /v1/messages

  • Your existing app already manages conversation history (Postgres, Supabase, in-memory, whatever).
  • You don’t want a managed connector layer.
  • You’re already shipping and just want billing + multi-provider routing without rewriting anything.
  • One-line migration: ANTHROPIC_BASE_URL=https://api.qlaud.ai.
What you get: routing, fallback, per-user keys with spend caps, per-user usage rollup. What you don’t: connectors, threads, semantic search.

When to use /v1/threads/:id/messages

  • You’re building a chatbot, agent, or AI feature with end-user identity.
  • You want to give the model access to Linear, GitHub, Notion, Stripe, ClickUp, and the other 100+ vendors in the catalog — without writing a per-vendor integration.
  • You want conversation history without running a database for it.
  • You want semantic search across past chats without running a vector index.
What you get: everything from /v1/messages PLUS auto-managed threads, 105 catalog connectors auto-discoverable per end-user, semantic search, and the built-in tool dispatch loop. Send the next user turn, qlaud handles the rest, returns the assistant reply.

The tools_mode flag

/v1/threads/:id/messages accepts tools_mode in the body. It controls whether the model gets the meta-tools (auto-discovery) or only the explicit tools you list: For most chatbots, the default behavior is the right one — pass no tools, get dynamic discovery, the model self-serves.

Disabling specific catalog vendors

If you want to suppress Linear (or any catalog vendor) from your end-users’ discovery without disabling all of them:
Reversible via /v1/mcp-catalog/enable. List currently disabled via GET /v1/mcp-catalog/disabled.

Bringing your own MCP server or webhook tool

Both surfaces support custom tools you register yourself. They appear alongside catalog tools in dynamic-mode discovery.
  • Custom MCP server: POST /v1/mcp-servers with server_url + optional auth_headers. Any HTTPS-reachable MCP server (your own, or a long-tail vendor not in our catalog).
  • Custom webhook tool: POST /v1/tools with webhook_url + input_schema. qlaud HMAC-signs the dispatch; your endpoint returns the result.
See /api-reference/mcp and /api-reference/tools for details.

Migration shape

Common questions

Can I mix the two on the same wallet? Yes. They share auth, billing, and key scopes. Pick per-route. If I switch from /v1/messages to Threads, what migrates? Nothing historical — your prior conversations live in your existing DB. New conversations start fresh in qlaud. Does the model see prior messages on Threads? Yes — qlaud auto-loads them. Long threads use a sliding-window strategy; override by passing an explicit messages array if you need control.