Lianex public read API
Cache-only read tools over Lianex's shopping catalogue. No API key, no account, no auth.
Sollte ich dies verwenden
Qualität und Sicherheit
Befunde (4)
- LOWin lianex_share_comparison_by_snapshot_id
- LOWin lianex_share_comparison_by_snapshot_id
- LOWin lianex_browse
- LOWin lianex_browse_by_slug
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"lianex": {
"url": "https://api.lianex.ai/api/public/mcp"
}
}
}Remote-Endpunkte
https://api.lianex.ai/api/public/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (9)
🟢lianex_browse
List published browse categories with their slug, display name and updated_at freshness. Use a slug with /api/public/browse/{slug} to retrieve its cached products. updated_at is null when no listing is cached. Cache-only.
Eingabe-Schema
{
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"$ref": "#/$defs/BrowseIndexResponse",
"additionalProperties": true,
"title": "Response Public Browse Index Api Public Browse Get",
"$defs": {
"BrowseCategoryEntry": {
"properties": {
"slug": {
"type": "string",
"title": "Slug",
"description": "The category's slug — the `{slug}` of `/api/public/browse/{slug}`."
},
"name": {
"type": "string",
"title": "Name",
"description": "Display name."
},
"updated_at": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Updated At",
"description": "ISO-8601 freshness of the newest cached listing in this category, or null when none is available."
}
},
"additionalProperties": true,
"type": "object",
"required": [
"slug",
"name",
"updated_at"
],
"title": "BrowseCategoryEntry"
},
"BrowseIndexResponse": {
"properties": {
"categories": {
"items": {
"$ref": "#/$defs/BrowseCategoryEntry"
},
"type": "array",
"title": "Categories",
"description": "The published category set."
}
},
"additionalProperties": true,
"type": "object",
"required": [
"categories"
],
"title": "BrowseIndexResponse",
"description": "Every category that has a published Lianex page."
}
}
}🟢lianex_browse_by_slug(slug)
Return ranked cached products for a published category. Unknown or unpublished slugs return 404. A renamed slug returns 200 with redirect_to; request that current slug. An empty category returns found: false, noindex: true and products: []. Otherwise found is true; total counts the products in this response, not all marketplace matches. Cache-only.
Eingabe-Schema
{
"type": "object",
"properties": {
"slug": {
"type": "string"
}
},
"required": [
"slug"
],
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"additionalProperties": true,
"title": "Response 200 Public Browse Category Api Public Browse Slug Get",
"anyOf": [
{
"$ref": "#/$defs/BrowseCategoryPage"
},
{
"$ref": "#/$defs/SlugRedirect"
}
],
"$defs": {
"BrowseCard": {
"properties": {
"item_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Item Id"
},
"title": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Title"
},
"price": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Price"
},
"currency": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Currency"
},
"condition": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Condition"
},
"image": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Image",
"description": "Primary image URL."
},
"url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Url",
"description": "Affiliate-wrapped outbound link."
},
"reason": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Reason",
"description": "Why the ranker placed this card here."
},
"offers": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Offers",
"description": "Number of grouped offers represented by this card. Product detail instead uses offers for a list."
},
"from_price": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "From Price",
"description": "Lowest price across the grouped offers."
},
"bucket": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Bucket",
"description": "The condition bucket this card landed in."
},
"badges": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Badges",
"description": "Display badges the ranker assigned."
},
"provider": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Provider",
"description": "The marketplace routing token — build the `/p/` permalink from it. Added by the endpoint, not by the card projection."
}
},
"additionalProperties": true,
"type": "object",
"title": "BrowseCard",
"description": "A ranked category product card. Its fields differ from product detail; offers is a count of grouped offers."
},
"BrowseCategoryPage": {
"properties": {
"slug": {
"type": "string",
"title": "Slug"
},
"category_id": {
"type": "string",
"title": "Category Id"
},
"name": {
"type": "string",
"title": "Name"
},
"h1": {
"type": "string",
"title": "H1",
"description": "The page's H1, which may be a keyword-intent variant of `name`."
},
"qualifier": {
"type": "string",
"title": "Qualifier",
"description": "The page's keyword qualifier within its category (e.g. `gaming`), or empty for a whole-category page. The in-app Browse hand-off sends the category id plus only this text.",
"default": ""
},
"title": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Title"
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Description"
},
"siblings": {
"items": {
"$ref": "#/$defs/BrowseSibling"
},
"type": "array",
"title": "Siblings",
"description": "The other published categories, for nav."
},
"found": {
"type": "boolean",
"title": "Found",
"description": "`false` means we hold NO cached listings — not that the category is unknown."
},
"noindex": {
"type": "boolean",
"title": "Noindex",
"description": "`true` on the soft-empty page, so it is never indexed."
},
"products": {
"items": {
"$ref": "#/$defs/BrowseCard"
},
"type": "array",
"title": "Products",
"description": "The ranked cached cards, or `[]`."
},
"total": {
"type": "integer",
"title": "Total",
"description": "Number of products in this response, not a catalogue-wide match total."
},
"updated_at": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Updated At",
"description": "Freshest cached listing in the category, or `null`."
}
},
"additionalProperties": true,
"type": "object",
"required": [
"slug",
"category_id",
"name",
"h1",
"siblings",
"found",
"noindex",
"products",
"total",
"updated_at"
],
"title": "BrowseCategoryPage",
"description": "Cached products for a published category. found: false means no cached products are available; products is empty and noindex is true."
},
"BrowseSibling": {
"properties": {
"slug": {
"type": "string",
"title": "Slug"
},
"name": {
"type": "string",
"title": "Name"
}
},
"additionalProperties": true,
"type": "object",
"required": [
"slug",
"name"
],
"title": "BrowseSibling"
},
"SlugRedirect": {
"properties": {
"redirect_to": {
"type": "string",
"title": "Redirect To",
"description": "The slug to follow. Not a URL — a slug."
}
},
"additionalProperties": true,
"type": "object",
"required": [
"redirect_to"
],
"title": "SlugRedirect",
"description": "The requested address has a current canonical slug. This JSON response uses status 200. Request the returned slug on the same endpoint."
}
}
}🟢lianex_product_by_safe_id(safe_id)
Return one cached product and any stored cross-marketplace offers. safe_id is the provider-qualified permalink ID, or a provider-less eBay ID. Unknown IDs return 404; removed public products return 410. Unavailable fields may be null. Each offer entry is one marketplace: its matched hits and last_checked, when we last checked that marketplace (ISO 8601). A hit includes in_stock: true only when its stock was confirmed. eBay listings also carry `shipping` (last-seen shipping cost and delivery window) and `return_terms` (returns accepted, window in days, who pays return postage); `gtin` appears when the listing's barcode passes its check digit. Cache-only.
Eingabe-Schema
{
"type": "object",
"properties": {
"safe_id": {
"type": "string"
}
},
"required": [
"safe_id"
],
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"additionalProperties": true,
"title": "Response Public Product Api Public Product Safe Id Get",
"$ref": "#/$defs/ProductResponse",
"$defs": {
"ProductResponse": {
"properties": {
"item_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Item Id",
"description": "The marketplace's own id for this listing."
},
"provider": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Provider",
"description": "The marketplace routing token: `ebay`, `amazon`, `aliexpress`, `jbhifi`, `shein`."
},
"title": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Title",
"description": "The listing title as the marketplace states it."
},
"brand": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Brand",
"description": "The brand: the stored brand, else the listing's own Brand / Brand Name item specific — never a placeholder such as Unbranded."
},
"condition": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Condition",
"description": "The stored condition label, when we recorded one."
},
"price": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Price",
"description": "The price as a decimal STRING (`\"1649.00\"`), never a float — so it cannot lose cents to binary rounding on the way to you."
},
"currency": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Currency",
"description": "ISO currency code of `price`."
},
"image": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Image",
"description": "The primary image URL."
},
"images": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Images",
"description": "Additional gallery image URLs. May be empty."
},
"url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Url",
"description": "The affiliate-wrapped outbound link. `null` when the marketplace is switched off."
},
"marketplace": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Marketplace",
"description": "The STORED locale label (`EBAY_AU`), which is not the same string as `provider`."
},
"category_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Category Id",
"description": "The marketplace category id we cached it under."
},
"category_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Category Name",
"description": "That category's display name."
},
"specifics": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"title": "Specifics",
"description": "The listing's own item specifics, minus empty/placeholder values."
},
"canonical_specs": {
"anyOf": [
{
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Canonical Specs",
"description": "The merged canonical spec sheet, when one could be derived."
},
"updated_at": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Updated At",
"description": "ISO-8601 instant this listing was last re-checked."
},
"availability": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Availability",
"description": "`InStock` or `OutOfStock`, rolled up across every stored lane."
},
"gtin": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Gtin",
"description": "A GS1 barcode number (8, 12, 13 or 14 digits) from the listing's item specifics, included only when its check digit is valid."
},
"shipping": {
"anyOf": [
{
"$ref": "#/$defs/ShippingTerms"
},
{
"type": "null"
}
],
"description": "eBay listings only: the listing's cheapest shipping option as last seen — cost, currency, cost type and the delivery-estimate window. Null for other marketplaces or when unknown."
},
"return_terms": {
"anyOf": [
{
"$ref": "#/$defs/ReturnTerms"
},
{
"type": "null"
}
],
"description": "eBay listings only: whether returns are accepted, the return window in days, and who pays return postage. Null for other marketplaces or when unknown."
},
"id": {
"type": "string",
"title": "Id",
"description": "The permalink id you asked for, echoed back."
},
"offers": {
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array",
"title": "Offers",
"description": "Public-safe stored cross-marketplace offers, one entry per marketplace: marketplace, hits, and last_checked (ISO 8601, when that marketplace was last checked; absent when unknown). A hit includes in_stock: true only when its stock was confirmed. Never seller PII."
},
"seller_task_status": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Seller Task Status",
"description": "Read-only status of any in-flight who-sells lane for this product. Reading it never schedules work."
},
"browse_slug": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Browse Slug",
"description": "The published `/b/` category this product belongs to, or `null`."
},
"browse_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Browse Name",
"description": "That category's display name, or `null`."
},
"provider_disabled": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Provider Disabled",
"description": "Present and `true` only when this product's marketplace is switched off, in which case `url` is `null`. Absent otherwise."
}
},
"additionalProperties": true,
"type": "object",
"required": [
"id",
"offers"
],
"title": "ProductResponse",
"description": "A cached product detail record. Unavailable values may be explicit nulls."
},
"ReturnTerms": {
"properties": {
"accepted": {
"type": "boolean",
"title": "Accepted",
"description": "Whether the seller accepts returns."
},
"period_days": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Period Days",
"description": "The return window in calendar days, when stated."
},
"return_postage_payer": {
"anyOf": [
{
"type": "string",
"enum": [
"BUYER",
"SELLER"
]
},
{
"type": "null"
}
],
"title": "Return Postage Payer",
"description": "Who pays return postage, when stated: BUYER or SELLER."
}
},
"additionalProperties": true,
"type": "object",
"required": [
"accepted"
],
"title": "ReturnTerms",
"description": "An eBay listing's return terms as last seen."
},
"ShippingTerms": {
"properties": {
"cost": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Cost",
"description": "Shipping cost as a decimal STRING; \"0.00\" means free."
},
"currency": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Currency",
"description": "ISO currency code of `cost`."
},
"cost_type": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Cost Type",
"description": "eBay's shipping cost type, e.g. FIXED or CALCULATED."
},
"min_delivery": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Min Delivery",
"description": "ISO-8601 instant: the earliest estimated delivery date eBay quoted when we last saw the listing. An estimate, not a promise; it can be in the past."
},
"max_delivery": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Max Delivery",
"description": "ISO-8601 instant: the latest estimated delivery date eBay quoted when we last saw the listing. An estimate, not a promise; it can be in the past."
},
"captured_at": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Captured At",
"description": "ISO-8601 instant we read this delivery estimate; the estimate window is relative to it."
}
},
"additionalProperties": true,
"type": "object",
"title": "ShippingTerms",
"description": "An eBay listing's cheapest shipping option as last seen. Any field may be null when eBay did not state it."
}
}
}🟢lianex_products(offset, limit)
List published product permalink IDs and their updated_at freshness. Use the IDs to request individual products. Omitting limit returns the full published index; otherwise offset, page_size and has_more describe the page. ignored lists unusable paging parameters. Results can change between requests. Cache-only.
Eingabe-Schema
{
"type": "object",
"properties": {
"offset": {
"type": "string",
"description": "How many permalinks to skip. Unusable values are ignored and named in `ignored`; a negative value is clamped to 0.",
"default": ""
},
"limit": {
"type": "string",
"description": "How many permalinks to return, clamped to 50. OMIT IT and you get the whole index — this is the sitemap's own source, so it is never truncated by default.",
"default": ""
}
},
"required": [],
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"additionalProperties": true,
"title": "Response Public Products Api Public Products Get",
"$ref": "#/$defs/ProductIndexResponse",
"$defs": {
"ProductIndexEntry": {
"properties": {
"id": {
"type": "string",
"title": "Id",
"description": "The permalink id — its page is `https://lianex.ai/p/<id>`."
},
"updated_at": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Updated At",
"description": "ISO-8601 freshness, or `null`."
}
},
"additionalProperties": true,
"type": "object",
"required": [
"id",
"updated_at"
],
"title": "ProductIndexEntry"
},
"ProductIndexResponse": {
"properties": {
"products": {
"items": {
"$ref": "#/$defs/ProductIndexEntry"
},
"type": "array",
"title": "Products"
},
"offset": {
"type": "integer",
"title": "Offset",
"description": "The offset actually applied (a negative request is clamped to 0)."
},
"page_size": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Page Size",
"description": "The page size actually applied, or `null` when the whole index was returned."
},
"has_more": {
"type": "boolean",
"title": "Has More",
"description": "Whether another page follows in the current result set."
},
"ignored": {
"items": {
"type": "string"
},
"type": "array",
"title": "Ignored",
"description": "Names of paging parameters we could not use. A bad value is ignored, never refused."
}
},
"additionalProperties": true,
"type": "object",
"required": [
"products",
"offset",
"page_size",
"has_more",
"ignored"
],
"title": "ProductIndexResponse",
"description": "Published product permalink IDs. Omit limit to return the full index; page_size is then null."
}
}
}🟢lianex_search(q, limit, min_price, max_price, condition, ...)
Search cached products using query words and, when recognized, their product category. Category matching can include titles that omit the category word; insufficient category evidence falls back to title matching. An explicit category filter replaces automatic category selection. Cache-only: no live marketplace fetch. Read result first: not_searched omits products and has_more; miss returns products: []; hit returns ranked products. An offset beyond the result set also returns miss. Check filters.applied and filters.ignored to see which inputs were used. Filters apply before selecting a bounded result pool. A filtered request can return products absent from an unfiltered response. Results are ranked again for each request and may change between pages; offset pagination is not a snapshot. No catalogue-wide total is available. Use compact or fields to reduce returned product fields without changing matching or ordering. Available now: Australia (prices in AUD); other marketplaces are in progress. Use currency with price bounds when you need prices in one currency. Prices are never converted: a currency that is not served returns miss with emptied_by, available_regions and retry_url. dedupe keeps the first result for each provider and normalized title, so variants with identical titles can be combined.
Eingabe-Schema
{
"type": "object",
"properties": {
"q": {
"type": "string",
"description": "Search words. Matching uses recognized product categories and title words, with a title-match fallback. Without a searchable term the response is not_searched, even if filters are supplied.",
"default": ""
},
"limit": {
"type": "integer",
"description": "Maximum products per page. Values are clamped to the range 1–50. The response echoes the applied page_size. A non-integer value returns 422.",
"default": 24
},
"min_price": {
"type": "string",
"description": "Minimum price in each listing's stored currency. Available now: Australia (prices in AUD). Accepts 1500 or $1,500.00. Supply currency to restrict prices to one currency. Invalid values are ignored.",
"default": ""
},
"max_price": {
"type": "string",
"description": "Maximum price, parsed like min_price. Available now: Australia (prices in AUD). Supply currency to restrict prices to one currency. A minimum above the maximum yields no matches.",
"default": ""
},
"condition": {
"type": "string",
"description": "One of new, refurbished or used. Products with no recorded condition do not match. Invalid values are ignored.",
"default": ""
},
"marketplace": {
"type": "string",
"description": "Marketplace: ebay, amazon, aliexpress, jbhifi or shein. Stored locale labels such as EBAY_AU are accepted. Takes precedence over provider.",
"default": ""
},
"provider": {
"type": "string",
"description": "Alias for marketplace. Ignored when marketplace is also supplied.",
"default": ""
},
"brand": {
"type": "string",
"description": "Exact brand, case-insensitive. Products with no stored brand do not match.",
"default": ""
},
"fresher_than": {
"type": "string",
"description": "Only products checked since this relative age (7d, 24h, 30m) or ISO-8601 date/time. Times without a timezone use UTC. Invalid values are ignored.",
"default": ""
},
"sort": {
"type": "string",
"description": "best_match (default), price (cheapest first) or price_desc (most expensive first). Invalid values use best_match and are listed in filters.ignored.",
"default": ""
},
"offset": {
"type": "string",
"description": "Number of ranked products to skip. Negative values use zero; invalid values use zero and appear in filters.ignored. Results may change between requests.",
"default": ""
},
"compact": {
"type": "string",
"description": "Set true for title, price, currency, condition, permalink and id only. False or empty returns full products. Invalid values are ignored. The applied selection appears in fields.",
"default": ""
},
"fields": {
"type": "string",
"description": "Comma-separated product fields, e.g. title,price,url. Overrides compact; id and permalink are always included. Unknown names are dropped. If none are valid, the full projection is returned and fields appears in filters.ignored.",
"default": ""
},
"category": {
"type": "string",
"description": "Published browse slug (mobile-phones) or numeric eBay category ID (9355), not a display name. Replaces automatic category selection. filters.applied echoes the supplied category and resolved ID.",
"default": ""
},
"currency": {
"type": "string",
"description": "ISO-4217 currency code. Available now: Australia (prices in AUD); other marketplaces are in progress. Filters to prices stored in that currency and never converts prices. A currency that is not served returns miss with emptied_by, available_regions and retry_url. Use with min_price and max_price.",
"default": ""
},
"dedupe": {
"type": "string",
"description": "Set true to keep the first result for each provider and normalized title, using the selected sort order. Off by default. Variants with identical titles may be combined. deduped counts removed rows in the ranked pool before paging.",
"default": ""
}
},
"required": [],
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"additionalProperties": true,
"title": "Response 200 Public Search Api Public Search Get",
"oneOf": [
{
"$ref": "#/$defs/SearchNotSearched"
},
{
"$ref": "#/$defs/SearchMiss"
},
{
"$ref": "#/$defs/SearchHit"
}
],
"discriminator": {
"propertyName": "result",
"mapping": {
"not_searched": "#/$defs/SearchNotSearched",
"miss": "#/$defs/SearchMiss",
"hit": "#/$defs/SearchHit"
}
},
"$defs": {
"AvailableRegion": {
"properties": {
"country": {
"type": "string",
"title": "Country",
"description": "ISO 3166-1 alpha-2 country code of the region."
},
"name": {
"type": "string",
"title": "Name",
"description": "The region's display name."
},
"currency": {
"type": "string",
"title": "Currency",
"description": "ISO 4217 code the region's listings are priced in."
}
},
"additionalProperties": true,
"type": "object",
"required": [
"country",
"name",
"currency"
],
"title": "AvailableRegion",
"description": "A region served now, with its country code, display name and price currency."
},
"PublicProduct": {
"properties": {
"item_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Item Id",
"description": "The marketplace's own id for this listing."
},
"provider": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Provider",
"description": "The marketplace routing token: `ebay`, `amazon`, `aliexpress`, `jbhifi`, `shein`."
},
"title": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Title",
"description": "The listing title as the marketplace states it."
},
"brand": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Brand",
"description": "The brand: the stored brand, else the listing's own Brand / Brand Name item specific — never a placeholder such as Unbranded."
},
"condition": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Condition",
"description": "The stored condition label, when we recorded one."
},
"price": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Price",
"description": "The price as a decimal STRING (`\"1649.00\"`), never a float — so it cannot lose cents to binary rounding on the way to you."
},
"currency": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Currency",
"description": "ISO currency code of `price`."
},
"image": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Image",
"description": "The primary image URL."
},
"images": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Images",
"description": "Additional gallery image URLs. May be empty."
},
"url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Url",
"description": "The affiliate-wrapped outbound link. `null` when the marketplace is switched off."
},
"marketplace": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Marketplace",
"description": "The STORED locale label (`EBAY_AU`), which is not the same string as `provider`."
},
"category_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Category Id",
"description": "The marketplace category id we cached it under."
},
"category_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Category Name",
"description": "That category's display name."
},
"specifics": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"title": "Specifics",
"description": "The listing's own item specifics, minus empty/placeholder values."
},
"canonical_specs": {
"anyOf": [
{
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Canonical Specs",
"description": "The merged canonical spec sheet, when one could be derived."
},
"updated_at": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Updated At",
"description": "ISO-8601 instant this listing was last re-checked."
},
"availability": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Availability",
"description": "`InStock` or `OutOfStock`, rolled up across every stored lane."
},
"gtin": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Gtin",
"description": "A GS1 barcode number (8, 12, 13 or 14 digits) from the listing's item specifics, included only when its check digit is valid."
},
"shipping": {
"anyOf": [
{
"$ref": "#/$defs/ShippingTerms"
},
{
"type": "null"
}
],
"description": "eBay listings only: the listing's cheapest shipping option as last seen — cost, currency, cost type and the delivery-estimate window. Null for other marketplaces or when unknown."
},
"return_terms": {
"anyOf": [
{
"$ref": "#/$defs/ReturnTerms"
},
{
"type": "null"
}
],
"description": "eBay listings only: whether returns are accepted, the return window in days, and who pays return postage. Null for other marketplaces or when unknown."
}
},
"additionalProperties": true,
"type": "object",
"title": "PublicProduct",
"description": "A cached product. Pass its outbound url unchanged to preserve affiliate tracking. Fields may be missing or null when unavailable."
},
"ReturnTerms": {
"properties": {
"accepted": {
"type": "boolean",
"title": "Accepted",
"description": "Whether the seller accepts returns."
},
"period_days": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Period Days",
"description": "The return window in calendar days, when stated."
},
"return_postage_payer": {
"anyOf": [
{
"type": "string",
"enum": [
"BUYER",
"SELLER"
]
},
{
"type": "null"
}
],
"title": "Return Postage Payer",
"description": "Who pays return postage, when stated: BUYER or SELLER."
}
},
"additionalProperties": true,
"type": "object",
"required": [
"accepted"
],
"title": "ReturnTerms",
"description": "An eBay listing's return terms as last seen."
},
"SearchFilters": {
"properties": {
"applied": {
"additionalProperties": true,
"type": "object",
"title": "Applied",
"description": "The normalised filters that were actually used."
},
"ignored": {
"items": {
"type": "string"
},
"type": "array",
"title": "Ignored",
"description": "NAMES of parameters we could not use — read this before trusting a result to be filtered or paged. `sort` and `offset` appear here too."
}
},
"additionalProperties": true,
"type": "object",
"required": [
"applied",
"ignored"
],
"title": "SearchFilters"
},
"SearchHit": {
"properties": {
"result": {
"type": "string",
"const": "hit",
"title": "Result"
},
"query": {
"type": "string",
"title": "Query"
},
"cache_only": {
"type": "boolean",
"const": true,
"title": "Cache Only"
},
"page_size": {
"type": "integer",
"title": "Page Size"
},
"offset": {
"type": "integer",
"title": "Offset"
},
"sort": {
"type": "string",
"title": "Sort"
},
"filters": {
"$ref": "#/$defs/SearchFilters"
},
"searched": {
"type": "boolean",
"const": true,
"title": "Searched"
},
"count": {
"type": "integer",
"title": "Count",
"description": "Number of products on this page, not a catalogue-wide match total."
},
"has_more": {
"type": "boolean",
"title": "Has More",
"description": "Whether another page follows. Read this instead of a total."
},
"products": {
"items": {
"$ref": "#/$defs/SearchProduct"
},
"type": "array",
"title": "Products"
},
"fields": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Fields",
"description": "Included when field selection is applied. Lists the selected product fields; unavailable fields may still be omitted from individual products. Absent for the full projection."
},
"deduped": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Deduped",
"description": "Number of duplicate rows removed from the ranked result pool before paging. Present only when dedupe is enabled; this is not the duplicate count on the current page. Deduplication keeps the first row for each provider and normalized title."
}
},
"additionalProperties": true,
"type": "object",
"required": [
"result",
"query",
"cache_only",
"page_size",
"offset",
"sort",
"filters",
"searched",
"count",
"has_more",
"products"
],
"title": "SearchHit",
"description": "A page of ranked cached products, containing up to page_size results."
},
"SearchMiss": {
"properties": {
"result": {
"type": "string",
"const": "miss",
"title": "Result"
},
"query": {
"type": "string",
"title": "Query"
},
"cache_only": {
"type": "boolean",
"const": true,
"title": "Cache Only"
},
"page_size": {
"type": "integer",
"title": "Page Size"
},
"offset": {
"type": "integer",
"title": "Offset"
},
"sort": {
"type": "string",
"title": "Sort"
},
"filters": {
"$ref": "#/$defs/SearchFilters"
},
"searched": {
"type": "boolean",
"const": true,
"title": "Searched"
},
"count": {
"type": "integer",
"title": "Count",
"description": "Always 0 on this variant."
},
"has_more": {
"type": "boolean",
"title": "Has More"
},
"products": {
"items": {
"$ref": "#/$defs/PublicProduct"
},
"type": "array",
"title": "Products",
"description": "Always empty on this variant."
},
"message": {
"type": "string",
"title": "Message",
"description": "Explains that an empty result is a cache miss, not a non-existence claim."
},
"emptied_by": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Emptied By",
"description": "Present only when a filter alone guarantees an empty result — today only a currency that is not served: [\"currency\"]. Absent on every other miss."
},
"available_regions": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/AvailableRegion"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Available Regions",
"description": "Present with emptied_by: the regions served now (Australia (prices in AUD)), each with its country code, name and currency."
},
"retry_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Retry Url",
"description": "Present with emptied_by: this request's path and query without the emptying filter, relative to the API origin."
}
},
"additionalProperties": true,
"type": "object",
"required": [
"result",
"query",
"cache_only",
"page_size",
"offset",
"sort",
"filters",
"searched",
"count",
"has_more",
"products",
"message"
],
"title": "SearchMiss",
"description": "No cached products matched this query or page position. products is empty and message explains the result. This does not mean the product does not exist."
},
"SearchNotSearched": {
"properties": {
"result": {
"type": "string",
"const": "not_searched",
"title": "Result",
"description": "Read this BEFORE you read anything else."
},
"query": {
"type": "string",
"title": "Query"
},
"cache_only": {
"type": "boolean",
"const": true,
"title": "Cache Only",
"description": "Always `true`: no endpoint here can trigger a fetch."
},
"page_size": {
"type": "integer",
"title": "Page Size"
},
"offset": {
"type": "integer",
"title": "Offset"
},
"sort": {
"type": "string",
"title": "Sort"
},
"filters": {
"$ref": "#/$defs/SearchFilters"
},
"searched": {
"type": "boolean",
"const": false,
"title": "Searched"
},
"message": {
"type": "string",
"title": "Message",
"description": "Says in as many words that no search term was supplied."
}
},
"additionalProperties": true,
"type": "object",
"required": [
"result",
"query",
"cache_only",
"page_size",
"offset",
"sort",
"filters",
"searched",
"message"
],
"title": "SearchNotSearched",
"description": "No searchable term was supplied. products and has_more are absent. Do not display this as a search with no matches. offset echoes the requested position."
},
"SearchProduct": {
"properties": {
"item_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Item Id",
"description": "The marketplace's own id for this listing."
},
"provider": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Provider",
"description": "The marketplace routing token: `ebay`, `amazon`, `aliexpress`, `jbhifi`, `shein`."
},
"title": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Title",
"description": "The listing title as the marketplace states it."
},
"brand": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Brand",
"description": "The brand: the stored brand, else the listing's own Brand / Brand Name item specific — never a placeholder such as Unbranded."
},
"condition": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Condition",
"description": "The stored condition label, when we recorded one."
},
"price": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Price",
"description": "The price as a decimal STRING (`\"1649.00\"`), never a float — so it cannot lose cents to binary rounding on the way to you."
},
"currency": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Currency",
"description": "ISO currency code of `price`."
},
"image": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Image",
"description": "The primary image URL."
},
"images": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Images",
"description": "Additional gallery image URLs. May be empty."
},
"url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Url",
"description": "The affiliate-wrapped outbound link. `null` when the marketplace is switched off."
},
"marketplace": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Marketplace",
"description": "The STORED locale label (`EBAY_AU`), which is not the same string as `provider`."
},
"category_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Category Id",
"description": "The marketplace category id we cached it under."
},
"category_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Category Name",
"description": "That category's display name."
},
"specifics": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"title": "Specifics",
"description": "The listing's own item specifics, minus empty/placeholder values."
},
"canonical_specs": {
"anyOf": [
{
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Canonical Specs",
"description": "The merged canonical spec sheet, when one could be derived."
},
"updated_at": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Updated At",
"description": "ISO-8601 instant this listing was last re-checked."
},
"availability": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Availability",
"description": "`InStock` or `OutOfStock`, rolled up across every stored lane."
},
"gtin": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Gtin",
"description": "A GS1 barcode number (8, 12, 13 or 14 digits) from the listing's item specifics, included only when its check digit is valid."
},
"shipping": {
"anyOf": [
{
"$ref": "#/$defs/ShippingTerms"
},
{
"type": "null"
}
],
"description": "eBay listings only: the listing's cheapest shipping option as last seen — cost, currency, cost type and the delivery-estimate window. Null for other marketplaces or when unknown."
},
"return_terms": {
"anyOf": [
{
"$ref": "#/$defs/ReturnTerms"
},
{
"type": "null"
}
],
"description": "eBay listings only: whether returns are accepted, the return window in days, and who pays return postage. Null for other marketplaces or when unknown."
},
"id": {
"type": "string",
"title": "Id",
"description": "The URL-safe permalink id."
},
"permalink": {
"type": "string",
"title": "Permalink",
"description": "`/p/<id>` — the human page for this product."
}
},
"additionalProperties": true,
"type": "object",
"required": [
"id",
"permalink"
],
"title": "SearchProduct",
"description": "A cached search result. id and permalink are always present. Other fields may be omitted when unavailable or excluded by field selection. Use product detail for stored offers and browse-category links."
},
"ShippingTerms": {
"properties": {
"cost": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Cost",
"description": "Shipping cost as a decimal STRING; \"0.00\" means free."
},
"currency": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Currency",
"description": "ISO currency code of `cost`."
},
"cost_type": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Cost Type",
"description": "eBay's shipping cost type, e.g. FIXED or CALCULATED."
},
"min_delivery": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Min Delivery",
"description": "ISO-8601 instant: the earliest estimated delivery date eBay quoted when we last saw the listing. An estimate, not a promise; it can be in the past."
},
"max_delivery": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Max Delivery",
"description": "ISO-8601 instant: the latest estimated delivery date eBay quoted when we last saw the listing. An estimate, not a promise; it can be in the past."
},
"captured_at": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Captured At",
"description": "ISO-8601 instant we read this delivery estimate; the estimate window is relative to it."
}
},
"additionalProperties": true,
"type": "object",
"title": "ShippingTerms",
"description": "An eBay listing's cheapest shipping option as last seen. Any field may be null when eBay did not state it."
}
}
}🟢lianex_resolve_compare(ids)
Resolve up to 3 comma-separated product permalink IDs into cached listings for comparison. Each listing includes url, marketplace and item_id, plus title, price and condition when available. Unresolvable IDs and IDs beyond the limit are omitted; an empty set returns listings: []. Cache-only.
Eingabe-Schema
{
"type": "object",
"properties": {
"ids": {
"type": "string",
"default": ""
}
},
"required": [],
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"additionalProperties": true,
"title": "Response Resolve Compare Api Public Resolve Compare Get",
"$ref": "#/$defs/ResolveCompareResponse",
"$defs": {
"CompareListing": {
"properties": {
"url": {
"type": "string",
"title": "Url",
"description": "Affiliate-wrapped outbound link."
},
"marketplace": {
"type": "string",
"title": "Marketplace",
"description": "The registry ROUTING TOKEN (`ebay`, `amazon`, …), not the stored locale label."
},
"item_id": {
"type": "string",
"title": "Item Id",
"description": "The marketplace's full id, variation included."
},
"title": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Title",
"description": "Present only when we hold one."
},
"price": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Price",
"description": "Present only when we hold one."
},
"condition": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Condition",
"description": "Present only when we hold one."
}
},
"additionalProperties": true,
"type": "object",
"required": [
"url",
"marketplace",
"item_id"
],
"title": "CompareListing",
"description": "A resolved cached listing suitable for comparison."
},
"ResolveCompareResponse": {
"properties": {
"listings": {
"items": {
"$ref": "#/$defs/CompareListing"
},
"type": "array",
"title": "Listings"
}
},
"additionalProperties": true,
"type": "object",
"required": [
"listings"
],
"title": "ResolveCompareResponse",
"description": "Resolved cached listings. Unresolvable IDs and IDs beyond the request limit are omitted; an empty set returns listings: []."
}
}
}🟢lianex_vs(offset, limit)
List published comparisons whose products remain cached, ordered by slug, with updated_at freshness. Omitting limit returns the full published index. Otherwise use offset, page_size and has_more; ignored lists unusable paging parameters. Results may change between requests. Cache-only.
Eingabe-Schema
{
"type": "object",
"properties": {
"offset": {
"type": "string",
"description": "How many pairs to skip. Unusable values are ignored and named in `ignored`; a negative value is clamped to 0.",
"default": ""
},
"limit": {
"type": "string",
"description": "How many pairs to return, clamped to 50. OMIT IT and you get the whole index — this is the sitemap's own source, so it is never truncated by default.",
"default": ""
}
},
"required": [],
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"additionalProperties": true,
"title": "Response Public Vs Index Api Public Vs Get",
"$ref": "#/$defs/VsIndexResponse",
"$defs": {
"VsIndexEntry": {
"properties": {
"slug": {
"type": "string",
"title": "Slug",
"description": "The `{slug}` of `/api/public/vs/{slug}`."
},
"updated_at": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Updated At",
"description": "ISO-8601 freshness of the fresher side, or `null`."
}
},
"additionalProperties": true,
"type": "object",
"required": [
"slug",
"updated_at"
],
"title": "VsIndexEntry"
},
"VsIndexResponse": {
"properties": {
"pairs": {
"items": {
"$ref": "#/$defs/VsIndexEntry"
},
"type": "array",
"title": "Pairs"
},
"offset": {
"type": "integer",
"title": "Offset"
},
"page_size": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Page Size"
},
"has_more": {
"type": "boolean",
"title": "Has More",
"description": "Read this instead of a total; no total is reported."
},
"ignored": {
"items": {
"type": "string"
},
"type": "array",
"title": "Ignored"
}
},
"additionalProperties": true,
"type": "object",
"required": [
"pairs",
"offset",
"page_size",
"has_more",
"ignored"
],
"title": "VsIndexResponse",
"description": "Published comparisons ordered by slug. Omit limit to return the full index; page_size is then null. Results may change between requests."
}
}
}🟢lianex_vs_by_slug(slug)
Return a published comparison with columns, rows, summary and product sides. Unknown, retired or suppressed slugs return 404; missing cached products return 410. A non-canonical product order returns 200 with redirect_to naming the canonical slug. Cache-only.
Eingabe-Schema
{
"type": "object",
"properties": {
"slug": {
"type": "string"
}
},
"required": [
"slug"
],
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"additionalProperties": true,
"title": "Response 200 Public Vs Api Public Vs Slug Get",
"anyOf": [
{
"$ref": "#/$defs/VsPage"
},
{
"$ref": "#/$defs/SlugRedirect"
}
],
"$defs": {
"PublicProduct": {
"properties": {
"item_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Item Id",
"description": "The marketplace's own id for this listing."
},
"provider": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Provider",
"description": "The marketplace routing token: `ebay`, `amazon`, `aliexpress`, `jbhifi`, `shein`."
},
"title": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Title",
"description": "The listing title as the marketplace states it."
},
"brand": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Brand",
"description": "The brand: the stored brand, else the listing's own Brand / Brand Name item specific — never a placeholder such as Unbranded."
},
"condition": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Condition",
"description": "The stored condition label, when we recorded one."
},
"price": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Price",
"description": "The price as a decimal STRING (`\"1649.00\"`), never a float — so it cannot lose cents to binary rounding on the way to you."
},
"currency": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Currency",
"description": "ISO currency code of `price`."
},
"image": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Image",
"description": "The primary image URL."
},
"images": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Images",
"description": "Additional gallery image URLs. May be empty."
},
"url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Url",
"description": "The affiliate-wrapped outbound link. `null` when the marketplace is switched off."
},
"marketplace": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Marketplace",
"description": "The STORED locale label (`EBAY_AU`), which is not the same string as `provider`."
},
"category_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Category Id",
"description": "The marketplace category id we cached it under."
},
"category_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Category Name",
"description": "That category's display name."
},
"specifics": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"title": "Specifics",
"description": "The listing's own item specifics, minus empty/placeholder values."
},
"canonical_specs": {
"anyOf": [
{
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Canonical Specs",
"description": "The merged canonical spec sheet, when one could be derived."
},
"updated_at": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Updated At",
"description": "ISO-8601 instant this listing was last re-checked."
},
"availability": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Availability",
"description": "`InStock` or `OutOfStock`, rolled up across every stored lane."
},
"gtin": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Gtin",
"description": "A GS1 barcode number (8, 12, 13 or 14 digits) from the listing's item specifics, included only when its check digit is valid."
},
"shipping": {
"anyOf": [
{
"$ref": "#/$defs/ShippingTerms"
},
{
"type": "null"
}
],
"description": "eBay listings only: the listing's cheapest shipping option as last seen — cost, currency, cost type and the delivery-estimate window. Null for other marketplaces or when unknown."
},
"return_terms": {
"anyOf": [
{
"$ref": "#/$defs/ReturnTerms"
},
{
"type": "null"
}
],
"description": "eBay listings only: whether returns are accepted, the return window in days, and who pays return postage. Null for other marketplaces or when unknown."
}
},
"additionalProperties": true,
"type": "object",
"title": "PublicProduct",
"description": "A cached product. Pass its outbound url unchanged to preserve affiliate tracking. Fields may be missing or null when unavailable."
},
"ReturnTerms": {
"properties": {
"accepted": {
"type": "boolean",
"title": "Accepted",
"description": "Whether the seller accepts returns."
},
"period_days": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Period Days",
"description": "The return window in calendar days, when stated."
},
"return_postage_payer": {
"anyOf": [
{
"type": "string",
"enum": [
"BUYER",
"SELLER"
]
},
{
"type": "null"
}
],
"title": "Return Postage Payer",
"description": "Who pays return postage, when stated: BUYER or SELLER."
}
},
"additionalProperties": true,
"type": "object",
"required": [
"accepted"
],
"title": "ReturnTerms",
"description": "An eBay listing's return terms as last seen."
},
"ShippingTerms": {
"properties": {
"cost": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Cost",
"description": "Shipping cost as a decimal STRING; \"0.00\" means free."
},
"currency": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Currency",
"description": "ISO currency code of `cost`."
},
"cost_type": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Cost Type",
"description": "eBay's shipping cost type, e.g. FIXED or CALCULATED."
},
"min_delivery": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Min Delivery",
"description": "ISO-8601 instant: the earliest estimated delivery date eBay quoted when we last saw the listing. An estimate, not a promise; it can be in the past."
},
"max_delivery": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Max Delivery",
"description": "ISO-8601 instant: the latest estimated delivery date eBay quoted when we last saw the listing. An estimate, not a promise; it can be in the past."
},
"captured_at": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Captured At",
"description": "ISO-8601 instant we read this delivery estimate; the estimate window is relative to it."
}
},
"additionalProperties": true,
"type": "object",
"title": "ShippingTerms",
"description": "An eBay listing's cheapest shipping option as last seen. Any field may be null when eBay did not state it."
},
"SlugRedirect": {
"properties": {
"redirect_to": {
"type": "string",
"title": "Redirect To",
"description": "The slug to follow. Not a URL — a slug."
}
},
"additionalProperties": true,
"type": "object",
"required": [
"redirect_to"
],
"title": "SlugRedirect",
"description": "The requested address has a current canonical slug. This JSON response uses status 200. Request the returned slug on the same endpoint."
},
"VsComparison": {
"properties": {
"columns": {
"items": {},
"type": "array",
"title": "Columns",
"description": "One column per compared product, in the frozen order."
},
"rows": {
"items": {},
"type": "array",
"title": "Rows",
"description": "The aligned attribute rows."
},
"summary": {
"title": "Summary",
"description": "The frozen prose summary."
}
},
"additionalProperties": true,
"type": "object",
"required": [
"columns",
"rows"
],
"title": "VsComparison",
"description": "The stored comparison content: product columns, comparison rows and summary."
},
"VsPage": {
"properties": {
"result": {
"type": "string",
"const": "ok",
"title": "Result"
},
"slug": {
"type": "string",
"title": "Slug"
},
"category_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Category Id"
},
"category_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Category Name"
},
"title": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Title"
},
"sides": {
"items": {
"$ref": "#/$defs/PublicProduct"
},
"type": "array",
"title": "Sides",
"description": "The compared products, two or three of them."
},
"comparison": {
"$ref": "#/$defs/VsComparison"
},
"siblings": {
"items": {
"$ref": "#/$defs/VsSibling"
},
"type": "array",
"title": "Siblings"
},
"updated_at": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Updated At"
},
"a": {
"anyOf": [
{
"$ref": "#/$defs/PublicProduct"
},
{
"type": "null"
}
],
"description": "Alias for `sides[0]`, present only on a two-sided comparison."
},
"b": {
"anyOf": [
{
"$ref": "#/$defs/PublicProduct"
},
{
"type": "null"
}
],
"description": "Alias for `sides[1]`, present only on a two-sided comparison."
}
},
"additionalProperties": true,
"type": "object",
"required": [
"result",
"slug",
"sides",
"comparison"
],
"title": "VsPage",
"description": "A published head-to-head comparison of two or three cached products."
},
"VsSibling": {
"properties": {
"slug": {
"type": "string",
"title": "Slug"
},
"title": {
"type": "string",
"title": "Title"
}
},
"additionalProperties": true,
"type": "object",
"required": [
"slug",
"title"
],
"title": "VsSibling"
}
}
}🟢lianex_share_comparison_by_snapshot_id(snapshot_id)
Resolve a historical shared-comparison token to its canonical comparison slug. A successful response contains redirect_to and result: "redirect"; it does not return the historical comparison body. Unknown or retired tokens return 404. Cache-only.
Eingabe-Schema
{
"type": "object",
"properties": {
"snapshot_id": {
"type": "string"
}
},
"required": [
"snapshot_id"
],
"additionalProperties": false
}Ausgabe-Schema
{
"type": "object",
"additionalProperties": true,
"title": "Response Public Share Comparison Api Public Share Comparison Snapshot Id Get",
"$ref": "#/$defs/ShareRedirectResponse",
"$defs": {
"ShareRedirectResponse": {
"properties": {
"redirect_to": {
"type": "string",
"title": "Redirect To",
"description": "The comparison set's one canonical descriptive `/vs/` slug."
},
"result": {
"type": "string",
"const": "redirect",
"title": "Result"
}
},
"additionalProperties": true,
"type": "object",
"required": [
"redirect_to",
"result"
],
"title": "ShareRedirectResponse",
"description": "The canonical comparison slug for a historical shared link. The historical comparison body is not returned."
}
}
}Community
Nachweis