# Inflector API
> English word inflection as an API. Pluralize or singularize any word — correctly handling the irregulars that trip up naive code (person ↔ people, cactus ↔ cacti, goose ↔ geese, analysis ↔ analyses, and uncountables like sheep and series). Get count-aware inflection ("1 item" vs "3 items", optionally with the number included), and check whether a given word is already singular or plural. Everything is computed locally, so it is instant and always available. Ideal for ORMs and code generators, REST resource naming, UI labels and notifications ("3 result(s)"), search and autocomplete, and any app that turns counts into correct grammar. For case styles and URL slugs, use the Text API.

## 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/inflector-api/..."
```

## Pricing
- **Free** (Free) — 18,000 calls/Mo, 2 req/s
- **Starter** ($2/Mo) — 245,000 calls/Mo, 8 req/s
- **Pro** ($8/Mo) — 960,000 calls/Mo, 20 req/s
- **Mega** ($27/Mo) — 3,950,000 calls/Mo, 50 req/s

## Endpoints

### Inflector

#### `GET /v1/check` — Is a word plural or singular?

**Parameters:**
- `word` (query, required, string) — Word, e.g. geese Example: `geese`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/inflector-api/v1/check?word=geese"
```

**Response:**
```json
{
    "data": {
        "word": "geese",
        "plural": "geese",
        "singular": "goose",
        "is_plural": true,
        "is_singular": false
    },
    "meta": {
        "timestamp": "2026-06-01T00:04:23.629Z",
        "request_id": "3fbe651f-1e58-4440-9d1d-359e171dc3dd"
    },
    "status": "ok",
    "message": "Checked",
    "success": true
}
```

#### `GET /v1/inflect` — Count-aware inflection

**Parameters:**
- `word` (query, required, string) — Word, e.g. item Example: `item`
- `count` (query, optional, string) — Count (default 2) Example: `3`
- `include_count` (query, optional, string) — true to prefix the number Example: `true`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/inflector-api/v1/inflect?word=item&count=3&include_count=true"
```

**Response:**
```json
{
    "data": {
        "word": "item",
        "count": 3,
        "result": "3 items",
        "inflected": "items",
        "is_plural": true
    },
    "meta": {
        "timestamp": "2026-06-01T00:04:23.710Z",
        "request_id": "cce4a605-422d-4c60-ae13-71bb9496261e"
    },
    "status": "ok",
    "message": "Inflected",
    "success": true
}
```

#### `GET /v1/pluralize` — Pluralize a word

**Parameters:**
- `word` (query, required, string) — Word, e.g. cactus Example: `cactus`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/inflector-api/v1/pluralize?word=cactus"
```

**Response:**
```json
{
    "data": {
        "word": "cactus",
        "plural": "cacti",
        "already_plural": false
    },
    "meta": {
        "timestamp": "2026-06-01T00:04:23.780Z",
        "request_id": "8db7f68b-62e2-4c6c-bd91-e36b653e9235"
    },
    "status": "ok",
    "message": "Pluralized",
    "success": true
}
```

#### `GET /v1/singularize` — Singularize a word

**Parameters:**
- `word` (query, required, string) — Word, e.g. mice Example: `mice`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/inflector-api/v1/singularize?word=mice"
```

**Response:**
```json
{
    "data": {
        "word": "mice",
        "singular": "mouse",
        "already_singular": false
    },
    "meta": {
        "timestamp": "2026-06-01T00:04:23.832Z",
        "request_id": "8b939f60-cf43-4d79-a500-7c422853d340"
    },
    "status": "ok",
    "message": "Singularized",
    "success": true
}
```

### Meta

#### `GET /v1/meta` — Usage notes

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

**Response:**
```json
{
    "data": {
        "note": "English word inflection. /v1/pluralize?word=cactus → cacti; /v1/singularize?word=mice → mouse; /v1/inflect?word=item&count=3 → items (count-aware; include_count=true → '3 items'); /v1/check?word=geese → whether it is plural/singular plus both forms. Handles irregular nouns (person↔people, goose↔geese, sheep↔sheep). Runs fully locally. For case styles & slugs use the Text API.",
        "source": "local inflector (pluralize engine)",
        "endpoints": [
            "/v1/pluralize",
            "/v1/singularize",
            "/v1/inflect",
            "/v1/check",
            "/v1/meta"
        ]
    },
    "meta": {
        "timestamp": "2026-06-01T00:04:23.901Z",
        "request_id": "8ac22097-578e-409c-b467-0f3260624d2d"
    },
    "status": "ok",
    "message": "Meta retrieved",
    "success": true
}
```


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