v1Variants
Query variants with filtering on status and sku
v1Variantsquery
Arguments
pageIntPage number (1-based, default 1)
perPageIntPage size (default 25, max 50)
marketSlugString!requiredMarket slug used to resolve variant prices and market-specific data. Required
storeGroupSlugString!requiredStore group slug used to resolve variant prices and store-specific data. Required
warehouseSlugStringWarehouse slug for stock fields on each variant
localeString!requiredLocale for translated variant fields (e.g. en, sv). Required
skus[String!]When set, only variants with these SKUs are returned
onlyActiveBoolean!requiredWhen true, only variants with active status are returned
Returns
Variants with pagination information
Query Reference
query V1Variants($page: Int, $perPage: Int, $marketSlug: String!, $storeGroupSlug: String!, $warehouseSlug: String, $locale: String!, $skus: [String!], $onlyActive: Boolean!) { v1Variants(page: $page, perPage: $perPage, marketSlug: $marketSlug, storeGroupSlug: $storeGroupSlug, warehouseSlug: $warehouseSlug, locale: $locale, skus: $skus, onlyActive: $onlyActive) { variants { id productId sku name status shippingAttributes validateStock createdAt updatedAt variantGroupId } pageInfo { totalPages currentPage hasNextPage hasPreviousPage } }}{
"page": 0,
"perPage": 0,
"marketSlug": "string",
"storeGroupSlug": "string",
"warehouseSlug": "string",
"locale": "string",
"skus": [
"string"
],
"onlyActive": true
}type VariantsConnection {
variants: [Variant!]!
pageInfo: PageInfo!
}
type Variant {
id: String!
productId: String!
sku: String!
name: String!
status: VariantStatus!
variantDimensions: VariantDimensions
customFields: [CustomField!]!
shippingAttributes: [String!]!
variantAttributes: [Attribute!]!
validateStock: Boolean!
prices: [VariantPrice!]!
stock: [VariantStock!]!
images: [Image!]!
tags: [Tag!]!
createdAt: DateTime!
updatedAt: DateTime
variantGroupId: String
}
type PageInfo {
totalPages: Int!
currentPage: Int!
hasNextPage: Boolean!
hasPreviousPage: Boolean!
}Try it
Server
Bodyapplication/json
Request
curl -X POST 'https://graphql.enad.io/{app_id}/graphql' \
-H 'Content-Type: application/json' \
-d '{
"query": "query V1Variants($page: Int, $perPage: Int, $marketSlug: String!, $storeGroupSlug: String!, $warehouseSlug: String, $locale: String!, $skus: [String!], $onlyActive: Boolean!) {\n v1Variants(page: $page, perPage: $perPage, marketSlug: $marketSlug, storeGroupSlug: $storeGroupSlug, warehouseSlug: $warehouseSlug, locale: $locale, skus: $skus, onlyActive: $onlyActive) {\n variants {\n id\n productId\n sku\n name\n status\n shippingAttributes\n validateStock\n createdAt\n updatedAt\n variantGroupId\n }\n pageInfo {\n totalPages\n currentPage\n hasNextPage\n hasPreviousPage\n }\n }\n}",
"variables": {
"page": 0,
"perPage": 0,
"marketSlug": "string",
"storeGroupSlug": "string",
"warehouseSlug": "string",
"locale": "string",
"skus": [
"string"
],
"onlyActive": true
}
}'const response = await fetch("https://graphql.enad.io/{app_id}/graphql", {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: "{\n \"query\": \"query V1Variants($page: Int, $perPage: Int, $marketSlug: String!, $storeGroupSlug: String!, $warehouseSlug: String, $locale: String!, $skus: [String!], $onlyActive: Boolean!) {\\n v1Variants(page: $page, perPage: $perPage, marketSlug: $marketSlug, storeGroupSlug: $storeGroupSlug, warehouseSlug: $warehouseSlug, locale: $locale, skus: $skus, onlyActive: $onlyActive) {\\n variants {\\n id\\n productId\\n sku\\n name\\n status\\n shippingAttributes\\n validateStock\\n createdAt\\n updatedAt\\n variantGroupId\\n }\\n pageInfo {\\n totalPages\\n currentPage\\n hasNextPage\\n hasPreviousPage\\n }\\n }\\n}\",\n \"variables\": {\n \"page\": 0,\n \"perPage\": 0,\n \"marketSlug\": \"string\",\n \"storeGroupSlug\": \"string\",\n \"warehouseSlug\": \"string\",\n \"locale\": \"string\",\n \"skus\": [\n \"string\"\n ],\n \"onlyActive\": true\n }\n}"
});import requests
response = requests.post(
"https://graphql.enad.io/{app_id}/graphql",
headers={
"Content-Type": "application/json"
},
data="{\n \"query\": \"query V1Variants($page: Int, $perPage: Int, $marketSlug: String!, $storeGroupSlug: String!, $warehouseSlug: String, $locale: String!, $skus: [String!], $onlyActive: Boolean!) {\\n v1Variants(page: $page, perPage: $perPage, marketSlug: $marketSlug, storeGroupSlug: $storeGroupSlug, warehouseSlug: $warehouseSlug, locale: $locale, skus: $skus, onlyActive: $onlyActive) {\\n variants {\\n id\\n productId\\n sku\\n name\\n status\\n shippingAttributes\\n validateStock\\n createdAt\\n updatedAt\\n variantGroupId\\n }\\n pageInfo {\\n totalPages\\n currentPage\\n hasNextPage\\n hasPreviousPage\\n }\\n }\\n}\",\n \"variables\": {\n \"page\": 0,\n \"perPage\": 0,\n \"marketSlug\": \"string\",\n \"storeGroupSlug\": \"string\",\n \"warehouseSlug\": \"string\",\n \"locale\": \"string\",\n \"skus\": [\n \"string\"\n ],\n \"onlyActive\": true\n }\n}",
)Response
{
"data": {
"v1Variants": {
"variants": [
{
"id": "string",
"productId": "string",
"sku": "string",
"name": "string",
"status": "ACTIVE",
"shippingAttributes": [
"string"
],
"validateStock": true,
"createdAt": "string",
"updatedAt": null,
"variantGroupId": "string"
}
],
"pageInfo": {
"totalPages": 0,
"currentPage": 0,
"hasNextPage": true,
"hasPreviousPage": true
}
}
}
}