---
type: api
title: Create a DeepSeek inference endpoint
description: Create an inference endpoint to perform an inference task with the `deepseek` service.
url: https://www.elastic.co/elastic/docs-builder/docs/4493/api/doc/elasticsearch/v8/operation/operation-inference-put-deepseek
resource: https://www.elastic.co/elastic/docs-builder/docs/4493/api/doc/elasticsearch/v8/operation/operation-inference-put-deepseek
products:
  - Elasticsearch
---

# Create a DeepSeek inference endpoint

Availability: Generally available since 8.19

## Paths

- `PUT` `/_inference/{task_type}/{deepseek_inference_id}`

#### Path parameters

- `task_type` (enum) — required
  The type of the inference task that the model will perform.
  Values: `completion`, `chat_completion`
- `deepseek_inference_id` (string) — required
  The unique identifier of the inference endpoint.

## Description

Create an inference endpoint to perform an inference task with the `deepseek` service.

## Required authorization

- Cluster privileges: `manage_inference`

## Authentication

- Api key: `Authorization: <value>`
  Elasticsearch APIs support key-based authentication.
  You must create an API key and use the encoded value in the request header.
  For example:
  
  
  ```
  curl -X GET "${ES_URL}/_cat/indices?v=true" \
    -H "Authorization: ApiKey ${API_KEY}"
  ```
  
  To get API keys, use the `/_security/api_key` APIs.
- Basic: `Authorization: Basic <credentials>`
- Bearer: `Authorization: Bearer <token>`
  Elasticsearch APIs support the use of bearer tokens in the `Authorization` HTTP header to authenticate with the API.
  For examples, refer to [Token-based authentication services](https://www.elastic.co/guide/en/elasticsearch/reference/current/token-authentication-services.html)

## Query string parameters

- `timeout` (string · default: 30s) — optional
  Specifies the amount of time to wait for the inference endpoint to be created.

## Request body

`application/json`

- `chunking_settings` (object) — optional
  The chunking configuration object.
  - `max_chunk_size` (number · default: 250) — optional
    The maximum size of a chunk in words.
This value cannot be higher than `300` or lower than `20` (for `sentence` strategy) or `10` (for `word` strategy).
  - `overlap` (number · default: 100) — optional
    The number of overlapping words for chunks.
It is applicable only to a `word` chunking strategy.
This value cannot be higher than half the `max_chunk_size` value.
  - `sentence_overlap` (number · default: 1) — optional
    The number of overlapping sentences for chunks.
It is applicable only for a `sentence` chunking strategy.
It can be either `1` or `0`.
  - `strategy` (string · default: sentence) — optional
    The chunking strategy: `sentence` or `word`.
- `service` (enum) — required
  The type of service supported for the specified task type. In this case, `deepseek`.
  Values: `deepseek`
- `service_settings` (object) — required
  Settings used to install the inference model.
These settings are specific to the `deepseek` service.
  - `api_key` (string) — required
    A valid API key for your DeepSeek account.
You can find or create your DeepSeek API keys on the DeepSeek API key page.

IMPORTANT: You need to provide the API key only once, during the inference model creation.
The get inference endpoint API does not retrieve your API key.
  - `model_id` (string) — required
    For a `completion` or `chat_completion` task, the name of the model to use for the inference task.

For the available `completion` and `chat_completion` models, refer to the [DeepSeek Models & Pricing docs](https://api-docs.deepseek.com/quick_start/pricing).
  - `url` (string) — optional
    The URL endpoint to use for the requests. Defaults to `https://api.deepseek.com/chat/completions`.

## Response

`application/json`

- `chunking_settings` (object)
  Chunking configuration object
  - `max_chunk_size` (number · default: 250)
    The maximum size of a chunk in words.
This value cannot be higher than `300` or lower than `20` (for `sentence` strategy) or `10` (for `word` strategy).
  - `overlap` (number · default: 100)
    The number of overlapping words for chunks.
It is applicable only to a `word` chunking strategy.
This value cannot be higher than half the `max_chunk_size` value.
  - `sentence_overlap` (number · default: 1)
    The number of overlapping sentences for chunks.
It is applicable only for a `sentence` chunking strategy.
It can be either `1` or `0`.
  - `strategy` (string · default: sentence)
    The chunking strategy: `sentence` or `word`.
- `service` (string)
  The service type
- `service_settings` (object)
  Settings specific to the service
- `task_settings` (object)
  Task settings specific to the service and task type
- `inference_id` (string)
  The inference Id
- `task_type` (enum)
  The task type
  Values: `completion`, `chat_completion`
## Code examples

#### Console

```console
PUT /_inference/completion/DEEPSEEK_INFERENCE_ID
{
  "service": "deepseek",
  "service_settings": {
    "api_key": "string",
    "model_id": "string"
  }
}
```

#### curl

```curl
curl -X PUT "${ELASTICSEARCH_URL}/_inference/completion/${DEEPSEEK_INFERENCE_ID}" \
  -H "Authorization: ApiKey ${API_KEY}" \
  -H "Content-Type: application/json" \
  -d '{
    "service": "deepseek",
    "service_settings": {
      "api_key": "string",
      "model_id": "string"
    }
  }'
```

