Vinted API Guide 2025: How to Extract Data Safely
TLDR
- I walked you through 3 Vinted API options in this article: Official, Internal, and Third party.
- Vinted has an official API called Vinted Pro Integrations but it’s locked to Pro accounts, half baked, and not useful for bulk data collection.
- There’s also a not so hidden internal API I discovered in this article but it’s heavily guarded by an anti-bot system and scaling it is too costly and painful to maintain.
- The only option that actually works is a third party API. The one I broke down for you is Lobstr.io’s Vinted Product Scraper API. Safe, affordable, and well-maintained.
My last article about building a Vinted bot blew up.
And because I’m a hopeless attention junkie, I couldn’t resist milking it.
I started lurking in Reddit threads and Discord servers where Vinted sellers and devs hang out. That’s when I noticed a problem nobody’s really addressing online.

People keep asking the same thing: is there a Vinted API? And if yes, how do you actually get access to it?
So here I am again, acting as the smartest guy on the internet. 🤓
In this guide, I’ll cover the official Vinted API, the hidden internal one, and the 3rd-party APIs that actually work.
But first, why would you even need a Vinted API?
Why might you need a Vinted API?
Obviously, you want data. Product listings, seller info, or both. Without it, you can’t analyze, compare, or build anything useful.

Then comes automation.
Price tracking, competitor monitoring, product hunting, and alerts when something new matches your filters. All of that depends on having reliable data to work with.
And who actually needs the Vinted API?
Sellers and resellers who want to scale their workflow. And devs who want to build tools or apps for those sellers and resellers.
So the real question is, does Vinted even offer an API?
Does Vinted offer an official API?

Vinted Pro Integrations basically has 3 APIs.
- Items API
- Webhooks API
- Orders API
Items API lets you manage your inventory programmatically.
You can create, update, or delete items in your Vinted store. It also gives you ways to fetch your existing items.
Webhooks API is for notifications.
Instead of checking for changes all the time, you can register webhooks and get notified automatically when something happens to your items.
For example, when an item gets sold or updated, you get the event right away.
Orders API gives you details about your sales.
You can pull info on sold items and also grab shipment details like labels.
How to access it?
You need a Vinted Pro account and you must be on the allowlist. Without both, you cannot even open the portal. If you qualify, here’s the process:

- Register for a Vinted Pro account
- Apply for allowlist access
- Once approved, log into the Pro Integrations portal
- Generate an access token
How to use Vinted Pro Integrations API?
After generating an access token, you split it into 2 parts. One is the access key, the other is the signing key.
Both must be included with every request.
- Current timestamp in UNIX seconds
- Request method in caps, like POST or GET
- Path including query params. Example: /api/v1/foo?bar=baz
- Access key
- Request body, or an empty string if there is none
The header should like this:
X-Vpi-Hmac-Sha256: t={timestamp},v1={hash}
f
Example request:
curl -X POST "https://pro.svc.vinted.com/api/v1/{endpoint}" \ -H "Content-Type: application/json" \ -H "X-Vpi-Access-Key: YOUR_ACCESS_KEY" \ -H "X-Vpi-Hmac-Sha256: t=1704067200,v1=cf3872ca3c2537690aaee0eb4b00c9a2d5591389d1932cd282aa6414869efa19" \ -d '{}'
f
How to use items API?
https://pro.svc.vinted.com/api/v1/items
The items API can be used to manage inventory inside Vinted. It lets you create, update, delete, or fetch items.

You can do things like:
- DeleteItems – delete a batch of items
- GetItems – list items you’ve already created
- CreateItems – create new items in bulk
- UpdateItems – update existing items
- GetItemStatus – check the current status of an item
- GetImportedItems – see which items were imported
- UpdateItemReferences – set or update item references
- GetOntologies – fetch the category and attribute mappings needed to create valid items
Here’s a sample request to create items in Vinted.
curl -X POST "https://pro.svc.vinted.com/api/v1/items" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -H "X-Vpi-Access-Key: YOUR_ACCESS_KEY" \ -H "X-Vpi-Hmac-Sha256: t=1704067200,v1=YOUR_HASH" \ -d '{ "items": [ { "brand": "Levi’s", "catalog_id": 123, "color_ids": [1], "currency": "EUR", "description": "Vintage denim jacket, size M", "is_unisex": true, "item_attributes": [ { "item_attribute_id": "fit", "item_attribute_option_ids": [2] } ], "manufacturer": "Levi’s", "measurement_length": 70, "measurement_width": 50, "package_size_id": 2, "photo_urls": ["http://example.com/jacket.jpg"], "price": 45, "size_id": 5, "status_id": 1, "title": "Vintage Levi’s Jacket", "item_reference": "SKU-12345", "is_draft": false } ] }'
f
How to use WebhooksAPI?
https://pro.svc.vinted.com/api/v1/webhooks/
The webhooks API is used to get real-time updates from Vinted. Instead of checking the API again and again, Vinted will call your URL when events happen.

