Search API
Base URL: https://YOUR-SERVER/api. Send your API key in x-api-key where authentication is required. A key also needs the listed permission; your account's access rules still apply.
API guide · All endpoints · OpenAPI JSON
POST /search/ask— Ask SearchGET /search/cities— Retrieve assets by cityGET /search/cities/counts— Retrieve asset counts by cityGET /search/explore— Retrieve explore dataPOST /search/facets— Search facet countsPOST /search/histogram— Search date histogramPOST /search/large-assets— Search large assetsPOST /search/metadata— Search assets by metadataGET /search/person— Search peopleGET /search/places— Search placesPOST /search/random— Search random assetsPOST /search/smart— Smart asset searchPOST /search/smart/statistics— Smart search statisticsPOST /search/statistics— Search asset statisticsGET /search/suggestions— Retrieve search suggestions
Ask Search
POST /api/search/ask
Interpret a natural language query locally and search assets with existing search primitives.
Authentication: API key. Permission: asset.read.
Request body
Required.
Field definitions: AskSearchDto
{
"application/json": {
"schema": {
"$ref": "#/components/schemas/AskSearchDto"
}
}
}Responses
Field definitions: AskSearchResponseDto
{
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AskSearchResponseDto"
}
}
},
"description": ""
}
}Retrieve assets by city
GET /api/search/cities
Retrieve a list of assets with each asset belonging to a different city. This endpoint is used on the places pages to show a single thumbnail for each city the user has assets in.
Authentication: API key. Permission: asset.read.
Responses
Field definitions: AssetResponseDto
{
"200": {
"content": {
"application/json": {
"schema": {
"items": {
"$ref": "#/components/schemas/AssetResponseDto"
},
"type": "array"
}
}
},
"description": ""
}
}Retrieve asset counts by city
GET /api/search/cities/counts
Retrieve how many timeline photos and videos the user can see in each city. Counts include videos, while GET /search/cities lists only cities with at least one photo, so a city that has only videos appears here but not in that list. Locked, hidden and trashed media are never counted.
Authentication: API key. Permission: asset.read.
Responses
Field definitions: SearchCityCountResponseDto
{
"200": {
"content": {
"application/json": {
"schema": {
"items": {
"$ref": "#/components/schemas/SearchCityCountResponseDto"
},
"type": "array"
}
}
},
"description": ""
}
}Retrieve explore data
GET /api/search/explore
Retrieve data for the explore section, such as popular people and places.
Authentication: API key. Permission: asset.read.
Responses
Field definitions: SearchExploreResponseDto
{
"200": {
"content": {
"application/json": {
"schema": {
"items": {
"$ref": "#/components/schemas/SearchExploreResponseDto"
},
"type": "array"
}
}
},
"description": ""
}
}Search facet counts
POST /api/search/facets
Count the assets a metadata search body matches by people, media type, places, cameras, lenses, rating, favorites and tags. People and tags are the caller's own; places of partners who hide their locations are left out.
Authentication: API key. Permission: asset.read.
Request body
Required.
Field definitions: SearchFacetsDto
{
"application/json": {
"schema": {
"$ref": "#/components/schemas/SearchFacetsDto"
}
}
}Responses
Field definitions: SearchFacetsResponseDto
{
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SearchFacetsResponseDto"
}
}
},
"description": ""
}
}Search date histogram
POST /api/search/histogram
Count the assets a metadata search body matches per local capture day, month or year. The buckets add up to the POST /search/statistics total for the same body.
Authentication: API key. Permission: asset.read.
Request body
Required.
Field definitions: SearchHistogramDto
{
"application/json": {
"schema": {
"$ref": "#/components/schemas/SearchHistogramDto"
}
}
}Responses
Field definitions: SearchHistogramResponseDto
{
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SearchHistogramResponseDto"
}
}
},
"description": ""
}
}Search large assets
POST /api/search/large-assets
Search for assets that are considered large based on specified criteria.
Authentication: API key. Permission: asset.read.
Parameters
| Name | Where | Required | Description |
|---|---|---|---|
albumIds | query | No | Filter by album IDs |
city | query | No | Filter by city name |
country | query | No | Filter by country name |
createdAfter | query | No | Filter by creation date (after) |
createdBefore | query | No | Filter by creation date (before) |
imageEnrichment | query | No | |
isEncoded | query | No | Filter by encoded status |
isFavorite | query | No | Filter by favorite status |
isMotion | query | No | Filter by motion photo status |
isNotInAlbum | query | No | Filter assets not in any album |
isOffline | query | No | Filter by offline status |
lensModel | query | No | Filter by lens model |
libraryId | query | No | Library ID to filter by |
make | query | No | Filter by camera make |
minFileSize | query | No | Minimum file size in bytes |
model | query | No | Filter by camera model |
ocr | query | No | Filter by OCR text content |
personIds | query | No | Filter by person IDs |
petIds | query | No | Filter by the caller's own pet IDs (confirmed pet observations only) |
rating | query | No | Filter by rating [1-5], or null for unrated |
size | query | No | Number of results to return |
state | query | No | Filter by state/province name |
suppressedOnly | query | No | Return only suppressed content. Requires an elevated session. |
tagIds | query | No | Filter by tag IDs |
takenAfter | query | No | Filter by taken date (after) |
takenBefore | query | No | Filter by taken date (before) |
trashedAfter | query | No | Filter by trash date (after) |
trashedBefore | query | No | Filter by trash date (before) |
type | query | No | |
updatedAfter | query | No | Filter by update date (after) |
updatedBefore | query | No | Filter by update date (before) |
visibility | query | No | |
withDeleted | query | No | Include deleted assets |
withExif | query | No | Include EXIF data in response |
Parameter types, defaults and constraints
Field definitions: ImageEnrichmentFilter, AssetTypeEnum, AssetVisibility
[
{
"name": "albumIds",
"required": false,
"in": "query",
"description": "Filter by album IDs",
"deprecated": true,
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$"
}
}
},
{
"name": "city",
"required": false,
"in": "query",
"description": "Filter by city name",
"deprecated": true,
"schema": {
"type": "string",
"nullable": true
}
},
{
"name": "country",
"required": false,
"in": "query",
"description": "Filter by country name",
"deprecated": true,
"schema": {
"type": "string",
"nullable": true
}
},
{
"name": "createdAfter",
"required": false,
"in": "query",
"description": "Filter by creation date (after)",
"deprecated": true,
"schema": {
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"example": "2024-01-01T00:00:00.000Z",
"type": "string"
}
},
{
"name": "createdBefore",
"required": false,
"in": "query",
"description": "Filter by creation date (before)",
"deprecated": true,
"schema": {
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"example": "2024-01-01T00:00:00.000Z",
"type": "string"
}
},
{
"name": "imageEnrichment",
"required": false,
"in": "query",
"schema": {
"$ref": "#/components/schemas/ImageEnrichmentFilter"
}
},
{
"name": "isEncoded",
"required": false,
"in": "query",
"description": "Filter by encoded status",
"deprecated": true,
"schema": {
"type": "boolean"
}
},
{
"name": "isFavorite",
"required": false,
"in": "query",
"description": "Filter by favorite status",
"deprecated": true,
"schema": {
"type": "boolean"
}
},
{
"name": "isMotion",
"required": false,
"in": "query",
"description": "Filter by motion photo status",
"deprecated": true,
"schema": {
"type": "boolean"
}
},
{
"name": "isNotInAlbum",
"required": false,
"in": "query",
"description": "Filter assets not in any album",
"deprecated": true,
"schema": {
"type": "boolean"
}
},
{
"name": "isOffline",
"required": false,
"in": "query",
"description": "Filter by offline status",
"deprecated": true,
"schema": {
"type": "boolean"
}
},
{
"name": "lensModel",
"required": false,
"in": "query",
"description": "Filter by lens model",
"deprecated": true,
"schema": {
"type": "string",
"nullable": true
}
},
{
"name": "libraryId",
"required": false,
"in": "query",
"description": "Library ID to filter by",
"deprecated": true,
"schema": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
"nullable": true
}
},
{
"name": "make",
"required": false,
"in": "query",
"description": "Filter by camera make",
"deprecated": true,
"schema": {
"type": "string",
"nullable": true
}
},
{
"name": "minFileSize",
"required": false,
"in": "query",
"description": "Minimum file size in bytes",
"schema": {
"minimum": 0,
"maximum": 9007199254740991,
"type": "integer"
}
},
{
"name": "model",
"required": false,
"in": "query",
"description": "Filter by camera model",
"deprecated": true,
"schema": {
"type": "string",
"nullable": true
}
},
{
"name": "ocr",
"required": false,
"in": "query",
"description": "Filter by OCR text content",
"deprecated": true,
"schema": {
"type": "string"
}
},
{
"name": "personIds",
"required": false,
"in": "query",
"description": "Filter by person IDs",
"deprecated": true,
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$"
}
}
},
{
"name": "petIds",
"required": false,
"in": "query",
"description": "Filter by the caller's own pet IDs (confirmed pet observations only)",
"deprecated": true,
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$"
}
}
},
{
"name": "rating",
"required": false,
"in": "query",
"description": "Filter by rating [1-5], or null for unrated",
"deprecated": true,
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 5,
"nullable": true
}
},
{
"name": "size",
"required": false,
"in": "query",
"description": "Number of results to return",
"schema": {
"minimum": 1,
"maximum": 1000,
"type": "integer"
}
},
{
"name": "state",
"required": false,
"in": "query",
"description": "Filter by state/province name",
"deprecated": true,
"schema": {
"type": "string",
"nullable": true
}
},
{
"name": "suppressedOnly",
"required": false,
"in": "query",
"description": "Return only suppressed content. Requires an elevated session.",
"schema": {
"type": "boolean"
}
},
{
"name": "tagIds",
"required": false,
"in": "query",
"description": "Filter by tag IDs",
"deprecated": true,
"schema": {
"type": "array",
"items": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$"
},
"nullable": true
}
},
{
"name": "takenAfter",
"required": false,
"in": "query",
"description": "Filter by taken date (after)",
"deprecated": true,
"schema": {
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"example": "2024-01-01T00:00:00.000Z",
"type": "string"
}
},
{
"name": "takenBefore",
"required": false,
"in": "query",
"description": "Filter by taken date (before)",
"deprecated": true,
"schema": {
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"example": "2024-01-01T00:00:00.000Z",
"type": "string"
}
},
{
"name": "trashedAfter",
"required": false,
"in": "query",
"description": "Filter by trash date (after)",
"deprecated": true,
"schema": {
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"example": "2024-01-01T00:00:00.000Z",
"type": "string"
}
},
{
"name": "trashedBefore",
"required": false,
"in": "query",
"description": "Filter by trash date (before)",
"deprecated": true,
"schema": {
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"example": "2024-01-01T00:00:00.000Z",
"type": "string"
}
},
{
"name": "type",
"required": false,
"in": "query",
"deprecated": true,
"schema": {
"$ref": "#/components/schemas/AssetTypeEnum"
}
},
{
"name": "updatedAfter",
"required": false,
"in": "query",
"description": "Filter by update date (after)",
"deprecated": true,
"schema": {
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"example": "2024-01-01T00:00:00.000Z",
"type": "string"
}
},
{
"name": "updatedBefore",
"required": false,
"in": "query",
"description": "Filter by update date (before)",
"deprecated": true,
"schema": {
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"example": "2024-01-01T00:00:00.000Z",
"type": "string"
}
},
{
"name": "visibility",
"required": false,
"in": "query",
"deprecated": true,
"schema": {
"$ref": "#/components/schemas/AssetVisibility"
}
},
{
"name": "withDeleted",
"required": false,
"in": "query",
"description": "Include deleted assets",
"deprecated": true,
"schema": {
"type": "boolean"
}
},
{
"name": "withExif",
"required": false,
"in": "query",
"description": "Include EXIF data in response",
"schema": {
"type": "boolean"
}
}
]Responses
Field definitions: AssetResponseDto
{
"200": {
"content": {
"application/json": {
"schema": {
"items": {
"$ref": "#/components/schemas/AssetResponseDto"
},
"type": "array"
}
}
},
"description": ""
}
}Search assets by metadata
POST /api/search/metadata
Search for assets based on various metadata criteria.
Authentication: API key. Permission: asset.read.
Parameters
| Name | Where | Required | Description |
|---|---|---|---|
key | query | No | string |
slug | query | No | string |
Parameter types, defaults and constraints
[
{
"name": "key",
"required": false,
"in": "query",
"schema": {
"type": "string"
}
},
{
"name": "slug",
"required": false,
"in": "query",
"schema": {
"type": "string"
}
}
]Request body
Required.
Field definitions: MetadataSearchDto
{
"application/json": {
"schema": {
"$ref": "#/components/schemas/MetadataSearchDto"
}
}
}Responses
Field definitions: SearchResponseDto
{
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SearchResponseDto"
}
}
},
"description": ""
}
}Search people
GET /api/search/person
Search for people by name.
Authentication: API key. Permission: person.read.
Parameters
| Name | Where | Required | Description |
|---|---|---|---|
name | query | Yes | Person name to search for |
withHidden | query | No | Include hidden people |
Parameter types, defaults and constraints
[
{
"name": "name",
"required": true,
"in": "query",
"description": "Person name to search for",
"schema": {
"type": "string"
}
},
{
"name": "withHidden",
"required": false,
"in": "query",
"description": "Include hidden people",
"schema": {
"type": "boolean"
}
}
]Responses
Field definitions: PersonResponseDto
{
"200": {
"content": {
"application/json": {
"schema": {
"items": {
"$ref": "#/components/schemas/PersonResponseDto"
},
"type": "array"
}
}
},
"description": ""
}
}Search places
GET /api/search/places
Search for places by name.
Authentication: API key. Permission: asset.read.
Parameters
| Name | Where | Required | Description |
|---|---|---|---|
name | query | Yes | Place name to search for |
Parameter types, defaults and constraints
[
{
"name": "name",
"required": true,
"in": "query",
"description": "Place name to search for",
"schema": {
"type": "string"
}
}
]Responses
Field definitions: PlacesResponseDto
{
"200": {
"content": {
"application/json": {
"schema": {
"items": {
"$ref": "#/components/schemas/PlacesResponseDto"
},
"type": "array"
}
}
},
"description": ""
}
}Search random assets
POST /api/search/random
Retrieve a random selection of assets based on the provided criteria.
Authentication: API key. Permission: asset.read.
Request body
Required.
Field definitions: RandomSearchDto
{
"application/json": {
"schema": {
"$ref": "#/components/schemas/RandomSearchDto"
}
}
}Responses
Field definitions: AssetResponseDto
{
"200": {
"content": {
"application/json": {
"schema": {
"items": {
"$ref": "#/components/schemas/AssetResponseDto"
},
"type": "array"
}
}
},
"description": ""
}
}Smart asset search
POST /api/search/smart
Perform a smart search for assets by using machine learning vectors to determine relevance.
Authentication: API key. Permission: asset.read.
Request body
Required.
Field definitions: SmartSearchDto
{
"application/json": {
"schema": {
"$ref": "#/components/schemas/SmartSearchDto"
}
}
}Responses
Field definitions: SearchResponseDto
{
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SearchResponseDto"
}
}
},
"description": ""
}
}Smart search statistics
POST /api/search/smart/statistics
How many assets a smart search body would rank, counted up to 1000 and flagged when capped. No text is encoded to answer it.
Authentication: API key. Permission: asset.read.
Request body
Required.
Field definitions: SmartSearchDto
{
"application/json": {
"schema": {
"$ref": "#/components/schemas/SmartSearchDto"
}
}
}Responses
Field definitions: SmartSearchStatisticsResponseDto
{
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SmartSearchStatisticsResponseDto"
}
}
},
"description": ""
}
}Search asset statistics
POST /api/search/statistics
Retrieve statistical data about assets based on search criteria, such as the total matching count.
Authentication: API key. Permission: asset.statistics.
Request body
Required.
Field definitions: StatisticsSearchDto
{
"application/json": {
"schema": {
"$ref": "#/components/schemas/StatisticsSearchDto"
}
}
}Responses
Field definitions: SearchStatisticsResponseDto
{
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SearchStatisticsResponseDto"
}
}
},
"description": ""
}
}Retrieve search suggestions
GET /api/search/suggestions
Retrieve search suggestions based on partial input. This endpoint is used for typeahead search features.
Authentication: API key. Permission: asset.read.
Parameters
| Name | Where | Required | Description |
|---|---|---|---|
country | query | No | Filter by country |
includeNull | query | No | Include null values in suggestions |
lensModel | query | No | Filter by lens model |
make | query | No | Filter by camera make |
model | query | No | Filter by camera model |
state | query | No | Filter by state/province |
type | query | Yes |
Parameter types, defaults and constraints
Field definitions: SearchSuggestionType
[
{
"name": "country",
"required": false,
"in": "query",
"description": "Filter by country",
"schema": {
"type": "string"
}
},
{
"name": "includeNull",
"required": false,
"in": "query",
"description": "Include null values in suggestions",
"schema": {
"type": "boolean"
}
},
{
"name": "lensModel",
"required": false,
"in": "query",
"description": "Filter by lens model",
"schema": {
"type": "string"
}
},
{
"name": "make",
"required": false,
"in": "query",
"description": "Filter by camera make",
"schema": {
"type": "string"
}
},
{
"name": "model",
"required": false,
"in": "query",
"description": "Filter by camera model",
"schema": {
"type": "string"
}
},
{
"name": "state",
"required": false,
"in": "query",
"description": "Filter by state/province",
"schema": {
"type": "string"
}
},
{
"name": "type",
"required": true,
"in": "query",
"schema": {
"$ref": "#/components/schemas/SearchSuggestionType"
}
}
]Responses
{
"200": {
"content": {
"application/json": {
"schema": {
"items": {
"type": "string"
},
"type": "array"
}
}
},
"description": ""
}
}© 2026 Frameleaf Inc. All rights reserved.
Frameleaf and the Frameleaf logo are Trademarks of Frameleaf Inc.