Skip to content
Menu
All API groups

Synonyms

Synonyms and mined suggestions.

9 endpoints.

GET/v1/synonyms/suggestions

Synonyms mined from zero-result queries and reformulations

Needs a key or a dashboard session

Parameters

NameInTypeRequiredDescription
statusquery"pending" | "approved" | "rejected"nodefault "pending"
cursorquerystring | nullnomax length 200
limitqueryintegernodefault 50 · min 1 · max 200

Responses

POST/v1/synonyms/suggestions/{suggestion_id}/decision

Approve (one click) or reject a suggestion

Needs a key or a dashboard session

Parameters

NameInTypeRequiredDescription
suggestion_idpathstringyes

Request body application/json SuggestionDecision

NameTypeRequiredDescription
decision"approve" | "reject"yes

Responses

GET/v1/synonyms

List synonyms

Needs a key or a dashboard session

Parameters

NameInTypeRequiredDescription
cursorquerystring | nullnomax length 200
limitqueryintegernodefault 100 · min 1 · max 200
qquerystring | nullnomax length 100

Responses

POST/v1/synonyms

Synonyms Create

Needs a key or a dashboard session

Parameters

NameInTypeRequiredDescription
Idempotency-Keyheaderstring | nullnoUnique per logical write (8-255 chars). Retries with the same key are safe. · pattern ^[A-Za-z0-9_\-:.]{8,255}$

Request body application/json SynonymIn

NameTypeRequiredDescription
kind"equivalent" | "one_way"yes
termsstring[]noequivalent: all match each other.
inputstring | nullnoone_way: this word...max length 200
outputsstring[]no...also searches these.
conditionsSynonymConditions | nullno
localestring | nullnopattern ^[a-z]{2}$
set_keystringnoNamed set (see RankingConfig).default "default" · pattern ^[a-z0-9][a-z0-9_-]{0,31}$
enabledbooleannodefault true

Responses

GET/v1/synonyms/export

Export synonyms

Needs a key or a dashboard session

Parameters

NameInTypeRequiredDescription
formatquery"json" | "csv" | "solr"nodefault "json"

Responses

  • 200Successful Responsestring
POST/v1/synonyms/import

Synonyms Import

Needs a key or a dashboard session

Parameters

NameInTypeRequiredDescription
Idempotency-Keyheaderstring | nullnoUnique per logical write (8-255 chars). Retries with the same key are safe. · pattern ^[A-Za-z0-9_\-:.]{8,255}$

Request body application/json SynonymImport

NameTypeRequiredDescription
format"json" | "csv" | "solr"nodefault "json"
contentstringyesThe file content.max length 2000000
mode"merge" | "replace"nodefault "merge"

Responses

GET/v1/synonyms/{synonym_id}

Synonyms Get

Needs a key or a dashboard session

Parameters

NameInTypeRequiredDescription
synonym_idpathstringyes

Responses

PUT/v1/synonyms/{synonym_id}

Synonyms Update

Needs a key or a dashboard session

Parameters

NameInTypeRequiredDescription
synonym_idpathstringyes

Request body application/json SynonymIn

NameTypeRequiredDescription
kind"equivalent" | "one_way"yes
termsstring[]noequivalent: all match each other.
inputstring | nullnoone_way: this word...max length 200
outputsstring[]no...also searches these.
conditionsSynonymConditions | nullno
localestring | nullnopattern ^[a-z]{2}$
set_keystringnoNamed set (see RankingConfig).default "default" · pattern ^[a-z0-9][a-z0-9_-]{0,31}$
enabledbooleannodefault true

Responses

DELETE/v1/synonyms/{synonym_id}

Synonyms Delete

Needs a key or a dashboard session

Parameters

NameInTypeRequiredDescription
synonym_idpathstringyes

Responses

Data shapes on this page

Page_SynonymSuggestionOut_

NameTypeRequiredDescription
dataSynonymSuggestionOut[]yes
next_cursorstring | nullno
totalinteger | nullnoPresent when cheap to count.

SynonymSuggestionOut

NameTypeRequiredDescription
idstringyes
kind"equivalent" | "one_way"yes
termsstring[]no
inputstring | nullno
outputsstring[]no
evidenceobjectnoQueries and counts that led to it.
scorenumberyes
status"pending" | "approved" | "rejected"yes
created_atstring (date-time)yes

SuggestionDecision

NameTypeRequiredDescription
decision"approve" | "reject"yes

Page_SynonymOut_

NameTypeRequiredDescription
dataSynonymOut[]yes
next_cursorstring | nullno
totalinteger | nullnoPresent when cheap to count.

SynonymOut

NameTypeRequiredDescription
kind"equivalent" | "one_way"yes
termsstring[]noequivalent: all match each other.
inputstring | nullnoone_way: this word...max length 200
outputsstring[]no...also searches these.
conditionsSynonymConditions | nullno
localestring | nullnopattern ^[a-z]{2}$
set_keystringnoNamed set (see RankingConfig).default "default" · pattern ^[a-z0-9][a-z0-9_-]{0,31}$
enabledbooleannodefault true
idstringyes
source"manual" | "import" | "suggested" | "global_copy"nodefault "manual"
created_atstring (date-time)yes
updated_atstring (date-time)yes

SynonymConditions

one_way only. Expand `input` -> `outputs` only when the normalized query passes these checks. Example: dress -> gown, maxi... with unless_terms [bag, hanger, pattern].

NameTypeRequiredDescription
unless_termsstring[]noSkip if any of these is present.
require_termsstring[]noApply only if all are present.

SynonymIn

NameTypeRequiredDescription
kind"equivalent" | "one_way"yes
termsstring[]noequivalent: all match each other.
inputstring | nullnoone_way: this word...max length 200
outputsstring[]no...also searches these.
conditionsSynonymConditions | nullno
localestring | nullnopattern ^[a-z]{2}$
set_keystringnoNamed set (see RankingConfig).default "default" · pattern ^[a-z0-9][a-z0-9_-]{0,31}$
enabledbooleannodefault true

SynonymImport

NameTypeRequiredDescription
format"json" | "csv" | "solr"nodefault "json"
contentstringyesThe file content.max length 2000000
mode"merge" | "replace"nodefault "merge"

SynonymImportResult

NameTypeRequiredDescription
createdintegeryes
updatedintegeryes
skippedintegeryes
errorsstring[]no

Deleted

NameTypeRequiredDescription
deletedbooleannodefault true
idstringyes