You can do:
- GetWebhooks – list your registered webhooks
- CreateWebhook – register a new webhook for selected events
- DeleteWebhook – remove an existing webhook
- UpdateWebhook – change the URL or event types
- GetWebhookDeliveryResults – see the last 100 delivery attempts and their status
Here’s a sample request for registering a webhook for the CREATEITEMSUCCESS event.
curl -X POST "https://pro.svc.vinted.com/api/v1/webhooks" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -H "X-Vpi-Access-Key: YOUR_ACCESS_KEY" \ -H "X-Vpi-Hmac-Sha256: t=1704067200,v1=YOUR_HASH" \ -d '{ "event_types": ["CREATE_ITEM_SUCCESS"], "url": "https://yourapp.example.com/vinted/webhook" }'
f
How to use orders API?
https://pro.svc.vinted.com//api/v1/orders
The orders API is used to fetch details about sales and shipments.

You can do:
- GetOrders – list all your orders
- GetOrder – fetch a specific order by ID
- GetOrderShipment – get shipment details for a specific order
- GetOrderShipmentLabel – retrieve the shipment label by order ID
Here’s a sample request for fetching the details of a specific order using its ID.
curl -X GET "https://pro.svc.vinted.com/api/v1/orders/{id}" \ -H "Accept: application/json" \ -H "X-Vpi-Access-Key: YOUR_ACCESS_KEY" \ -H "X-Vpi-Hmac-Sha256: t=1704067200,v1=YOUR_HASH"
f
What are the limitations of the official Vinted API?
Access is the first joke. You need a Pro account and then beg your way onto their allowlist. If Vinted doesn’t pick you, you don’t even get in.

And even if you are one of the chosen ones, what you get is half-baked.
The docs are vague, the endpoints feel unfinished, and the whole thing feels more like beta testing than using a real product.
The bigger joke is on anyone expecting scraping or bulk data.
There is no search, no catalog, no product listings. If you came here dreaming of mass data collection, this API will slap you awake real quick.
Finally, the slot system.
Vinted hands you 500 active items and then makes you wait 30 days before you can ask for more.

They’ll “assess your performance” and decide if you deserve an upgrade.
So in short, if you’re the chosen one, just want to add items and get alerts programmatically, and have the patience of a saint, you can try your luck with this API.
Now people familiar with web scraping would ask... what about internal APIs?
How to use Vinted’s internal API for data collection?
Every app has hidden APIs it uses to talk to itself, and Vinted is no different.
These internal endpoints aren’t official or documented, but they run the site and app behind the scenes.
They’re what load listings, profiles, and searches in real time.
The easiest way to spot Vinted’s internal API is through your browser’s developer tools.
Open the network tab, click around the site, and watch the requests being fired.

Each action you take like searching, browsing, or opening a product shows you another internal endpoint.
For example, I needed to get search results, so I looked at the network tab and found this endpoint:
https://www.vinted.co.uk/api/v2/catalog/items?search_text={keyword}
f
It gave me all product listings for my search along with pagination logic.


Dig deeper and you will find endpoints for product details, profile details, and more. Like I also found the user reviews endpoint.

But the internal API also has major limitations…
Problems with internal Vinted API
Not all data is easy to grab.
Something as simple as full listing details turns into extra reverse engineering work. You end up chasing fields and decoding payloads just to get the basics.
Then comes the real killer. Vinted uses Datadome anti-bot system.
Send too many requests and your IP is blocked.

Bot mitigation itself is a headache. Proxy rotation, throttling, retries… it’s a constant cat-and-mouse game that costs time and money.
And remember, this is undocumented. Endpoints can change any time, with zero warning. One day your setup works, the next day it breaks.
So yes, the internal API works but it’s fragile, expensive, and hard to maintain at scale.
Which is why I recommend 3rd-party APIs like Lobstr.io.
Why third party APIs?
- They are affordable
- They handle bot mitigation for you and stay within fair limits so you do not get IP bans
- They are scalable
- They are well-maintained, which means no extra work on your side
But what’s the best Vinted API?
Well… drum rolls… you won’t find anything coming close to Lobstr.io’s Vinted API.
Lobstr.io Vinted Product Scraper API
Lobstr.io is a cloud-based scraping platform with 20+ scrapers, and one of them is a Vinted Products Scraper.

