Build with AI: use Claude, ChatGPT, Cursor, Codex and other AI tools to build with Zentiq
Zentiq's REST API is made to be used by AI coding tools as well as by people. Today you can point your AI tool at Zentiq's documentation, give it the Zentiq skill, and let it write the code that calls the API with your API key. A hosted connector, so assistants can build and run your organisation after you sign in, is coming soon.
What works today#
1. An API key#
In the Zentiq console, open API keys and choose Create key. Your plan must include the developer API (the page tells you if it doesn't). Keep the key on your server, never in a web page or a repository, and send it as a Bearer token:
curl https://app.zentiqai.com/v1/me -H "Authorization: Bearer $ZENTIQ_API_KEY"Every answer is a JSON envelope: { "data": …, "error": null, "requestId": "req_…" }. Lists add nextCursor (pass it back as ?cursor=). Errors are { "error": { "code", "message" } }.
2. Give your AI tool Zentiq's documentation#
These addresses are written for AI tools. Paste one into your tool's chat, or add it wherever your tool keeps documentation sources:
| Address | What it holds |
|---|---|
https://app.zentiqai.com/llms.txt | A short map of Zentiq's documentation (the llms.txt format) |
https://app.zentiqai.com/llms-full.txt | Everything in one file: these guides, the whole API reference and the help centre |
https://app.zentiqai.com/v1/openapi.json | The API as an OpenAPI 3.1 document, for tools that read one |
https://app.zentiqai.com/v1/reference | The API reference, to read and try |
A prompt that works well: "Read https://app.zentiqai.com/llms-full.txt, then add a Zentiq avatar to this app: my server starts a session with my API key from the ZENTIQ_API_KEY environment variable, and the page shows the avatar."
3. The Zentiq skill for Claude#
A skill teaches Claude how to add a Zentiq avatar, the website widget and webhooks to your own app, calling the REST API. Download it from app.zentiqai.com/ai/zentiq/SKILL.md, then:
- Claude Code: save it as
~/.claude/skills/zentiq/SKILL.md(for all your projects) or.claude/skills/zentiq/SKILL.md(for one project). - claude.ai: put it in a folder named
zentiq, zip the folder, then open Customize, Skills, and upload it (code execution must be on in your settings).
Other AI tools can read the same file as instructions: add it to the project's rules or paste it into the chat.
4. Call the API from your code#
Any language that can send HTTPS requests works. In Node 18 or later, with nothing to install:
const ZENTIQ = "https://app.zentiqai.com/v1";
const headers = { Authorization: `Bearer ${process.env.ZENTIQ_API_KEY}`, "Content-Type": "application/json" };
// Your avatars
const personas = await fetch(`${ZENTIQ}/personas`, { headers }).then((r) => r.json());
console.log(personas.data.map((p) => `${p.id} ${p.name}`));
// Start a live session for your page (the browser joins with the token; the key stays here)
const res = await fetch(`${ZENTIQ}/sessions/tokens`, {
method: "POST",
headers: { ...headers, "Idempotency-Key": crypto.randomUUID() },
body: JSON.stringify({ personaId: personas.data[0].id }),
});
const { data: token } = await res.json(); // { sessionId, sessionToken, url, persona, disclosure }The full list of operations is in the API reference.
The SDKs on npm today#
Two packages are published. Both are early versions: they work, and cover less than the API.
@zentiq/node0.2.0 (server): personas, voices and avatars (list, get, create or clone, delete), live sessions (start a token, steer, say, transcript, end), webhooks, keys,me,usage, andverifyWebhookfor webhook signatures. Not in it yet: portals, knowledge and languages, and theconsenta new avatar or cloned voice now needs. Call the REST API directly for those.@zentiq/client0.2.0 (browser):startSession({ token, url, video, onTranscript, onSpeaking })joins a session with the token your server started and shows the avatar; it returns{ room, setMicrophoneEnabled, end }.npm install @zentiq/clientalso installs the one package it needs alongside it (npm 7 or later).
New versions of both, and SDKs for React and Python, are coming soon.
Coming soon: the hosted Zentiq connector#
Coming soon, with Zentiq's new API. Nothing in this section works yet: it is here so you know what is coming. Until then, use the REST API as above.
Zentiq will run a hosted MCP server, so the AI assistant you already use can build and run your Zentiq organisation for you: create avatars, give them knowledge, build and publish portals, put an avatar on your website and look after live sessions, just by asking. One address will work everywhere:
https://app.zentiqai.com/mcp- Sign in, no copying keys. Most apps connect with a sign-in window: an owner or admin signs in to Zentiq, sees what the app will be able to look at, ticks only the changes it may make (none is ticked for you: with nothing ticked it can look but never change anything), and chooses Allow. It can be disconnected at any time, in the console under API keys, Connected apps, and it stops working on its own within the hour when the person who allowed it leaves the organisation or is no longer an owner or admin (someone who still is can connect it again).
- Or an API key as a Bearer header, for apps that can send one.
- Every API operation becomes a tool, with the same scopes, limits and privacy rules as your own code. Tools that delete something, end or start a live conversation, publish, speak into a live session, send your data to another system or change your people ask you first, in a way the assistant can't answer for you: in your app's own window where it can show one; otherwise the tool first shows what it would do, and only the same call again with the code it gave does it (once, within five minutes, exactly as shown). No tool manages API keys or billing, reads a candidate's interview, or makes a hiring decision.
- What the public wrote is marked as data. Transcripts, leads' answers, messages and knowledge documents come back under
untrustedData, and the assistant is told that such text is never an instruction to follow.
How each app will connect (each app's own page has its current steps):
| App | How |
|---|---|
| Claude (claude.ai, Claude Desktop) | Customize, Connectors, Add custom connector, the address above, then Connect and sign in. On Team and Enterprise plans an owner adds it under Organization settings, Connectors. (Claude's guide) |
| Claude Code | claude mcp add --transport http zentiq https://app.zentiqai.com/mcp, then /mcp to sign in; or add --header "Authorization: Bearer $ZENTIQ_API_KEY". (guide) |
| ChatGPT | Developer mode (Settings, Security and login), then create an app with the address and OAuth sign-in. ChatGPT connects by sign-in only. (guide) |
| Cursor | { "mcpServers": { "zentiq": { "url": "https://app.zentiqai.com/mcp" } } } in ~/.cursor/mcp.json. (guide) |
| VS Code | { "servers": { "zentiq": { "type": "http", "url": "https://app.zentiqai.com/mcp" } } } in .vscode/mcp.json. (guide) |
| OpenAI Codex | codex mcp add zentiq --url https://app.zentiqai.com/mcp, then codex mcp login zentiq. (guide) |
| OpenAI Responses API | A { "type": "mcp", "server_label": "zentiq", "server_url": "https://app.zentiqai.com/mcp" } tool, with your key in headers. (guide) |
| Claude API | The MCP connector: mcp_servers: [{ "type": "url", "url": "https://app.zentiqai.com/mcp", "name": "zentiq", "authorization_token": "…" }] with an mcp_toolset. (guide) |
For client developers: Streamable HTTP (MCP protocol 2026-07-28, and 2025-11-25, 2025-06-18 and 2025-03-26 for older clients), OAuth 2.1 sign-in with PKCE, Client ID Metadata Documents or Dynamic Client Registration, and the read and write scopes (each change within write is granted only when ticked, so the token's scope can be narrower than asked; a scope Zentiq doesn't have is invalid_scope). Tools that need the person's go-ahead use a form (elicitation, 2026-07-28 multi round-trip) where the client declares it, else a confirmationCode. JSON-RPC batches only on 2025-03-26. Details will be here when it is live.
Your own model as the avatar's brain#
To have your own Claude or OpenAI model decide what the avatar says, turn by turn, see Bring your own brain. It works today, with the REST API.