Search GraphQL reference latest
Search GraphQL schema and operation reference for Enad Search.
- API
- Search GraphQL
- Schema
- search-graphql
- Updated
- Jul 5, 2026
Use this reference for exact Search root fields, operation names, operation variables, input types, object types, enums, fragments, and raw schema access.
Raw schema files
- Schema SDL:
/graphql/search-schema.graphql - Operations and fragments:
/graphql/search-documents.graphql - Definition counts: 11 enum, 7 input, 1 scalar, 46 type
- Operations: 19
- Fragments: 19
Endpoint and GraphiQL
Enad Search is app-scoped.
https://graphql.enad.io/{appId}/graphqlFor interactive query checks, use app-scoped GraphiQL:
https://graphql.enad.io/{appId}/graphiqlCarry the same runtime context into GraphiQL that the storefront uses: appId, marketSlug, storeGroupSlug, and locale.
Root query fields
| Field | Returns | Arguments |
|---|---|---|
v1Products | ProductsConnection! | search: String; filter: ProductFilter; page: Int; perPage: Int; sortBy: [ProductSortInput!]; marketSlug: String!; storeGroupSlug: String!; warehouseSlug: String; relatedProducts: [String!]; locale: String!; channelSlug: String; groupFlexibleProducts: Boolean |
v1ProductBySlug | Product! | slug: String!; marketSlug: String!; storeGroupSlug: String!; relatedProducts: [String!]; locale: String!; onlyActive: Boolean!; channelSlug: String |
v1ProductBySku | Product! | sku: String!; marketSlug: String!; storeGroupSlug: String!; relatedProducts: [String!]; locale: String!; onlyActive: Boolean!; channelSlug: String |
v1Facets | Facets! | facets: [FacetArguments!]!; search: String; filter: ProductFilter; marketSlug: String!; storeGroupSlug: String!; warehouseSlug: String; locale: String! |
v1SearchCompletions | [SearchCompletion!]! | query: String!; limit: Int; locale: String!; marketSlug: String!; storeGroupSlug: String!; searchCompletionTypes: [SearchCompletionTypes!] |
v1ProductSlugs | [ProductSlug!]! | perPage: Int; page: Int; locale: String!; marketSlug: String!; storeGroupSlug: String!; onlyActive: Boolean! |
v1Brands | BrandsConnection! | search: String; page: Int; perPage: Int |
v1Series | SeriesConnection! | search: String; page: Int; perPage: Int |
v1Categories | CategoriesConnection! | parentUrl: String; search: String; locale: String!; page: Int; perPage: Int |
v1CategoryById | CategoryWithTree | id: String!; locale: String! |
v1CategoryByFullUri | CategoryWithTree | fullUri: String!; locale: String! |
v1Collections | CollectionsConnection! | parentUrl: String; search: String; locale: String!; page: Int; perPage: Int |
v1CollectionById | CollectionWithTree | id: String!; locale: String! |
v1CollectionByUri | CollectionWithTree | uri: String!; locale: String! |
v1Redirects | RedirectsConnection! | locale: String; itemIds: [String!]; oldSlug: String; newSlug: String; redirectType: RedirectType; page: Int; perPage: Int |
v1Variants | VariantsConnection! | page: Int; perPage: Int; marketSlug: String!; storeGroupSlug: String!; warehouseSlug: String; locale: String!; skus: [String!]; onlyActive: Boolean! |
Operations
| Operation | Kind | Variables |
|---|---|---|
CategoryByFullUri | query | fullUri: String!; locale: String! |
CategoryById | query | id: String!; locale: String! |
CollectionById | query | id: String!; locale: String! |
CollectionByUri | query | uri: String!; locale: String! |
ProductBySku | query | sku: String!; marketSlug: String!; storeGroupSlug: String!; locale: String!; onlyActive: Boolean!; channelSlug: String |
ProductBySkuWithRelated | query | sku: String!; marketSlug: String!; storeGroupSlug: String!; locale: String!; relatedProducts: [String!]; onlyActive: Boolean!; channelSlug: String |
ProductBySlug | query | slug: String!; marketSlug: String!; storeGroupSlug: String!; locale: String!; onlyActive: Boolean!; channelSlug: String |
ProductBySlugWithRelated | query | slug: String!; marketSlug: String!; storeGroupSlug: String!; locale: String!; relatedProducts: [String!]; onlyActive: Boolean!; channelSlug: String |
ProductSlugs | query | marketSlug: String!; storeGroupSlug: String!; locale: String!; page: Int; perPage: Int; onlyActive: Boolean! |
SearchBrands | query | search: String; page: Int; perPage: Int |
SearchCategories | query | locale: String!; page: Int; perPage: Int; parentUrl: String; search: String |
SearchCollections | query | locale: String!; page: Int; perPage: Int; parentUrl: String; search: String |
SearchCompletions | query | query: String!; marketSlug: String!; storeGroupSlug: String!; locale: String!; limit: Int; searchCompletionTypes: [SearchCompletionTypes!] |
SearchFacets | query | facets: [FacetArguments!]!; marketSlug: String!; storeGroupSlug: String!; locale: String!; filter: ProductFilter; warehouseSlug: String |
SearchProductCards | query | page: Int!; perPage: Int!; marketSlug: String!; storeGroupSlug: String!; locale: String!; search: String; filter: ProductFilter; sortBy: [ProductSortInput!]; warehouseSlug: String |
SearchProducts | query | page: Int!; perPage: Int!; marketSlug: String!; storeGroupSlug: String!; locale: String!; search: String; filter: ProductFilter; sortBy: [ProductSortInput!]; warehouseSlug: String |
SearchRedirects | query | locale: String; itemIds: [String!]; oldSlug: String; newSlug: String; redirectType: RedirectType; page: Int; perPage: Int |
SearchSeries | query | search: String; page: Int; perPage: Int |
SearchVariants | query | marketSlug: String!; storeGroupSlug: String!; locale: String!; page: Int; perPage: Int; warehouseSlug: String; skus: [String!]; onlyActive: Boolean! |
Fragments
| Fragment | Type |
|---|---|
SearchAttributeFields | Attribute |
SearchAttributeValueFields | AttributeValue |
SearchBrandFields | Brand |
SearchCategoryFields | Category |
SearchCategoryTreeFields | CategoryWithTree |
SearchCollectionFields | Collection |
SearchCollectionTreeFields | CollectionWithTree |
SearchImageFields | Image |
SearchProductCardFields | Product |
SearchProductCardVariantFields | Variant |
SearchProductFields | Product |
SearchProductFileFields | ProductFile |
SearchProductIdentityFields | Product |
SearchRedirectFields | Redirect |
SearchRelatedProductCardFields | RelatedProduct |
SearchTagFields | Tag |
SearchVariantFields | Variant |
SearchVariantGroupFields | VariantGroup |
SearchVideoFields | Video |
Input types
| Name | Fields |
|---|---|
CategoryFilter | 3 |
CollectionFilter | 3 |
CustomFieldFilter | 3 |
FilterCondition | 18 |
ProductFilter | 4 |
ProductSortInput | 9 |
TagFilter | 3 |
Object types
| Name | Fields |
|---|---|
Attribute | 9 |
AttributeFacet | 8 |
AttributeValue | 4 |
Brand | 8 |
BrandAddress | 5 |
BrandFacet | 4 |
BrandsConnection | 2 |
BrandWithSeries | 8 |
CategoriesConnection | 2 |
Category | 13 |
CategoryFacet | 7 |
CategoryWithTree | 14 |
Collection | 8 |
CollectionFacet | 5 |
CollectionsConnection | 2 |
CollectionWithTree | 9 |
CompletionMetadata | 2 |
CustomField | 2 |
Facets | 8 |
Image | 11 |
PageInfo | 4 |
PriceRangeFacet | 2 |
Product | 28 |
ProductFile | 7 |
ProductRelation | 3 |
ProductsConnection | 2 |
ProductSlug | 2 |
Query | 16 |
Redirect | 7 |
RedirectsConnection | 2 |
RelatedProduct | 21 |
SearchCompletion | 5 |
Series | 5 |
SeriesConnection | 2 |
SeriesFacet | 5 |
StockFacet | 2 |
Tag | 8 |
TagFacet | 5 |
TranslatedSlug | 2 |
TranslatedUri | 2 |
Variant | 15 |
VariantGroup | 6 |
VariantPrice | 16 |
VariantsConnection | 2 |
VariantStock | 7 |
Video | 9 |
Enums
| Enum | Values |
|---|---|
FacetArguments | ATTRIBUTES, CATEGORIES, COLLECTIONS, BRANDS, SERIES, TAGS, IN_STOCK, PRICE_RANGE |
ImageStatus | ACTIVE, INACTIVE |
ProductFilterStatus | ACTIVE, INACTIVE, ARCHIVED |
ProductStatus | ACTIVE, INACTIVE, ARCHIVED, DRAFT, INCOMPLETE |
ProductType | FLEXIBLE, SIMPLE |
RedirectType | PRODUCT, PAGE, COLLECTION, CATEGORY, PRODUCT_BUNDLE, BRAND, SERIE, CAMPAIGN |
SearchCompletionTypes | PRODUCT, BRAND, SERIE, CATEGORY, COLLECTION |
SortBy | NAME_ASC, NAME_DESC, CREATED_AT_ASC, CREATED_AT_DESC, UPDATED_AT_ASC, UPDATED_AT_DESC, CATEGORY_ORDER_ASC, CATEGORY_ORDER_DESC, COLLECTION_ORDER_ASC, COLLECTION_ORDER_DESC, PRICE_ASC, PRICE_DESC, TAG_ORDER_ASC, TAG_ORDER_DESC, RELEVANCY, MOST_POPULAR |
StringOperator | EQUALS, CONTAINS, STARTS_WITH, ENDS_WITH, NOT_EQUALS |
VariantStatus | ACTIVE, INACTIVE, ARCHIVED |
VideoStatus | ACTIVE, INACTIVE |
Validation guidance
Use Search GraphQL latest for product-query validation rules, SDK helper guidance, and React/Search routing. Use this reference for exact schema, operation, variable, fragment, enum, and nullability details.