# Text Classification API

## API Server

[nlu-api.allganize.ai](https://nlu-api.allganize.ai) is Allganize's NLU API endpoint. If you are using on-prem, please use your API endpoint.

## **Getting API KEY**

The NLU API uses API keys to authenticate requests that you can find in the [Allganize NLU API dashboard](https://nlu.allganize.ai/projects). Go to Settings > General to find your API key. If you don't have an account yet, you can create one [here](https://nlu.allganize.ai/signup).

#### &#x20;Provide your `API KEY` in the request header `API-KEY`.

## Text Classification API

<mark style="color:green;">`POST`</mark> `https://nlu-api.allganize.ai/api/inference`

#### Headers

| Name    | Type   | Description                                                                       |
| ------- | ------ | --------------------------------------------------------------------------------- |
| API-KEY | string | Your API Key can be found on your dashboard Settings menu, under the General tab. |

#### Request Body

| Name | Type   | Description                                                                                                              |
| ---- | ------ | ------------------------------------------------------------------------------------------------------------------------ |
| text | string | Input text you want to analyze. You can enter up to 2000 characters, after which the entered characters will be ignored. |

{% tabs %}
{% tab title="200 The response has a classified result for the requested text.

displayText: The result of the text classification for the requested text in a text form. The types of results are defined in your NLU API dashboard.
id: The result of the text classification in an ID form.
confidence: It shows the confidence value from AI model. Shown as a number value between 0 and 1." %}

```
{
  "inputText": STRING,
  "intent": {
    "id": NUMBER,
    "displayText": STRING,
    "confidence": NUMBER
  }
}
```

{% endtab %}
{% endtabs %}

### Request Example

Please replace YOUR\_API\_KEY with your one in the example below. Please see [getting-api-key](https://docs.allganize.ai/text-classification-api#getting-api-key) section.

```
curl https://nlu-api.allganize.ai/api/inference \
-d '{"text": "He is a male. And name is Matt."}' \
-H "Content-Type: application/json" \
-H "API-KEY: YOUR_API_KEY"
```

### Response Example

```
{
  "inputText": "He is a male. And name is Matt",
  "intent": {
    "id": 656,
    "displayText": "PROVIDING_INFO",
    "confidence": 0.7613087892532349
  }
}
```

## Error Messages

Please read the error message you get if you don't get the response that you expected.&#x20;

| Status Code | Error Code | Name              | Message                                              | Description                                                                                       |
| ----------- | ---------- | ----------------- | ---------------------------------------------------- | ------------------------------------------------------------------------------------------------- |
| 500         | 7000       | API Error         | Something went wrong                                 | Default API error message for any uncategorized errors.                                           |
| 403         | 7001       | Invalid API Key   | API-KEY is not valid.                                | When the API Key requested to the header is invalid.                                              |
| 403         | 7002       | Invalid JSON      | Cannot decode the requested JSON body.               | When the requested JSON is not decodable.                                                         |
| 400         | 7003       | Invalid Parameter | Requested parameters are not valid. 'text' is empty. | When the requested parameter is invalid (for example, when requesting inference with empty text). |
| 403         | 7004       | Payment error     | billing error.                                       | Overall payment related errors, e.g., payment is overdue                                          |
| 405         | -          | Wrong HTTP Method | -                                                    | When the HTTP method used is not valid.                                                           |

### Error Response example

```
{
    "type": "APIError",
    "code": 7000,
    "message": "Something went wrong."
}
```
