---
title: "Create Assistant"
method: POST
path: "/assistants"
tags: ["Assistants"]
---

# Create Assistant

`POST /assistants`

Create a new assistant for the authenticated user. Optionally configure embedding model for RAG (defaults to OpenAI text-embedding-3-large with 3072 dimensions).

## Headers

- `authorization` string, nullable
- `x_session_token` string, nullable

## Request body

- AssistantCreate
  - `name` string, required — Name of the assistant
  - `system_prompt` string, nullable — Optional system prompt (alias for description)
  - `tools` ToolDefinition[], nullable — List of tools available to the assistant
    - `type` string — Type of the tool, e.g., 'function'
    - `function` FunctionDefinition, required
      - `name` string, required — Name of the function to be called
      - `description` string, nullable — Description of what the function does
      - `parameters` ToolParameters, required
        - `type` string — The type of the parameters object, typically 'object'
        - `properties` object, required — Parameter definitions
        - `required` string[], nullable — List of required parameter names
  - `tok_k` integer — Document search top_k for the internal search_documents tool (default 10).
  - `custom_fact_extraction_prompt` string, nullable — Custom prompt for fact extraction from conversations. If not set, the default prompt is used.
  - `custom_update_memory_prompt` string, nullable — Custom prompt for memory update decisions (add/update/delete). If not set, the default prompt is used.

## Response `200`

Successful Response

- Assistant
  - `name` string, required — Name of the assistant
  - `system_prompt` string, nullable — Optional system prompt (alias for description)
  - `tools` ToolDefinition[], nullable — List of tools available to the assistant
    - `type` string — Type of the tool, e.g., 'function'
    - `function` FunctionDefinition, required
      - `name` string, required — Name of the function to be called
      - `description` string, nullable — Description of what the function does
      - `parameters` ToolParameters, required
        - `type` string — The type of the parameters object, typically 'object'
        - `properties` object, required — Parameter definitions
        - `required` string[], nullable — List of required parameter names
  - `tok_k` integer — Document search top_k for the internal search_documents tool (default 10).
  - `embedding_provider` string, nullable — Embedding provider (openai, google, cohere, etc.)
  - `embedding_model_name` string, nullable — Embedding model name (e.g., text-embedding-3-large, text-embedding-004)
  - `embedding_dims` integer, nullable — Embedding dimensions (e.g., 1024 for Cohere, 3072 for OpenAI text-embedding-3-large)
  - `custom_fact_extraction_prompt` string, nullable — Custom prompt for fact extraction from conversations. If not set, the default prompt is used.
  - `custom_update_memory_prompt` string, nullable — Custom prompt for memory update decisions (add/update/delete). If not set, the default prompt is used.
  - `assistant_id` string, uuid, required
  - `created_at` string, date-time, required

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/backboard/apis/backboard-api.md) · [All operations](https://skmtc.dev/backboard/apis/backboard-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/backboard/backboard-api/revisions/e732d11ca11a/schema)
