---
title: "Add a synonym to a brand, property, league, agency, venue, market, category, subcategory or asset"
method: POST
path: "/api/entity-synonyms"
tags: ["EntitySynonym"]
---

# Add a synonym to a brand, property, league, agency, venue, market, category, subcategory or asset

`POST /api/entity-synonyms`

## Request

- Base URL: `https://api.sponsorunited.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.sponsorunited.com/api/entity-synonyms`
- Auth: API key in header `X-API-Key`
- TypeScript: <https://skmtc.dev/sponsorunited/apis/sponsorunited-api/docs/api/entity-synonyms/post.ts> (a function with typed inputs; its response is checked against the schema)

Saves a name an editor approved in Surface as a synonym of the entity, with source surface and confidence high, so search finds the entity by that name. Brands follow the rules of brand-synonyms/record-match. A synonym belongs to one entity of its type: when another entity has it, nothing is changed and the response is 409 with that entity; this endpoint never moves a synonym, except away from a deleted entity. Service API key only (chat_api).

## Request body

- EntitySynonymStoreRequest
  - `entity_type` 'brand' | 'property' | 'league' | 'agency' | 'venue' | 'market' | 'category' | 'subcategory' | 'asset', required
  - `entity_id` integer, required: The id of the entity the synonym names.
  - `synonym` string, required: The name the entity is also known by.

## Response `200`

The entity already had the synonym (already_present), or it was moved away from a deleted entity (moved).

- object
  - `outcome` string
  - `data` EntitySynonymResource
    - `id` integer
    - `entity_type` 'brand' | 'property' | 'league' | 'agency' | 'venue' | 'market' | 'category' | 'subcategory' | 'asset'
    - `entity_id` integer
    - `synonym` string
    - `normalized_synonym` string, nullable: The synonym normalized for matching; each normalized name belongs to one entity of the type.
    - `source` 'manual' | 'admin_link' | 'queue_approval' | 'auto_link' | 'edgar' | 'podcast_scouting' | 'logo_detection' | 'surface'
    - `confidence` 'high' | 'medium' | 'low', nullable
    - `matched_at` string, date-time, nullable

## Other responses

- `201`: The synonym was written.
- `401`: Unauthenticated
- `403`: The caller is not one of the allowed services.
- `409`: Another entity of the same type already has this synonym.
- `422`: Validation error, including a name with no letters or digits, with emoji, or equal to the entity name, and a missing or deleted entity.

---

[API](https://skmtc.dev/sponsorunited/apis/sponsorunited-api.md) - [All operations](https://skmtc.dev/sponsorunited/apis/sponsorunited-api/llms.txt) - [OpenAPI document](https://skmtc.dev/sponsorunited/apis/sponsorunited-api/revisions/cbf1ca5bff8f?raw)
