Source and listing identity
platform · product_id · listing_id · source_urlKeep the platform with its product or listing ID and source link. An ID identifies a listing on that platform; it does not prove that two listings describe the same product.
Explore an illustrative record and a practical guide to briefing your first collection.
This fictional record illustrates a possible export structure. Keys, fields and formats are agreed for each project.
{
"sample": true,
"platform": "1688",
"source_url": null,
"observed_at": null,
"product_id": "DEMO-1688-001",
"title": "Cotton canvas tote bag",
"currency": "CNY",
"price_unit": "piece",
"price_tiers": [
{
"minimum_quantity": 10,
"unit_price": 12.5
},
{
"minimum_quantity": 100,
"unit_price": 10.8
}
],
"minimum_order_quantity": 10,
"supplier": {
"name": "Illustrative supplier"
},
"variants": [
{
"variant_id": "DEMO-NATURAL",
"color": "Natural",
"size": "38 × 42 cm"
}
]
}These six groups explain keys used in our fictional examples. Fields vary by platform and are agreed for your project. Each CSV row represents one example record; nested objects and arrays remain JSON text inside a cell.
platform · product_id · listing_id · source_urlKeep the platform with its product or listing ID and source link. An ID identifies a listing on that platform; it does not prove that two listings describe the same product.
title · attributes · listing_description · stated_condition · image_referencesTitles, attributes and descriptions explain the item, including stated condition when relevant. Website language does not imply translated exports. An image reference does not grant permission to reuse the image.
variants · variants[].variant_id · variants[].color · variants[].sizeA product ID refers to the listing; a variant ID refers to an option within it. Keep colour, size or other specifications with the corresponding price instead of merging unlike options.
currency · listed_price · displayed_price · asking_price · price_tiers · minimum_order_quantity · price_contextCompare currency, variant, minimum order quantity, price tier and promotion conditions together. A displayed offer or resale asking price is not a confirmed transaction price; price context explains any stated conditions.
seller · supplier · shop · shop.published_market_location · public_shop_details · public_listing_regionSeller, supplier and shop fields keep the listing in context. Public location or shop details appear only where included in the agreed scope; they do not verify stock, supplier quality or platform endorsement.
observed_at · sample · displayed_availability · availabilityThese examples have sample: true, with no source URL or observation time. A null value means no value is provided; it does not mean zero or out of stock. Actual delivery should document the meaning of missing fields.
Choose a fictional platform record and see how its fields stay connected. These mappings explain our website examples; the actual source fields and delivery structure are agreed through a representative sample.
Fictional example only. No source is queried when you change the selection or search.
20 / 20 mapped fields shown
The table scrolls vertically and sideways. Focus it to scroll with the keyboard.
| JSON path and meaning | Type and example value | CSV column and encoding | Check in the representative sample |
|---|---|---|---|
$.sampleMarks this record as a website example | booleantrue | sampleValue in this CSV column. View the exact CSV celltrue | All values here are illustrative. This marker does not prove a live collection or source access. |
$.platformMarketplace identifier | string"1688" | platformValue in this CSV column. View the exact CSV cell1688 | Agree the identifier and record grain. IDs from different marketplaces do not establish that items are identical. |
$.source_urlSource listing URL | null · not providednull | source_urlValue in this CSV column. View the exact CSV cellnull | The examples contain no real source link. Agree how real source references will accompany a delivery. |
$.observed_atObservation date and time | null · not providednull | observed_atValue in this CSV column. View the exact CSV cellnull | The example has no observation time. Agree timestamps, time zone and any separately requested repeat collection. |
$.product_idProduct or listing identifier | string"DEMO-1688-001" | product_idValue in this CSV column. View the exact CSV cellDEMO-1688-001 | Agree the identifier and record grain. IDs from different marketplaces do not establish that items are identical. |
$.titleProduct or listing title | string"Cotton canvas tote bag" | titleValue in this CSV column. View the exact CSV cellCotton canvas tote bag | Check original text, attributes and stated condition. Translation and verification of seller statements need explicit scope. |
$.currencyCurrency attached to the recorded amounts | string"CNY" | currencyValue in this CSV column. View the exact CSV cellCNY | Retain the original currency. Conversion, rates and rounding are separate decisions; website language does not convert amounts. |
$.price_unitUnit to which the price applies | string"piece" | price_unitValue in this CSV column. View the exact CSV cellpiece | Check currency, unit, variant, quantity tier and any promotion conditions together. A displayed or asking amount is not a final transaction price. |
$.price_tiersQuantity thresholds and their unit prices | array[{"minimum_quantity":10,"unit_price":12.5},{"minimum_quantity":100,"unit_price":10.8}] | price_tiersObject or array encoded as JSON text in one CSV cell. View the exact CSV cell"[{""minimum_quantity"":10,""unit_price"":12.5},{""minimum_quantity"":100,""unit_price"":10.8}]" | Check currency, unit, variant, quantity tier and any promotion conditions together. A displayed or asking amount is not a final transaction price. |
$.price_tiers[0].minimum_quantityMinimum quantity for this price tier | number10 | price_tiersNested value inside the JSON text of this CSV column. View the exact CSV cell"[{""minimum_quantity"":10,""unit_price"":12.5},{""minimum_quantity"":100,""unit_price"":10.8}]" | Check currency, unit, variant, quantity tier and any promotion conditions together. A displayed or asking amount is not a final transaction price. |
$.price_tiers[0].unit_priceUnit price at this quantity threshold | number12.5 | price_tiersNested value inside the JSON text of this CSV column. View the exact CSV cell"[{""minimum_quantity"":10,""unit_price"":12.5},{""minimum_quantity"":100,""unit_price"":10.8}]" | Check currency, unit, variant, quantity tier and any promotion conditions together. A displayed or asking amount is not a final transaction price. |
$.price_tiers[1].minimum_quantityMinimum quantity for this price tier | number100 | price_tiersNested value inside the JSON text of this CSV column. View the exact CSV cell"[{""minimum_quantity"":10,""unit_price"":12.5},{""minimum_quantity"":100,""unit_price"":10.8}]" | Check currency, unit, variant, quantity tier and any promotion conditions together. A displayed or asking amount is not a final transaction price. |
$.price_tiers[1].unit_priceUnit price at this quantity threshold | number10.8 | price_tiersNested value inside the JSON text of this CSV column. View the exact CSV cell"[{""minimum_quantity"":10,""unit_price"":12.5},{""minimum_quantity"":100,""unit_price"":10.8}]" | Check currency, unit, variant, quantity tier and any promotion conditions together. A displayed or asking amount is not a final transaction price. |
$.minimum_order_quantityMinimum order quantity | number10 | minimum_order_quantityValue in this CSV column. View the exact CSV cell10 | Check currency, unit, variant, quantity tier and any promotion conditions together. A displayed or asking amount is not a final transaction price. |
$.supplierSupplier context | object{"name":"Illustrative supplier"} | supplierObject or array encoded as JSON text in one CSV cell. View the exact CSV cell"{""name"":""Illustrative supplier""}" | Retain seller or shop context where agreed. Published details do not verify stock, supplier quality or platform endorsement. |
$.supplier.nameSupplier name in the example | string"Illustrative supplier" | supplierNested value inside the JSON text of this CSV column. View the exact CSV cell"{""name"":""Illustrative supplier""}" | Retain seller or shop context where agreed. Published details do not verify stock, supplier quality or platform endorsement. |
$.variantsOptions within this listing | array[{"variant_id":"DEMO-NATURAL","color":"Natural","size":"38 × 42 cm"}] | variantsObject or array encoded as JSON text in one CSV cell. View the exact CSV cell"[{""variant_id"":""DEMO-NATURAL"",""color"":""Natural"",""size"":""38 × 42 cm""}]" | Keep option identifiers and attributes with the matching price. This CSV keeps the complete variants array in one cell. |
$.variants[0].variant_idIdentifier for this option | string"DEMO-NATURAL" | variantsNested value inside the JSON text of this CSV column. View the exact CSV cell"[{""variant_id"":""DEMO-NATURAL"",""color"":""Natural"",""size"":""38 × 42 cm""}]" | Keep option identifiers and attributes with the matching price. This CSV keeps the complete variants array in one cell. |
$.variants[0].colorColour of this option | string"Natural" | variantsNested value inside the JSON text of this CSV column. View the exact CSV cell"[{""variant_id"":""DEMO-NATURAL"",""color"":""Natural"",""size"":""38 × 42 cm""}]" | Keep option identifiers and attributes with the matching price. This CSV keeps the complete variants array in one cell. |
$.variants[0].sizeSize of this option | string"38 × 42 cm" | variantsNested value inside the JSON text of this CSV column. View the exact CSV cell"[{""variant_id"":""DEMO-NATURAL"",""color"":""Natural"",""size"":""38 × 42 cm""}]" | Keep option identifiers and attributes with the matching price. This CSV keeps the complete variants array in one cell. |
One CSV row represents this whole example record. Nested fields do not become separate rows or columns in this example.
null means a value is not provided. It does not mean zero, unavailable stock or a verified absence.
Use representative listings to settle these details with the team.
Match each record to a source identifier and link. Agree how observation dates and unavailable fields are recorded; null means unknown, not zero.
Keep currency, variant, minimum quantity and promotion conditions together. A listed or asking price is not a final transaction price.
Test identifiers, text encoding and nested variants in your own system. This CSV keeps arrays and objects as quoted JSON cells; a different row structure can be agreed.
Confirm usable fields, coverage and requested delivery with a representative sample. Translation, conversion, recurring collection and system integration need separate agreement.
Name the marketplaces and include representative product links or categories.
Separate essential fields from useful extras, including variants or price tiers.
Tell us how the data will be reviewed or imported and which format suits your team.
Describe the approximate volume, requested timing and whether you need repeat collection.
Field names, currencies, variant handling and missing values should be clear before delivery. A sample is the place to settle those details.
{ platform, product_id, title, variants: [] }platform,product_id,title,currency,priceCheck how samples, fields and price conditions work, then prepare a brief for your own sources.
Search questions, answers and related terms. The selected topic also applies.
They are fictional examples of a possible structure, marked sample: true. Invented IDs and null source URLs or observation dates do not represent collected listings. To assess your own sources, ask the team about a representative sample.
No. A null value means the field was not provided or is unavailable in that record. It does not establish a zero price, no inventory or a failed product match. Agree missing-value meanings and any coverage notes during sample review.
The website CSV example uses one row per product record. Nested objects and arrays are kept as JSON strings inside cells. A project may instead need one row per variant; agree the row meaning, identifiers and import rules before delivery.
A link can contain several colours, sizes or models with different prices. Keep the source product ID, variant or SKU ID when available, and the specification used for comparison. Similar titles alone do not establish an exact match.
Keep its displayed currency, unit, variant, quantity tier and minimum order quantity (MOQ) where relevant. Pinduoduo prices may carry promotion or group-purchase conditions. A listed price is not a final landed cost, and currency conversion is not promised.
An asking price states what the seller requested in the listing. It does not prove a completed sale or transaction value. Keep the stated condition and one-off listing context; two resale items may not be comparable even when their model names match.
There is currently no public live API, self-service dashboard or automatic alert service on this website. We provide managed collection with an agreed export. Any repeat collection, schedule, comparison rules and delivery must be scoped with the team.
Platform access, record volume, field complexity, variant handling, coverage and delivery needs affect the scope. Share representative links, intended use and your preferred JSON or CSV format. We review feasibility and agree commercial terms before work; no standard website rate is published.
The website language changes the pages you read. It does not promise translation of source titles, attributes or descriptions. Tell us the output language you need and agree translation, retained original values and review requirements as part of the project.
An export or image reference does not grant publication rights. Check the permissions needed for your use, including images, listing text and third-party intellectual property. Translation or catalogue preparation does not remove that responsibility.
Coverage depends on permitted access, listing content and technical restrictions. We do not provide private account information or bypass access controls. A representative sample helps identify feasible fields and gaps before the project scope is agreed.
Use the contact page to send a few representative listing links, required fields, intended use and preferred format. State any important quantity or variant rules. Share permitted sources and only the information needed; do not send passwords or payment credentials. The team will discuss sample scope and feasibility.
Send representative links and the fields you need. We can discuss a suitable sample, feasible coverage and the project scope.
Send us a platform, a few product links and your use case. We’ll take it from there.