# Vinted Scraper (`louisdeconinck/vinted-scraper`)

Transform Vinted.com searches into structured data effortlessly. This powerful scraper extracts detailed product listings including prices, images, and seller info, making it perfect for market research and price monitoring.

- **URL**: https://beta-securitybyobscurity.apify.com/louisdeconinck/vinted-scraper.md
- **Developed by:** [Louis Deconinck](https://beta-securitybyobscurity.apify.com/louisdeconinck) (community)
- **Categories:** E-commerce, Social media, Automation
- **Stats:** 157 total users, 26 monthly users, 100.0% runs succeeded, 6 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

$19.00/month + usage

To use this Actor, you pay a monthly rental fee to the developer. The rent is subtracted from your prepaid usage every month after the free trial period.
You also pay for the Apify platform usage, which gets cheaper the higher Apify subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#rental-actors

# README

## Vinted Scraper

Vinted Scraper is an Apify actor that extracts detailed product listings from Vinted.com search results. It transforms Vinted catalog URLs into API calls and collects comprehensive data about each item including prices, images, seller information, and item statistics.

### Features

- Scrapes product listings from Vinted search results
- Converts catalog URLs to API endpoints automatically
- Handles pagination and retries failed requests
- Collects detailed item information including:
  - Product details (ID, title, brand, size, condition)
  - Pricing information
  - Image URLs and thumbnails
  - Seller information
  - Item statistics (views, favorites)

### Input Parameters

The actor accepts the following input parameters:

| Parameter | Type | Description |
|-----------|------|-------------|
| `startUrls` | Array | List of Vinted catalog URLs to scrape (Required) |
| `maxResultsPerUrl` | Integer | Maximum number of results to fetch per URL (Default: 960) |

Example input:

```json
{
	"startUrls": [
		{
			"url": "https://www.vinted.com/catalog?search_text=jacket&time=1733480739&page=1&"
		}
	]
}
```

### Output

The actor stores results in the default dataset. Each item contains the following fields:

```json
{
	"id": 5097757599,
	"title": "Jacket",
	"price": {
		"amount": 10,
		"currency": "USD"
	},
	"brand": "1511 inc",
	"url": "https://www.vinted.com/items/5097757599-jacket",
	"imageUrl": "https://images1.vinted.net/t/03_015ec_fYFnrv4BxoPUePXkwqXtr1Db/f800/1727128065.jpeg?s=baf8784d9946989b587b259e7e2c17e31c0854fd",
	"thumbnails": [
		{
			"type": "thumb70x100",
			"url": "https://images1.vinted.net/t/03_015ec_fYFnrv4BxoPUePXkwqXtr1Db/70x100/1727128065.jpeg?s=bfe8cc055f05df25486851feacaacb8f1df356fd",
			"dimensions": "70x100"
		},
		{
			"type": "thumb150x210",
			"url": "https://images1.vinted.net/t/03_015ec_fYFnrv4BxoPUePXkwqXtr1Db/150x210/1727128065.jpeg?s=70891f0f7ae60a0c8456771bf85f262b14fc4634",
			"dimensions": "150x210"
		},
		{
			"type": "thumb310x430",
			"url": "https://images1.vinted.net/t/03_015ec_fYFnrv4BxoPUePXkwqXtr1Db/310x430/1727128065.jpeg?s=3890915e412385489864d1b996fc2fc1be4d2f88",
			"dimensions": "310x430"
		},
		{
			"type": "thumb428x624",
			"url": "https://images1.vinted.net/t/03_015ec_fYFnrv4BxoPUePXkwqXtr1Db/f800/1727128065.jpeg?s=baf8784d9946989b587b259e7e2c17e31c0854fd",
			"dimensions": "321x428"
		},
		{
			"type": "thumb624x428",
			"url": "https://images1.vinted.net/t/03_015ec_fYFnrv4BxoPUePXkwqXtr1Db/f800/1727128065.jpeg?s=baf8784d9946989b587b259e7e2c17e31c0854fd",
			"dimensions": "468x624"
		},
		{
			"type": "thumb364x428",
			"url": "https://images1.vinted.net/t/03_015ec_fYFnrv4BxoPUePXkwqXtr1Db/f800/1727128065.jpeg?s=baf8784d9946989b587b259e7e2c17e31c0854fd",
			"dimensions": "273x364"
		}
	],
	"seller": {
		"id": 228920534,
		"username": "j.lara15",
		"profileUrl": "https://www.vinted.com/member/228920534-jlara15"
	},
	"size": "16 / 1 X",
	"condition": "Very good",
	"stats": {
		"favorites": 18,
		"views": 0
	}
}
```

### Usage

1. Input a list of Vinted search URLs in the `startUrls` field
2. Run the actor and wait for the results
3. Download the dataset in your preferred format (JSON, CSV, etc.)

### Limitations

- Maximum results per URL is set to 960 items by default
- Some items might not have complete information depending on the seller's input

# Actor input Schema

## `startUrls` (type: `array`):

Vinted search URLs to scrape from.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.vinted.com/catalog?search_text=shoe%20grandma&time=1733480739&page=1&order=newest_first"
    }
  ]
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [
        {
            "url": "https://www.vinted.com/catalog?search_text=shoe%20grandma&time=1733480739&page=1&order=newest_first"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("louisdeconinck/vinted-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "startUrls": [{ "url": "https://www.vinted.com/catalog?search_text=shoe%20grandma&time=1733480739&page=1&order=newest_first" }] }

# Run the Actor and wait for it to finish
run = client.actor("louisdeconinck/vinted-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://www.vinted.com/catalog?search_text=shoe%20grandma&time=1733480739&page=1&order=newest_first"
    }
  ]
}' |
apify call louisdeconinck/vinted-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=louisdeconinck/vinted-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Vinted Scraper",
        "description": "Transform Vinted.com searches into structured data effortlessly. This powerful scraper extracts detailed product listings including prices, images, and seller info, making it perfect for market research and price monitoring.",
        "version": "0.0",
        "x-build-id": "MtCeOJgabtFBji7RT"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/louisdeconinck~vinted-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-louisdeconinck-vinted-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/louisdeconinck~vinted-scraper/runs": {
            "post": {
                "operationId": "runs-sync-louisdeconinck-vinted-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/louisdeconinck~vinted-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-louisdeconinck-vinted-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": [
                    "startUrls"
                ],
                "properties": {
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "Vinted search URLs to scrape from.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            },
                            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
