Assistant CoreAssistant Core
Developer API

Overview

Connect your application to an assistant's chat, files, conversations, and voice.

The Developer API lets a backend call an assistant over REST, Server-Sent Events (SSE), and WebSocket. The API key identifies the assistant; your application supplies an external_user_id to isolate conversations and memory for each end user.

Developer API v1 is in Preview. The contract may change before the API reaches GA.

  1. The client signs in to your application backend.
  2. Your backend maps the authenticated user to a stable external_user_id.
  3. Your backend calls the Developer API with an API key stored in a secret manager.
  4. Your backend returns JSON or forwards SSE to the client. For voice, it returns only the short-lived session details and websocket_url.

Do not accept an arbitrary external_user_id from the client and pass it through to Assistant Core. Derive it from the authenticated user or session so one user cannot access another user's conversations.

Endpoints and scopes

EndpointScopePurpose
POST /v1/chat/responseschat:writeCreate a JSON response or SSE stream.
GET /v1/responses/{id}chat:writeRetrieve a finished response.
POST /v1/filesfiles:writeUpload a file for an external user.
GET /v1/conversations/{id}conversations:readRetrieve conversation metadata.
GET /v1/conversations/{id}/messagesconversations:readRead paginated message history.
POST /v1/messages/{id}/feedbackfeedback:writeSubmit an up or down rating.
POST /v1/voice/sessionsvoice:connectCreate a short-lived token for the Voice WebSocket.
DELETE /v1/users/{external_user_id}users:deleteErase an end user's data.

Choose an integration

GoalUse
Add a ready-made chat interface to a websiteWeb Widget
Build a custom UI, workflow, or backend automationDeveloper API
Build a voice client and manage audio yourselfVoice API
Use the ready-made chat and voice app on your domainWeb App

An API key is a server-side secret. Never put it in a browser, mobile application, source code, URL, or logs. Browser voice receives only a short-lived, single-use session token.

Implementation path

On this page