{
  "data": {
    "id": "4U8HxHY1EyImWcyfY",
    "actId": "x5uIAjSyeZfnCa4v7",
    "userId": "zq8lKbpLzTjGDayPC",
    "startedAt": "2026-11-08T13:02:18.433Z",
    "finishedAt": "2026-11-08T13:02:57.879Z",
    "status": "SUCCEEDED",
    "meta": {
      "origin": "CLI"
    },
    "stats": {
      "durationMillis": 39360,
      "runTimeSecs": 39.36,
      "computeUnits": 0.04373333333333333,
      "imageSizeBytes": 3112299520
    },
    "options": {
      "useCache": true,
      "betaPackages": false,
      "memoryMbytes": 4096,
      "diskMbytes": 8192
    },
    "createdByOrganizationMemberUserId": "GK9YjZRyQZVzOdoH5",
    "exitCode": 0,
    "inputSchema": "{\n  \"title\": \"Amazon Wishlist & Registry Scraper Input\",\n  \"description\": \"Scrape public/shareable Amazon wishlists, gift lists, baby registries, and wedding registries from URLs or bare wishlist IDs.\",\n  \"type\": \"object\",\n  \"schemaVersion\": 1,\n  \"properties\": {\n    \"listUrls\": {\n      \"title\": \"Wishlist / registry URLs\",\n      \"type\": \"array\",\n      \"description\": \"Direct, public/shareable Amazon list URLs. Accepted shapes: `/hz/wishlist/ls/<ID>`, the mobile `/gp/aw/ls?lid=<ID>`, `/gp/registry/wishlist/<ID>`, `/baby-reg/<name>/<ID>`, `/wedding/guest-view/<ID>` (or `/wedding/<name>/registry/<ID>`), and `/registries/gl/guest-view/<ID>`. This actor never searches for or enumerates lists; it only visits the exact URLs you provide.\",\n      \"editor\": \"stringList\",\n      \"prefill\": [\n        \"https://www.amazon.com/hz/wishlist/ls/2PBHI0DGWAAAF\"\n      ]\n    },\n    \"listIds\": {\n      \"title\": \"Wishlist IDs\",\n      \"type\": \"array\",\n      \"description\": \"Bare wishlist IDs copied from a list URL (for example `2PBHI0DGWAAAF` from `/hz/wishlist/ls/2PBHI0DGWAAAF`). Each ID is opened on the marketplace selected below. Use this instead of `listUrls` when you only have the ID.\",\n      \"editor\": \"stringList\"\n    },\n    \"marketplace\": {\n      \"title\": \"Marketplace for list IDs\",\n      \"type\": \"string\",\n      \"description\": \"Amazon marketplace used to build URLs from `listIds`. Ignored for `listUrls` because each URL already carries its own marketplace.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"amazon.com\",\n        \"amazon.co.uk\",\n        \"amazon.de\",\n        \"amazon.ca\",\n        \"amazon.fr\",\n        \"amazon.it\",\n        \"amazon.es\",\n        \"amazon.com.au\",\n        \"amazon.co.jp\",\n        \"amazon.in\",\n        \"amazon.com.mx\",\n        \"amazon.com.br\",\n        \"amazon.nl\",\n        \"amazon.se\",\n        \"amazon.pl\",\n        \"amazon.com.tr\",\n        \"amazon.ae\",\n        \"amazon.sa\",\n        \"amazon.sg\",\n        \"amazon.com.be\",\n        \"amazon.eg\",\n        \"amazon.ie\",\n        \"amazon.co.za\"\n      ],\n      \"enumTitles\": [\n        \"United States (amazon.com)\",\n        \"United Kingdom (amazon.co.uk)\",\n        \"Germany (amazon.de)\",\n        \"Canada (amazon.ca)\",\n        \"France (amazon.fr)\",\n        \"Italy (amazon.it)\",\n        \"Spain (amazon.es)\",\n        \"Australia (amazon.com.au)\",\n        \"Japan (amazon.co.jp)\",\n        \"India (amazon.in)\",\n        \"Mexico (amazon.com.mx)\",\n        \"Brazil (amazon.com.br)\",\n        \"Netherlands (amazon.nl)\",\n        \"Sweden (amazon.se)\",\n        \"Poland (amazon.pl)\",\n        \"Turkey (amazon.com.tr)\",\n        \"United Arab Emirates (amazon.ae)\",\n        \"Saudi Arabia (amazon.sa)\",\n        \"Singapore (amazon.sg)\",\n        \"Belgium (amazon.com.be)\",\n        \"Egypt (amazon.eg)\",\n        \"Ireland (amazon.ie)\",\n        \"South Africa (amazon.co.za)\"\n      ],\n      \"default\": \"amazon.com\",\n      \"prefill\": \"amazon.com\"\n    },\n    \"maxItems\": {\n      \"title\": \"Max items per list\",\n      \"type\": \"integer\",\n      \"description\": \"Hard cap on the number of list items scraped per list URL. The full list is followed through Amazon's own pagination until this cap is reached or the list ends.\",\n      \"minimum\": 1,\n      \"maximum\": 10000,\n      \"default\": 100,\n      \"prefill\": 20\n    },\n    \"sortBy\": {\n      \"title\": \"Sort order\",\n      \"type\": \"string\",\n      \"description\": \"Sort order for wishlist items, matching the sort control shown on the live wishlist page. Registry pages expose their own fixed sort set; unsupported values fall back to the list's default order.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"\",\n        \"date-added\",\n        \"priority\",\n        \"price-asc\",\n        \"price-desc\",\n        \"custom\"\n      ],\n      \"enumTitles\": [\n        \"(list default order)\",\n        \"Most recently added\",\n        \"Priority (high to low)\",\n        \"Price (low to high)\",\n        \"Price (high to low)\",\n        \"Custom (owner-defined order)\"\n      ],\n      \"default\": \"\",\n      \"prefill\": \"\"\n    },\n    \"proxyConfiguration\": {\n      \"title\": \"Proxy configuration\",\n      \"type\": \"object\",\n      \"description\": \"Apify proxy used to fetch list pages. Defaults to the free AUTO (datacenter) group; the actor escalates to a residential session automatically only if a block is detected.\",\n      \"editor\": \"proxy\",\n      \"prefill\": {\n        \"useApifyProxy\": true\n      },\n      \"default\": {\n        \"useApifyProxy\": true\n      }\n    }\n  }\n}",
    "readme": "# Amazon Wishlist & Registry Scraper\n\nScrape **public and shareable Amazon wishlists, gift lists, baby registries, and wedding registries** from URLs or bare wishlist IDs. Get list metadata (owner/title, description, event date, item counts) and per-item details — ASIN, title, price, quantity needed/purchased, priority, rating, and comments. This actor never searches for or enumerates people's lists; it only visits the exact URL(s) or ID(s) you provide.\n\n## What this actor does\n\n- **Two input modes** — paste full list URLs (`listUrls`) or bare wishlist IDs (`listIds` + `marketplace`)\n- **Every current Amazon list URL shape** — `/hz/wishlist/ls/<ID>`, the mobile `/gp/aw/ls?lid=<ID>`, `/gp/registry/wishlist/<ID>`, `/baby-reg/<name>/<ID>`, `/wedding/guest-view/<ID>` (and the older `/wedding/<name>/registry/<ID>`), and `/registries/gl/guest-view/<ID>`\n- **Classifies access before extracting anything** — every list is tagged `PUBLIC`, `SHAREABLE`, `PRIVATE_OR_AUTH_REQUIRED`, `NOT_FOUND`, or `BLOCKED`; private/deleted lists return zero item records, never a fake empty \"success\"\n- **Full pagination** — follows Amazon's own \"See More\" pages until the list ends or `maxItems` is reached, so long lists are not silently truncated at the first screen\n- **Real quantities, not guesses** — `requestedQuantity` (\"Needs N\") and `purchasedQuantity` (\"Has N\") are separate, real fields\n- **Registry metadata** — baby/wedding/Gift List records include the real displayed event/arrival date and city-level event location, plus Amazon's own purchased-item count when shown\n- **Empty fields are omitted** — never a `null`/placeholder value\n\n## Privacy — please read\n\nThis actor only scrapes the exact URL(s) or wishlist ID(s) you supply. It does not crawl Amazon's registry search to discover or enumerate people or lists. It never infers or exposes a delivery address. Only use it on lists that are genuinely public or explicitly shared with you.\n\n**Credential-free by design.** No cookies, logins, API keys, or tokens are accepted or stored. A private list is reported honestly as `PRIVATE_OR_AUTH_REQUIRED`; the actor cannot open it.\n\n**Registry search is not supported** — Amazon's public \"Find a registry\" search (`/registries/search`) redirects anonymous visitors to a sign-in page. That is a confirmed Amazon-side gate, not an actor limitation that extra code can bypass. Use the direct registry link instead.\n\n## Output: per-list record (`recordType: \"list\"`)\n\n- `listId` — the wishlist/registry ID parsed from the URL or supplied in `listIds`\n- `type` — `wishlist` / `giftList` / `babyRegistry` / `weddingRegistry` / `customRegistry`\n- `title`, `ownerName` — the list/registry display name (only when Amazon shows it publicly)\n- `description` — the owner-written description, when the list shows one\n- `eventDate` — baby arrival/due date or registry event date, ISO `YYYY-MM-DD`, when displayed\n- `eventLocation` — city/state only (never a street address, unit, or postal code)\n- `declaredItemCount` — Amazon's own displayed item total, when shown\n- `purchasedItemCount` — Amazon's own \"N/M items purchased\" count, when shown\n- `extractedItemCount` — how many item records this run produced\n- `accessClassification` — `PUBLIC`, `SHAREABLE`, `PRIVATE_OR_AUTH_REQUIRED`, `NOT_FOUND`, or `BLOCKED`\n- `sourceUrl`, `canonicalUrl` — the URL you supplied and the final resolved URL\n- `marketplace` — `{countryCode, domain, currency, language}`\n- `recordType: \"list\"`, `scrapedAt`\n\n## Output: per-item record (`recordType: \"listItem\"`)\n\n- `listId`, `listItemId` — Amazon's own stable per-item ID (classic wishlist `data-itemid`, Gift List entry UUID, a wedding-registry card's ASIN, or the entry UUID of a wedding gift-fund card)\n- `position` — 1-based position in the list as scraped (output order may differ for price sorts)\n- `asin`, `title`, `url`, `imageUrl`, `brand`\n- `price`, `listPrice` — `{value, currency, display}`, only when Amazon shows a parseable amount\n- `rating`, `ratingsCount` — only when the item shows a rating\n- `requestedQuantity` — \"Needs N\"/\"N of M purchased\" requested count\n- `purchasedQuantity` — \"Has N\"/purchased count\n- `priority` — `high`/`medium`/`low`, `Most Wanted` (Gift List), or `Must Have` (baby registry), only when the owner/badge sets one\n- `comment` — the owner's note, when present\n- `variant` — selected size/color/style text, when shown\n- `availabilityText`, `discountText` — raw availability/discount text, when shown\n- `badge` — real status badge (`{label, category}`), e.g. `{\"label\": \"Best Seller\", \"category\": \"in Packing Tape\"}`\n- `isIdea` — `true` only for a free-text \"idea\" entry with no linked product (no `asin`/`url`/`imageUrl`)\n- `listUrl`, `marketplace`\n- `recordType: \"listItem\"`, `scrapedAt`\n\n## Input\n\n| Field | Type | Default | Description |\n|---|---|---|---|\n| `listUrls` | array | – | Public/shareable list URLs (any supported Amazon list/registry shape) |\n| `listIds` | array | – | Bare wishlist IDs, opened on the selected marketplace |\n| `marketplace` | select | `amazon.com` | Marketplace used to build URLs from `listIds` (23 Amazon domains) |\n| `maxItems` | integer | `100` | Max items per list (1–10,000); pagination stops at this cap or the real end of the list |\n| `sortBy` | select | list default | `date-added` / `priority` / `price-asc` / `price-desc` / `custom` for wishlists |\n| `proxyConfiguration` | object | AUTO | Apify proxy; the actor escalates automatically only if Amazon blocks the request |\n\n### Example: scrape a public wishlist\n\n```json\n{\n  \"listUrls\": [\"https://www.amazon.com/hz/wishlist/ls/2PBHI0DGWAAAF\"],\n  \"maxItems\": 100\n}\n```\n\n### Example: IDs mode across two marketplaces\n\n```json\n{\n  \"listIds\": [\"2PBHI0DGWAAAF\"],\n  \"marketplace\": \"amazon.co.uk\",\n  \"maxItems\": 50\n}\n```\n\n### Example: baby registry and wedding registry\n\n```json\n{\n  \"listUrls\": [\n    \"https://www.amazon.com/baby-reg/example-name/EXAMPLEID123\",\n    \"https://www.amazon.com/wedding/guest-view/EXAMPLEID456\"\n  ],\n  \"maxItems\": 200\n}\n```\n\n### Example: a Gift List (school supply drive / birthday list)\n\n```json\n{\n  \"listUrls\": [\"https://www.amazon.com/registries/gl/guest-view/EXAMPLEID123\"],\n  \"maxItems\": 50\n}\n```\n\n## Use cases\n\n- **Charity and hospital donation drives** — export a shared wishlist so volunteers see current needs\n- **Classroom supply lists** — track what teachers still need, including requested vs purchased counts\n- **Wedding/baby registry gift coordination** — see remaining needs and the registry's event date\n- **Gift-list price monitoring** — watch current prices and rating changes on a shared list\n- **Archiving a list you own or administer** — export it before editing or deleting it\n\n## FAQ\n\n**Can this actor find someone's wishlist for me?** No. It only opens URLs or wishlist IDs you provide. Amazon's public registry search requires sign-in, and this actor never enumerates people.\n\n**What happens with a private or deleted list?** You get a list record with `accessClassification: \"PRIVATE_OR_AUTH_REQUIRED\"` or `\"NOT_FOUND\"` and zero item records — never a fake \"0 items, success\" result.\n\n**What does `BLOCKED` mean?** Every retry, including the automatic residential fallback, hit an Amazon anti-bot/CAPTCHA page instead of the list. The list may exist; re-run later. It is never reported as `NOT_FOUND`.\n\n**Does it show delivery addresses?** No. It never infers or exposes a delivery address. Registry event locations are reduced to city/state and street-like text is refused.\n\n**Why is my price in a different currency than the marketplace?** Amazon renders cross-border prices in the visitor's local currency (for example, a US registry viewed from Pakistan can show `PKR`). The `price.currency` field reports the currency Amazon actually displayed; `marketplace.currency` reports the list's own marketplace currency.\n\n**Why are some items missing?** Classic wishlists hide items the owner marked as purchased (the public page only offers an \"Unpurchased\" filter); some registries hide purchased items the same way. Gift-fund/contribution entries and deleted items may have no product card at all. When a gift-fund card does render, it is returned with its displayed name and a stable entry ID, but with no fabricated ASIN, product URL, or price. Amazon's own counters can therefore be higher than `extractedItemCount`.\n\n**Why are some fields missing on some items?** Amazon only shows priority labels, comments, ratings, variants, and availability text when the owner or product has that data. Fields are included only with real evidence.\n\n**Why does an item have no `asin`/`url`/`imageUrl`?** It is a free-text \"idea\" entry with no linked product (`isIdea: true`). This is distinct from an extraction gap.\n\n**Can I scrape my own private list?** No. This actor is credential-free and does not accept a session cookie. Set the list to public/shareable and use its link.\n\n**How many items can I get per list?** Up to `maxItems` (maximum 10,000). Long lists are followed through Amazon's own pagination pages, not just the first screen.\n\n**Is `sortBy` honored on every list type?** `date-added`, `priority`, `price-asc`, `price-desc`, and `custom` map to the live wishlist sort control. Registry pages expose their own fixed sort sets; an unsupported value falls back to the list's default order. For price sorts, the actor re-sorts the parsed prices in Python so the output is strictly monotonic even when Amazon's DOM order is not.\n\n**Why is a non-English marketplace showing English or native-language text?** The actor requests Amazon's English cross-border view. Some marketplaces (confirmed: Germany, Japan) honor it; others (confirmed: Turkey; likely Saudi Arabia/Sweden/UAE/Egypt) render natively. Titles/comments may be English or native; prices, ratings, ASINs, and URLs remain correct. Machine-translation is never fabricated.\n\n**What if I supply the same list twice?** It is fetched and returned once, even when the duplicate is a different URL form (exact, mobile `lid=`, or share-ref variant) of the same underlying list.\n",
    "actorDefinition": {
      "actorSpecification": 1,
      "name": "amazon-wishlist-and-registry-scraper",
      "title": "Amazon Wishlist & Registry Scraper",
      "description": "Scrape public/shareable Amazon wishlists, gift lists, baby registries, and wedding registries from URLs or bare wishlist IDs. Get list metadata, event dates, item ASINs, prices, quantities needed/purchased, priority, ratings, and comments.",
      "version": "1.1",
      "buildTag": "latest",
      "dockerfile": "./Dockerfile",
      "readme": "# Amazon Wishlist & Registry Scraper\n\nScrape **public and shareable Amazon wishlists, gift lists, baby registries, and wedding registries** from URLs or bare wishlist IDs. Get list metadata (owner/title, description, event date, item counts) and per-item details — ASIN, title, price, quantity needed/purchased, priority, rating, and comments. This actor never searches for or enumerates people's lists; it only visits the exact URL(s) or ID(s) you provide.\n\n## What this actor does\n\n- **Two input modes** — paste full list URLs (`listUrls`) or bare wishlist IDs (`listIds` + `marketplace`)\n- **Every current Amazon list URL shape** — `/hz/wishlist/ls/<ID>`, the mobile `/gp/aw/ls?lid=<ID>`, `/gp/registry/wishlist/<ID>`, `/baby-reg/<name>/<ID>`, `/wedding/guest-view/<ID>` (and the older `/wedding/<name>/registry/<ID>`), and `/registries/gl/guest-view/<ID>`\n- **Classifies access before extracting anything** — every list is tagged `PUBLIC`, `SHAREABLE`, `PRIVATE_OR_AUTH_REQUIRED`, `NOT_FOUND`, or `BLOCKED`; private/deleted lists return zero item records, never a fake empty \"success\"\n- **Full pagination** — follows Amazon's own \"See More\" pages until the list ends or `maxItems` is reached, so long lists are not silently truncated at the first screen\n- **Real quantities, not guesses** — `requestedQuantity` (\"Needs N\") and `purchasedQuantity` (\"Has N\") are separate, real fields\n- **Registry metadata** — baby/wedding/Gift List records include the real displayed event/arrival date and city-level event location, plus Amazon's own purchased-item count when shown\n- **Empty fields are omitted** — never a `null`/placeholder value\n\n## Privacy — please read\n\nThis actor only scrapes the exact URL(s) or wishlist ID(s) you supply. It does not crawl Amazon's registry search to discover or enumerate people or lists. It never infers or exposes a delivery address. Only use it on lists that are genuinely public or explicitly shared with you.\n\n**Credential-free by design.** No cookies, logins, API keys, or tokens are accepted or stored. A private list is reported honestly as `PRIVATE_OR_AUTH_REQUIRED`; the actor cannot open it.\n\n**Registry search is not supported** — Amazon's public \"Find a registry\" search (`/registries/search`) redirects anonymous visitors to a sign-in page. That is a confirmed Amazon-side gate, not an actor limitation that extra code can bypass. Use the direct registry link instead.\n\n## Output: per-list record (`recordType: \"list\"`)\n\n- `listId` — the wishlist/registry ID parsed from the URL or supplied in `listIds`\n- `type` — `wishlist` / `giftList` / `babyRegistry` / `weddingRegistry` / `customRegistry`\n- `title`, `ownerName` — the list/registry display name (only when Amazon shows it publicly)\n- `description` — the owner-written description, when the list shows one\n- `eventDate` — baby arrival/due date or registry event date, ISO `YYYY-MM-DD`, when displayed\n- `eventLocation` — city/state only (never a street address, unit, or postal code)\n- `declaredItemCount` — Amazon's own displayed item total, when shown\n- `purchasedItemCount` — Amazon's own \"N/M items purchased\" count, when shown\n- `extractedItemCount` — how many item records this run produced\n- `accessClassification` — `PUBLIC`, `SHAREABLE`, `PRIVATE_OR_AUTH_REQUIRED`, `NOT_FOUND`, or `BLOCKED`\n- `sourceUrl`, `canonicalUrl` — the URL you supplied and the final resolved URL\n- `marketplace` — `{countryCode, domain, currency, language}`\n- `recordType: \"list\"`, `scrapedAt`\n\n## Output: per-item record (`recordType: \"listItem\"`)\n\n- `listId`, `listItemId` — Amazon's own stable per-item ID (classic wishlist `data-itemid`, Gift List entry UUID, a wedding-registry card's ASIN, or the entry UUID of a wedding gift-fund card)\n- `position` — 1-based position in the list as scraped (output order may differ for price sorts)\n- `asin`, `title`, `url`, `imageUrl`, `brand`\n- `price`, `listPrice` — `{value, currency, display}`, only when Amazon shows a parseable amount\n- `rating`, `ratingsCount` — only when the item shows a rating\n- `requestedQuantity` — \"Needs N\"/\"N of M purchased\" requested count\n- `purchasedQuantity` — \"Has N\"/purchased count\n- `priority` — `high`/`medium`/`low`, `Most Wanted` (Gift List), or `Must Have` (baby registry), only when the owner/badge sets one\n- `comment` — the owner's note, when present\n- `variant` — selected size/color/style text, when shown\n- `availabilityText`, `discountText` — raw availability/discount text, when shown\n- `badge` — real status badge (`{label, category}`), e.g. `{\"label\": \"Best Seller\", \"category\": \"in Packing Tape\"}`\n- `isIdea` — `true` only for a free-text \"idea\" entry with no linked product (no `asin`/`url`/`imageUrl`)\n- `listUrl`, `marketplace`\n- `recordType: \"listItem\"`, `scrapedAt`\n\n## Input\n\n| Field | Type | Default | Description |\n|---|---|---|---|\n| `listUrls` | array | – | Public/shareable list URLs (any supported Amazon list/registry shape) |\n| `listIds` | array | – | Bare wishlist IDs, opened on the selected marketplace |\n| `marketplace` | select | `amazon.com` | Marketplace used to build URLs from `listIds` (23 Amazon domains) |\n| `maxItems` | integer | `100` | Max items per list (1–10,000); pagination stops at this cap or the real end of the list |\n| `sortBy` | select | list default | `date-added` / `priority` / `price-asc` / `price-desc` / `custom` for wishlists |\n| `proxyConfiguration` | object | AUTO | Apify proxy; the actor escalates automatically only if Amazon blocks the request |\n\n### Example: scrape a public wishlist\n\n```json\n{\n  \"listUrls\": [\"https://www.amazon.com/hz/wishlist/ls/2PBHI0DGWAAAF\"],\n  \"maxItems\": 100\n}\n```\n\n### Example: IDs mode across two marketplaces\n\n```json\n{\n  \"listIds\": [\"2PBHI0DGWAAAF\"],\n  \"marketplace\": \"amazon.co.uk\",\n  \"maxItems\": 50\n}\n```\n\n### Example: baby registry and wedding registry\n\n```json\n{\n  \"listUrls\": [\n    \"https://www.amazon.com/baby-reg/example-name/EXAMPLEID123\",\n    \"https://www.amazon.com/wedding/guest-view/EXAMPLEID456\"\n  ],\n  \"maxItems\": 200\n}\n```\n\n### Example: a Gift List (school supply drive / birthday list)\n\n```json\n{\n  \"listUrls\": [\"https://www.amazon.com/registries/gl/guest-view/EXAMPLEID123\"],\n  \"maxItems\": 50\n}\n```\n\n## Use cases\n\n- **Charity and hospital donation drives** — export a shared wishlist so volunteers see current needs\n- **Classroom supply lists** — track what teachers still need, including requested vs purchased counts\n- **Wedding/baby registry gift coordination** — see remaining needs and the registry's event date\n- **Gift-list price monitoring** — watch current prices and rating changes on a shared list\n- **Archiving a list you own or administer** — export it before editing or deleting it\n\n## FAQ\n\n**Can this actor find someone's wishlist for me?** No. It only opens URLs or wishlist IDs you provide. Amazon's public registry search requires sign-in, and this actor never enumerates people.\n\n**What happens with a private or deleted list?** You get a list record with `accessClassification: \"PRIVATE_OR_AUTH_REQUIRED\"` or `\"NOT_FOUND\"` and zero item records — never a fake \"0 items, success\" result.\n\n**What does `BLOCKED` mean?** Every retry, including the automatic residential fallback, hit an Amazon anti-bot/CAPTCHA page instead of the list. The list may exist; re-run later. It is never reported as `NOT_FOUND`.\n\n**Does it show delivery addresses?** No. It never infers or exposes a delivery address. Registry event locations are reduced to city/state and street-like text is refused.\n\n**Why is my price in a different currency than the marketplace?** Amazon renders cross-border prices in the visitor's local currency (for example, a US registry viewed from Pakistan can show `PKR`). The `price.currency` field reports the currency Amazon actually displayed; `marketplace.currency` reports the list's own marketplace currency.\n\n**Why are some items missing?** Classic wishlists hide items the owner marked as purchased (the public page only offers an \"Unpurchased\" filter); some registries hide purchased items the same way. Gift-fund/contribution entries and deleted items may have no product card at all. When a gift-fund card does render, it is returned with its displayed name and a stable entry ID, but with no fabricated ASIN, product URL, or price. Amazon's own counters can therefore be higher than `extractedItemCount`.\n\n**Why are some fields missing on some items?** Amazon only shows priority labels, comments, ratings, variants, and availability text when the owner or product has that data. Fields are included only with real evidence.\n\n**Why does an item have no `asin`/`url`/`imageUrl`?** It is a free-text \"idea\" entry with no linked product (`isIdea: true`). This is distinct from an extraction gap.\n\n**Can I scrape my own private list?** No. This actor is credential-free and does not accept a session cookie. Set the list to public/shareable and use its link.\n\n**How many items can I get per list?** Up to `maxItems` (maximum 10,000). Long lists are followed through Amazon's own pagination pages, not just the first screen.\n\n**Is `sortBy` honored on every list type?** `date-added`, `priority`, `price-asc`, `price-desc`, and `custom` map to the live wishlist sort control. Registry pages expose their own fixed sort sets; an unsupported value falls back to the list's default order. For price sorts, the actor re-sorts the parsed prices in Python so the output is strictly monotonic even when Amazon's DOM order is not.\n\n**Why is a non-English marketplace showing English or native-language text?** The actor requests Amazon's English cross-border view. Some marketplaces (confirmed: Germany, Japan) honor it; others (confirmed: Turkey; likely Saudi Arabia/Sweden/UAE/Egypt) render natively. Titles/comments may be English or native; prices, ratings, ASINs, and URLs remain correct. Machine-translation is never fabricated.\n\n**What if I supply the same list twice?** It is fetched and returned once, even when the duplicate is a different URL form (exact, mobile `lid=`, or share-ref variant) of the same underlying list.\n",
      "input": {
        "title": "Amazon Wishlist & Registry Scraper Input",
        "description": "Scrape public/shareable Amazon wishlists, gift lists, baby registries, and wedding registries from URLs or bare wishlist IDs.",
        "type": "object",
        "schemaVersion": 1,
        "properties": {
          "listUrls": {
            "title": "Wishlist / registry URLs",
            "type": "array",
            "description": "Direct, public/shareable Amazon list URLs. Accepted shapes: `/hz/wishlist/ls/<ID>`, the mobile `/gp/aw/ls?lid=<ID>`, `/gp/registry/wishlist/<ID>`, `/baby-reg/<name>/<ID>`, `/wedding/guest-view/<ID>` (or `/wedding/<name>/registry/<ID>`), and `/registries/gl/guest-view/<ID>`. This actor never searches for or enumerates lists; it only visits the exact URLs you provide.",
            "editor": "stringList",
            "prefill": [
              "https://www.amazon.com/hz/wishlist/ls/2PBHI0DGWAAAF"
            ]
          },
          "listIds": {
            "title": "Wishlist IDs",
            "type": "array",
            "description": "Bare wishlist IDs copied from a list URL (for example `2PBHI0DGWAAAF` from `/hz/wishlist/ls/2PBHI0DGWAAAF`). Each ID is opened on the marketplace selected below. Use this instead of `listUrls` when you only have the ID.",
            "editor": "stringList"
          },
          "marketplace": {
            "title": "Marketplace for list IDs",
            "type": "string",
            "description": "Amazon marketplace used to build URLs from `listIds`. Ignored for `listUrls` because each URL already carries its own marketplace.",
            "editor": "select",
            "enum": [
              "amazon.com",
              "amazon.co.uk",
              "amazon.de",
              "amazon.ca",
              "amazon.fr",
              "amazon.it",
              "amazon.es",
              "amazon.com.au",
              "amazon.co.jp",
              "amazon.in",
              "amazon.com.mx",
              "amazon.com.br",
              "amazon.nl",
              "amazon.se",
              "amazon.pl",
              "amazon.com.tr",
              "amazon.ae",
              "amazon.sa",
              "amazon.sg",
              "amazon.com.be",
              "amazon.eg",
              "amazon.ie",
              "amazon.co.za"
            ],
            "enumTitles": [
              "United States (amazon.com)",
              "United Kingdom (amazon.co.uk)",
              "Germany (amazon.de)",
              "Canada (amazon.ca)",
              "France (amazon.fr)",
              "Italy (amazon.it)",
              "Spain (amazon.es)",
              "Australia (amazon.com.au)",
              "Japan (amazon.co.jp)",
              "India (amazon.in)",
              "Mexico (amazon.com.mx)",
              "Brazil (amazon.com.br)",
              "Netherlands (amazon.nl)",
              "Sweden (amazon.se)",
              "Poland (amazon.pl)",
              "Turkey (amazon.com.tr)",
              "United Arab Emirates (amazon.ae)",
              "Saudi Arabia (amazon.sa)",
              "Singapore (amazon.sg)",
              "Belgium (amazon.com.be)",
              "Egypt (amazon.eg)",
              "Ireland (amazon.ie)",
              "South Africa (amazon.co.za)"
            ],
            "default": "amazon.com",
            "prefill": "amazon.com"
          },
          "maxItems": {
            "title": "Max items per list",
            "type": "integer",
            "description": "Hard cap on the number of list items scraped per list URL. The full list is followed through Amazon's own pagination until this cap is reached or the list ends.",
            "minimum": 1,
            "maximum": 10000,
            "default": 100,
            "prefill": 20
          },
          "sortBy": {
            "title": "Sort order",
            "type": "string",
            "description": "Sort order for wishlist items, matching the sort control shown on the live wishlist page. Registry pages expose their own fixed sort set; unsupported values fall back to the list's default order.",
            "editor": "select",
            "enum": [
              "",
              "date-added",
              "priority",
              "price-asc",
              "price-desc",
              "custom"
            ],
            "enumTitles": [
              "(list default order)",
              "Most recently added",
              "Priority (high to low)",
              "Price (low to high)",
              "Price (high to low)",
              "Custom (owner-defined order)"
            ],
            "default": "",
            "prefill": ""
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Apify proxy used to fetch list pages. Defaults to the free AUTO (datacenter) group; the actor escalates to a residential session automatically only if a block is detected.",
            "editor": "proxy",
            "prefill": {
              "useApifyProxy": true
            },
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "output": {
        "actorOutputSchemaVersion": 1,
        "title": "Amazon Wishlist & Registry Scraper Output",
        "description": "List metadata (recordType=list: title, owner, description, event date/location, counts, access classification) and list-item records (recordType=listItem: ASIN, title, price, quantities needed/purchased, priority, rating, comments, variant, availability) scraped from public/shareable Amazon wishlists, gift lists, baby registries, and wedding registries.",
        "properties": {
          "items": {
            "type": "string",
            "title": "Lists and list items",
            "description": "Dataset containing all scraped list records and their item records.",
            "template": "{{links.apiDefaultDatasetUrl}}/items"
          }
        }
      },
      "defaultMemoryMbytes": 1024,
      "minMemoryMbytes": 1024,
      "storages": {
        "dataset": {
          "actorSpecification": 1,
          "views": {
            "overview": {
              "title": "Lists & items",
              "transformation": {
                "fields": [
                  "recordType",
                  "title",
                  "type",
                  "accessClassification",
                  "asin",
                  "price",
                  "requestedQuantity",
                  "purchasedQuantity",
                  "eventDate",
                  "description",
                  "rating"
                ]
              },
              "display": {
                "component": "table",
                "properties": {}
              }
            }
          }
        }
      },
      "environmentVariables": {}
    },
    "buildNumber": "1.1.1",
    "imageDigest": "ffdf8b3637d8e9fe0ef9f7847381b1811757b9ff1689882c3e5df511fb1fe40e",
    "actVersion": {
      "sourceType": "SOURCE_FILES",
      "buildTag": "latest",
      "versionNumber": "1.1"
    },
    "usage": {
      "ACTOR_COMPUTE_UNITS": 0.04373333333333333
    }
  }
}