{
  "openapi": "3.0.1",
  "info": {
    "title": "Poshmark Scraper - Listings, Sold Prices & Closets",
    "description": "Scrape Poshmark fashion-resale listings: keyword search, brand and category browse, sold listings with sold dates, seller closet stats (followers, following). Filters for department, condition and availability. Incremental monitoring, resume, MCP export.",
    "version": "0.1",
    "x-build-id": "AShP8G5NZE6riuGY8"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/abotapi~poshmark-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-abotapi-poshmark-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/abotapi~poshmark-scraper/runs": {
      "post": {
        "operationId": "runs-sync-abotapi-poshmark-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/abotapi~poshmark-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-abotapi-poshmark-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "required": [
          "mode"
        ],
        "properties": {
          "mode": {
            "title": "Mode",
            "enum": [
              "search",
              "url"
            ],
            "type": "string",
            "description": "Search mode walks keyword searches, brand pages and seller closets forward, filters applied. URL mode reads the specific listing, brand, closet, category or search links you paste; the search-mode filter fields are ignored there.",
            "default": "search"
          },
          "searchQueries": {
            "title": "Keyword searches",
            "type": "array",
            "description": "Search mode: keywords to search, one entry per search (for example: tote bag, wool coat). Leave empty if you only want brands or closets.",
            "items": {
              "type": "string"
            }
          },
          "brands": {
            "title": "Brands",
            "type": "array",
            "description": "Search mode: brand names or brand-page paths (for example: Madewell, or Madewell-Women to pin a department). Leave empty if you only want keyword searches or closets.",
            "items": {
              "type": "string"
            }
          },
          "brand": {
            "title": "Brand (single)",
            "type": "string",
            "description": "Search mode: one brand name or brand-page path (for example: Madewell). Same as adding one entry to the Brands list above."
          },
          "closets": {
            "title": "Seller closets",
            "type": "array",
            "description": "Search mode: seller usernames or closet links. Each emits the seller's profile (followers, following, listing counts) followed by that closet's listings.",
            "items": {
              "type": "string"
            }
          },
          "availability": {
            "title": "Availability",
            "enum": [
              "available",
              "sold_out",
              "all"
            ],
            "type": "string",
            "description": "Keep Available for live listings, or Sold to pull sold listings with their sold dates (the source's price-history surface). All availability includes dropping-soon items.",
            "default": "available"
          },
          "department": {
            "title": "Department",
            "enum": [
              "",
              "Women",
              "Men",
              "Kids",
              "Home",
              "Electronics",
              "Pets"
            ],
            "type": "string",
            "description": "Keep listings from one department only. Leave empty for all departments."
          },
          "condition": {
            "title": "Condition",
            "enum": [
              "",
              "nwt",
              "uln",
              "ug",
              "uf"
            ],
            "type": "string",
            "description": "Keep listings in one condition tier only: New With Tags, Like New, Good, or Fair. Leave empty for all conditions."
          },
          "minPrice": {
            "title": "Minimum price (USD)",
            "minimum": 0,
            "type": "number",
            "description": "Keep listings priced at or above this many dollars (rounded down to whole dollars). Leave empty for no minimum. Search mode; the site applies it server-side."
          },
          "maxPrice": {
            "title": "Maximum price (USD)",
            "minimum": 0,
            "type": "number",
            "description": "Keep listings priced at or below this many dollars (rounded up to whole dollars). Leave empty for no maximum."
          },
          "shippingFilter": {
            "title": "Shipping",
            "enum": [
              "all",
              "free",
              "discounted_free"
            ],
            "type": "string",
            "description": "All listings, only listings with free shipping, or listings with free or discounted shipping.",
            "default": "all"
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "relevance",
              "newest",
              "price_asc",
              "price_desc",
              "likes"
            ],
            "type": "string",
            "description": "Result order (search mode). Newest = most recently listed first; the site has no sort by sale date. Price and likes sort across the whole result set.",
            "default": "relevance"
          },
          "listingInputs": {
            "title": "Links",
            "type": "array",
            "description": "URL mode: listing links or bare listing ids, closet links, brand links, category links or search links. Each target is walked forward on its own.",
            "default": [
              "https://poshmark.com/brand/Madewell",
              "https://poshmark.com/brand/Madewell-Women",
              "https://poshmark.com/search?query=tote%20bag&type=listings",
              "https://poshmark.com/search?query=tote&department=Women&availability=sold_out",
              "https://poshmark.com/category/Women-Bags",
              "https://poshmark.com/category/Women",
              "https://poshmark.com/category/Women-Dresses-Mini?condition=nwt",
              "https://poshmark.com/closet/poshmark",
              "https://poshmark.com/brand/Madewell?availability=sold_out&sort_by=added_desc",
              "https://poshmark.com/brand/Madewell?max_id=2",
              "https://poshmark.com/listing/Madewell-Cattail-Tiered-Midi-Dress-Red-6acbfd13b552236b28cafa0b",
              "https://poshmark.com/listing/6acbfd13b552236b28cafa0b"
            ],
            "items": {
              "type": "string"
            }
          },
          "urls": {
            "title": "Links (alias)",
            "type": "array",
            "description": "Alias for Links, accepted under the name other Apify actors use for URL mode.",
            "default": [
              "https://poshmark.com/brand/Madewell",
              "https://poshmark.com/brand/Madewell-Women",
              "https://poshmark.com/search?query=tote%20bag&type=listings",
              "https://poshmark.com/search?query=tote&department=Women&availability=sold_out",
              "https://poshmark.com/category/Women-Bags",
              "https://poshmark.com/category/Women",
              "https://poshmark.com/category/Women-Dresses-Mini?condition=nwt",
              "https://poshmark.com/closet/poshmark",
              "https://poshmark.com/brand/Madewell?availability=sold_out&sort_by=added_desc",
              "https://poshmark.com/brand/Madewell?max_id=2",
              "https://poshmark.com/listing/Madewell-Cattail-Tiered-Midi-Dress-Red-6acbfd13b552236b28cafa0b",
              "https://poshmark.com/listing/6acbfd13b552236b28cafa0b"
            ],
            "items": {
              "type": "string"
            }
          },
          "fetchDetails": {
            "title": "Detail enrichment",
            "type": "boolean",
            "description": "Read each listing's own page and merge the seller's follower/following/listing counts, the full photo set and the shipping note into the record. Off by default; when on, each enriched listing carries a small per-listing surcharge (see pricing).",
            "default": false
          },
          "maxComments": {
            "title": "Max comments per listing",
            "minimum": 0,
            "maximum": 500,
            "type": "integer",
            "description": "With detail enrichment on, attach up to this many buyer comments to each listing (default 20, 0 = none). Comments come from the page already read for enrichment, so they add no requests.",
            "default": 20
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many records (default 20; 0 = no limit). The run then stops when each target's walk reaches the site's own end. Sellers count as records too when closets are scraped.",
            "default": 20
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Apify Proxy settings. The default standard pool works; no special proxy group is required."
          },
          "resumeFromRunId": {
            "title": "Resume from a previous run",
            "type": "string",
            "description": "Paste a previous run ID or dataset ID to continue a large pull without returning items already collected there."
          },
          "incrementalMode": {
            "title": "Incremental changes for scheduled runs",
            "type": "boolean",
            "description": "Turn this on for daily or recurring monitoring. The first run returns every matching listing as NEW. Later runs normally return only NEW, UPDATED and REAPPEARED listings. A listing counts as UPDATED when any returned field changes (for example price, availability, title, description, photos, likes, shares or seller details); UPDATED rows list the changed fields in changedFields. Always left out of the change check (they stay in the output): comments (the nested buyer comments list; the comment count commentCount is compared), scrapedAt, _enrichmentFailed, and the derived copies soldPrice, status, nwt, likesCount, commentsCount, thumbnailUrl, daysToSell and shippingCost (each repeats a field that is already compared). Use Ignore fields when detecting changes to leave out more. Turn on Emit unchanged or Emit expired only when you also want those rows returned (and billed). State is kept separately for each keyword, brand, closet and filter setup; use State key to name or deliberately share a monitoring campaign.",
            "default": false
          },
          "stateKey": {
            "title": "State key (optional, incremental mode only)",
            "type": "string",
            "description": "Optional. Name this monitoring campaign to keep its state stable, or deliberately share state across differently configured runs. Leave empty to let the actor derive a key automatically from the targets and filter settings."
          },
          "emitUnchanged": {
            "title": "Emit unchanged records (incremental mode only)",
            "type": "boolean",
            "description": "Off by default. Turn on to also return listings that have not changed since the last run, marked UNCHANGED. This returns, and bills, extra rows you already have.",
            "default": false
          },
          "emitExpired": {
            "title": "Emit expired records (incremental mode only)",
            "type": "boolean",
            "description": "Off by default. Turn on to also return listings that were present in a previous run but are no longer found, marked EXPIRED. Only produced once a run has fully scanned every tracked target.",
            "default": false
          },
          "ignoreFieldsForChanges": {
            "title": "Ignore fields when detecting changes (incremental mode only)",
            "type": "array",
            "description": "Extra field names that should NOT make a listing count as UPDATED, for example likeCount, shareCount or commentCount if you only care about price and availability. They are added to the fields that are always left out (comments, scrapedAt, _enrichmentFailed, soldPrice, status, nwt, likesCount, commentsCount, thumbnailUrl, daysToSell, shippingCost). The fields stay in the output; they are just left out of the change check and out of changedFields. Used only when Incremental changes is on.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "mcpConnectors": {
            "title": "Pipe results into your apps (optional)",
            "type": "array",
            "description": "Optionally send results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize one under Apify, Settings, API & Integrations, then select it here. Notion gets a rich page-per-item export; other connectors get a best-effort write or digest. Leave empty to skip; never changes the dataset output.",
            "items": {
              "type": "string"
            }
          },
          "notionParentPageUrl": {
            "title": "Notion parent page (Notion connector only)",
            "type": "string",
            "description": "URL or id of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors."
          },
          "maxNotifyListings": {
            "title": "Max items to export per connector",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Cap on items written to each connector per run. Does not affect the dataset.",
            "default": 50
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}