# Vinted Seller Info (`pintostudio/vinted-seller-info`)

The Vinted Seller Info Actor is a web scraping tool designed to extract detailed seller information from Vinted marketplace profiles across multiple European countries.

- **URL**: https://beta-securitybyobscurity.apify.com/pintostudio/vinted-seller-info.md
- **Developed by:** [Pinto Studio](https://beta-securitybyobscurity.apify.com/pintostudio) (community)
- **Categories:** E-commerce, Developer tools, Other
- **Stats:** 6 total users, 3 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

$5.99/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 Seller Info Actor

The Vinted Seller Info Actor is a web scraping tool designed to extract detailed seller information from Vinted marketplace profiles across multiple European countries. This actor retrieves comprehensive seller data including profile details, statistics, verification status, and activity metrics.

### Overview

This actor scrapes seller information from Vinted profiles by taking a seller URL and country code as input, then returns structured data about the seller including their profile details, item counts, feedback ratings, and verification status.

### Features

- **Multi-country support**: Works with 22 European Vinted domains
- **Comprehensive data extraction**: Retrieves detailed seller profiles, statistics, and verification info
- **Error handling**: Robust error handling with detailed logging
- **Data validation**: Validates input parameters and handles edge cases
- **Flexible output**: Saves data to both dataset and key-value store

### Input Parameters

#### Required Parameters

| Parameter | Type | Description | Example |
|-----------|------|-------------|---------|
| `sellerUrl` | string | The full URL of the Vinted seller profile | `https://www.vinted.pt/member/74292334` |

#### Optional Parameters

| Parameter | Type | Description | Default | Options |
|-----------|------|-------------|---------|---------|
| `country` | string | The country domain for Vinted | `com` | See supported countries below |

#### Supported Countries

The actor supports the following Vinted country domains:

- **com** - International (.com)
- **fr** - France (.fr)
- **de** - Germany (.de)
- **es** - Spain (.es)
- **it** - Italy (.it)
- **be** - Belgium (.be)
- **nl** - Netherlands (.nl)
- **at** - Austria (.at)
- **ch** - Switzerland (.ch)
- **cz** - Czech Republic (.cz)
- **dk** - Denmark (.dk)
- **fi** - Finland (.fi)
- **hu** - Hungary (.hu)
- **lt** - Lithuania (.lt)
- **lv** - Latvia (.lv)
- **lu** - Luxembourg (.lu)
- **pl** - Poland (.pl)
- **pt** - Portugal (.pt)
- **ro** - Romania (.ro)
- **se** - Sweden (.se)
- **sk** - Slovakia (.sk)
- **si** - Slovenia (.si)

### Input Schema

```json
{
  "sellerUrl": "https://www.vinted.pt/member/74292334",
  "country": "pt"
}
```

The `sellerUrl` must match the pattern: `^https://www\.vinted\.[a-z]{2,3}/member/\d+/?.*$`

### Output Data

The actor returns comprehensive seller information in the following structure:

#### Main Output Fields

| Field | Type | Description |
|-------|------|-------------|
| `sellerUrl` | string | Original seller URL provided as input |
| `country` | string | Country code used for scraping |
| `sellerDetails` | object | Complete seller profile object from Vinted API |
| `sellerId` | number | Unique seller ID |
| `sellerLogin` | string | Seller's username/login |
| `sellerName` | string | Seller's display name (real name or login) |
| `followersCount` | number | Number of followers |
| `followingCount` | number | Number of accounts the seller follows |
| `positiveRating` | number | Number of positive feedback ratings |
| `negativeRating` | number | Number of negative feedback ratings |
| `isVerified` | object | Email verification status |
| `timestamp` | string | ISO timestamp of when data was scraped |

#### Detailed Seller Information

The `sellerDetails` object contains extensive information including:

##### Basic Profile Info

- `id` - Unique seller ID
- `login` - Username
- `real_name` - Real name (if provided)
- `country_code` - Country code (e.g., "PT")
- `city` - City location
- `feedback_count` - Total feedback count
- `feedback_reputation` - Reputation score

##### Account Statistics

- `item_count` - Currently active items
- `total_items_count` - Total items ever listed
- `followers_count` - Number of followers
- `following_count` - Number of accounts followed
- `positive_feedback_count` - Positive reviews
- `neutral_feedback_count` - Neutral reviews
- `negative_feedback_count` - Negative reviews
- `given_item_count` - Items given away
- `taken_item_count` - Items received

##### Account Settings & Features

- `business_account` - Whether it's a business account
- `can_bundle` - Can create bundles
- `moderator` - Is a moderator
- `is_on_holiday` - Holiday mode status
- `allow_direct_messaging` - Messaging permissions

##### Verification Status

- `verification.email` - Email verification
- `verification.facebook` - Facebook verification
- `verification.google` - Google verification

##### Profile Media

- `photo` - Profile picture with multiple thumbnail sizes
- `photo.url` - Main profile image URL
- `photo.thumbnails` - Array of different sized thumbnails

### Example Output

```json
{
  "sellerUrl": "https://www.vinted.pt/member/74292334",
  "country": "pt",
  "sellerDetails": {
    "id": 74292334,
    "login": "acvs80",
    "country_code": "PT",
    "city": "Guimarães",
    "feedback_count": 271,
    "feedback_reputation": 1,
    "item_count": 59,
    "total_items_count": 436,
    "followers_count": 137,
    "following_count": 4,
    "positive_feedback_count": 270,
    "negative_feedback_count": 0,
    "business_account": null,
    "can_bundle": true,
    "verification": {
      "email": {"valid": true, "available": true},
      "facebook": {"valid": true, "verified_at": "2021-11-18T22:03:17+00:00"},
      "google": {"valid": true, "verified_at": "2022-09-19T14:49:30+01:00"}
    }
  },
  "sellerId": 74292334,
  "sellerLogin": "acvs80",
  "sellerName": "acvs80",
  "followersCount": 137,
  "followingCount": 4,
  "positiveRating": 270,
  "negativeRating": 0,
  "isVerified": {"valid": true, "available": true},
  "timestamp": "2025-07-31T07:00:46.146Z"
}
```

### Error Handling

The actor includes comprehensive error handling:

#### Input Validation Errors

- Missing `sellerUrl` parameter
- Invalid URL format
- Unsupported country code (warning, but continues)

#### Runtime Errors

- Network connectivity issues
- Invalid seller URLs
- Blocked requests
- API changes

Error responses include:

```json
{
  "sellerUrl": "https://www.vinted.pt/member/invalid",
  "country": "pt",
  "sellerDetails": null,
  "error": "Seller not found or URL invalid",
  "timestamp": "2025-07-31T07:00:46.146Z"
}
```

### Usage Examples

#### Basic Usage

```json
{
  "sellerUrl": "https://www.vinted.fr/member/12345678"
}
```

#### With Specific Country

```json
{
  "sellerUrl": "https://www.vinted.de/member/87654321",
  "country": "de"
}
```

#### Multiple Sellers (Run Multiple Times)

```json
{
  "sellerUrl": "https://www.vinted.pt/member/74292334",
  "country": "pt"
}
```

### Data Storage

The actor stores data in two locations:

1. **Dataset**: Each run adds a record to the dataset with complete seller information
2. **Key-Value Store**: Saves detailed results under the key `seller_details` with additional summary information

### Rate Limiting & Best Practices

- The actor respects Vinted's rate limits
- Avoid running too many concurrent instances
- Use appropriate delays between requests when scraping multiple sellers
- Monitor for IP blocking and use proxies if necessary

### Common Use Cases

1. **Market Research**: Analyze seller performance and competition
2. **Seller Verification**: Check seller credibility before transactions
3. **Data Analysis**: Collect seller statistics for market insights
4. **Monitoring**: Track seller activity and changes over time

### Troubleshooting

#### Common Issues

1. **Invalid URL Format**: Ensure the URL matches the required pattern
2. **Country Mismatch**: Make sure the country code matches the URL domain
3. **Seller Not Found**: Verify the seller URL is correct and accessible
4. **Rate Limiting**: Reduce request frequency if encountering blocks

#### Debug Information

The actor provides detailed console logging:

- Input validation results
- Scraping progress updates
- Success/failure notifications
- Error details and stack traces

### Support

If you have any questions or encounter any issues, please consult the Apify documentation or reach out to us through one of the following channels:

- **Telegram**: [@pintoflow](https://t.me/pintoflow)
- **Email**: <pintoflowpt@gmail.com>
- **Apify Platform**: You can also contact us directly through this platform.

***

# Actor input Schema

## `sellerUrl` (type: `string`):

The full URL of the Vinted seller profile (e.g., https://www.vinted.com/member/12345678)

## `country` (type: `string`):

The country domain for Vinted (e.g., 'com' for vinted.com, 'fr' for vinted.fr)

## Actor input object example

```json
{
  "sellerUrl": "https://www.vinted.pt/member/74292334",
  "country": "com"
}
```

# 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 = {
    "sellerUrl": "https://www.vinted.pt/member/74292334",
    "country": "com"
};

// Run the Actor and wait for it to finish
const run = await client.actor("pintostudio/vinted-seller-info").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 = {
    "sellerUrl": "https://www.vinted.pt/member/74292334",
    "country": "com",
}

# Run the Actor and wait for it to finish
run = client.actor("pintostudio/vinted-seller-info").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 '{
  "sellerUrl": "https://www.vinted.pt/member/74292334",
  "country": "com"
}' |
apify call pintostudio/vinted-seller-info --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Vinted Seller Info",
        "description": "The Vinted Seller Info Actor is a web scraping tool designed to extract detailed seller information from Vinted marketplace profiles across multiple European countries.",
        "version": "0.0",
        "x-build-id": "djOW3PRG5haQrGqgA"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/pintostudio~vinted-seller-info/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-pintostudio-vinted-seller-info",
                "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/pintostudio~vinted-seller-info/runs": {
            "post": {
                "operationId": "runs-sync-pintostudio-vinted-seller-info",
                "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/pintostudio~vinted-seller-info/run-sync": {
            "post": {
                "operationId": "run-sync-pintostudio-vinted-seller-info",
                "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": [
                    "sellerUrl"
                ],
                "properties": {
                    "sellerUrl": {
                        "title": "Seller URL",
                        "pattern": "^https://www\\.vinted\\.[a-z]{2,3}/member/\\d+/?.*$",
                        "type": "string",
                        "description": "The full URL of the Vinted seller profile (e.g., https://www.vinted.com/member/12345678)"
                    },
                    "country": {
                        "title": "Country Domain",
                        "enum": [
                            "com",
                            "fr",
                            "de",
                            "es",
                            "it",
                            "be",
                            "nl",
                            "at",
                            "ch",
                            "cz",
                            "dk",
                            "fi",
                            "hu",
                            "lt",
                            "lv",
                            "lu",
                            "pl",
                            "pt",
                            "ro",
                            "se",
                            "sk",
                            "si"
                        ],
                        "type": "string",
                        "description": "The country domain for Vinted (e.g., 'com' for vinted.com, 'fr' for vinted.fr)"
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
