# Stopwords API
> Stopword lists and removal for 58 languages. Fetch the full stopword list for a language, see all supported languages with their word counts, check whether a single word is a stopword, or strip stopwords out of a block of text to get a clean keyword stream. Built on the open stopwords-iso dataset and served entirely in-memory, so responses are instant and the service is always available. Ideal for search indexing and relevance, NLP preprocessing and text mining, keyword extraction, tag generation and content tooling.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/stopwords-api/..."
```

## Pricing
- **Free** (Free) — 2,000 calls/Mo, 2 req/s
- **Basic** ($2/Mo) — 100,000 calls/Mo, 5 req/s
- **Pro** ($9/Mo) — 1,500,000 calls/Mo, 20 req/s
- **Mega** ($27/Mo) — 15,000,000 calls/Mo, 60 req/s

## Endpoints

### Stopwords

#### `GET /v1/check` — Is a word a stopword?

**Parameters:**
- `lang` (query, optional, string) — Language code (default en) Example: `en`
- `word` (query, required, string) — Word to check Example: `the`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/stopwords-api/v1/check?lang=en&word=the"
```

**Response:**
```json
{
    "data": {
        "word": "the",
        "language": "en",
        "is_stopword": true
    },
    "meta": {
        "timestamp": "2026-05-30T18:16:48.890Z",
        "request_id": "478cb62d-5554-4bd6-94dd-6dbb59b01e9c"
    },
    "status": "ok",
    "message": "Checked",
    "success": true
}
```

#### `GET /v1/languages` — Supported languages

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/stopwords-api/v1/languages"
```

**Response:**
```json
{
    "data": {
        "count": 58,
        "languages": [
            {
                "code": "af",
                "stopword_count": 51
            },
            {
                "code": "ar",
                "stopword_count": 480
            },
            {
                "code": "bg",
                "stopword_count": 259
            },
            {
                "code": "bn",
                "stopword_count": 398
            },
            {
                "code": "br",
                "stopword_count": 1203
            },
            {
                "code": "ca",
                "stopword_count": 278
            },
            {
                "code": "cs",
                "stopword_count": 423
            },
            {
                "code": "da",
                "stopword_count": 170
            },
            {
                "code": "de",
                "stopword_count": 620
            },
            {
                "code": "el",
                "stopword_count": 847
            },
            {
                "code": "en",
                "stopword_count": 1298
            },
            {
                "code": "eo",
                "stopword_count": 173
            },
            {
                "code": "es",
                "stopword_count": 732
            },
            {
                "code": "et",
                "stopword_count": 35
            },
            {
                "code": "eu",
                "stopword_count": 98
 
…(truncated, see openapi.json for full schema)
```

#### `GET /v1/remove` — Strip stopwords from text

**Parameters:**
- `lang` (query, optional, string) — Language code (default en) Example: `en`
- `text` (query, required, string) — Text to clean Example: `the quick brown fox jumps over the lazy dog`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/stopwords-api/v1/remove?lang=en&text=the+quick+brown+fox+jumps+over+the+lazy+dog"
```

**Response:**
```json
{
    "data": {
        "text": "quick brown fox jumps lazy dog",
        "language": "en",
        "kept_count": 6,
        "removed_count": 3
    },
    "meta": {
        "timestamp": "2026-05-30T18:16:49.035Z",
        "request_id": "6a141dbc-adb2-4d01-9b7c-6a74b4b69f8c"
    },
    "status": "ok",
    "message": "Stopwords removed",
    "success": true
}
```

#### `GET /v1/stopwords` — Stopword list for a language

**Parameters:**
- `lang` (query, optional, string) — Language code (default en) Example: `en`
- `limit` (query, optional, string) — Max words to return

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/stopwords-api/v1/stopwords?lang=en"
```

**Response:**
```json
{
    "data": {
        "count": 1298,
        "language": "en",
        "returned": 1298,
        "stopwords": [
            "'ll",
            "'tis",
            "'twas",
            "'ve",
            "10",
            "39",
            "a",
            "a's",
            "able",
            "ableabout",
            "about",
            "above",
            "abroad",
            "abst",
            "accordance",
            "according",
            "accordingly",
            "across",
            "act",
            "actually",
            "ad",
            "added",
            "adj",
            "adopted",
            "ae",
            "af",
            "affected",
            "affecting",
            "affects",
            "after",
            "afterwards",
            "ag",
            "again",
            "against",
            "ago",
            "ah",
            "ahead",
            "ai",
            "ain't",
            "aint",
            "al",
            "all",
            "allow",
            "allows",
            "almost",
            "alone",
            "along",
            "alongside",
            "already",
            "also",
            "although",
            "always",
            "am",
            "amid",
            "amidst",
            "among",
            "amongst",
            "amoungst",
            "amount",
            "an",
            "and",
            "announce",
            "another",
            "any",
            "anybody",
            "a
…(truncated, see openapi.json for full schema)
```


---
Marketplace page: https://www.oanor.com/api/stopwords-api
OpenAPI spec: https://www.oanor.com/api/stopwords-api/openapi.json
