Skip to main content

Data dictionary

Applies toQuery APIJobs API

This dictionary describes the option document — the record EDITED returns for a single product option (a style in one colour). Every field is listed with its type, a plain-English definition, and an example value.

Using MCP? The same underlying data is exposed through the MCP tools with their own field names; see the MCP Reference and the market_data_docs tool for the MCP field reference.

How to read this
  • Not every field appears on every document. A field is omitted when EDITED has no value for it — for example, the discount fields are absent on an option that has never been discounted.
  • Prices are integers, multiplied by 100 (so 26000 means 260.00). This holds for every currency, including those with no minor unit — it is not a cents convention. Prices come in three forms: your chosen currency (default USD), the original retailer currency (the *_original fields), and USD (the *_usd fields).
  • Fields whose name starts with an underscore (e.g. _price) are calculated on request and are not returned by the Schema API.
  • Classification fields (categories, styles, details) carry EDITED IDs; resolve their human labels and valid values via the Schema API.
  • An "option" is a style in one colour; a "SKU" is a single size of that option. All times are UTC.

Identifiers & linking​

FieldTypeDescriptionExample
option_idstring (40 character hash)EDITED's unique identifier for an option (a product at style and colour level). The option_id field is immutable between option documents over time, so would be a good field to use to link option documents (app: EDITED Option ID)f355ad32ff70857f185788357825849f7439689c
product_hashstring (40 character limit)Universal EDITED ID that connects linked SKUs. Linked SKUs can be found in the SKUs field of the option document (app: EDITED Product ID)b7dfc8577acbaa6acc42f115
retailer_product_idstringA code usually relating to product at style level from the retailer's site. There may be many SKUs associated with this one ID. The retailer_product_id field is immutable between option documents over time, so would be a good field to use to link documents (app: Retailer Product ID)22026692

Retailer, brand & market​

FieldTypeDescriptionExample
retailerstringRetailer name (app: Retailer)farfetch-bh
marketstringThe retailer region (app: Markets)US
tierstringOne of: 'Value', 'Mass', 'Premium', 'Luxury'. Retailer's market segment (app: Segment)luxury
outlettrue/falseWhether an option comes from an outlet retailer, or a retailer's outlet branch (app: Outlet)false
brandstringThe option brand, normalised across EDITED's dataset. Use the Brands endpoint in the Schema API to find the normalized values. (app: Brand)Love Moschino
brand_slugstringA short representation of the option's normalised brand name with no spaces or special characters. For brands with no spaces or special characters, this field will not be present.love-moschino
retailer_brandstringThe option brand as collected on the retailer site. Use the Brands endpoint in the Schema API to find the normalized values.Love Moschino
retailer_brand_slugstringA short representation of the option's brand name as collected on the website with no spaces or special characterslove-moschino
is_petite_sizetrue/falseWhether an option is a specialized petite size brand. (app: Petite Brands)false
is_plus_sizetrue/falseWhether an option is a specialized plus size brand. (app: Plus Size Brands)false
is_second_handtrue/falseWhether an option is a specialized secondhand retailer. (app: Second Hand Retailers)false
is_tall_sizetrue/falseWhether an option comes from a specialized tall size brand. (app: Tall Brands)false

Product attributes​