You can use it with a simple no-code UI or hit it directly through the API.
Features
- Works on all Vinted domains
- Scrapes products and seller data from search or catalog
- Collects 30+ attributes including product details and profile info
- Download data as JSON or CSV
- Export results to Google Sheets, S3, or receive them by email
- Webhook integrations for real time alerts
- Runs cloud-based so your IP never gets exposed
- Schedule feature for automated data collection, monitoring, and alerts
- No extra cost for proxies, captcha solving, or infrastructure
Pricing

- 100 free results per month
- Starts at $1 per 1k results (from $10 per month)
- At scale, pricing goes down to $0.5 per 1k results
Lobstr.io is a great product but since I’m cursed with brutal honesty, it’s important to highlight the limitations too.
Limitations
It does have 2 drawbacks.
First, you only get data from search results and catalog pages.

It doesn’t go to the product page to collect additional details.
But those already give you everything you need about a product like item name, item photos, item price, and other item data plus seller information too.
Second, the API is asynchronous.

Which basically means you can’t fire a request and get instant data back. You send the job, wait for it to finish, and then pull the results.
Now let me give you a quick walkthrough of Lobstr.io’s Vinted API.
How to use Lobstr.io’s Vinted Product Scraper API?
Since Lobstr.io’s API is asynchronous, you don’t just fire one request and get data back instantly. You follow a flow.
So let me walk you through it.
Authentication
The only thing you need is your API key. No tokens, no signing, no allowlists. Just log in to your Lobstr.io dashboard, grab your key, and you’re good to go.

Here’s how to test it with cURL:
curl --location 'https://api.lobstr.io/v1/me' \ --header 'Authorization: Token <api_key>'
f
Setting up a squid
First you need a squid. A squid is just an instance of the scraper.
Create a squid
You don’t create one every time… only when you want to monitor something new like a catalog, a keyword, or run a separate workflow.
Otherwise you reuse the same one.
Lobstr.io has 20+ crawlers and each one has its own hash. You can pull the list from:
https://api.lobstr.io/v1/crawlers
f

But here’s the one you care about. Vinted Products Scraper hash:
ffd34f9b42a79b7323a048f09fc158e6
f
Now, to create a squid, you need to send a POST request to this endpoint:
POST https://api.lobstr.io/v1/squids
f
Your request body only needs one thing: the crawler hash.
{ "crawler": "ffd34f9b42a79b7323a048f09fc158e6" }
f
Let me demonstrate it in a sample cURL:
curl --location 'https://api.lobstr.io/v1/squids' \ --header 'Authorization: Token <your_api_key>' \ --header 'Content-Type: application/json' \ --data '{ "crawler": "ffd34f9b42a79b7323a048f09fc158e6" }'
f

Adding tasks
Now that you’ve got a squid, you need to feed it tasks. A task is just the URL you want scraped. Could be a search page, could be a catalog page.
To add tasks, hit:
POST https://api.lobstr.io/v1/tasks
f
{ "squid": "<squid_hash>", "tasks": [ { "url": "<vinted_search_or_catalog_url>" } ] }
f

Update settings
If you want to tweak how your crawler behaves, this is where you do it. For the full list of parameters you can mess with, check this endpoint:
/v1/crawlers/<crawler_hash>/params
f

I’m not going to walk through all of them. The ones you’ll actually want to tweak are:
- max_pages — how many pages the scraper should crawl. Max is 32
- max_unique_results_per_run — total number of unique results you want in one run
- concurrency — how many bots run at the same time on your squid
To update Squid settings, hit:
PUT https://api.lobstr.io/v1/squids/<squid_hash>
f

Running the Vinted Product Scraper
Once your squid is ready, it’s time to actually run it. You start a run by hitting:
POST https://api.lobstr.io/v1/runs
f
POST https://api.lobstr.io/v1/runs
f


Or you can do what I prefer… set up a webhook listener instead.

Getting results
If you want the data in JSON, hit:
GET https://api.lobstr.io/v1/results?run=<run_hash>
f
That will give you the full dataset back in JSON format.

If you’d rather download it as a file, you can get CSV with:
GET https://api.lobstr.io/v1/runs/<run_hash>/download
f
It generates a temporary download link you can use to fetch the file.

You can simply download the file via this link and view it in Excel or Google Sheets.

If you don’t want to manually fetch results every time, you can automate it. Lobstr lets you export directly to Google Sheets, S3, or SFTP.
You can get the API references and all the information about exporting data in the Delivery section of Lobstr’s docs.

And that’s it. Now before wrapping this up, let’s hit some FAQs.
FAQs
What are the rate limits of Lobstr.io’s Vinted API?
Does Lobstr.io’s API work on other Vinted domains like Vinted.it and Vinted.pl?
Yes, it works across all Vinted domains, so you can scrape data from the entire Vinted platform for your e-commerce workflows.