Elastic Path Searchable Fields API
The Searchable Fields API returns a list of all fields available for searching, filtering, faceting, and sorting in your search queries. This includes both the standard product fields that are indexed by default and any custom fields you've added through Indexable Fields. ### Using Searchable Fields Use this endpoint to: - **Discover available fields**: See all fields that can be used in search queries - **Build dynamic UIs**: Programmatically generate filter and facet options based on available fields - **Validate configurations**: Verify that your indexable fields have been properly added to the schema ### Field Properties Each searchable field includes: | Property | Description | | --- | --- | | `name` | The field name to use in search queries | | `type` | The data type (`string`, `int32`, `int64`, `float`, `bool`) | | `facetable` | Whether the field can be used for faceting | | `sortable` | Whether the field can be used for sorting | | `locale` | The language code for text fields | ### Standard vs Custom Fields - **Standard fields**: Built-in fields like `name`, `description`, `sku`, `meta.search.nodes.name` that are always available - **Custom fields**: Fields added through Indexable Fields from your product extensions
GET
/pcm/catalogs/searchable-fields
List searchable fields
#
Documentation
Specifications
Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
resolveTurn a domain, URL or GitHub org into the provider it belongs to.
find_cohortsEvery scored population of providers in the catalog.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/elastic-path-searchable-fields-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Catalog Search Introduction Searchable Fields API
version: 26.0604.7696948
x-version-timestamp: 2026-06-04 10:33:46+00:00
description: 'Elastic Path Catalog Search provides fast, relevant product search capabilities for your published catalogs. Catalog Search enables shoppers to find products quickly using full-text search, filtering, faceting, and sorting, while giving merchandisers powerful tools to customize search relevance and ranking.
You can integrate Catalog Search into your storefront using the Catalog Search API or manage search settings through Commerce Manager.
### How Catalog Search Works
Catalog Search works alongside your Product Experience Manager catalogs to provide optimized search functionality.
When creating or updating a catalog, enable search to allow the catalog''s products to be indexed. See [Catalogs](/docs/api/pxm/catalog/catalogs). Then when a search-enabled catalog is published, the products are automatically indexed for search. The search index contains product data optimized for fast querying.
Use the Search API to query products with full-text search, filtering, faceting, and sorting. The results of the search contain the full product information, not just the indexed fields, reducing the need for further API calls.
### Key Capabilities
- **Full-text search**: Search across product names, descriptions, SKUs, and custom fields with typo tolerance and relevance ranking
- **Filtering**: Narrow results using conditions on product attributes, categories, prices, and custom fields
- **Faceting**: Get aggregated counts for attribute values to build dynamic navigation and refinement options
- **Sorting**: Order results by price, name, custom fields, or relevance score
- **Search Profiles**: Configure search behavior including field weights, filters, and boost rules without code changes
- **Custom Fields**: Extend the search schema with your own product attributes for filtering, faceting, and sorting
- **Fully Hydrated Responses**: Search results contain complete information about the products, reducing the requirement for follow-up API calls.
### Personalized Search Results
Search results are automatically personalized based on the shopper''s context. The system determines which catalog and prices to show based on:
- **Channel**: The shopping experience, such as a web storefront or mobile app
- **Account**: For B2B scenarios, the shopper''s account and any parent accounts
- **Customer**: The logged-in customer''s segment or tier
- **Tags**: Custom context tags for advanced segmentation scenarios
See [**Characteristics of Shopper Catalogs**](/docs/api/pxm/catalog/shopper-catalog-api#characteristics-of-shopper-catalogs) for more information.
### Search Profiles
Search Profiles give merchandisers control over search behavior without requiring code changes. With Search Profiles, you can:
- **Configure field weights**: Control which product fields are most important for relevance ranking
- **Apply default filters**: Enforce business rules like only showing live products
- **Boost products**: Promote featured products, specific brands, or categories to the top of results
- **A/B test**: Create multiple profiles to test different search configurations
See [**Search Profiles**](/docs/api/pxm/catalog-search/search-profiles) for more information.
### Extending the Search Schema
By default, the search index includes standard product fields like name, description, SKU, and categories. You can extend the schema by adding custom fields using [Indexable Fields](/docs/api/pxm/catalog-search/indexable-fields).
Two types of custom fields can be indexed:
- **Product extension fields** (`extensions.products(<slug>).<field>`): Fields from your product extension templates.
- **Product custom attributes** (`shopper_attributes.<attribute>` and `admin_attributes.<attribute>`): Merchant-defined key/value attributes on products.
This allows you to:
- Search on custom product attributes like brand, material, or specifications
- Filter products by custom fields like color, size, or rating
- Display facets for custom field values in your navigation
- Sort results by custom numeric fields like rating or popularity
See [**Indexable Fields**](/docs/api/pxm/catalog-search/indexable-fields) for more information.
'
servers:
- url: https://euwest.api.elasticpath.com/v2
description: EU west cluster
- url: https://useast.api.elasticpath.com/v2
description: US east cluster
security:
- BearerToken: []
tags:
- name: Searchable Fields
description: 'The Searchable Fields API returns a list of all fields available for searching, filtering, faceting, and sorting in your search queries. This includes both the standard product fields that are indexed by default and any custom fields you''ve added through Indexable Fields.
### Using Searchable Fields
Use this endpoint to:
- **Discover available fields**: See all fields that can be used in search queries
- **Build dynamic UIs**: Programmatically generate filter and facet options based on available fields
- **Validate configurations**: Verify that your indexable fields have been properly added to the schema
### Field Properties
Each searchable field includes:
| Property | Description |
| --- | --- |
| `name` | The field name to use in search queries |
| `type` | The data type (`string`, `int32`, `int64`, `float`, `bool`) |
| `facetable` | Whether the field can be used for faceting |
| `sortable` | Whether the field can be used for sorting |
| `locale` | The language code for text fields |
### Standard vs Custom Fields
- **Standard fields**: Built-in fields like `name`, `description`, `sku`, `meta.search.nodes.name` that are always available
- **Custom fields**: Fields added through Indexable Fields from your product extensions
'
paths:
/pcm/catalogs/searchable-fields:
get:
tags:
- Searchable Fields
operationId: listSearchableFields
summary: List searchable fields
description: List searchable fields.
responses:
'200':
description: List searchable fields
content:
application/json:
schema:
$ref: '#/components/schemas/SearchableFieldsResponse'
'400':
description: Bad request - invalid search parameters
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'500':
$ref: '#/components/responses/InternalServerError'
components:
schemas:
SearchableFieldMeta:
type: object
required:
- owner
properties:
owner:
$ref: '#/components/schemas/ResourceOwner'
FieldType:
type: string
description: The type of the field.
enum:
- string
- int32
- int64
- bool
- float
example: string
x-go-type: model.FieldType
x-go-type-import:
name: model
path: gitlab.elasticpath.com/commerce-cloud/ncl-projects/paragon/catalog-search.svc/internal/domain/model
ResourceOwner:
description: The resource owner, either `organization` or `store`.
type: string
example: organization
enum:
- organization
- store
x-go-type: tenancy.Owner
x-go-type-import:
path: gitlab.elasticpath.com/commerce-cloud/ncl-projects/paragon/catalog-search.svc/internal/domain/tenancy
ErrorResponse:
required:
- errors
properties:
errors:
type: array
items:
$ref: '#/components/schemas/Error'
SearchableField:
type: object
required:
- id
- type
- attributes
- meta
properties:
id:
description: A unique identifier of the field.
type: string
example: name
x-go-name: ID
type:
$ref: '#/components/schemas/SearchableFieldType'
attributes:
$ref: '#/components/schemas/SearchableFieldAttributes'
meta:
$ref: '#/components/schemas/SearchableFieldMeta'
SearchableFieldsResponse:
type: object
required:
- data
- meta
properties:
data:
type: array
description: A collection of searchable fields.
items:
$ref: '#/components/schemas/SearchableField'
meta:
$ref: '#/components/schemas/ListResponseMeta'
ListResponseMeta:
type: object
required:
- results
properties:
results:
$ref: '#/components/schemas/ListResponseMetaResults'
ListResponseMetaResults:
description: Contains the results for the entire collection.
type: object
required:
- total
properties:
total:
description: Total number of results for the entire collection.
type: integer
example: 100
Error:
required:
- status
- title
properties:
status:
type: string
description: The HTTP response code of the error.
example: '500'
title:
type: string
description: A brief summary of the error.
example: Internal server error
detail:
type: string
description: Optional additional detail about the error.
example: An internal error has occurred.
meta:
type: object
description: Additional supporting meta data for the error.
example:
missing_ids:
- e7d50bd5-1833-43c0-9848-f9d325b08be8
SearchableFieldType:
description: Represents the type of object being returned. Always `catalog_searchable_field`.
type: string
example: catalog_searchable_field
enum:
- catalog_searchable_field
SearchableFieldAttributes:
type: object
required:
- name
- type
properties:
name:
type: string
description: The name of the field.
example: name
minLength: 1
type:
$ref: '#/components/schemas/FieldType'
facetable:
type: boolean
description: Enables faceting on the field.
default: false
example: true
sortable:
type: boolean
description: 'When set to true, the field will be sortable. Default: true for numbers, false otherwise.'
example: true
locale:
type: string
description: 'For configuring language specific tokenization, e.g. jp for Japanese. Default: en which also broadly supports most European languages. For valid values, see [ISO 639 language codes](https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes).'
default: en
example: en
responses:
InternalServerError:
description: Internal server error. There was a system failure in the platform.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
examples:
internal-server-error:
value:
errors:
- title: Internal Server Error
status: '500'
securitySchemes:
BearerToken:
scheme: bearer
type: http