---
type: api
title: Perform completion inference on the service
url: https://www.elastic.co/elastic/docs-builder/docs/4493/api/doc/elasticsearch/v8/operation/operation-inference-completion
resource: https://www.elastic.co/elastic/docs-builder/docs/4493/api/doc/elasticsearch/v8/operation/operation-inference-completion
products:
  - Elasticsearch
---

# Perform completion inference on the service

Availability: Generally available since 8.11

## Paths

- `POST` `/_inference/completion/{inference_id}`

#### Path parameters

- `inference_id` (string) — required
  The inference Id

## 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 request to complete.

## Request body

`application/json`

- `input` (union string | string[]) — required
  Inference input.
Either a string or an array of strings.
- `task_settings` (object) — optional
  Optional task settings

## Response

`application/json`

- `completion` (object[])
  - `result` (string)
## Code examples

#### Console

```console
POST _inference/completion/openai_chat_completions
{
  "input": "What is Elastic?"
}
```

#### JavaScript

```javascript
const response = await client.inference.completion({
  inference_id: "openai_chat_completions",
  input: "What is Elastic?",
});
```

#### Python

```python
resp = client.inference.completion(
    inference_id="openai_chat_completions",
    input="What is Elastic?",
)
```

#### curl

```curl
curl -X POST "$ELASTICSEARCH_URL/_inference/completion/openai_chat_completions" \
  -H "Authorization: ApiKey $ELASTIC_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "input": "What is Elastic?"
  }'
```

#### Java

```java
client.inference().completion(c -> c
    .inferenceId("openai_chat_completions")
    .input("What is Elastic?")
);
```

#### C#

```c#
var response = await client.Inference
    .CompletionAsync(inferenceId: "openai_chat_completions", d1 => d1
        .Input("What is Elastic?")
    );
```

#### PHP

```php
$resp = $client->inference()->completion([
    "inference_id" => "openai_chat_completions",
    "body" => [
        "input" => "What is Elastic?",
    ],
]);
```

#### Ruby

```ruby
response = client.inference.completion(
  inference_id: "openai_chat_completions",
  body: {
    "input": "What is Elastic?"
  }
)
```

## Response examples

#### Completion task

A successful response from `POST _inference/completion/openai_chat_completions`.

```json
{
  "completion": [
    {
      "result": "Elastic is a company that provides a range of software solutions for search, logging, security, and analytics. Their flagship product is Elasticsearch, an open-source, distributed search engine that allows users to search, analyze, and visualize large volumes of data in real-time. Elastic also offers products such as Kibana, a data visualization tool, and Logstash, a log management and pipeline tool, as well as various other tools and solutions for data analysis and management."
    }
  ]
}
```

