[role="xpack"]
[[get-inference-api]]
=== Get {infer} API

experimental[]

Retrieves {infer} model information.

IMPORTANT: The {infer} APIs enable you to use certain services, such as ELSER,
OpenAI, or Hugging Face, in your cluster. This is not the same feature that you
can use on an ML node with custom {ml} models. If you want to train and use your
own model, use the <<ml-df-trained-models-apis>>.


[discrete]
[[get-inference-api-request]]
==== {api-request-title}

`GET /_inference/_all`

`GET /_inference/<inference_id>`

`GET /_inference/<task_type>/_all`

`GET /_inference/<task_type>/<inference_id>`

[discrete]
[[get-inference-api-prereqs]]
==== {api-prereq-title}

* Requires the `monitor_inference` <<privileges-list-cluster,cluster privilege>>
(the built-in `inference_admin` and `inference_user` roles grant this privilege)

[discrete]
[[get-inference-api-desc]]
==== {api-description-title}

You can get information in a single API request for:

* a single {infer} model by providing the task type and the model ID,
* all of the {infer} models for a certain task type by providing the task type
and a wildcard expression,
* all of the {infer} models by using a wildcard expression.


[discrete]
[[get-inference-api-path-params]]
==== {api-path-parms-title}

`<inference_id>`::
(Optional, string)
The unique identifier of the {infer} endpoint.


`<task_type>`::
(Optional, string)
The type of {infer} task that the model performs.


[discrete]
[[get-inference-api-example]]
==== {api-examples-title}

The following API call retrives information about the `my-elser-model` {infer}
model that can perform `sparse_embedding` tasks.


[source,console]
------------------------------------------------------------
GET _inference/sparse_embedding/my-elser-model
------------------------------------------------------------
// TEST[skip:TBD]


The API returns the following response:

[source,console-result]
------------------------------------------------------------
{
  "inference_id": "my-elser-model",
  "task_type": "sparse_embedding",
  "service": "elser",
  "service_settings": {
    "num_allocations": 1,
    "num_threads": 1
  },
  "task_settings": {}
}
------------------------------------------------------------
// NOTCONSOLE
