> ## Documentation Index
> Fetch the complete documentation index at: https://docs.topify.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Brand aliases

> List and manage alternative brand names used when analyzing AI responses.

Brand aliases let Topify recognize abbreviations, spacing variations, and product names as references to your brand. A project can have up to 20 aliases.

Each alias uses either `fuzzy` matching, which tolerates capitalization and spacing differences, or `exact` matching, which requires whole-word matches.

## List aliases

```http theme={null}
GET /projects/{project_id}/aliases
```

```bash theme={null}
curl "https://topify-customer-api-production.up.railway.app/api/public/v1/projects/{project_id}/aliases" \
  -H "X-API-Key: tk_live_..."
```

### Response

```json theme={null}
{
  "success": true,
  "data": {
    "project_id": "a1b2c3d4-...",
    "brand_name": "Acme",
    "aliases": [
      { "name": "ACME Corp", "match_type": "fuzzy" }
    ],
    "limit": 20,
    "remaining": 19
  }
}
```

***

## Add alias

```http theme={null}
POST /projects/{project_id}/aliases
```

### Request body

| Field        | Type   | Required | Description                  |
| ------------ | ------ | -------- | ---------------------------- |
| `alias`      | string | Yes      | Alias text, 1-100 characters |
| `match_type` | string | No       | `fuzzy` (default) or `exact` |

```bash theme={null}
curl -X POST "https://topify-customer-api-production.up.railway.app/api/public/v1/projects/{project_id}/aliases" \
  -H "X-API-Key: tk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"alias":"ACME Corp","match_type":"fuzzy"}'
```

The response returns the complete updated alias list, remaining capacity, and a `next_actions` entry for listing aliases.

***

## Update alias

```http theme={null}
PATCH /projects/{project_id}/aliases
```

Rename an alias, change its match type, or do both.

### Request body

| Field            | Type   | Required | Description                                                        |
| ---------------- | ------ | -------- | ------------------------------------------------------------------ |
| `original_alias` | string | Yes      | Existing alias; matching is case-insensitive                       |
| `new_alias`      | string | Yes      | Replacement alias text                                             |
| `match_type`     | string | No       | New `fuzzy` or `exact` setting; omit to retain the current setting |

```bash theme={null}
curl -X PATCH "https://topify-customer-api-production.up.railway.app/api/public/v1/projects/{project_id}/aliases" \
  -H "X-API-Key: tk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"original_alias":"ACME Corp","new_alias":"Acme Corporation","match_type":"exact"}'
```

***

## Delete alias

```http theme={null}
DELETE /projects/{project_id}/aliases?alias={alias}
```

Deletes one alias using a case-insensitive match. This operation does not delete prompts or historical AI responses.

<Warning>
  Alias deletion is immediate. Confirm the alias value before sending the request.
</Warning>

```bash theme={null}
curl -X DELETE "https://topify-customer-api-production.up.railway.app/api/public/v1/projects/{project_id}/aliases?alias=Acme%20Corporation" \
  -H "X-API-Key: tk_live_..."
```

### Error responses

| Status | Code                              | Cause                                               |
| ------ | --------------------------------- | --------------------------------------------------- |
| `400`  | `ALIAS_EMPTY` or `ALIAS_TOO_LONG` | Alias text is invalid                               |
| `404`  | `ALIAS_NOT_FOUND`                 | The requested alias does not exist                  |
| `409`  | `ALIAS_DUPLICATE`                 | Another case-insensitive alias match already exists |
| `429`  | `ALIAS_LIMIT_REACHED`             | The project already has 20 aliases                  |
