<!-- Generated by `just docs` from catalog/toolkits/typesense.yaml, catalog/expansions/typesense.yaml, catalog/evals/scorecard.json. Edit the source, not this file. -->

# Typesense

Open-source search. Create and manage collections and documents, search them, and tune results with synonyms and curation.

| Property | Value |
| --- | --- |
| Slug | `typesense` |
| Definition version | `0.1.0` |
| Base URL | `https://{{account.hostname}}:{{account.port}}` |
| Auth schemes | `api_key` |
| Action tools | 69 |
| By class | 33 read, 23 write, 13 destructive |
| Triggers | 0 |
| Provider rate limit | not declared, so outbound calls are unpaced |

## Measured routing accuracy

81 golden cases replayed through the router over the whole index: measured over corpus `ea4f12ad2948` (65 toolkits, 2283 tools indexed and 13 declared uncallable), 69 cases written by hand and 12 cases from the paraphrase pass. A case counts as top-1 when its gold tool ranked first and top-8 when it reached the slate at all.

| Measure | Cases | Share |
| --- | --- | --- |
| top-1 | 61/81 | 75.3% |
| top-8 | 80/81 | 98.8% |

The sweep is offline: the reranker is a deterministic identity fake that returns candidates in the order retrieval produced them, so top-1 measures retrieval order rather than a reranked slate. `just eval-live` measures the same cases through the live reranker.

## Authentication

Connect an entity with `ConnectionsService.InitiateConnection`, naming this toolkit's slug. Credentials stay in the connections vault; callers hold connected-account ids only.

### `api_key`

| Property | Value |
| --- | --- |
| Placement | `header` |
| Name | `X-TYPESENSE-API-KEY` |
| Rendered as | `{key}` |

Submit the key with `ConnectionsService` rather than putting it in a request; it is sealed at rest and never returned.

## Tools

69 action tools. The catalog-wide slug is `typesense.<tool>`, which is what `search_tools` returns and `call_tool` takes.

### `typesense.get_aliases`