FieldTypeDescriptionExample
namestringName of the option (translated into English) (app: Name)logo-plaque leather pumps
name_untranslatedstringName of the option as it appeared on the retailer's site, in the original retailer languagelogo-plaque leather pumps
descriptionarray of stringsOption description provided on the retailer's website (translated into English) (app: Description)[ "fuchsia pink", "calf leather", "Gold-tone logo lettering", "logo tag", "branded lea…
description_untranslatedarray of stringsOption description provided on the retailer's website, in the original retailer language[ "fuchsia pink", "calf leather", "Gold-tone logo lettering", "logo tag", "branded lea…
langstringISO code denoting the original language the option is presented infi
colour_namestringName of the option (its colour) (app: Option)blueprint
carearray of stringsAn array of care and composition information as seen on the retailer's website (app: Care)["Content: 100% nylon; Fill: 90% goose down, 10% goose feathers", "Care: Hand wash"]
compositionarray of objectsKeys are 'material' (str) and 'percentages' (array of floats). List of composition values extracted from the care field. 'material' is the extracted material value, and 'percentages' is a list of percentages associated with the material (in the range 0 to 100). The percentages list may contain multiple values if the material appeared multiple times, or it may contain null if no percentage information was found for the material.—
custom_fieldsarray of objectsList of custom crawler fields with key key and value value. These only exist for certain crawlers and can contain various retailer IDs and information. See FAQ for more info. A reminder that it is possible to query a nested field using syntax like custom_fields/key="search term"field_name: value
urlstringURL of the product page on the retailer websitehttps://www.farfetch.com/bh/shopping/women/love-moschino-logo-plaque-leather-pumps-item-2…
image_urlsarray of hyperlinksHyperlinks for all images related to the option.["https://product-images.edited.com/ebec0c34f92c9447d9532075/19cab4c4a3/full.jpg", "https…
merch_infoarray of stringsInformation that the retailer has provided about how the product is merchandised (app: Offers and Promotional Information History)["ONLINE EXCLUSIVE"]
has_current_merch_infotrue/falseWhether the option currently has merchandising information (e.g. Online Only) visible on the retailer's product pagefalse
has_had_merch_infotrue/falseWhether EDITED has seen merchandising information (e.g. Online Only) visible on the retailer's product page at least oncetrue

EDITED classification​

FieldTypeDescriptionExample
categoryarray of stringsList of values denoting the section of the retailer site in which the option is listed["Sale", "the little puff vest"]
cs_grpstringEDITED's top level classification IDs for the option (e.g. outerwear, footwear, bottoms). These categorisations are mutually exclusive so an option will only appear in one. Valid values and their mapped labels can be found in the Searches endpoint of the Schema API.outerwear
cs_subcategorystringEDITED's second level classification of an option (e.g. sub_cat_shorts_bottoms, sub_cat_coat_outerwear). These are mutually exclusive so an option will only appear in one. Valid values and their mapped labels can be found in the Searches endpoint of the Schema API.sub_cat_coat_outerwear
cs_stylestringEDITED's third and most granular classification of an option (e.g. style_bermuda_shorts_bottoms, style_other_coat_outerwear). These are mutually exclusive so an option will only appear in one. Valid values and their mapped labels can be found in the Searches endpoint of the Schema API.style_other_coat_outerwear
product_searchesarray of stringsThe product_searches_data field gives the mapping of IDs to the categorisation names Category, subcategory and style classifications that this options appears in (app: Categories)["Footwear", "Shoes", "Court/Pump"]
product_searches_dataarray of objectsProduct category IDs and names this option is associated with (app: Categories)[{ "id": 555, "name": "Footwear"}, {"id": 764, "name": "Shoes"}, {"id": 833, "name": "Cou…
product_detailsarray of stringsThe product_detail_data field gives the mapping of IDs to the detail names The details detected on this option (app: Details)["Flat", "Fabrication", "Leather (incl faux leather)", "Footwear" ]
product_details_dataarray of objectsProduct detail IDs and names this option is associated with (app: Details)[{ "id": 68,"name": "Flat"}, { "id": 276, "name": "Fabrication"}, {"id": 50, "name": "Lea…
genderstringValid categories are: men, women, girls, boys, unisex-kids and unisex-adults. Gender category of the option (app: Genders)women
seasonstringEDITED's inferred season based on the option region and date it was first seen (app: Season)ss24
predominant_colourstringThe name of the predominant colour detected on the option image (app: Colors)fuschia
predominant_patternstringOne of: 'abstract', 'animal', 'aztec', 'camouflage', 'checks', 'conversational', 'floral', 'geometric', 'graphics', 'lace', 'paisley', 'plain', 'sports', 'stripes', 'tile'. The name of the predominant pattern detected on the option image (app: Patterns)plain
predominant_tpx_codestringThe precise tpx-code of the most prominent colour detected on the option image18-2140
coloursarray of objectsList of colours that the option features including the name and the tpx code of the colour detected. The 'offset' is a zero indexed order of prominence of the colours in the picture. The 'ratio' is a measure of that colour's prominence. Dictionary keys are 'basic_name' (string), 'offset' (int), 'ratio' (float), 'tpx_code' (str). (app: Product Colors)—
detail_denimtrue/falseDetail for apparel, limited to: tops, bottoms, outerwear, dresses, product_sets and all_in_one. Describes whether the product is denim or not.false
detail_footwear_heeledtrue/falseDetail for footwear options only, describes whether the option is heeled or notfalse
detail_sportswear_sportstringValid sports are: american football, baseball, basketball, boxing, cycling, football (soccer), golf, handball, hiking, hockey, lacrosse, rugby, running, snowsports, softball, tennis, training, volleyball, yoga, other. Detail for any kind of option, describes which sport the option is related tostyle_training_sportswear
licensed_activeweartrue/falseWhether the option matches EDITED filters for detecting if it is a licensed activewear item (app: Licensed Activewear)false
lifestyle_activewearstringWhether the option is performance (sports-activewear), lifestyle (lifestyle-activewear), or non-activewear (not-activewear). (app: Lifestyle)sports-activewear

Pricing & currency​

FieldTypeDescriptionExample
_pricefloatThe price in your chosen currency that the option's cheapest SKU was listed at on the date seen multiplied by a factor of 100. (app: Current Price)26000
_price_originalfloatThe price in the original currency that the option's cheapest SKU was listed at on the date seen multiplied by a factor of 100. (app: Current Price)26000
price_usdfloatThe price in USD that the option's cheapest SKU was listed at on the date seen multiplied by a factor of 100. (app: Current Price)26000
_advertised_pricefloatThe selling price of the option's cheapest SKU, in your chosen currency (default USD), multiplied up by a factor of 100 (app: Current Price)6860
_advertised_price_originalfloatThe selling price of the option's cheapest SKU in the original currency multiplied up by a factor of 100 (app: Current Price)6860
advertised_price_usdfloatThe selling price of the option's cheapest SKU in USD multiplied up by a factor of 100 (app: Current Price)6860
_advertised_previous_pricefloatThe highest selling price for the option as advertised by the retailer, in your chosen currency (default USD), multiplied up by a factor of 100. EDITED may never have seen the option sold at this price (app: Advertised Full Price)9800
_advertised_previous_price_originalfloatThe highest selling price for the option as advertised by the retailer, in the original currency multiplied up by a factor of 100. EDITED may never have seen the option sold at this price (app: Advertised Full Price)9800
advertised_previous_price_usdfloatThe highest selling price for the option as advertised by the retailer, in USD multiplied up by a factor of 100. EDITED may never have seen the option sold at this price (app: Advertised Full Price)9800
_first_pricefloatThe selling price of the option's cheapest SKU at the time it was first seen by EDITED on the retailer's site, in your chosen currency (default USD), multiplied up by a factor of 100 (app: First Price)26000
_first_price_originalfloatThe selling price of the option's cheapest SKU at the time it was first seen by EDITED on the retailer's site, in the original currency multiplied up by a factor of 100 (app: First Price)26000
first_price_usdfloatThe selling price of the option's cheapest SKU at the time it was first seen by EDITED on the retailer's site in USD multiplied up by a factor of 100 (app: First Price)26000
_full_pricefloatThe highest price EDITED has ever seen the option at, in your chosen currency (default USD), multiplied up by a factor of 100. (app: Full Price)26000
_full_price_originalfloatThe highest price EDITED has ever seen the option at, in the original retailer currency, multiplied up by a factor of 100. (app: Full Price)26000
full_price_usdfloatThe highest selling price that EDITED has ever seen the option at, in your chosen currency (default USD), multiplied up by a factor of 100. If the price of a product increases from that when it was first seen, this will become the new full price. (app: Full Price)26000
currencystringCurrency in which option price is listed on the retailer site (app: Currency)USD
_normalisation_fx_ratefloatThe exchange rate used to initially convert the price in the original currency into USD. Multiply an original currency price by this to get USD1
_original_fx_ratefloatThe exchange rate taken from the date we crawled the option, used to calculate the original prices on the retailers site from the USD value. The reciprocal of _normalisation_fx_rate. Divide original currency price by this to get USD.1
_user_fx_ratefloatThe exchange rate taken from the date we crawled the option, used to convert into your requested currency (from the query string of your request)1

Discounts & price movement​

FieldTypeDescriptionExample
discountedtrue/falseWhether the product is currently discountedfalse
discount_percentagefloatCurrent level of discounting (percentage)0
deepest_discount_percentagefloatThe greatest level of discounting that EDITED has tracked on an option based on previously seen and current prices30.0
first_discount_percentagefloatThe percentage level of discounting seen by EDITED the first time the price of a option was reduced10.0
advertised_discountedtrue/falseWhether the option was seen as advertised discounted by EDITED on the date given in date_seentrue
advertised_discount_percentagefloatThe percentage difference between the advertised previous price and the option's current price (app: Advertised Discount)30.0
deepest_advertised_discount_percentagefloatThe greatest advertised level of discounting that EDITED has seen for a option, as advertised by the retailer30.0
first_advertised_discount_percentagefloatThe first discount level (percentage) that EDITED has seen for the option, only as advertised by the retailer10.0
has_had_discounttrue/falseWhether EDITED has seen the option discounted at least once, regardless of whether this discount was advertised by the retailertrue
has_had_advertised_discounttrue/falseWhether EDITED has seen the option advertised as discounted at least oncetrue
price_increasedtrue/falseWhether the option's price has risen above the lowest price EDITED previously saw — true when at least one SKU is currently priced above its own lowest-seen price.false
price_increase_percentagefloatThe largest percentage by which any of the option's SKUs is currently priced above its own lowest previously-seen price. The upward counterpart of discount_percentage (which measures the drop below the highest previously-seen price).0
price_increased_vs_last_percentagefloatThe largest percentage by which any SKU's price rose compared with the last price EDITED saw for it — the increase since the previous observation (the price-up-vs-last action), rather than against the lowest-ever price.—
date_first_discountstring of date (UTC) in ISO format (YYYY-MM-DD)The date the product was first found to be discounted (app: First discounted)2023-11-22
days_to_first_discountintThe number of days between the date the option was first seen by EDITED and the date the option was first seen discounted (app: myE: Days to First Discount)111

Stock, availability & lifecycle​

FieldTypeDescriptionExample
in_stocktrue/falseWhether at least one linked SKU was shown as in stock. On the /option_history endpoint this reflects stock at that historical date. Stock status may be inferred (carried forward) for recent dates rather than freshly observed — see the inferred field. (app: In Stock)true
inferredtrue/NonePresent and true when this option document's values were carried forward (inferred) rather than freshly observed on the date seen. Documents built entirely from a fresh observation omit this field. To restrict a query to freshly observed data, filter on not_inferred.true
actionsstringChange-events detected for the option on the date seen, relative to the previous observation. Actions are identified per SKU and then deduplicated to the option. See the Change actions section for the full vocabulary.[price-up]
sku_countintTotal number of linked SKUs for the option — the length of the skus array — regardless of in-stock status.27
sku_count_currentintThe number of sizes offered for an option that are in stock as of the date seen.1
_num_sizesfloatThe number of distinct sizes among the option's SKUs. Usually equals sku_count; it is smaller when the same size appears in more than one SKU record (duplicate or variant listings).27
sellout_percentagefloatThe percentage of SKUs linked to this option that have sold out96.2962962962963
restock_countintNumber of times a replenishment has occurred, whereby more than 51% of all linked SKUs for an option have come back into stock (app: Replenishments)0
days_in_stockintOf the days between date found and date seen, how many days the option was fully in stock.445
date_ranges_in_stockarray of objectsThe specific date ranges where at least one sku for the option was in stock.[ { "gte": "2023-08-03", "lt": "2024-10-18" }, { "gte": "2024-10-22", "lt": "2024-10-…
date_foundstring of date (UTC) in ISO format (YYYY-MM-DD)The date the option was first seen by EDITED (app: New in)2023-08-03
date_seenstring of datetime (UTC) in ISO format (YYYY-MM-DDThh:mm:ss (eg 1997-07-16T19:20:30))The latest date this option was seen by EDITED, in effect the 'current'* date for this option document2024-10-24T00:19:08
date_generatedstring of date (UTC) in ISO format (YYYY-MM-DD)The date when this data was last updated in EDITED's data store. This is modified when historical data is reprocessed to add or update data values and does not necessarily mean that data was collected from the retailer on this date—
schema_versionstringThe version of the schema as it was on the date this option was processed by EDITED. This schema version can be used to make a request to the Schema API2018-04-18
date_first_selloutstring of date (UTC) in ISO format (YYYY-MM-DD)The first date on which all of the option's linked SKUs were out of stock at once — a complete sellout, after the option had been in stock. (app: First sell out)2024-10-08
days_to_first_selloutintThe number of days between date_found and date_first_sellout (the first date all of the option's linked SKUs were out of stock).—
date_first_majority_sku_selloutstring of date (UTC) in ISO format (YYYY-MM-DD)First date at least 51% of SKUs linked to this option have gone out of stock. Linked SKUs can be found in the SKUs field of the option document (app: First majority sell out)2024-10-08
days_to_first_majority_sku_selloutintThe number of days between the date the option was first seen by EDITED and the date 51% of its linked SKUs were seen out of stock. Linked SKUs can be found in the SKUs field of the option document (app: myE: Days to First Majority SKU Sellout)432
days_to_first_sellthroughintThe number of days between date_found and the first date some (but not all) of the option's linked SKUs were out of stock — when the option first began selling through. Distinct from a complete sellout (see date_first_sellout).0
date_full_restockstring of date (UTC) in ISO format (YYYY-MM-DD)The date the option was first fully restocked — when its linked SKUs went from at least 51% out of stock back to all in stock.—
days_to_full_restockintThe number of days between the date the option was first seen by EDITED and the date the SKUs linked to the option were first replenished, that is that they went from at least 51% of them being out of stock to all of the linked SKUs being in stock30

Sizes & SKUs​

FieldTypeDescriptionExample
normalised_sizesarray of stringsA list of 'normalised_size' values from all 'skus'. Normalised sizes are EDITED standard sizes that correspond to the retailer's SKU size.—
skusarray of objectsDetails of the individual sizes (SKUs)—

Reviews​

FieldTypeDescriptionExample
normalised_average_ratingfloatProduct overall rating normalised to a 5 point scale. (note that this average often includes ratings for multiple options [colors] of a product)4.58
number_of_reviewsintCount of reviews for the product on the site (note that this count often includes reviews for multiple options [colors] of a product)52

Change actions​

The actions field reports change-events detected for the option on its date_seen, relative to the previous observation. Possible values:

ActionMeaning
newThe option (or a SKU) was seen for the first time.
stock-inAt least one SKU went from out of stock to in stock.
stock-outAt least one SKU went from in stock to out of stock.
restockThe majority of SKUs came back into stock.
price-downAt least one SKU hit a new low price (lower than the lowest ever seen for that SKU).
price-upAt least one SKU hit a new high price (higher than the highest ever seen for that SKU).
price-down-vs-lastAt least one SKU has a lower price than the last price seen.
price-up-vs-lastAt least one SKU has a higher price than the last price seen.
first-price-downThe option was discounted for the first time.
new-full-priceAt least one SKU set a new all-time high price for the option.

Sub-objects​

Two fields contain arrays of nested objects.

SKUs — per-size records​

The skus field is an array of per-size records. Each object describes one size (SKU) of the option. Fields may be absent when EDITED has no value for them.

FieldTypeDescriptionExample
sku_idstringUnique identifier for the SKU (an option at a specific size).fuschia pink_34
sizestringThe size as listed on the retailer's site.34
option_namestringThe option's name (its colour) for this SKU.fuschia pink
option_name_untranslatedstringThe option's name in the original retailer language.fuschia pink
normalised_sizesarray of stringsEDITED-standard size(s) corresponding to the retailer's size label.—
_pricefloatThe SKU's price in your chosen currency (default USD). Multiplied up by a factor of 100.26000
price_usdfloatThe SKU's price in USD. Multiplied up by a factor of 100.26000
currencystringCurrency the SKU price is listed in on the retailer's site.USD
out_of_stockbooleanWhether this SKU is out of stock. Defaults to false; if absent, assume in stock.true
custom_fieldsarray of objectsRetailer-specific custom crawler fields, as key/value pairs.—

Colours​

The colours field is an array of detected colours for the option, ordered by prominence in the image.

FieldTypeDescriptionExample
basic_namestringThe colour family of the TPX code.blue
tpx_codestringA specific colour code from the Pantone TPX system.15-4312
offsetintZero-indexed order of prominence of the colour in the image.0
ratiofloatA measure of that colour's prominence.1.419558677
  • The data — what EDITED's data covers and how it is structured.
  • MCP Reference — the field and tool reference for EDITED MCP.
  • API reference — the Query API and Jobs API endpoints that return this document.