{
  "openapi": "3.0.1",
  "info": {
    "title": "Vogue Scraper - Fashion, Runway, Designers & Shopping",
    "description": "Scrape Vogue fashion, beauty and culture articles with full text, runway shows, look galleries, designer archives and shopping picks with product details. Browse by channel, season or tag. Supports resume, incremental monitoring and MCP export.",
    "version": "0.1",
    "x-build-id": "AnuUbbJg64uSayQp1"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/abotapi~vogue-com-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-abotapi-vogue-com-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~vogue-com-scraper/runs": {
      "post": {
        "operationId": "runs-sync-abotapi-vogue-com-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~vogue-com-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-abotapi-vogue-com-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": [
              "articles",
              "search",
              "shopping",
              "runway",
              "designers",
              "links"
            ],
            "type": "string",
            "description": "Articles walks the site's section feeds (fashion news, beauty, culture, shopping picks and more). Search runs the site's own search and returns the matching stories - shopping stories ship their picks as product rows. Shopping reads the site's product grids by category (new arrivals, bags, shoes, dresses and more) with prices and sellers. Runway collects fashion shows for a season, with look galleries. Designers reads designer archive pages. Links reads the specific pages you paste.",
            "default": "articles"
          },
          "channels": {
            "title": "Sections",
            "type": "array",
            "description": "Articles mode: the section feeds to walk, in the order shown. Fashion, Beauty, Culture, Living, Weddings, Shopping, Magazine, Video, and the Homepage highlights feed. Each feed is walked page by page (newest first) until the feed runs out or Max items is reached.",
            "items": {
              "type": "string",
              "enum": [
                "fashion",
                "beauty",
                "culture",
                "living",
                "weddings",
                "shopping",
                "magazine",
                "video",
                "homepage"
              ],
              "enumTitles": [
                "Fashion",
                "Beauty",
                "Culture",
                "Living",
                "Weddings",
                "Shopping",
                "Magazine",
                "Video",
                "Homepage highlights"
              ]
            },
            "default": [
              "fashion",
              "beauty"
            ]
          },
          "searchQueries": {
            "title": "Search queries",
            "type": "array",
            "description": "Search mode: what to search for, e.g. handbag or winter coat. The site's own search runs server-side and returns the matching stories (8 per page); shopping stories among them ship every pick they carry as product rows with price and seller.",
            "default": [
              "handbag"
            ],
            "items": {
              "type": "string"
            }
          },
          "searchSort": {
            "title": "Search order",
            "enum": [
              "relevance",
              "newest"
            ],
            "type": "string",
            "description": "Search mode: the site's server-side result order. Relevance (the default, the site's own ranking) or Newest (publish date, newest first).",
            "default": "relevance"
          },
          "shoppingCategories": {
            "title": "Shopping categories",
            "type": "array",
            "description": "Shopping mode: which product grids to read. Category names (bags, shoes, dresses, jackets, knitwear, tops, pants, skirts, fashion-jewelry), new-arrivals, or full shopping links on the site (e.g. /shopping/womens/bags). Each grid page carries its whole catalog - products ship with price, was-price, seller and stock, one entry per seller.",
            "default": [
              "new-arrivals"
            ],
            "items": {
              "type": "string"
            }
          },
          "productBrands": {
            "title": "Only these brands",
            "type": "array",
            "description": "Shopping mode: keep only products of these brands (applied after the grid is collected, so put it together with a category). Case-insensitive, e.g. Chanel.",
            "items": {
              "type": "string"
            }
          },
          "productSort": {
            "title": "Product order",
            "enum": [
              "site-order",
              "price-asc",
              "price-desc"
            ],
            "type": "string",
            "description": "Shopping mode: the order products are returned in. Site order keeps the editors' own placement. Price low to high and Price high to low reorder by the current seller price (applied after collection; the grids themselves have no sort parameter).",
            "default": "site-order"
          },
          "seasons": {
            "title": "Seasons",
            "type": "array",
            "description": "Runway mode: season slugs or full season links, e.g. spring-2027-ready-to-wear (Spring 2027 Ready-to-Wear). Also accepted: menswear, couture and resort season slugs in the same shape (fall-2026-menswear, spring-2027-haute-couture, resort-2027). A full link like /fashion-shows/spring-2027-ready-to-wear works too. Each season page lists every show it covers, highlights first, then the full A-Z list.",
            "items": {
              "type": "string"
            }
          },
          "designers": {
            "title": "Designers",
            "type": "array",
            "description": "Designers mode: designer names or links, e.g. louis-vuitton, https://www.vogue.com/fashion-shows/designer/chanel, or a plain name like Chanel (resolved against the site's designer index). The special value 'index' walks the full A-Z designer index instead (thousands of designers, use with Max items).",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Page links",
            "type": "array",
            "description": "Links mode: any page link on the site - article or slideshow links (/article/..., /slideshow/...), show links (/fashion-shows/<season>/<designer>), season index links (/fashion-shows/<season>), designer pages (/fashion-shows/designer/<slug>), the designer index (/fashion-shows/designers), tag pages (/tag/<name>), contributor pages (/contributor/<name>), and section feeds (/fashion, /beauty, ...). Relative paths are accepted. Entries are read in order. A page you paste here is always actually read; 'Read detail pages' only controls feed-mode enrichment.",
            "items": {
              "type": "string"
            }
          },
          "urls": {
            "title": "Page links (alias)",
            "type": "array",
            "description": "Alias for Page links, accepted under the name other Apify actors use for URL mode. Entries are read in order.",
            "items": {
              "type": "string"
            }
          },
          "fetchDetails": {
            "title": "Read detail pages",
            "type": "boolean",
            "description": "Read each article's own page (full text, all authors, keywords, photo credits, shopping picks with store links) and each runway show's page (complete look gallery with per-look credits). Turn off for a faster feed-only run. Each enriched article or show is billed once as detail enrichment.",
            "default": true
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 1,
            "type": "integer",
            "description": "Stop after this many records. This is THE cap: the run stops when it is reached or when the sources run out. Shopping picks found inside enriched articles count as records too.",
            "default": 20
          },
          "maxPages": {
            "title": "Max feed pages per section (0 = no cap)",
            "minimum": 0,
            "type": "integer",
            "description": "Advanced. Rarely needed: cap the feed pages read per section or season. Zero means no page cap; Max items still stops the run.",
            "default": 0
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Apify Proxy settings. The site is served by the default connection; residential exits are still the most reliable choice for large runs and are recommended if a run reads fewer pages than expected.",
            "default": {
              "useApifyProxy": true
            }
          },
          "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 story, show or designer as NEW. Later runs compare each record against the stored baseline and return only NEW and UPDATED records; unchanged stories are not re-read or re-billed. Turn on Emit unchanged or Emit expired only when you also want those rows returned (and billed). State is kept separately for each section, season, designer and link 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 selected sections and links."
          },
          "emitUnchanged": {
            "title": "Emit unchanged records (incremental mode only)",
            "type": "boolean",
            "description": "Off by default. Turn on to also return records 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 records that were present in a previous run but no longer appear in the sources, marked EXPIRED. Only produced once a run has fully scanned the tracked sources.",
            "default": false
          },
          "ignoreFieldsForChanges": {
            "title": "Ignore fields when detecting changes (incremental mode only)",
            "type": "array",
            "description": "Incremental mode: changes to only these fields do not mark a record UPDATED. Useful when a field you do not care about moves on every visit.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}