# Scrabble API
> Score words by their letter tiles for Scrabble and Words With Friends. The score endpoint adds up the face value of each tile in a word — with the per-letter breakdown — and the values endpoint returns the point value of every letter for the chosen ruleset. Blank tiles (? _ *) count as zero. Both the standard English Scrabble distribution and the Words With Friends distribution are built in. Perfect for word-game apps and bots, puzzle and quiz tools, teaching and leaderboards. Note: this is the raw tile value — double/triple letter and word squares and the 50-point bingo bonus are not applied. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. Distinct from dictionary, spelling and text-statistics APIs.

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

## Pricing
- **Free** (Free) — 1,115 calls/Mo, 2 req/s
- **Starter** ($2/Mo) — 9,550 calls/Mo, 8 req/s
- **Pro** ($21/Mo) — 146,500 calls/Mo, 20 req/s
- **Mega** ($59/Mo) — 775,000 calls/Mo, 50 req/s

## Endpoints

### Scrabble

#### `GET /v1/score` — Score a word

**Parameters:**
- `word` (query, required, string) — A word Example: `QUIZ`
- `ruleset` (query, optional, string) — scrabble|wwf (default scrabble) Example: `scrabble`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/scrabble-api/v1/score?word=QUIZ&ruleset=scrabble"
```

**Response:**
```json
{
    "data": {
        "word": "QUIZ",
        "score": 22,
        "tiles": 4,
        "letters": [
            {
                "value": 10,
                "letter": "Q"
            },
            {
                "value": 1,
                "letter": "U"
            },
            {
                "value": 1,
                "letter": "I"
            },
            {
                "value": 10,
                "letter": "Z"
            }
        ],
        "ruleset": "scrabble"
    },
    "meta": {
        "timestamp": "2026-06-03T01:09:41.393Z",
        "request_id": "d32f714d-871e-459f-bfc6-31a00c5f7040"
    },
    "status": "ok",
    "message": "Score a word",
    "success": true
}
```

#### `GET /v1/values` — Letter values

**Parameters:**
- `ruleset` (query, optional, string) — scrabble|wwf (default scrabble) Example: `scrabble`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/scrabble-api/v1/values?ruleset=scrabble"
```

**Response:**
```json
{
    "data": {
        "ruleset": "scrabble",
        "by_points": {
            "1": [
                "A",
                "E",
                "I",
                "L",
                "N",
                "O",
                "R",
                "S",
                "T",
                "U"
            ],
            "2": [
                "D",
                "G"
            ],
            "3": [
                "B",
                "C",
                "M",
                "P"
            ],
            "4": [
                "F",
                "H",
                "V",
                "W",
                "Y"
            ],
            "5": [
                "K"
            ],
            "8": [
                "J",
                "X"
            ],
            "10": [
                "Q",
                "Z"
            ]
        },
        "blank_tile": 0,
        "letter_values": {
            "A": 1,
            "B": 3,
            "C": 3,
            "D": 2,
            "E": 1,
            "F": 4,
            "G": 2,
            "H": 4,
            "I": 1,
            "J": 8,
            "K": 5,
            "L": 1,
            "M": 3,
            "N": 1,
            "O": 1,
            "P": 3,
            "Q": 10,
            "R": 1,
            "S": 1,
            "T": 1,
            "U": 1,
            "V": 4,
            "W": 4,
            "X": 8,
            "Y": 4,
            "Z": 10
        }
    },
    "meta": {
        "timestamp": "2026-06-03T01:09
…(truncated, see openapi.json for full schema)
```

### Meta

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

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

**Response:**
```json
{
    "data": {
        "name": "Scrabble API",
        "notes": "Scores are tile face values only — double/triple letter and word squares and the 50-point bingo bonus are not applied. English letter distributions. Nothing is stored.",
        "version": "v1",
        "endpoints": [
            {
                "path": "/v1/score",
                "params": {
                    "word": "a word (required)",
                    "ruleset": "scrabble|wwf (default scrabble)"
                },
                "returns": "the total tile score and per-letter values"
            },
            {
                "path": "/v1/values",
                "params": {
                    "ruleset": "scrabble|wwf (default scrabble)"
                },
                "returns": "the value of every letter"
            },
            {
                "path": "/v1/meta",
                "params": [],
                "returns": "this document"
            }
        ],
        "description": "Score a word by its letter tiles for Scrabble or Words With Friends — the raw face value of the tiles (board multipliers not applied). Get the score for a word and the value of every letter. Blank tiles (? _ *) score zero. Pure local, no key."
    },
    "meta": {
        "timestamp": "2026-06-03T01:09:41.580Z",
        "request_id": "985d3c77-b22d-45b6-abac-576f40e0bdd2"
    },
    "status": "ok",
    "message": "Meta",
    "success": true
}
```


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