# Initials API
> Extract initials and avatar monograms from a name or phrase. The initials endpoint returns the first letter of every significant word — automatically skipping lower-case nobiliary and linking particles (van, von, de, della, la, der, of, the…) so "Ludwig van Beethoven" gives LB and "Charles de Gaulle" gives CG — with options for a separator between letters, a dotted form (J.D.), upper-case or original case, and a maximum number of initials. The monogram endpoint returns the short one-, two- or three-letter badge initials used for UI avatars and chips, taking the first and last significant words ("John Michael Doe" → JD) and falling back to the leading letters of a single name. Everything is multibyte-safe, so accented and non-Latin letters (José María → JMA) work correctly. Ideal for default avatars, contact chips, initials badges, monogram graphics, document headers and mail-merge. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. This produces the initials text; to render them as an avatar image use an avatar 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/initials-api/..."
```

## Pricing
- **Free** (Free) — 1,635 calls/Mo, 2 req/s
- **Starter** ($3/Mo) — 11,150 calls/Mo, 8 req/s
- **Pro** ($23/Mo) — 162,500 calls/Mo, 20 req/s
- **Mega** ($61/Mo) — 855,000 calls/Mo, 50 req/s

## Endpoints

### Initials

#### `GET /v1/initials` — Extract initials

**Parameters:**
- `value` (query, required, string) — The name or phrase Example: `Ludwig van Beethoven`
- `separator` (query, optional, string) — String between initials (default none)
- `dotted` (query, optional, string) — true for J.D. form
- `uppercase` (query, optional, string) — default true
- `skip_particles` (query, optional, string) — skip van/von/de/la… (default true)
- `max` (query, optional, string) — cap the number of initials

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/initials-api/v1/initials?value=Ludwig+van+Beethoven"
```

**Response:**
```json
{
    "data": {
        "count": 2,
        "value": "Ludwig van Beethoven",
        "letters": [
            "L",
            "B"
        ],
        "initials": "LB"
    },
    "meta": {
        "timestamp": "2026-06-03T09:25:06.578Z",
        "request_id": "9d71b905-25f0-4bcc-8352-2ede22d6cb53"
    },
    "status": "ok",
    "message": "Extract initials",
    "success": true
}
```

#### `GET /v1/monogram` — Avatar monogram

**Parameters:**
- `value` (query, required, string) — The name Example: `John Michael Doe`
- `length` (query, optional, string) — 1, 2 or 3 letters (default 2) Example: `2`
- `uppercase` (query, optional, string) — default true
- `skip_particles` (query, optional, string) — skip particles (default true)

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/initials-api/v1/monogram?value=John+Michael+Doe&length=2"
```

**Response:**
```json
{
    "data": {
        "count": 2,
        "value": "John Michael Doe",
        "letters": [
            "J",
            "D"
        ],
        "monogram": "JD"
    },
    "meta": {
        "timestamp": "2026-06-03T09:25:06.683Z",
        "request_id": "3ed2c13f-1867-4722-b823-aa93dca021af"
    },
    "status": "ok",
    "message": "Avatar monogram",
    "success": true
}
```

### Meta

#### `GET /v1/meta` — Spec

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

**Response:**
```json
{
    "data": {
        "name": "Initials API",
        "notes": "Particles are skipped only when at least one other word remains. Hyphenated names contribute each part to initials (Jean-Luc → J, L) but count as one word for the monogram. Nothing is stored.",
        "version": "v1",
        "endpoints": [
            {
                "path": "/v1/initials",
                "params": {
                    "max": "cap the number of initials (default all)",
                    "value": "the name or phrase (required)",
                    "dotted": "true for J.D. form",
                    "separator": "string between initials (default none)",
                    "uppercase": "default true",
                    "skip_particles": "skip van/von/de/la… (default true)"
                },
                "returns": "the initials string, the letters and a count"
            },
            {
                "path": "/v1/monogram",
                "params": {
                    "value": "the name (required)",
                    "length": "1, 2 or 3 letters (default 2)",
                    "uppercase": "default true",
                    "skip_particles": "skip particles (default true)"
                },
                "returns": "the avatar monogram (e.g. JD)"
            },
            {
                "path": "/v1/meta",
                "params": [],
                "returns": "this document"
            }
        ],
        "description": "Extract initials and avatar monog
…(truncated, see openapi.json for full schema)
```


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