List every Typesense alias: the alternative names that map onto a collection, which is how a freshly rebuilt search index takes over the name clients already query. Calls GET /aliases.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /aliases`.

Takes no arguments.

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `aliases` | array of object |  |
| `aliases[].collection_name` | string | Name of the collection the alias mapped to |
| `aliases[].name` | string | Name of the collection alias |

Also retrieved by: "what nicknames point at my indexes", "alternative names for the indexes", "which index does each name map to".

### `typesense.get_alias`

Retrieve an alias. Find out which collection an alias points to by fetching it. Calls GET /aliases/{aliasName}.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /aliases/{{params.aliasName}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `aliasName` | string | **yes** | The name of the alias to retrieve |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `collection_name` | string | Name of the collection the alias mapped to |
| `name` | string | Name of the collection alias |

Also retrieved by: "look up an alias", "check an alias", "pull up an alias".

### `typesense.upsert_alias`

Create or update a collection alias. Calls PUT /aliases/{aliasName}.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `PUT /aliases/{{params.aliasName}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `aliasName` | string | **yes** | The name of the alias to create/update |
| `collection_name` | string | **yes** | Name of the collection you wish to map the alias to |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `collection_name` | string | Name of the collection the alias mapped to |
| `name` | string | Name of the collection alias |

Also retrieved by: "point a nickname at an index", "make a stable name that swaps between collections", "repoint an alias to a rebuilt index".

### `typesense.delete_alias`

Delete an alias. Calls DELETE /aliases/{aliasName}.

Class `destructive` (held by the mutation gate until the call's own arguments carry `"confirm": true`). No scopes beyond the connection's defaults. Calls `DELETE /aliases/{{params.aliasName}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `aliasName` | string | **yes** | The name of the alias to delete |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `collection_name` | string | Name of the collection the alias mapped to |
| `name` | string | Name of the collection alias |

Also retrieved by: "get rid of an alias", "take down an alias", "clear out an alias".

### `typesense.get_analytics_events`

Retrieve analytics events. Retrieve the most recent events for a user and rule. Calls GET /analytics/events.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /analytics/events`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `n` | integer | **yes** | Number of events to return (max 1000) |
| `name` | string | **yes** | Analytics rule name |
| `user_id` | string | **yes** |  |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `events` | array of object |  |
| `events[].collection` | string |  |
| `events[].doc_id` | string |  |
| `events[].doc_ids` | array |  |
| `events[].event_type` | string |  |
| `events[].name` | string |  |
| `events[].query` | string |  |
| `events[].timestamp` | integer (int64) |  |
| `events[].user_id` | string |  |

Also retrieved by: "recent clicks and conversions for a user", "the latest events a rule recorded", "what search activity came in lately".

### `typesense.create_analytics_event`

Record a Typesense analytics event: report one click, conversion, or visit against a search result, so popularity tracking and query suggestions learn from real usage. Calls POST /analytics/events.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `POST /analytics/events`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `data` | object | **yes** | Event payload |
| `data.analytics_tag` | string | no |  |
| `data.doc_id` | string | no |  |
| `data.doc_ids` | array | no |  |
| `data.q` | string | no |  |
| `data.user_id` | string | no |  |
| `event_type` | string | **yes** | Type of event (e.g., click, conversion, query, visit) |
| `name` | string | **yes** | Name of the analytics rule this event corresponds to |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `ok` | boolean |  |

Also retrieved by: "report a click on a result", "record a conversion signal", "send a usage event for ranking".

### `typesense.flush_analytics`

Flush in-memory analytics to disk. Triggers a flush of analytics data to persistent storage. Calls POST /analytics/flush.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `POST /analytics/flush`.

Takes no arguments.

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `ok` | boolean |  |

Also retrieved by: "persist buffered analytics now", "write the in-memory counters to storage", "force a flush of usage data".

### `typesense.retrieve_analytics_rules`

Retrieve the Typesense analytics rules: the trackers that count popular and failing search queries and feed them into suggestions. Calls GET /analytics/rules.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /analytics/rules`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `rule_tag` | string | no | Filter rules by rule_tag |

Also retrieved by: "what query trackers are configured", "which searches are being counted", "list the popularity trackers".

### `typesense.create_analytics_rule`

Create analytics rule(s). Create one or more analytics rules. Calls POST /analytics/rules.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `POST /analytics/rules`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `collection` | string | **yes** |  |
| `event_type` | string | **yes** |  |
| `name` | string | **yes** |  |
| `params` | object | no |  |
| `params.capture_search_requests` | boolean | no |  |
| `params.counter_field` | string | no |  |
| `params.destination_collection` | string | no |  |
| `params.expand_query` | boolean | no |  |
| `params.limit` | integer | no |  |
| `params.meta_fields` | array | no |  |
| `params.weight` | integer | no |  |
| `rule_tag` | string | no |  |
| `type` | string, one of popular_queries, nohits_queries, counter, log | **yes** |  |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `collection` | string |  |
| `event_type` | string |  |
| `name` | string |  |
| `params` | object |  |
| `params.capture_search_requests` | boolean |  |
| `params.counter_field` | string |  |
| `params.destination_collection` | string |  |
| `params.expand_query` | boolean |  |
| `params.limit` | integer |  |
| `params.meta_fields` | array |  |
| `params.weight` | integer |  |
| `rule_tag` | string |  |
| `type` | string, one of popular_queries, nohits_queries, counter, log |  |

Also retrieved by: "start tracking a popular query", "add a rule that counts search clicks", "set up query suggestion collection".

### `typesense.retrieve_analytics_rule`

Retrieves an analytics rule. Retrieve the details of an analytics rule, given it's name. Calls GET /analytics/rules/{ruleName}.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /analytics/rules/{{params.ruleName}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `ruleName` | string | **yes** | The name of the analytics rule to retrieve |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `collection` | string |  |
| `event_type` | string |  |
| `name` | string |  |
| `params` | object |  |
| `params.capture_search_requests` | boolean |  |
| `params.counter_field` | string |  |
| `params.destination_collection` | string |  |
| `params.expand_query` | boolean |  |
| `params.limit` | integer |  |
| `params.meta_fields` | array |  |
| `params.weight` | integer |  |
| `rule_tag` | string |  |
| `type` | string, one of popular_queries, nohits_queries, counter, log |  |

Also retrieved by: "what one query tracker is counting", "details of a single analytics rule", "how is this popularity rule configured".

### `typesense.upsert_analytics_rule`

Upserts an analytics rule. Upserts an analytics rule with the given name. Calls PUT /analytics/rules/{ruleName}.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `PUT /analytics/rules/{{params.ruleName}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `name` | string | no |  |
| `params` | object | no |  |
| `params.capture_search_requests` | boolean | no |  |
| `params.counter_field` | string | no |  |
| `params.destination_collection` | string | no |  |
| `params.expand_query` | boolean | no |  |
| `params.limit` | integer | no |  |
| `params.meta_fields` | array | no |  |
| `params.weight` | integer | no |  |
| `ruleName` | string | **yes** | The name of the analytics rule to upsert |
| `rule_tag` | string | no |  |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `collection` | string |  |
| `event_type` | string |  |
| `name` | string |  |
| `params` | object |  |
| `params.capture_search_requests` | boolean |  |
| `params.counter_field` | string |  |
| `params.destination_collection` | string |  |
| `params.expand_query` | boolean |  |
| `params.limit` | integer |  |
| `params.meta_fields` | array |  |
| `params.weight` | integer |  |
| `rule_tag` | string |  |
| `type` | string, one of popular_queries, nohits_queries, counter, log |  |

Also retrieved by: "write a query tracker, replacing any with that name", "create or overwrite popularity counting", "put an analytics configuration in place".

### `typesense.delete_analytics_rule`

Delete an analytics rule. Permanently deletes an analytics rule, given it's name. Calls DELETE /analytics/rules/{ruleName}.

Class `destructive` (held by the mutation gate until the call's own arguments carry `"confirm": true`). No scopes beyond the connection's defaults. Calls `DELETE /analytics/rules/{{params.ruleName}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `ruleName` | string | **yes** | The name of the analytics rule to delete |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `collection` | string |  |
| `event_type` | string |  |
| `name` | string |  |
| `params` | object |  |
| `params.capture_search_requests` | boolean |  |
| `params.counter_field` | string |  |
| `params.destination_collection` | string |  |
| `params.expand_query` | boolean |  |
| `params.limit` | integer |  |
| `params.meta_fields` | array |  |
| `params.weight` | integer |  |
| `rule_tag` | string |  |
| `type` | string, one of popular_queries, nohits_queries, counter, log |  |

Also retrieved by: "stop tracking a named query rule", "remove popularity counting for a search", "drop an analytics configuration by name".

### `typesense.get_analytics_status`

Get analytics subsystem status. Returns sizes of internal analytics buffers and queues. Calls GET /analytics/status.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /analytics/status`.

Takes no arguments.

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `doc_counter_events` | integer |  |
| `doc_log_events` | integer |  |
| `log_prefix_queries` | integer |  |
| `nohits_prefix_queries` | integer |  |
| `popular_prefix_queries` | integer |  |
| `query_counter_events` | integer |  |
| `query_log_events` | integer |  |

Also retrieved by: "how full are the analytics queues", "size of the internal event buffers", "is analytics keeping up".

### `typesense.create_collection`

Create a Typesense collection: a new search index, named, with the schema of fields and types the documents added to it will be indexed on. Calls POST /collections.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `POST /collections`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `default_sorting_field` | string | no | The name of an int32 / float field that determines the order in which the search results are ranked when a sort_by clause is not provided during searching. This field must indicate some kind of... Defaults to . |
| `enable_nested_fields` | boolean | no | Enables experimental support at a collection level for nested object or object array fields. This field is only available if the Typesense server is version `0.24.0.rcn34` or later. Defaults to false. |
| `fields` | array of object | **yes** | A list of fields for querying, filtering and faceting |
| `fields[].async_reference` | boolean | no | Allow documents to be indexed successfully even when the referenced document doesn't exist yet. |
| `fields[].drop` | boolean | no |  |
| `fields[].embed` | object | no |  |
| `fields[].facet` | boolean | no |  |
| `fields[].index` | boolean | no | Defaults to true. |
| `fields[].infix` | boolean | no | Defaults to false. |
| `fields[].locale` | string | no |  |
| `fields[].name` | string | **yes** |  |
| `fields[].num_dim` | integer | no |  |
| `fields[].optional` | boolean | no |  |
| `fields[].range_index` | boolean | no | Enables an index optimized for range filtering on numerical fields (e.g. rating:>3.5). Default: false. |
| `fields[].reference` | string | no | Name of a field in another collection that should be linked to this collection so that it can be joined during query. |
| `fields[].sort` | boolean | no |  |
| `fields[].stem` | boolean | no | Values are stemmed before indexing in-memory. Default: false. |
| `fields[].stem_dictionary` | string | no | Name of the stemming dictionary to use for this field |
| `fields[].store` | boolean | no | When set to false, the field value will not be stored on disk. Default: true. |
| `fields[].symbols_to_index` | array | no | List of symbols or special characters to be indexed. Defaults to []. |
| `fields[].token_separators` | array | no | List of symbols or special characters to be used for splitting the text into individual words in addition to space and new-line characters. Defaults to []. |
| `fields[].type` | string | **yes** |  |
| `fields[].vec_dist` | string | no | The distance metric to be used for vector search. Default: `cosine`. You can also use `ip` for inner product. |
| `metadata` | object | no | Optional details about the collection, e.g., when it was created, who created it etc. |
| `name` | string | **yes** | Name of the collection |
| `symbols_to_index` | array of string | no | List of symbols or special characters to be indexed. Defaults to []. |
| `synonym_sets` | array of string | no | List of synonym set names to associate with this collection |
| `token_separators` | array of string | no | List of symbols or special characters to be used for splitting the text into individual words in addition to space and new-line characters. Defaults to []. |
| `voice_query_model` | object | no | Configuration for the voice query model |
| `voice_query_model.model_name` | string | no |  |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `created_at` | integer (int64) | Timestamp of when the collection was created (Unix epoch in seconds) |
| `default_sorting_field` | string | The name of an int32 / float field that determines the order in which the search results are ranked when a sort_by clause is not provided during searching. This field must indicate some kind of... Defaults to . |
| `enable_nested_fields` | boolean | Enables experimental support at a collection level for nested object or object array fields. This field is only available if the Typesense server is version `0.24.0.rcn34` or later. Defaults to false. |
| `fields` | array of object | A list of fields for querying, filtering and faceting |
| `fields[].async_reference` | boolean | Allow documents to be indexed successfully even when the referenced document doesn't exist yet. |
| `fields[].drop` | boolean |  |
| `fields[].embed` | object |  |
| `fields[].facet` | boolean |  |
| `fields[].index` | boolean | Defaults to true. |
| `fields[].infix` | boolean | Defaults to false. |
| `fields[].locale` | string |  |
| `fields[].name` | string |  |
| `fields[].num_dim` | integer |  |
| `fields[].optional` | boolean |  |
| `fields[].range_index` | boolean | Enables an index optimized for range filtering on numerical fields (e.g. rating:>3.5). Default: false. |
| `fields[].reference` | string | Name of a field in another collection that should be linked to this collection so that it can be joined during query. |
| `fields[].sort` | boolean |  |
| `fields[].stem` | boolean | Values are stemmed before indexing in-memory. Default: false. |
| `fields[].stem_dictionary` | string | Name of the stemming dictionary to use for this field |
| `fields[].store` | boolean | When set to false, the field value will not be stored on disk. Default: true. |
| `fields[].symbols_to_index` | array | List of symbols or special characters to be indexed. Defaults to []. |
| `fields[].token_separators` | array | List of symbols or special characters to be used for splitting the text into individual words in addition to space and new-line characters. Defaults to []. |
| `fields[].type` | string |  |
| `fields[].vec_dist` | string | The distance metric to be used for vector search. Default: `cosine`. You can also use `ip` for inner product. |
| `metadata` | object | Optional details about the collection, e.g., when it was created, who created it etc. |
| `name` | string | Name of the collection |
| `num_documents` | integer (int64) | Number of documents in the collection |
| `symbols_to_index` | array of string | List of symbols or special characters to be indexed. Defaults to []. |
| `synonym_sets` | array of string | List of synonym set names to associate with this collection |
| `token_separators` | array of string | List of symbols or special characters to be used for splitting the text into individual words in addition to space and new-line characters. Defaults to []. |
| `voice_query_model` | object | Configuration for the voice query model |
| `voice_query_model.model_name` | string |  |

Also retrieved by: "set up a new search index", "declare the fields an index will hold", "start an index from a schema".

### `typesense.get_collection`

Retrieve a single Typesense collection: the schema of one search index, its fields and their types, its default sorting field, and how many documents it holds. Calls GET /collections/{collectionName}.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /collections/{{params.collectionName}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `collectionName` | string | **yes** | The name of the collection to retrieve |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `created_at` | integer (int64) | Timestamp of when the collection was created (Unix epoch in seconds) |
| `default_sorting_field` | string | The name of an int32 / float field that determines the order in which the search results are ranked when a sort_by clause is not provided during searching. This field must indicate some kind of... Defaults to . |
| `enable_nested_fields` | boolean | Enables experimental support at a collection level for nested object or object array fields. This field is only available if the Typesense server is version `0.24.0.rcn34` or later. Defaults to false. |
| `fields` | array of object | A list of fields for querying, filtering and faceting |
| `fields[].async_reference` | boolean | Allow documents to be indexed successfully even when the referenced document doesn't exist yet. |
| `fields[].drop` | boolean |  |
| `fields[].embed` | object |  |
| `fields[].facet` | boolean |  |
| `fields[].index` | boolean | Defaults to true. |
| `fields[].infix` | boolean | Defaults to false. |
| `fields[].locale` | string |  |
| `fields[].name` | string |  |
| `fields[].num_dim` | integer |  |
| `fields[].optional` | boolean |  |
| `fields[].range_index` | boolean | Enables an index optimized for range filtering on numerical fields (e.g. rating:>3.5). Default: false. |
| `fields[].reference` | string | Name of a field in another collection that should be linked to this collection so that it can be joined during query. |
| `fields[].sort` | boolean |  |
| `fields[].stem` | boolean | Values are stemmed before indexing in-memory. Default: false. |
| `fields[].stem_dictionary` | string | Name of the stemming dictionary to use for this field |
| `fields[].store` | boolean | When set to false, the field value will not be stored on disk. Default: true. |
| `fields[].symbols_to_index` | array | List of symbols or special characters to be indexed. Defaults to []. |
| `fields[].token_separators` | array | List of symbols or special characters to be used for splitting the text into individual words in addition to space and new-line characters. Defaults to []. |
| `fields[].type` | string |  |
| `fields[].vec_dist` | string | The distance metric to be used for vector search. Default: `cosine`. You can also use `ip` for inner product. |
| `metadata` | object | Optional details about the collection, e.g., when it was created, who created it etc. |
| `name` | string | Name of the collection |
| `num_documents` | integer (int64) | Number of documents in the collection |
| `symbols_to_index` | array of string | List of symbols or special characters to be indexed. Defaults to []. |
| `synonym_sets` | array of string | List of synonym set names to associate with this collection |
| `token_separators` | array of string | List of symbols or special characters to be used for splitting the text into individual words in addition to space and new-line characters. Defaults to []. |
| `voice_query_model` | object | Configuration for the voice query model |
| `voice_query_model.model_name` | string |  |

Also retrieved by: "what fields does this index have", "the schema of one search index", "how is a search index configured".

### `typesense.update_collection`

Update a collection. Update a collection's schema to modify the fields and their types. Calls PATCH /collections/{collectionName}.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `PATCH /collections/{{params.collectionName}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `collectionName` | string | **yes** | The name of the collection to update |
| `fields` | array of object | no | A list of fields for querying, filtering and faceting |
| `fields[].async_reference` | boolean | no | Allow documents to be indexed successfully even when the referenced document doesn't exist yet. |
| `fields[].drop` | boolean | no |  |
| `fields[].embed` | object | no |  |
| `fields[].facet` | boolean | no |  |
| `fields[].index` | boolean | no | Defaults to true. |
| `fields[].infix` | boolean | no | Defaults to false. |
| `fields[].locale` | string | no |  |
| `fields[].name` | string | **yes** |  |
| `fields[].num_dim` | integer | no |  |
| `fields[].optional` | boolean | no |  |
| `fields[].range_index` | boolean | no | Enables an index optimized for range filtering on numerical fields (e.g. rating:>3.5). Default: false. |
| `fields[].reference` | string | no | Name of a field in another collection that should be linked to this collection so that it can be joined during query. |
| `fields[].sort` | boolean | no |  |
| `fields[].stem` | boolean | no | Values are stemmed before indexing in-memory. Default: false. |
| `fields[].stem_dictionary` | string | no | Name of the stemming dictionary to use for this field |
| `fields[].store` | boolean | no | When set to false, the field value will not be stored on disk. Default: true. |
| `fields[].symbols_to_index` | array | no | List of symbols or special characters to be indexed. Defaults to []. |
| `fields[].token_separators` | array | no | List of symbols or special characters to be used for splitting the text into individual words in addition to space and new-line characters. Defaults to []. |
| `fields[].type` | string | **yes** |  |
| `fields[].vec_dist` | string | no | The distance metric to be used for vector search. Default: `cosine`. You can also use `ip` for inner product. |
| `metadata` | object | no | Optional details about the collection, e.g., when it was created, who created it etc. |
| `synonym_sets` | array of string | no | List of synonym set names to associate with this collection |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `fields` | array of object | A list of fields for querying, filtering and faceting |
| `fields[].async_reference` | boolean | Allow documents to be indexed successfully even when the referenced document doesn't exist yet. |
| `fields[].drop` | boolean |  |
| `fields[].embed` | object |  |
| `fields[].facet` | boolean |  |
| `fields[].index` | boolean | Defaults to true. |
| `fields[].infix` | boolean | Defaults to false. |
| `fields[].locale` | string |  |
| `fields[].name` | string |  |
| `fields[].num_dim` | integer |  |
| `fields[].optional` | boolean |  |
| `fields[].range_index` | boolean | Enables an index optimized for range filtering on numerical fields (e.g. rating:>3.5). Default: false. |
| `fields[].reference` | string | Name of a field in another collection that should be linked to this collection so that it can be joined during query. |
| `fields[].sort` | boolean |  |
| `fields[].stem` | boolean | Values are stemmed before indexing in-memory. Default: false. |
| `fields[].stem_dictionary` | string | Name of the stemming dictionary to use for this field |
| `fields[].store` | boolean | When set to false, the field value will not be stored on disk. Default: true. |
| `fields[].symbols_to_index` | array | List of symbols or special characters to be indexed. Defaults to []. |
| `fields[].token_separators` | array | List of symbols or special characters to be used for splitting the text into individual words in addition to space and new-line characters. Defaults to []. |
| `fields[].type` | string |  |
| `fields[].vec_dist` | string | The distance metric to be used for vector search. Default: `cosine`. You can also use `ip` for inner product. |
| `metadata` | object | Optional details about the collection, e.g., when it was created, who created it etc. |
| `synonym_sets` | array of string | List of synonym set names to associate with this collection |

Also retrieved by: "change the fields of an index", "alter a schema to add or drop columns", "modify how documents are indexed".

### `typesense.delete_collection`

Delete a Typesense collection: permanently drop a whole search index and every document indexed in it. Calls DELETE /collections/{collectionName}.

Class `destructive` (held by the mutation gate until the call's own arguments carry `"confirm": true`). No scopes beyond the connection's defaults. Calls `DELETE /collections/{{params.collectionName}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `collectionName` | string | **yes** | The name of the collection to delete |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `created_at` | integer (int64) | Timestamp of when the collection was created (Unix epoch in seconds) |
| `default_sorting_field` | string | The name of an int32 / float field that determines the order in which the search results are ranked when a sort_by clause is not provided during searching. This field must indicate some kind of... Defaults to . |
| `enable_nested_fields` | boolean | Enables experimental support at a collection level for nested object or object array fields. This field is only available if the Typesense server is version `0.24.0.rcn34` or later. Defaults to false. |
| `fields` | array of object | A list of fields for querying, filtering and faceting |
| `fields[].async_reference` | boolean | Allow documents to be indexed successfully even when the referenced document doesn't exist yet. |
| `fields[].drop` | boolean |  |
| `fields[].embed` | object |  |
| `fields[].facet` | boolean |  |
| `fields[].index` | boolean | Defaults to true. |
| `fields[].infix` | boolean | Defaults to false. |
| `fields[].locale` | string |  |
| `fields[].name` | string |  |
| `fields[].num_dim` | integer |  |
| `fields[].optional` | boolean |  |
| `fields[].range_index` | boolean | Enables an index optimized for range filtering on numerical fields (e.g. rating:>3.5). Default: false. |
| `fields[].reference` | string | Name of a field in another collection that should be linked to this collection so that it can be joined during query. |
| `fields[].sort` | boolean |  |
| `fields[].stem` | boolean | Values are stemmed before indexing in-memory. Default: false. |
| `fields[].stem_dictionary` | string | Name of the stemming dictionary to use for this field |
| `fields[].store` | boolean | When set to false, the field value will not be stored on disk. Default: true. |
| `fields[].symbols_to_index` | array | List of symbols or special characters to be indexed. Defaults to []. |
| `fields[].token_separators` | array | List of symbols or special characters to be used for splitting the text into individual words in addition to space and new-line characters. Defaults to []. |
| `fields[].type` | string |  |
| `fields[].vec_dist` | string | The distance metric to be used for vector search. Default: `cosine`. You can also use `ip` for inner product. |
| `metadata` | object | Optional details about the collection, e.g., when it was created, who created it etc. |
| `name` | string | Name of the collection |
| `num_documents` | integer (int64) | Number of documents in the collection |
| `symbols_to_index` | array of string | List of symbols or special characters to be indexed. Defaults to []. |
| `synonym_sets` | array of string | List of synonym set names to associate with this collection |
| `token_separators` | array of string | List of symbols or special characters to be used for splitting the text into individual words in addition to space and new-line characters. Defaults to []. |
| `voice_query_model` | object | Configuration for the voice query model |
| `voice_query_model.model_name` | string |  |

Also retrieved by: "drop a whole search index", "throw away an index and its records", "remove a search index for good".

### `typesense.get_document`

Retrieve a Typesense document: fetch one indexed record from a collection by its id. Calls GET /collections/{collectionName}/documents/{documentId}.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /collections/{{params.collectionName}}/documents/{{params.documentId}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `collectionName` | string | **yes** | The name of the collection to search for the document under |
| `documentId` | string | **yes** | The Document ID |

Also retrieved by: "fetch one indexed record by id", "read a single item out of the index", "show one entry stored in search".

### `typesense.delete_document`

Delete one Typesense document: remove a single indexed record from a collection by its id. Calls DELETE /collections/{collectionName}/documents/{documentId}.

Class `destructive` (held by the mutation gate until the call's own arguments carry `"confirm": true`). No scopes beyond the connection's defaults. Calls `DELETE /collections/{{params.collectionName}}/documents/{{params.documentId}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `collectionName` | string | **yes** | The name of the collection to search for the document under |
| `documentId` | string | **yes** | The Document ID |

Also retrieved by: "take one record out of the index", "drop a single indexed item by id", "remove one entry from search".

### `typesense.toggle_slow_request_log`

Toggle Slow Request Log. Enable logging of requests that take over a defined threshold of time. Calls POST /config.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `POST /config`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `log_slow_requests_time_ms` | integer | **yes** |  |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `success` | boolean |  |

Also retrieved by: "log requests slower than a threshold", "turn slow query logging on or off", "set the latency at which calls get recorded".

### `typesense.retrieve_all_conversation_models`

List all conversation models. Retrieve all conversation models. Calls GET /conversations/models.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /conversations/models`.

Takes no arguments.

Also retrieved by: "every chat model registered here", "which llms back conversational search", "list the models used for rag answers".

### `typesense.create_conversation_model`

Create a conversation model. Calls POST /conversations/models.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `POST /conversations/models`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `account_id` | string | no | LLM service's account ID (only applicable for Cloudflare) |
| `api_key` | string | no | The LLM service's API Key |
| `history_collection` | string | **yes** | Typesense collection that stores the historical conversations |
| `id` | string | no | An explicit id for the model, otherwise the API will return a response with an auto-generated conversation model id. |
| `max_bytes` | integer | **yes** | The maximum number of bytes to send to the LLM in every API call. Consult the LLM's documentation on the number of bytes supported in the context window. |
| `model_name` | string | **yes** | Name of the LLM model offered by OpenAI, Cloudflare or vLLM |
| `system_prompt` | string | no | The system prompt that contains special instructions to the LLM |
| `ttl` | integer | no | Time interval in seconds after which the messages would be deleted. Default: 86400 (24 hours) |
| `vllm_url` | string | no | URL of vLLM service |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `account_id` | string | LLM service's account ID (only applicable for Cloudflare) |
| `api_key` | string | The LLM service's API Key |
| `history_collection` | string | Typesense collection that stores the historical conversations |
| `id` | string | An explicit id for the model, otherwise the API will return a response with an auto-generated conversation model id. |
| `max_bytes` | integer | The maximum number of bytes to send to the LLM in every API call. Consult the LLM's documentation on the number of bytes supported in the context window. |
| `model_name` | string | Name of the LLM model offered by OpenAI, Cloudflare or vLLM |
| `system_prompt` | string | The system prompt that contains special instructions to the LLM |
| `ttl` | integer | Time interval in seconds after which the messages would be deleted. Default: 86400 (24 hours) |
| `vllm_url` | string | URL of vLLM service |

Also retrieved by: "register a chat model for conversational search", "wire an llm into rag answers", "add the model that powers question answering".

### `typesense.retrieve_conversation_model`

Retrieve a conversation model. Calls GET /conversations/models/{modelId}.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /conversations/models/{{params.modelId}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `modelId` | string | **yes** | The id of the conversation model to retrieve |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `account_id` | string | LLM service's account ID (only applicable for Cloudflare) |
| `api_key` | string | The LLM service's API Key |
| `history_collection` | string | Typesense collection that stores the historical conversations |
| `id` | string | An explicit id for the model, otherwise the API will return a response with an auto-generated conversation model id. |
| `max_bytes` | integer | The maximum number of bytes to send to the LLM in every API call. Consult the LLM's documentation on the number of bytes supported in the context window. |
| `model_name` | string | Name of the LLM model offered by OpenAI, Cloudflare or vLLM |
| `system_prompt` | string | The system prompt that contains special instructions to the LLM |
| `ttl` | integer | Time interval in seconds after which the messages would be deleted. Default: 86400 (24 hours) |
| `vllm_url` | string | URL of vLLM service |

Also retrieved by: "details of one chat model", "which llm does this rag setup use", "the configuration behind a conversation id".

### `typesense.update_conversation_model`

Update a conversation model. Calls PUT /conversations/models/{modelId}.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `PUT /conversations/models/{{params.modelId}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `account_id` | string | no | LLM service's account ID (only applicable for Cloudflare) |
| `api_key` | string | no | The LLM service's API Key |
| `history_collection` | string | no | Typesense collection that stores the historical conversations |
| `id` | string | no | An explicit id for the model, otherwise the API will return a response with an auto-generated conversation model id. |
| `max_bytes` | integer | no | The maximum number of bytes to send to the LLM in every API call. Consult the LLM's documentation on the number of bytes supported in the context window. |
| `modelId` | string | **yes** | The id of the conversation model to update |
| `model_name` | string | no | Name of the LLM model offered by OpenAI, Cloudflare or vLLM |
| `system_prompt` | string | no | The system prompt that contains special instructions to the LLM |
| `ttl` | integer | no | Time interval in seconds after which the messages would be deleted. Default: 86400 (24 hours) |
| `vllm_url` | string | no | URL of vLLM service |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `account_id` | string | LLM service's account ID (only applicable for Cloudflare) |
| `api_key` | string | The LLM service's API Key |
| `history_collection` | string | Typesense collection that stores the historical conversations |
| `id` | string | An explicit id for the model, otherwise the API will return a response with an auto-generated conversation model id. |
| `max_bytes` | integer | The maximum number of bytes to send to the LLM in every API call. Consult the LLM's documentation on the number of bytes supported in the context window. |
| `model_name` | string | Name of the LLM model offered by OpenAI, Cloudflare or vLLM |
| `system_prompt` | string | The system prompt that contains special instructions to the LLM |
| `ttl` | integer | Time interval in seconds after which the messages would be deleted. Default: 86400 (24 hours) |
| `vllm_url` | string | URL of vLLM service |

Also retrieved by: "change a chat model's settings", "point rag answers at a different llm", "edit conversational search configuration".

### `typesense.delete_conversation_model`

Delete a conversation model. Calls DELETE /conversations/models/{modelId}.

Class `destructive` (held by the mutation gate until the call's own arguments carry `"confirm": true`). No scopes beyond the connection's defaults. Calls `DELETE /conversations/models/{{params.modelId}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `modelId` | string | **yes** | The id of the conversation model to delete |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `account_id` | string | LLM service's account ID (only applicable for Cloudflare) |
| `api_key` | string | The LLM service's API Key |
| `history_collection` | string | Typesense collection that stores the historical conversations |
| `id` | string | An explicit id for the model, otherwise the API will return a response with an auto-generated conversation model id. |
| `max_bytes` | integer | The maximum number of bytes to send to the LLM in every API call. Consult the LLM's documentation on the number of bytes supported in the context window. |
| `model_name` | string | Name of the LLM model offered by OpenAI, Cloudflare or vLLM |
| `system_prompt` | string | The system prompt that contains special instructions to the LLM |
| `ttl` | integer | Time interval in seconds after which the messages would be deleted. Default: 86400 (24 hours) |
| `vllm_url` | string | URL of vLLM service |

Also retrieved by: "remove a chat model by id", "unregister the llm behind rag answers", "drop conversational search configuration".

### `typesense.retrieve_curation_sets`

List all curation sets. Retrieve all curation sets. Calls GET /curation_sets.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /curation_sets`.

Takes no arguments.

Also retrieved by: "every curation group on the cluster", "which result override names exist", "list all pinning configurations".

### `typesense.retrieve_curation_set`

Retrieve a curation set. Retrieve a specific curation set by its name. Calls GET /curation_sets/{curationSetName}.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /curation_sets/{{params.curationSetName}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `curationSetName` | string | **yes** | The name of the curation set to retrieve |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `description` | string | Optional description for the curation set |
| `items` | array of object | Array of curation items |
| `items[].effective_from_ts` | integer | A Unix timestamp that indicates the date/time from which the curation will be active. You can use this to create rules that start applying from a future point in time. |
| `items[].effective_to_ts` | integer | A Unix timestamp that indicates the date/time until which the curation will be active. You can use this to create rules that stop applying after a period of time. |
| `items[].excludes` | array | List of document `id`s that should be excluded from the search results. |
| `items[].filter_by` | string | A filter by clause that is applied to any search query that matches the curation rule. |
| `items[].filter_curated_hits` | boolean | When set to true, the filter conditions of the query is applied to the curated records as well. Default: false. |
| `items[].id` | string | ID of the curation item |
| `items[].includes` | array | List of document `id`s that should be included in the search results with their corresponding `position`s. |
| `items[].metadata` | object | Return a custom JSON object in the Search API response, when this rule is triggered. This can can be used to display a pre-defined message (eg: a promotion banner) on the front-end when a particular... |
| `items[].remove_matched_tokens` | boolean | Indicates whether search query tokens that exist in the curation's rule should be removed from the search query. |
| `items[].replace_query` | string | Replaces the current search query with this value, when the search query matches the curation rule. |
| `items[].rule` | object |  |
| `items[].sort_by` | string | A sort by clause that is applied to any search query that matches the curation rule. |
| `items[].stop_processing` | boolean | When set to true, curation processing will stop at the first matching rule. When set to false curation processing will continue and multiple curation actions will be triggered in sequence. Curations... |
| `name` | string |  |

Also retrieved by: "the pinned and hidden rules under a name", "one curation group and its overrides", "what results are being promoted here".

### `typesense.upsert_curation_set`

Create or update a curation set. Create or update a curation set with the given name. Calls PUT /curation_sets/{curationSetName}.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `PUT /curation_sets/{{params.curationSetName}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `curationSetName` | string | **yes** | The name of the curation set to create/update |
| `description` | string | no | Optional description for the curation set |
| `items` | array of object | **yes** | Array of curation items |
| `items[].effective_from_ts` | integer | no | A Unix timestamp that indicates the date/time from which the curation will be active. You can use this to create rules that start applying from a future point in time. |
| `items[].effective_to_ts` | integer | no | A Unix timestamp that indicates the date/time until which the curation will be active. You can use this to create rules that stop applying after a period of time. |
| `items[].excludes` | array | no | List of document `id`s that should be excluded from the search results. |
| `items[].filter_by` | string | no | A filter by clause that is applied to any search query that matches the curation rule. |
| `items[].filter_curated_hits` | boolean | no | When set to true, the filter conditions of the query is applied to the curated records as well. Default: false. |
| `items[].id` | string | no | ID of the curation item |
| `items[].includes` | array | no | List of document `id`s that should be included in the search results with their corresponding `position`s. |
| `items[].metadata` | object | no | Return a custom JSON object in the Search API response, when this rule is triggered. This can can be used to display a pre-defined message (eg: a promotion banner) on the front-end when a particular... |
| `items[].remove_matched_tokens` | boolean | no | Indicates whether search query tokens that exist in the curation's rule should be removed from the search query. |
| `items[].replace_query` | string | no | Replaces the current search query with this value, when the search query matches the curation rule. |
| `items[].rule` | object | **yes** |  |
| `items[].sort_by` | string | no | A sort by clause that is applied to any search query that matches the curation rule. |
| `items[].stop_processing` | boolean | no | When set to true, curation processing will stop at the first matching rule. When set to false curation processing will continue and multiple curation actions will be triggered in sequence. Curations... |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `description` | string | Optional description for the curation set |
| `items` | array of object | Array of curation items |
| `items[].effective_from_ts` | integer | A Unix timestamp that indicates the date/time from which the curation will be active. You can use this to create rules that start applying from a future point in time. |
| `items[].effective_to_ts` | integer | A Unix timestamp that indicates the date/time until which the curation will be active. You can use this to create rules that stop applying after a period of time. |
| `items[].excludes` | array | List of document `id`s that should be excluded from the search results. |
| `items[].filter_by` | string | A filter by clause that is applied to any search query that matches the curation rule. |
| `items[].filter_curated_hits` | boolean | When set to true, the filter conditions of the query is applied to the curated records as well. Default: false. |
| `items[].id` | string | ID of the curation item |
| `items[].includes` | array | List of document `id`s that should be included in the search results with their corresponding `position`s. |
| `items[].metadata` | object | Return a custom JSON object in the Search API response, when this rule is triggered. This can can be used to display a pre-defined message (eg: a promotion banner) on the front-end when a particular... |
| `items[].remove_matched_tokens` | boolean | Indicates whether search query tokens that exist in the curation's rule should be removed from the search query. |
| `items[].replace_query` | string | Replaces the current search query with this value, when the search query matches the curation rule. |
| `items[].rule` | object |  |
| `items[].sort_by` | string | A sort by clause that is applied to any search query that matches the curation rule. |
| `items[].stop_processing` | boolean | When set to true, curation processing will stop at the first matching rule. When set to false curation processing will continue and multiple curation actions will be triggered in sequence. Curations... |
| `name` | string |  |

Also retrieved by: "write a group of pinned result rules by name", "create or overwrite curation overrides", "put a promotion configuration in place".

### `typesense.delete_curation_set`

Delete a curation set. Delete a specific curation set by its name. Calls DELETE /curation_sets/{curationSetName}.

Class `destructive` (held by the mutation gate until the call's own arguments carry `"confirm": true`). No scopes beyond the connection's defaults. Calls `DELETE /curation_sets/{{params.curationSetName}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `curationSetName` | string | **yes** | The name of the curation set to delete |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `name` | string | Name of the deleted curation set |

Also retrieved by: "remove a whole set of pinned result rules", "drop curation overrides by name", "delete the group of promoted and hidden hits".

### `typesense.retrieve_curation_set_items`

List items in a curation set. Retrieve all curation items in a set. Calls GET /curation_sets/{curationSetName}/items.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /curation_sets/{{params.curationSetName}}/items`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `curationSetName` | string | **yes** | The name of the curation set to retrieve items for |

Also retrieved by: "every override inside one curation group", "all the pinned and hidden entries of a set", "what promotions does this name hold".

### `typesense.retrieve_curation_set_item`

Retrieve a curation set item. Retrieve a specific curation item by its id. Calls GET /curation_sets/{curationSetName}/items/{itemId}.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /curation_sets/{{params.curationSetName}}/items/{{params.itemId}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `curationSetName` | string | **yes** | The name of the curation set |
| `itemId` | string | **yes** | The id of the curation item to retrieve |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `effective_from_ts` | integer | A Unix timestamp that indicates the date/time from which the curation will be active. You can use this to create rules that start applying from a future point in time. |
| `effective_to_ts` | integer | A Unix timestamp that indicates the date/time until which the curation will be active. You can use this to create rules that stop applying after a period of time. |
| `excludes` | array of object | List of document `id`s that should be excluded from the search results. |
| `excludes[].id` | string | document id that should be excluded from the search results. |
| `filter_by` | string | A filter by clause that is applied to any search query that matches the curation rule. |
| `filter_curated_hits` | boolean | When set to true, the filter conditions of the query is applied to the curated records as well. Default: false. |
| `id` | string | ID of the curation item |
| `includes` | array of object | List of document `id`s that should be included in the search results with their corresponding `position`s. |
| `includes[].id` | string | document id that should be included |
| `includes[].position` | integer | position number where document should be included in the search results |
| `metadata` | object | Return a custom JSON object in the Search API response, when this rule is triggered. This can can be used to display a pre-defined message (eg: a promotion banner) on the front-end when a particular... |
| `remove_matched_tokens` | boolean | Indicates whether search query tokens that exist in the curation's rule should be removed from the search query. |
| `replace_query` | string | Replaces the current search query with this value, when the search query matches the curation rule. |
| `rule` | object |  |
| `rule.filter_by` | string | Indicates that the curation should apply when the filter_by parameter in a search query exactly matches the string specified here (including backticks, spaces, brackets, etc). |
| `rule.match` | string, one of exact, contains | Indicates whether the match on the query term should be `exact` or `contains`. If we want to match all queries that contained the word `apple`, we will use the `contains` match instead. |
| `rule.query` | string | Indicates what search queries should be curated |
| `rule.tags` | array | List of tag values to associate with this curation rule. |
| `sort_by` | string | A sort by clause that is applied to any search query that matches the curation rule. |
| `stop_processing` | boolean | When set to true, curation processing will stop at the first matching rule. When set to false curation processing will continue and multiple curation actions will be triggered in sequence. Curations... |

Also retrieved by: "a single pinned result rule by id", "one override inside a curation group", "what does this promotion entry do".

### `typesense.upsert_curation_set_item`

Create or update a curation set item. Create or update a curation set item with the given id. Calls PUT /curation_sets/{curationSetName}/items/{itemId}.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `PUT /curation_sets/{{params.curationSetName}}/items/{{params.itemId}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `curationSetName` | string | **yes** | The name of the curation set |
| `effective_from_ts` | integer | no | A Unix timestamp that indicates the date/time from which the curation will be active. You can use this to create rules that start applying from a future point in time. |
| `effective_to_ts` | integer | no | A Unix timestamp that indicates the date/time until which the curation will be active. You can use this to create rules that stop applying after a period of time. |
| `excludes` | array of object | no | List of document `id`s that should be excluded from the search results. |
| `excludes[].id` | string | **yes** | document id that should be excluded from the search results. |
| `filter_by` | string | no | A filter by clause that is applied to any search query that matches the curation rule. |
| `filter_curated_hits` | boolean | no | When set to true, the filter conditions of the query is applied to the curated records as well. Default: false. |
| `id` | string | no | ID of the curation item |
| `includes` | array of object | no | List of document `id`s that should be included in the search results with their corresponding `position`s. |
| `includes[].id` | string | **yes** | document id that should be included |
| `includes[].position` | integer | **yes** | position number where document should be included in the search results |
| `itemId` | string | **yes** | The id of the curation item to upsert |
| `metadata` | object | no | Return a custom JSON object in the Search API response, when this rule is triggered. This can can be used to display a pre-defined message (eg: a promotion banner) on the front-end when a particular... |
| `remove_matched_tokens` | boolean | no | Indicates whether search query tokens that exist in the curation's rule should be removed from the search query. |
| `replace_query` | string | no | Replaces the current search query with this value, when the search query matches the curation rule. |
| `rule` | object | **yes** |  |
| `rule.filter_by` | string | no | Indicates that the curation should apply when the filter_by parameter in a search query exactly matches the string specified here (including backticks, spaces, brackets, etc). |
| `rule.match` | string, one of exact, contains | no | Indicates whether the match on the query term should be `exact` or `contains`. If we want to match all queries that contained the word `apple`, we will use the `contains` match instead. |
| `rule.query` | string | no | Indicates what search queries should be curated |
| `rule.tags` | array | no | List of tag values to associate with this curation rule. |
| `sort_by` | string | no | A sort by clause that is applied to any search query that matches the curation rule. |
| `stop_processing` | boolean | no | When set to true, curation processing will stop at the first matching rule. When set to false curation processing will continue and multiple curation actions will be triggered in sequence. Curations... |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `effective_from_ts` | integer | A Unix timestamp that indicates the date/time from which the curation will be active. You can use this to create rules that start applying from a future point in time. |
| `effective_to_ts` | integer | A Unix timestamp that indicates the date/time until which the curation will be active. You can use this to create rules that stop applying after a period of time. |
| `excludes` | array of object | List of document `id`s that should be excluded from the search results. |
| `excludes[].id` | string | document id that should be excluded from the search results. |
| `filter_by` | string | A filter by clause that is applied to any search query that matches the curation rule. |
| `filter_curated_hits` | boolean | When set to true, the filter conditions of the query is applied to the curated records as well. Default: false. |
| `id` | string | ID of the curation item |
| `includes` | array of object | List of document `id`s that should be included in the search results with their corresponding `position`s. |
| `includes[].id` | string | document id that should be included |
| `includes[].position` | integer | position number where document should be included in the search results |
| `metadata` | object | Return a custom JSON object in the Search API response, when this rule is triggered. This can can be used to display a pre-defined message (eg: a promotion banner) on the front-end when a particular... |
| `remove_matched_tokens` | boolean | Indicates whether search query tokens that exist in the curation's rule should be removed from the search query. |
| `replace_query` | string | Replaces the current search query with this value, when the search query matches the curation rule. |
| `rule` | object |  |
| `rule.filter_by` | string | Indicates that the curation should apply when the filter_by parameter in a search query exactly matches the string specified here (including backticks, spaces, brackets, etc). |
| `rule.match` | string, one of exact, contains | Indicates whether the match on the query term should be `exact` or `contains`. If we want to match all queries that contained the word `apple`, we will use the `contains` match instead. |
| `rule.query` | string | Indicates what search queries should be curated |
| `rule.tags` | array | List of tag values to associate with this curation rule. |
| `sort_by` | string | A sort by clause that is applied to any search query that matches the curation rule. |
| `stop_processing` | boolean | When set to true, curation processing will stop at the first matching rule. When set to false curation processing will continue and multiple curation actions will be triggered in sequence. Curations... |

Also retrieved by: "write one pinned result rule by id", "create or overwrite a single override", "put one promotion entry in place".

### `typesense.delete_curation_set_item`

Delete a curation set item. Delete a specific curation item by its id. Calls DELETE /curation_sets/{curationSetName}/items/{itemId}.

Class `destructive` (held by the mutation gate until the call's own arguments carry `"confirm": true`). No scopes beyond the connection's defaults. Calls `DELETE /curation_sets/{{params.curationSetName}}/items/{{params.itemId}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `curationSetName` | string | **yes** | The name of the curation set |
| `itemId` | string | **yes** | The id of the curation item to delete |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `id` | string | ID of the deleted curation item |

Also retrieved by: "remove one pinned result rule", "drop a single override from curation", "delete one promoted hit by its id".

### `typesense.debug`

Print debugging information. Calls GET /debug.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /debug`.

Takes no arguments.

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `version` | string |  |

Also retrieved by: "show build and runtime internals", "dump diagnostic state of the node", "what version and config is this server on".

### `typesense.health`

Check whether a Typesense node is up: the readiness probe that answers whether the search server can accept requests right now. Calls GET /health.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /health`.

Takes no arguments.

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `ok` | boolean |  |

Also retrieved by: "is the server up", "can the service take requests right now", "readiness of the node".

### `typesense.get_keys`

Retrieve the metadata for every Typesense API key: each credential this cluster has issued, with the actions and collections it is scoped to. The key values themselves are never returned. Calls GET /keys.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /keys`.

Takes no arguments.

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `keys` | array of object |  |
| `keys[].actions` | array |  |
| `keys[].collections` | array |  |
| `keys[].description` | string |  |
| `keys[].expires_at` | integer (int64) |  |
| `keys[].id` | integer (int64) |  |
| `keys[].value` | string |  |
| `keys[].value_prefix` | string |  |

Also retrieved by: "what credentials exist on this cluster", "every token that has been issued", "which credentials can reach my indexes".

### `typesense.create_key`

Create a Typesense API key: issue a credential with fine-grained access control, scoped to the actions and collections it may touch. The full value is returned once, at creation. Calls POST /keys.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `POST /keys`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `actions` | array of string | **yes** |  |
| `collections` | array of string | **yes** |  |
| `description` | string | **yes** |  |
| `expires_at` | integer (int64) | no |  |
| `value` | string | no |  |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `actions` | array of string |  |
| `collections` | array of string |  |
| `description` | string |  |
| `expires_at` | integer (int64) |  |
| `id` | integer (int64) |  |
| `value` | string |  |
| `value_prefix` | string |  |

Also retrieved by: "issue a new credential", "mint a token scoped to one index", "generate access limited to some actions".

### `typesense.get_key`

Retrieve the metadata for one Typesense API key by id: the credential's description and the actions and collections it is scoped to. The key value itself is never returned. Calls GET /keys/{keyId}.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /keys/{{params.keyId}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `keyId` | integer (int64) | **yes** | The ID of the key to retrieve |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `actions` | array of string |  |
| `collections` | array of string |  |
| `description` | string |  |
| `expires_at` | integer (int64) |  |
| `id` | integer (int64) |  |
| `value` | string |  |
| `value_prefix` | string |  |

Also retrieved by: "what is one credential allowed to do", "details of a single token by id", "the scope of one issued credential".

### `typesense.delete_key`

Delete an API key given its ID. Calls DELETE /keys/{keyId}.

Class `destructive` (held by the mutation gate until the call's own arguments carry `"confirm": true`). No scopes beyond the connection's defaults. Calls `DELETE /keys/{{params.keyId}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `keyId` | integer (int64) | **yes** | The ID of the key to delete |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `id` | integer (int64) | The id of the API key that was deleted |

Also retrieved by: "revoke an api credential by id", "remove a token so it stops working", "delete access for one issued key".

### `typesense.retrieve_metrics`

Retrieve a Typesense node's resource usage: its current CPU, memory, disk, and network figures, which is server health rather than search data. Calls GET /metrics.json.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /metrics.json`.

Takes no arguments.

Also retrieved by: "cpu and memory of the node", "how much disk the server is using", "resource figures for this machine".

### `typesense.retrieve_all_nl_search_models`

List all NL search models. Retrieve all NL search models. Calls GET /nl_search_models.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /nl_search_models`.

Takes no arguments.

Also retrieved by: "every natural language query model", "which llms translate plain english searches", "list the nl models configured".

### `typesense.create_nl_search_model`

Create a NL search model. Create a new NL search model. Calls POST /nl_search_models.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `POST /nl_search_models`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `access_token` | string | no | Access token for GCP Vertex AI |
| `account_id` | string | no | Account ID for Cloudflare-specific models |
| `api_key` | string | no | API key for the NL model service |
| `api_url` | string | no | Custom API URL for the NL model service |
| `api_version` | string | no | API version for the NL model service |
| `client_id` | string | no | Client ID for GCP Vertex AI |
| `client_secret` | string | no | Client secret for GCP Vertex AI |
| `id` | string | no | Optional ID for the NL search model |
| `max_bytes` | integer | no | Maximum number of bytes to process |
| `max_output_tokens` | integer | no | Maximum output tokens for GCP Vertex AI |
| `model_name` | string | no | Name of the NL model to use |
| `project_id` | string | no | Project ID for GCP Vertex AI |
| `refresh_token` | string | no | Refresh token for GCP Vertex AI |
| `region` | string | no | Region for GCP Vertex AI |
| `stop_sequences` | array of string | no | Stop sequences for the NL model (Google-specific) |
| `system_prompt` | string | no | System prompt for the NL model |
| `temperature` | number | no | Temperature parameter for the NL model |
| `top_k` | integer | no | Top-k parameter for the NL model (Google-specific) |
| `top_p` | number | no | Top-p parameter for the NL model (Google-specific) |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `access_token` | string | Access token for GCP Vertex AI |
| `account_id` | string | Account ID for Cloudflare-specific models |
| `api_key` | string | API key for the NL model service |
| `api_url` | string | Custom API URL for the NL model service |
| `api_version` | string | API version for the NL model service |
| `client_id` | string | Client ID for GCP Vertex AI |
| `client_secret` | string | Client secret for GCP Vertex AI |
| `id` | string | Optional ID for the NL search model |
| `max_bytes` | integer | Maximum number of bytes to process |
| `max_output_tokens` | integer | Maximum output tokens for GCP Vertex AI |
| `model_name` | string | Name of the NL model to use |
| `project_id` | string | Project ID for GCP Vertex AI |
| `refresh_token` | string | Refresh token for GCP Vertex AI |
| `region` | string | Region for GCP Vertex AI |
| `stop_sequences` | array of string | Stop sequences for the NL model (Google-specific) |
| `system_prompt` | string | System prompt for the NL model |
| `temperature` | number | Temperature parameter for the NL model |
| `top_k` | integer | Top-k parameter for the NL model (Google-specific) |
| `top_p` | number | Top-p parameter for the NL model (Google-specific) |

Also retrieved by: "add a model that turns plain english into queries", "register natural language query translation", "set up llm parsing of user questions".

### `typesense.retrieve_nl_search_model`

Retrieve a NL search model. Retrieve a specific NL search model by its ID. Calls GET /nl_search_models/{modelId}.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /nl_search_models/{{params.modelId}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `modelId` | string | **yes** | The ID of the NL search model to retrieve |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `access_token` | string | Access token for GCP Vertex AI |
| `account_id` | string | Account ID for Cloudflare-specific models |
| `api_key` | string | API key for the NL model service |
| `api_url` | string | Custom API URL for the NL model service |
| `api_version` | string | API version for the NL model service |
| `client_id` | string | Client ID for GCP Vertex AI |
| `client_secret` | string | Client secret for GCP Vertex AI |
| `id` | string | Optional ID for the NL search model |
| `max_bytes` | integer | Maximum number of bytes to process |
| `max_output_tokens` | integer | Maximum output tokens for GCP Vertex AI |
| `model_name` | string | Name of the NL model to use |
| `project_id` | string | Project ID for GCP Vertex AI |
| `refresh_token` | string | Refresh token for GCP Vertex AI |
| `region` | string | Region for GCP Vertex AI |
| `stop_sequences` | array of string | Stop sequences for the NL model (Google-specific) |
| `system_prompt` | string | System prompt for the NL model |
| `temperature` | number | Temperature parameter for the NL model |
| `top_k` | integer | Top-k parameter for the NL model (Google-specific) |
| `top_p` | number | Top-p parameter for the NL model (Google-specific) |

Also retrieved by: "one natural language model by id", "how does this query translator work", "the llm behind plain english search".

### `typesense.update_nl_search_model`

Update a NL search model. Update an existing NL search model. Calls PUT /nl_search_models/{modelId}.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `PUT /nl_search_models/{{params.modelId}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `access_token` | string | no | Access token for GCP Vertex AI |
| `account_id` | string | no | Account ID for Cloudflare-specific models |
| `api_key` | string | no | API key for the NL model service |
| `api_url` | string | no | Custom API URL for the NL model service |
| `api_version` | string | no | API version for the NL model service |
| `client_id` | string | no | Client ID for GCP Vertex AI |
| `client_secret` | string | no | Client secret for GCP Vertex AI |
| `id` | string | no | Optional ID for the NL search model |
| `max_bytes` | integer | no | Maximum number of bytes to process |
| `max_output_tokens` | integer | no | Maximum output tokens for GCP Vertex AI |
| `modelId` | string | **yes** | The ID of the NL search model to update |
| `model_name` | string | no | Name of the NL model to use |
| `project_id` | string | no | Project ID for GCP Vertex AI |
| `refresh_token` | string | no | Refresh token for GCP Vertex AI |
| `region` | string | no | Region for GCP Vertex AI |
| `stop_sequences` | array of string | no | Stop sequences for the NL model (Google-specific) |
| `system_prompt` | string | no | System prompt for the NL model |
| `temperature` | number | no | Temperature parameter for the NL model |
| `top_k` | integer | no | Top-k parameter for the NL model (Google-specific) |
| `top_p` | number | no | Top-p parameter for the NL model (Google-specific) |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `access_token` | string | Access token for GCP Vertex AI |
| `account_id` | string | Account ID for Cloudflare-specific models |
| `api_key` | string | API key for the NL model service |
| `api_url` | string | Custom API URL for the NL model service |
| `api_version` | string | API version for the NL model service |
| `client_id` | string | Client ID for GCP Vertex AI |
| `client_secret` | string | Client secret for GCP Vertex AI |
| `id` | string | Optional ID for the NL search model |
| `max_bytes` | integer | Maximum number of bytes to process |
| `max_output_tokens` | integer | Maximum output tokens for GCP Vertex AI |
| `model_name` | string | Name of the NL model to use |
| `project_id` | string | Project ID for GCP Vertex AI |
| `refresh_token` | string | Refresh token for GCP Vertex AI |
| `region` | string | Region for GCP Vertex AI |
| `stop_sequences` | array of string | Stop sequences for the NL model (Google-specific) |
| `system_prompt` | string | System prompt for the NL model |
| `temperature` | number | Temperature parameter for the NL model |
| `top_k` | integer | Top-k parameter for the NL model (Google-specific) |
| `top_p` | number | Top-p parameter for the NL model (Google-specific) |

Also retrieved by: "change how plain english becomes a query", "edit a natural language model's settings", "point query translation at another llm".

### `typesense.delete_nl_search_model`

Delete a NL search model. Delete a specific NL search model by its ID. Calls DELETE /nl_search_models/{modelId}.

Class `destructive` (held by the mutation gate until the call's own arguments carry `"confirm": true`). No scopes beyond the connection's defaults. Calls `DELETE /nl_search_models/{{params.modelId}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `modelId` | string | **yes** | The ID of the NL search model to delete |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `id` | string | ID of the deleted NL search model |

Also retrieved by: "remove a natural language query model", "drop the llm that parses plain english", "delete one nl model by id".

### `typesense.clear_cache`

Clear the cached responses of search requests in the LRU cache. Clear the cached responses of search requests that are sent with `use_cache` parameter in the LRU cache. Calls POST /operations/cache/clear.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `POST /operations/cache/clear`.

Takes no arguments.

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `success` | boolean |  |

Also retrieved by: "empty the search response cache", "drop cached query results so fresh ones are served", "wipe the lru store of repeated searches".

### `typesense.compact_db`

Compacting the on-disk database. Typesense uses RocksDB to store your documents on the disk. Calls POST /operations/db/compact.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `POST /operations/db/compact`.

Takes no arguments.

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `success` | boolean |  |

Also retrieved by: "compact the rocksdb files on disk", "reclaim space the storage engine is holding", "shrink the document store after heavy writes".

### `typesense.get_schema_changes`

Get the status of in-progress schema change operations. Returns the status of any ongoing schema change operations. Calls GET /operations/schema_changes.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /operations/schema_changes`.

Takes no arguments.

Also retrieved by: "is an alter still running", "progress of in-flight field changes", "which schema updates are still pending".

### `typesense.take_snapshot`

Creates a point-in-time snapshot of a Typesense node's state and data in the specified directory. Calls POST /operations/snapshot.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `POST /operations/snapshot`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `snapshot_path` | string | **yes** | The directory on the server where the snapshot should be saved. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `success` | boolean |  |

Also retrieved by: "back up the node to a directory", "write a point-in-time copy of the data", "make a restorable dump of state".

### `typesense.vote`

Triggers a follower node to initiate the raft voting process, which triggers leader re-election. Calls POST /operations/vote.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `POST /operations/vote`.

Takes no arguments.

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `success` | boolean |  |

Also retrieved by: "force a raft leader re-election", "make this follower call for a new leader", "trigger cluster leadership change".

### `typesense.retrieve_all_presets`

Retrieves all presets. Retrieve the details of all presets. Calls GET /presets.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /presets`.

Takes no arguments.

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `presets` | array of object |  |
| `presets[].name` | string |  |
| `presets[].value` | object |  |

Also retrieved by: "every saved query configuration", "which named parameter sets exist", "list the stored search defaults".

### `typesense.retrieve_preset`

Retrieve one Typesense search preset by name: the set of query parameters stored under it, so clients reuse a saved configuration instead of repeating the arguments. Calls GET /presets/{presetId}.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /presets/{{params.presetId}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `presetId` | string | **yes** | The ID of the preset to retrieve. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `name` | string |  |
| `value` | object |  |
| `value.cache_ttl` | integer | The duration (in seconds) that determines how long the search query is cached. This value can be set on a per-query basis. Default: 60. |
| `value.conversation` | boolean | Enable conversational search. |
| `value.conversation_id` | string | The Id of a previous conversation to continue, this tells Typesense to include prior context when communicating with the LLM. |
| `value.conversation_model_id` | string | The Id of Conversation Model to be used. |
| `value.curation_tags` | string | Comma separated list of tags to trigger the curations rules that match the tags. |
| `value.drop_tokens_mode` | string, one of right_to_left, left_to_right, both_sides:3 | Dictates the direction in which the words in the query must be dropped when the original words in the query do not appear in any document. Values: right_to_left (default), left_to_right, both_sides:3... |
| `value.drop_tokens_threshold` | integer | If the number of results found for a specific query is less than this number, Typesense will attempt to drop the tokens in the query until enough results are found. Tokens that have the least... |
| `value.enable_analytics` | boolean | Flag for enabling/disabling analytics aggregation for specific search queries (for e.g. those originating from a test script). Defaults to true. |
| `value.enable_curations` | boolean | If you have some curation sets defined but want to disable all of them during query time, you can do that by setting this parameter to false. Defaults to false. |
| `value.enable_highlight_v1` | boolean | Flag for enabling/disabling the deprecated, old highlight structure in the response. Default: true. Defaults to true. |
| `value.enable_synonyms` | boolean | If you have some synonyms defined but want to disable all of them for a particular search query, set enable_synonyms to false. Default: true |
| `value.enable_typos_for_alpha_numerical_tokens` | boolean | Set this parameter to false to disable typos on alphanumerical query tokens. Default: true. |
| `value.enable_typos_for_numerical_tokens` | boolean | Make Typesense disable typos for numerical tokens. Defaults to true. |
| `value.exclude_fields` | string | List of fields from the document to exclude in the search result |
| `value.exhaustive_search` | boolean | Setting this to true will make Typesense consider all prefixes and typo corrections of the words in the query without stopping early when enough results are found (drop_tokens_threshold and... |
| `value.facet_by` | string | A list of fields that will be used for faceting your results on. Separate multiple fields with a comma. |
| `value.facet_query` | string | Facet values that are returned can now be filtered via this parameter. The matching facet text is also highlighted. For example, when faceting by `category`, you can set `facet_query=category:shoe`... |
| `value.facet_return_parent` | string | Comma separated string of nested facet fields whose parent object should be returned in facet response. |
| `value.facet_strategy` | string | Choose the underlying faceting strategy used. Comma separated string of allows values: exhaustive, top_values or automatic (default). |
| `value.filter_by` | string | Filter conditions for refining your open api validator search results. Separate multiple conditions with &&. |
| `value.filter_curated_hits` | boolean | Whether the filter_by condition of the search query should be applicable to curated results (curation definitions, pinned hits, hidden hits, etc.). Default: false |
| `value.group_by` | string | You can aggregate search results into groups or buckets by specify one or more `group_by` fields. Separate multiple fields with a comma. To group on a particular field, it must be a faceted field. |
| `value.group_limit` | integer | Maximum number of hits to be returned for every group. If the `group_limit` is set as `K` then only the top K hits in each group are returned in the response. Default: 3 |
| `value.group_missing_values` | boolean | Setting this parameter to true will place all documents that have a null value in the group_by field, into a single group. Setting this parameter to false, will cause each document with a null value... |
| `value.hidden_hits` | string | A list of records to unconditionally hide from search results. A list of `record_id`s to hide. Eg: to hide records with IDs 123 and 456, you'd specify `123,456`. You could also use the Curation... |

Also retrieved by: "a saved set of query parameters", "the stored configuration behind a name", "one reusable query definition".

### `typesense.upsert_preset`

Upserts a preset. Create or update an existing preset. Calls PUT /presets/{presetId}.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `PUT /presets/{{params.presetId}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `presetId` | string | **yes** | The name of the preset set to upsert. |
| `value` | object | **yes** |  |
| `value.cache_ttl` | integer | no | The duration (in seconds) that determines how long the search query is cached. This value can be set on a per-query basis. Default: 60. |
| `value.conversation` | boolean | no | Enable conversational search. |
| `value.conversation_id` | string | no | The Id of a previous conversation to continue, this tells Typesense to include prior context when communicating with the LLM. |
| `value.conversation_model_id` | string | no | The Id of Conversation Model to be used. |
| `value.curation_tags` | string | no | Comma separated list of tags to trigger the curations rules that match the tags. |
| `value.drop_tokens_mode` | string, one of right_to_left, left_to_right, both_sides:3 | no | Dictates the direction in which the words in the query must be dropped when the original words in the query do not appear in any document. Values: right_to_left (default), left_to_right, both_sides:3... |
| `value.drop_tokens_threshold` | integer | no | If the number of results found for a specific query is less than this number, Typesense will attempt to drop the tokens in the query until enough results are found. Tokens that have the least... |
| `value.enable_analytics` | boolean | no | Flag for enabling/disabling analytics aggregation for specific search queries (for e.g. those originating from a test script). Defaults to true. |
| `value.enable_curations` | boolean | no | If you have some curation sets defined but want to disable all of them during query time, you can do that by setting this parameter to false. Defaults to false. |
| `value.enable_highlight_v1` | boolean | no | Flag for enabling/disabling the deprecated, old highlight structure in the response. Default: true. Defaults to true. |
| `value.enable_synonyms` | boolean | no | If you have some synonyms defined but want to disable all of them for a particular search query, set enable_synonyms to false. Default: true |
| `value.enable_typos_for_alpha_numerical_tokens` | boolean | no | Set this parameter to false to disable typos on alphanumerical query tokens. Default: true. |
| `value.enable_typos_for_numerical_tokens` | boolean | no | Make Typesense disable typos for numerical tokens. Defaults to true. |
| `value.exclude_fields` | string | no | List of fields from the document to exclude in the search result |
| `value.exhaustive_search` | boolean | no | Setting this to true will make Typesense consider all prefixes and typo corrections of the words in the query without stopping early when enough results are found (drop_tokens_threshold and... |
| `value.facet_by` | string | no | A list of fields that will be used for faceting your results on. Separate multiple fields with a comma. |
| `value.facet_query` | string | no | Facet values that are returned can now be filtered via this parameter. The matching facet text is also highlighted. For example, when faceting by `category`, you can set `facet_query=category:shoe`... |
| `value.facet_return_parent` | string | no | Comma separated string of nested facet fields whose parent object should be returned in facet response. |
| `value.facet_strategy` | string | no | Choose the underlying faceting strategy used. Comma separated string of allows values: exhaustive, top_values or automatic (default). |
| `value.filter_by` | string | no | Filter conditions for refining your open api validator search results. Separate multiple conditions with &&. |
| `value.filter_curated_hits` | boolean | no | Whether the filter_by condition of the search query should be applicable to curated results (curation definitions, pinned hits, hidden hits, etc.). Default: false |
| `value.group_by` | string | no | You can aggregate search results into groups or buckets by specify one or more `group_by` fields. Separate multiple fields with a comma. To group on a particular field, it must be a faceted field. |
| `value.group_limit` | integer | no | Maximum number of hits to be returned for every group. If the `group_limit` is set as `K` then only the top K hits in each group are returned in the response. Default: 3 |
| `value.group_missing_values` | boolean | no | Setting this parameter to true will place all documents that have a null value in the group_by field, into a single group. Setting this parameter to false, will cause each document with a null value... |
| `value.hidden_hits` | string | no | A list of records to unconditionally hide from search results. A list of `record_id`s to hide. Eg: to hide records with IDs 123 and 456, you'd specify `123,456`. You could also use the Curation... |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `name` | string |  |
| `value` | object |  |
| `value.cache_ttl` | integer | The duration (in seconds) that determines how long the search query is cached. This value can be set on a per-query basis. Default: 60. |
| `value.conversation` | boolean | Enable conversational search. |
| `value.conversation_id` | string | The Id of a previous conversation to continue, this tells Typesense to include prior context when communicating with the LLM. |
| `value.conversation_model_id` | string | The Id of Conversation Model to be used. |
| `value.curation_tags` | string | Comma separated list of tags to trigger the curations rules that match the tags. |
| `value.drop_tokens_mode` | string, one of right_to_left, left_to_right, both_sides:3 | Dictates the direction in which the words in the query must be dropped when the original words in the query do not appear in any document. Values: right_to_left (default), left_to_right, both_sides:3... |
| `value.drop_tokens_threshold` | integer | If the number of results found for a specific query is less than this number, Typesense will attempt to drop the tokens in the query until enough results are found. Tokens that have the least... |
| `value.enable_analytics` | boolean | Flag for enabling/disabling analytics aggregation for specific search queries (for e.g. those originating from a test script). Defaults to true. |
| `value.enable_curations` | boolean | If you have some curation sets defined but want to disable all of them during query time, you can do that by setting this parameter to false. Defaults to false. |
| `value.enable_highlight_v1` | boolean | Flag for enabling/disabling the deprecated, old highlight structure in the response. Default: true. Defaults to true. |
| `value.enable_synonyms` | boolean | If you have some synonyms defined but want to disable all of them for a particular search query, set enable_synonyms to false. Default: true |
| `value.enable_typos_for_alpha_numerical_tokens` | boolean | Set this parameter to false to disable typos on alphanumerical query tokens. Default: true. |
| `value.enable_typos_for_numerical_tokens` | boolean | Make Typesense disable typos for numerical tokens. Defaults to true. |
| `value.exclude_fields` | string | List of fields from the document to exclude in the search result |
| `value.exhaustive_search` | boolean | Setting this to true will make Typesense consider all prefixes and typo corrections of the words in the query without stopping early when enough results are found (drop_tokens_threshold and... |
| `value.facet_by` | string | A list of fields that will be used for faceting your results on. Separate multiple fields with a comma. |
| `value.facet_query` | string | Facet values that are returned can now be filtered via this parameter. The matching facet text is also highlighted. For example, when faceting by `category`, you can set `facet_query=category:shoe`... |
| `value.facet_return_parent` | string | Comma separated string of nested facet fields whose parent object should be returned in facet response. |
| `value.facet_strategy` | string | Choose the underlying faceting strategy used. Comma separated string of allows values: exhaustive, top_values or automatic (default). |
| `value.filter_by` | string | Filter conditions for refining your open api validator search results. Separate multiple conditions with &&. |
| `value.filter_curated_hits` | boolean | Whether the filter_by condition of the search query should be applicable to curated results (curation definitions, pinned hits, hidden hits, etc.). Default: false |
| `value.group_by` | string | You can aggregate search results into groups or buckets by specify one or more `group_by` fields. Separate multiple fields with a comma. To group on a particular field, it must be a faceted field. |
| `value.group_limit` | integer | Maximum number of hits to be returned for every group. If the `group_limit` is set as `K` then only the top K hits in each group are returned in the response. Default: 3 |
| `value.group_missing_values` | boolean | Setting this parameter to true will place all documents that have a null value in the group_by field, into a single group. Setting this parameter to false, will cause each document with a null value... |
| `value.hidden_hits` | string | A list of records to unconditionally hide from search results. A list of `record_id`s to hide. Eg: to hide records with IDs 123 and 456, you'd specify `123,456`. You could also use the Curation... |

Also retrieved by: "replace a preset", "overwrite a preset", "swap out a preset".

### `typesense.delete_preset`

Delete a preset. Permanently deletes a preset, given it's name. Calls DELETE /presets/{presetId}.

Class `destructive` (held by the mutation gate until the call's own arguments carry `"confirm": true`). No scopes beyond the connection's defaults. Calls `DELETE /presets/{{params.presetId}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `presetId` | string | **yes** | The ID of the preset to delete. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `name` | string |  |

Also retrieved by: "get rid of a preset", "take down a preset", "clear out a preset".

### `typesense.retrieve_api_stats`

Get stats about API endpoints. Retrieve the stats about API endpoints. Calls GET /stats.json.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /stats.json`.

Takes no arguments.

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `delete_latency_ms` | number (double) |  |
| `delete_requests_per_second` | number (double) |  |
| `import_latency_ms` | number (double) |  |
| `import_requests_per_second` | number (double) |  |
| `latency_ms` | object |  |
| `overloaded_requests_per_second` | number (double) |  |
| `pending_write_batches` | number (double) |  |
| `requests_per_second` | object |  |
| `search_latency_ms` | number (double) |  |
| `search_requests_per_second` | number (double) |  |
| `total_requests_per_second` | number (double) |  |
| `write_latency_ms` | number (double) |  |
| `write_requests_per_second` | number (double) |  |

Also retrieved by: "requests per second by endpoint", "latency figures for the api", "how busy each route has been".

### `typesense.list_stemming_dictionaries`

List all stemming dictionaries. Retrieve a list of all available stemming dictionaries. Calls GET /stemming/dictionaries.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /stemming/dictionaries`.

Takes no arguments.

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `dictionaries` | array of string |  |

Also retrieved by: "every stemming dictionary on the cluster", "what word-root sets exist", "names of all stored stem mappings".

### `typesense.get_stemming_dictionary`

Retrieve a stemming dictionary. Fetch details of a specific stemming dictionary. Calls GET /stemming/dictionaries/{dictionaryId}.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /stemming/dictionaries/{{params.dictionaryId}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `dictionaryId` | string | **yes** | The ID of the dictionary to retrieve |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `id` | string | Unique identifier for the dictionary |
| `words` | array of object | List of word mappings in the dictionary |
| `words[].root` | string | The root form of the word |
| `words[].word` | string | The word form to be stemmed |

Also retrieved by: "one stored set of word-root rules", "the stemming entries behind a name", "how a dictionary maps forms to roots".

### `typesense.retrieve_stopwords_sets`

Retrieves all stopwords sets. Retrieve the details of all stopwords sets. Calls GET /stopwords.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /stopwords`.

Takes no arguments.

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `stopwords` | array of object |  |
| `stopwords[].id` | string |  |
| `stopwords[].locale` | string |  |
| `stopwords[].stopwords` | array |  |

Also retrieved by: "every list of ignored words", "which stopword names exist", "all sets of terms search skips".

### `typesense.retrieve_stopwords_set`

Retrieve one Typesense stopwords set by name: the words search ignores at query time when that set is applied. Calls GET /stopwords/{setId}.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /stopwords/{{params.setId}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `setId` | string | **yes** | The ID of the stopwords set to retrieve. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `stopwords` | object |  |
| `stopwords.id` | string |  |
| `stopwords.locale` | string |  |
| `stopwords.stopwords` | array |  |

Also retrieved by: "which words does search ignore", "one stored list of ignored words", "a named set of skipped terms".

### `typesense.upsert_stopwords_set`

Upserts a stopwords set. When an analytics rule is created, we give it a name and describe the type, the source collections and the destination collection. Calls PUT /stopwords/{setId}.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `PUT /stopwords/{{params.setId}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `locale` | string | no |  |
| `setId` | string | **yes** | The ID of the stopwords set to upsert. |
| `stopwords` | array of string | **yes** |  |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `id` | string |  |
| `locale` | string |  |
| `stopwords` | array of string |  |

Also retrieved by: "write a list of words search should ignore", "create or overwrite skipped terms by name", "replace the stopword entries under a name".

### `typesense.delete_stopwords_set`

Delete a stopwords set. Permanently deletes a stopwords set, given it's name. Calls DELETE /stopwords/{setId}.

Class `destructive` (held by the mutation gate until the call's own arguments carry `"confirm": true`). No scopes beyond the connection's defaults. Calls `DELETE /stopwords/{{params.setId}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `setId` | string | **yes** | The ID of the stopwords set to delete. |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `id` | string |  |

Also retrieved by: "remove a named list of ignored words", "drop stopwords so they count again", "delete one set of skipped terms".

### `typesense.retrieve_synonym_sets`

List all synonym sets. Retrieve all synonym sets. Calls GET /synonym_sets.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /synonym_sets`.

Takes no arguments.

Also retrieved by: "every synonym group on the cluster", "which word equivalence names exist", "list all stored alternate term sets".

### `typesense.retrieve_synonym_set`

Retrieve a synonym set. Retrieve a specific synonym set by its name. Calls GET /synonym_sets/{synonymSetName}.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /synonym_sets/{{params.synonymSetName}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `synonymSetName` | string | **yes** | The name of the synonym set to retrieve |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `items` | array of object | Array of synonym items |
| `items[].id` | string | Unique identifier for the synonym item |
| `items[].locale` | string | Locale for the synonym, leave blank to use the standard tokenizer |
| `items[].root` | string | For 1-way synonyms, indicates the root word that words in the synonyms parameter map to |
| `items[].symbols_to_index` | array | By default, special characters are dropped from synonyms. Use this attribute to specify which special characters should be indexed as is |
| `items[].synonyms` | array | Array of words that should be considered as synonyms |
| `name` | string | Name of the synonym set |

Also retrieved by: "the word equivalents stored under a name", "one synonym group and its entries", "which terms are treated as the same here".

### `typesense.upsert_synonym_set`

Create or update a synonym set. Create or update a synonym set with the given name. Calls PUT /synonym_sets/{synonymSetName}.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `PUT /synonym_sets/{{params.synonymSetName}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `items` | array of object | **yes** | Array of synonym items |
| `items[].id` | string | **yes** | Unique identifier for the synonym item |
| `items[].locale` | string | no | Locale for the synonym, leave blank to use the standard tokenizer |
| `items[].root` | string | no | For 1-way synonyms, indicates the root word that words in the synonyms parameter map to |
| `items[].symbols_to_index` | array | no | By default, special characters are dropped from synonyms. Use this attribute to specify which special characters should be indexed as is |
| `items[].synonyms` | array | **yes** | Array of words that should be considered as synonyms |
| `synonymSetName` | string | **yes** | The name of the synonym set to create/update |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `items` | array of object | Array of synonym items |
| `items[].id` | string | Unique identifier for the synonym item |
| `items[].locale` | string | Locale for the synonym, leave blank to use the standard tokenizer |
| `items[].root` | string | For 1-way synonyms, indicates the root word that words in the synonyms parameter map to |
| `items[].symbols_to_index` | array | By default, special characters are dropped from synonyms. Use this attribute to specify which special characters should be indexed as is |
| `items[].synonyms` | array | Array of words that should be considered as synonyms |
| `name` | string | Name of the synonym set |

Also retrieved by: "write a group of word equivalents by name", "create or overwrite stored synonyms", "put alternate term rules in place".

### `typesense.delete_synonym_set`

Delete a synonym set. Delete a specific synonym set by its name. Calls DELETE /synonym_sets/{synonymSetName}.

Class `destructive` (held by the mutation gate until the call's own arguments carry `"confirm": true`). No scopes beyond the connection's defaults. Calls `DELETE /synonym_sets/{{params.synonymSetName}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `synonymSetName` | string | **yes** | The name of the synonym set to delete |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `name` | string | Name of the deleted synonym set |

Also retrieved by: "remove a whole set of word equivalents", "drop synonyms by name", "delete stored alternate terms for search".

### `typesense.retrieve_synonym_set_items`

List items in a synonym set. Retrieve all synonym items in a set. Calls GET /synonym_sets/{synonymSetName}/items.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /synonym_sets/{{params.synonymSetName}}/items`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `synonymSetName` | string | **yes** | The name of the synonym set to retrieve items for |

Also retrieved by: "every entry inside one synonym group", "all word equivalences under a name", "which alternates does this set define".

### `typesense.retrieve_synonym_set_item`

Retrieve a synonym set item. Retrieve a specific synonym item by its id. Calls GET /synonym_sets/{synonymSetName}/items/{itemId}.

Class `read` (reads only). No scopes beyond the connection's defaults. Calls `GET /synonym_sets/{{params.synonymSetName}}/items/{{params.itemId}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `itemId` | string | **yes** | The id of the synonym item to retrieve |
| `synonymSetName` | string | **yes** | The name of the synonym set |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `id` | string | Unique identifier for the synonym item |
| `locale` | string | Locale for the synonym, leave blank to use the standard tokenizer |
| `root` | string | For 1-way synonyms, indicates the root word that words in the synonyms parameter map to |
| `symbols_to_index` | array of string | By default, special characters are dropped from synonyms. Use this attribute to specify which special characters should be indexed as is |
| `synonyms` | array of string | Array of words that should be considered as synonyms |

Also retrieved by: "one synonym entry by id", "a single stored word equivalence", "what alternates does this rule hold".

### `typesense.upsert_synonym_set_item`

Create or update a synonym set item. Create or update a synonym set item with the given id. Calls PUT /synonym_sets/{synonymSetName}/items/{itemId}.

Class `write` (writes, no confirmation needed). No scopes beyond the connection's defaults. Calls `PUT /synonym_sets/{{params.synonymSetName}}/items/{{params.itemId}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `itemId` | string | **yes** | The id of the synonym item to upsert |
| `locale` | string | no | Locale for the synonym, leave blank to use the standard tokenizer |
| `root` | string | no | For 1-way synonyms, indicates the root word that words in the synonyms parameter map to |
| `symbols_to_index` | array of string | no | By default, special characters are dropped from synonyms. Use this attribute to specify which special characters should be indexed as is |
| `synonymSetName` | string | **yes** | The name of the synonym set |
| `synonyms` | array of string | **yes** | Array of words that should be considered as synonyms |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `id` | string | Unique identifier for the synonym item |
| `locale` | string | Locale for the synonym, leave blank to use the standard tokenizer |
| `root` | string | For 1-way synonyms, indicates the root word that words in the synonyms parameter map to |
| `symbols_to_index` | array of string | By default, special characters are dropped from synonyms. Use this attribute to specify which special characters should be indexed as is |
| `synonyms` | array of string | Array of words that should be considered as synonyms |

Also retrieved by: "write one synonym entry by id", "create or overwrite a single word equivalence", "put one alternate term rule in place".

### `typesense.delete_synonym_set_item`

Delete a synonym set item. Delete a specific synonym item by its id. Calls DELETE /synonym_sets/{synonymSetName}/items/{itemId}.

Class `destructive` (held by the mutation gate until the call's own arguments carry `"confirm": true`). No scopes beyond the connection's defaults. Calls `DELETE /synonym_sets/{{params.synonymSetName}}/items/{{params.itemId}}`.

Arguments:

| Argument | Type | Required | Notes |
| --- | --- | --- | --- |
| `itemId` | string | **yes** | The id of the synonym item to delete |
| `synonymSetName` | string | **yes** | The name of the synonym set |

Result fields (the payload is trimmed to these before it reaches the model):

| Field | Type | Notes |
| --- | --- | --- |
| `id` | string | ID of the deleted synonym item |

Also retrieved by: "remove one synonym entry", "drop a single word equivalence by id", "delete one alternate term from the set".
