# Detect language

> POST /detect-language/ returns an ISO 639-1 language code for one text or up to 200 texts, in your order, with a model fallback. $0.001 per request.

**Source:** /docs/api/detect-language/ (Curriculo Docs)  
**Updated:** 12 October 2026  
**Contact:** hello@curriculo.me

```http
POST https://api.curriculo.me/public/detect-language/
```

**Stateless.** Returns an ISO 639-1 code for each text. Use it to route a CV or message (assign the right recruiter, pick the right template) before anyone reads it.

**Price:** $0.001 per request.

Detection runs offline first. A text the offline detector cannot call confidently falls back to a model, which can return any two-letter code, including languages that [`/translate/`](/docs/api/translate/) does not accept.

## Request

`application/json`. Send `text` (one string) or `texts` (a list). List in, list out.

| Field | Type | Notes |
|---|---|---|
| `text` | string | A single text, up to 50,000 characters. |
| `texts` | string[] | Up to 200 texts, each up to 50,000 characters. The response keeps your order. |
| `default_language` | string | Returned when a text cannot be called. Defaults to `en`. |

## Examples

One text:

```bash
curl -X POST https://api.curriculo.me/public/detect-language/ \
  -H 'Authorization: Bearer key_abc123_yoursecret' \
  -H 'Content-Type: application/json' \
  -d '{"text": "Ingeniera de software con diez años de experiencia"}'
```

Several texts:

```bash
curl -X POST https://api.curriculo.me/public/detect-language/ \
  -H 'Authorization: Bearer key_abc123_yoursecret' \
  -H 'Content-Type: application/json' \
  -d '{"texts": ["Ingénieur logiciel", "소프트웨어 엔지니어"], "default_language": "en"}'
```

## Response

One text returns that text's result. Several texts return results in input order. See [Batching](/docs/batching/).

## Timing

Under a second.

## Errors

| Status | Typical cause |
|---|---|
| `400` | Blank text, or a duplicate JSON key. |
| `413` | More than 200 texts, or a text over 50,000 characters. |
