Tabby Chat API

OpenAI-compatible chat completions and inline chat / Answer Engine.

Operations 2

POST /v1/chat/completions Chat completion (OpenAI-compatible) #
POST /v1beta/chat/completions Chat completion (legacy alias) #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/tabby-ml-chat-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

tabby-ml-chat-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Tabby Server Chat API
  description: Tabby is an open-source, self-hosted AI coding assistant (Apache-2.0) from TabbyML. You run the Tabby server yourself; it exposes an OpenAPI-documented REST surface for code completion, OpenAI-compatible chat completions, an Answer Engine backed by a doc-ingestion knowledge base, health, the model registry, and telemetry events. The interactive Swagger UI is served at /swagger-ui and the raw spec at /api-docs/openapi.json on your own instance. Because Tabby is self-hosted, the server URL below is a placeholder for your own deployment (default port 8080); replace it with your instance host. Endpoints authenticate with a Bearer registration token. Completion and chat endpoints return 501 Not Implemented when the corresponding model is not configured.
  version: 0.17.0
  contact:
    name: TabbyML
    url: https://www.tabbyml.com
  license:
    name: Apache-2.0
    url: https://github.com/TabbyML/tabby/blob/main/LICENSE
servers:
- url: http://localhost:8080
  description: Self-hosted Tabby instance (default). Replace host and port with your own deployment.
security:
- bearerAuth: []
tags:
- name: Chat
  description: OpenAI-compatible chat completions and inline chat / Answer Engine.
paths:
  /v1/chat/completions:
    post:
      operationId: chatCompletions
      tags:
      - Chat
      summary: Chat completion (OpenAI-compatible)
      description: OpenAI-compatible chat completions. Streams responses as Server-Sent Events. Powers Tabby's inline chat and Answer Engine. Returns 501 when no chat model is configured.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChatCompletionRequest'
      responses:
        '200':
          description: A stream of chat completion chunks (text/event-stream) or a JSON completion.
          content:
            text/event-stream:
              schema:
                type: string
            application/json:
              schema:
                $ref: '#/components/schemas/ChatCompletionResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '501':
          description: No chat model configured.
  /v1beta/chat/completions:
    post:
      operationId: chatCompletionsBeta
      tags:
      - Chat
      summary: Chat completion (legacy alias)
      description: Backward-compatible alias of POST /v1/chat/completions.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChatCompletionRequest'
      responses:
        '200':
          description: A stream of chat completion chunks (text/event-stream) or a JSON completion.
          content:
            text/event-stream:
              schema:
                type: string
        '401':
          $ref: '#/components/responses/Unauthorized'
        '501':
          description: No chat model configured.
components:
  schemas:
    ChatCompletionRequest:
      type: object
      properties:
        messages:
          type: array
          items:
            $ref: '#/components/schemas/ChatMessage'
        model:
          type: string
        stream:
          type: boolean
          default: true
        temperature:
          type: number
          format: float
      required:
      - messages
    ChatMessage:
      type: object
      properties:
        role:
          type: string
          enum:
          - system
          - user
          - assistant
        content:
          type: string
      required:
      - role
      - content
    ChatCompletionResponse:
      type: object
      properties:
        id:
          type: string
        choices:
          type: array
          items:
            type: object
            properties:
              index:
                type: integer
              message:
                $ref: '#/components/schemas/ChatMessage'
  responses:
    Unauthorized:
      description: Missing or invalid bearer token.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'Bearer token authentication. Use the registration token from the Tabby web UI (Information -> System -> Registration token), passed as `Authorization: Bearer YOUR_TOKEN`.'