Vinted Pro Integrations
Vinted Pro Integrations documentation version v0.143.2.
Features
Overview
The Vinted Pro Integrations API is actively being developed. The following features are already implemented:
- Item management: The items API is finished and allows you to
keep your inventory in sync with Vinted. Using the
GetOntologies
endpoint you can create a mapping between your items and Vinted items. - Webhooks: You can register webhooks using the webhooks API.
This enables you to be notified about item changes when they happen on Vinted. Alternatively, you can poll the
GetItemStatus
endpoint. - Order management: The orders API can be used for getting information about sold items and their shipment labels.
We're always looking for ways to improve Vinted Pro Integrations. If you have any feedback you can get in touch via b2c-support-am@vinted.com.
Allowlist
Vinted Pro Integrations is currently only available for a select few businesses. If you wish to be added to this allowlist please get in touch via b2c-support-am@vinted.com. If your business account is not allowlisted, you won't be able to get into Vinted Pro Integrations Portal nor use Vinted Pro Integrations API.
Slot system
For security purposes, each API user is allocated a specific number of item slots. Initially, this allocation is set to 500 active items per API user. After a period of 30 days, you may contact our Account Management team at b2c-support-am@vinted.com and they will assess your performance. If the business performance appears favorable, we have the flexibility to increase the number of available slots.
Note that when calling the CreateItems
endpoint with a request body that exceeds your available slots,
your entire request will be rejected.
Getting started
The sections below describe how to use the Vinted Pro Integrations API in detail. The following is a quick start guide to start making Vinted Pro Integrations API calls.
Steps for making requests
- Register for Vinted Pro.
- Ensure you are allowlisted to use Vinted Pro Integrations.
- Log into Vinted Pro Integrations Portal.
- Generate an access token.
- Split the access token into an access key and signing key.
- Add the access key in the
X-Vpi-Access-Key
header. - Generate a request signature and send it in the
X-Vpi-Hmac-Sha256
header.
Registering a webhook example
curl -X POST https://pro.svc.vinted.com/api/v1/webhooks \
--H 'Content-Type: application/json' \
--H 'X-Vpi-Access-Key: foo' \
--H 'X-Vpi-Hmac-Sha256: t=1704067200,v1=cf3872ca3c2537690aaee0eb4b00c9a2d5591389d1932cd282aa6414869efa19' \
--d '{ "event_types": ["CREATE_ITEM_SUCCESS"], "url": "https://example.com" }'
For this example a webhook https://example.com
will be registered for when a product is successfully added on the test
environment.
The request URL is POST https://pro.svc.vinted.com/api/v1/webhooks
(CreateWebhook
endpoint) and
has the following request body: { "event_types": ["CREATE_ITEM_SUCCESS"], "url": "https://example.com" }
. Since it's a
JSON request body, the Content-Type
header is set to application/json
.
For this example the following access token will be used: foo,bar
. First split it into the access key (foo
) and
signing key (bar
). The X-Vpi-Access-Key
header will be set to foo
.
The next step is generating the request signature. If this request was made on January 1st 2024 at
midnight the following timestamp will be generated: 1704067200
. The timestamp is used together with the
other signing fields to create the following signing payload:
1704067200.POST./api/v1/webhooks.foo.{ "event_types": ["CREATE_ITEM_SUCCESS"], "url": "https://example.com" }
. The
signing key will be used to generate a SHA256 HMAC hash:
cf3872ca3c2537690aaee0eb4b00c9a2d5591389d1932cd282aa6414869efa19
. The final X-Vpi-Hmac-Sha256
header will be the
following: t=1704067200,v1=cf3872ca3c2537690aaee0eb4b00c9a2d5591389d1932cd282aa6414869efa19
.
Listing an item example
For this example the request siging is skipped, since it is explained it detail in the previous example. In this example
an item will be listed. The request URL is POST https://pro.svc.vinted.com/api/v1/items
(CreateItems
endpoint), but the request body requires IDs (i.a. catalog_id
and color_ids
). To get
the available options for such field, you'll need to fetch the ontologies via the
GetOntologies
endpoint. This response is quite large and is unlikely to change much over time, so
feel free to cache the result. Using the ontologies, you should be able to generate a valid request body for listing an
item.
If you've registered a webhook you will be informed about your listing status via the registered URL. You can also check
the status via the GetItemStatus
endpoint. However, it is recommended to register a webhook to get
the fastest feedback. If a webhook gets called you should validate whether it came from Vinted.
Environments
Vinted Pro Integrations can be accessed in two environments.
- Production environment: Accessible via the
https://pro.svc.vinted.com
host. - Dev mode environment: Accessible via the
https://pro-public-sandbox.svc.vinted.com
host.
All the endpoints defined in this documentation are accessible on either environment. Each environment requires their own access token. Vinted Pro Integrations Portal has a toggle to switch between dev mode and production. In either mode you can generate their respective access tokens.
Dev mode
Dev mode enables you to test your integration in an isolated environment. This environment doesn't have a front-end. You can interact with it using Vinted Pro Integrations API or specific endpoints that change state for dev mode listed below. The data is guaranteed to be available for at least a week.
Magic item descriptions
The description
of the CreateItems
endpoint can be used to trigger specific behaviour for
asynchronous actions on Vinted Pro Integrations. These are called magic item descriptions. The description
must
exactly match the magic item description in order to trigger the behaviour.
CreateItems:FAILURE
: Triggers theCREATE_ITEM_FAILURE
webhook for theCreateItems
endpoint.
Endpoints
While magic descriptions trigger behaviour for asynchronous operations, there are dev mode specific endpoint to trigger events. These endpoints only work on dev mode and are defined in the dev mode API.
Authentication
In order to authenticate yourself, you'll need to have a access token. Access tokens can be generated on Vinted Pro Integrations Portal. Only Pro members can access the portal and generate access tokens. If you haven't already you can register for Vinted Pro.
Only right after creating the access token it can be copied. Afterwards the tokens will be obfuscated due to security purposes. Make sure to save access tokens securely after creation.
Access tokens are strings containing an access key and a signing key, separated by a comma like so:
{access key},{signing key}
Access key
The access key must be sent with every request in the X-Vpi-Access-Key
header.
Request signing
All requests need to be signed with HMAC using the signing key. You can do this like this:
- Generate a signing payload by joining the following values in the listed order together with a
.
:- The current timestamp (UNIX seconds integer, e.g.
1704067200
). - The request method (capitalised, e.g.
POST
). - The path including query parameters (e.g.
/foo?bar=baz
). - The access key.
- The request body (empty bodies are passed as an empty string).
- The current timestamp (UNIX seconds integer, e.g.
- Compute HMAC with SHA256 hash function. Use the previously created payload and sign it with the signing key.
- The resulting signature header is composed like this:
t={timestamp from step 1},v1={hash from step 2}
. - Send the signature header in the
X-Vpi-Hmac-Sha256
header.
The timestamp will be checked whether it's recent enough. Too old (or too far in the future) timestamps will be rejected.
Webhooks
The webhooks api can be used to get callbacks about events happening on Vinted. They're the fastest way of staying notified about changes on Vinted and it's highly recommended to use them. If you're selling your items on multiple platforms webhooks can keep your stock in sync, reducing the chance of double sales significantly.
When you register a webhook for an event, e.g. ITEM_SOLD
, Vinted Pro Integrations will call that URL when that item
gets sold. The request bodies of webhooks are documented under WebhookEventData
.
Validating webhooks
Upon registering a webhook via the CreateWebhook
endpoint you'll get a signing_key
in the response
body. Whenever a callback comes in on the registered URL it'll have a signature signed by that signing_key
in the
X-Vpi-Webhook-Hmac-Sha256
response header. This could be used to verify that the request came from Vinted using the
following steps:
- Extract the timestamp and the signature from the
X-Vpi-Webhook-Hmac-Sha256
request header. It will look like thist=TIMESTAMP,v1=SIGNATURE
. - Join the timestamp and the the response body together with a
.
inbetween to form a signing payload like this:TIMESTAMP.RESPONSE_BODY
. - Compute HMAC with SHA256 hash function. Use the previously created payload and sign it with the
signing_key
from theCreateWebhook
endpoint response. - Compare the signature from step 1 against the one from step 3. They should match if the request is coming from Vinted.
Downloads
OpenAPI
This documentation is based on an OpenAPI definition. You can use this definition to generate a client for your programming language of choice (e.g. OpenAPI Generator) or import it in your API platform (e.g. Postman).
Postman collection
When using Postman, you can import the Postman collection to have quick access to all
requests of Vinted Pro Integrations API. Ensure that you have the accessKey
and signingKey
environment variables set
in order to authenticate and sign requests automatically.
Items API
DeleteItems
Code samples
# You can also use wget
curl -X DELETE /api/v1/items \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'X-Vpi-Hmac-Sha256: string' \
-H 'X-Vpi-Access-Key: API_KEY'
DELETE /api/v1/items
Deletes a batch of items in Vinted. Items are deleted asynchronously. Deleting item is only available for items that are successfully listed. Items that have the status IN_PROGRESS
cannot be deleted.
Body parameter
{
"item_ids": [
"497f6eca-6276-4993-bfeb-53cbbbba6f08"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
X-Vpi-Hmac-Sha256 | header | string | true | Signature header. Reference script in documentation. |
body | body | DeleteItems | true | The request body for deleting items. |
» item_ids | body | [string] | true | An array of item identifiers. When the items were created in VPI, you received an identifier for each item. Use that identifier to delete the item. At most 100 items can be deleted in a single request. |
Example responses
202 Response
{
"items": [
{
"accepted": true,
"item_id": "4d8cd62e-a579-4dae-af8c-3172f96f8f7c"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
202 | Accepted | Request accepted. Deletions will be processed in the background. If items were not recognised as items that belong to your account the deletions will silently fail. | DeleteItemsResponse |
400 | Bad Request | A validation error occured. | ValidationError |
401 | Unauthorized | The user is not authorized to use API. | None |
404 | Not Found | The item is not found. | None |
500 | Internal Server Error | An unexpected error occured. | None |
CreateItems
Code samples
# You can also use wget
curl -X POST /api/v1/items \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'X-Vpi-Hmac-Sha256: string' \
-H 'X-Vpi-Access-Key: API_KEY'
POST /api/v1/items
Creates a batch of items in Vinted. Items are validated and uploaded asynchronously. The response contains the identifier for each item. This identifier is used to further interact with the item, make sure to store it on your end as well.
Body parameter
{
"items": [
{
"brand": "string",
"catalog_id": 0,
"color_ids": [
0
],
"currency": "EUR",
"description": "string",
"is_unisex": true,
"manufacturer": "string",
"manufacturer_labelling": "string",
"measurement_length": 0,
"measurement_width": 0,
"package_size_id": 0,
"photo_urls": [
"http://example.com"
],
"price": 1,
"size_id": 0,
"status_id": 0,
"title": "string",
"item_reference": "string",
"is_draft": true
}
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
X-Vpi-Hmac-Sha256 | header | string | true | Signature header. Reference script in documentation. |
body | body | CreateItems | true | The request body for creating items. |
» items | body | [allOf] | true | An array of items to create. At most 100 items can be created in a single request. |
»» anonymous | body | ItemProperties | false | none |
»»» brand | body | string | true | The item brand. |
»»» catalog_id | body | integer(int) | true | The ID of item catalog. This must be a leaf catalog. Use the ontologies endpoint to get the catalog tree. |
»»» color_ids | body | [integer] | false | The item colors IDs. Use the ontologies endpoint to get the colors. |
»»» currency | body | Currency | true | The currency used for prices. |
»»» description | body | string | true | The item description. Must be between 5 and 2000 characters. |
»»» is_unisex | body | boolean | false | A boolean indicating if item is unisex. |
»»» manufacturer | body | string | false | Manufacturer credentials. E.g. "Mattel (USA)". |
»»» manufacturer_labelling | body | string | false | Labelling and marketing information. This should be general information on product safety and compliance such as safety warnings and instructions of use or safety marks/logo/certifications related to the product. |
»»» measurement_length | body | integer(int) | false | The item measurement length. |
»»» measurement_width | body | integer(int) | false | The item measurement width. |
»»» package_size_id | body | integer(int) | true | The ID of item package size. Use the ontologies endpoint to get the package sizes. |
»»» photo_urls | body | [string] | true | The URLs of the item photos. Must be publicly accessible. At least one photo is required. |
»»» price | body | number(float) | true | The item price. |
»»» size_id | body | integer(int) | false | The ID of item size. This is required for catalogs that have a size group (i.e. a non-empty size_group_ids array). Use the ontologies endpoint to get the size groups. |
»»» status_id | body | integer(int) | true | The ID of item status (condition). Use the ontologies endpoint to get the statuses. |
»»» title | body | string | true | The item title. Must be between 5 and 100 characters. |
»» anonymous | body | ItemReference | false | none |
»»» item_reference | body | string | true | The item reference for the integrator to identify the item. |
»» anonymous | body | ItemIsDraft | false | none |
»»» is_draft | body | boolean | true | A boolean indicating whether the item is a draft. |
Enumerated Values
Parameter | Value |
---|---|
»»» currency | EUR |
»»» currency | GBP |
Example responses
202 Response
{
"items": [
{
"item_id": "4d8cd62e-a579-4dae-af8c-3172f96f8f7c",
"item_reference": "string"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
202 | Accepted | Request accepted, items will be uploaded asynchronously. Receiving the item ID does not mean the item is listed. | CreateItemsResponse |
400 | Bad Request | A validation error occured. | ValidationError |
401 | Unauthorized | User is not authorized to use API. | None |
409 | Conflict | Adding these items would exceed the maximum number of items allowed for this account, please reduce the number of active items before creating more. | Inline |
500 | Internal Server Error | An unexpected error occured. | None |
Response Schema
Status Code 409
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» active_items | integer(int64) | true | none | Number of active items for this account. |
» attempted_batch_size | integer(int64) | true | none | Number of items in the request. |
» slots | integer(int64) | true | none | Maximum number of items allowed for this account. |
UpdateItems
Code samples
# You can also use wget
curl -X PUT /api/v1/items \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'X-Vpi-Hmac-Sha256: string' \
-H 'X-Vpi-Access-Key: API_KEY'
PUT /api/v1/items
Updates a batch of items in Vinted. Items are validated and updated asynchronously. Adding or removing photos is not possible at this time through updates. Updating item is only available for items that are successfully listed. Items that have the status IN_PROGRESS
cannot be updated.
Body parameter
{
"items": [
{
"brand": "string",
"catalog_id": 0,
"color_ids": [
0
],
"currency": "EUR",
"description": "string",
"is_unisex": true,
"manufacturer": "string",
"manufacturer_labelling": "string",
"measurement_length": 0,
"measurement_width": 0,
"package_size_id": 0,
"photo_urls": [
"http://example.com"
],
"price": 1,
"size_id": 0,
"status_id": 0,
"title": "string",
"is_draft": true,
"item_id": "4d8cd62e-a579-4dae-af8c-3172f96f8f7c"
}
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
X-Vpi-Hmac-Sha256 | header | string | true | Signature header. Reference script in documentation. |
body | body | UpdateItems | true | The request body for updating items. |
» items | body | [allOf] | true | An array of items to update. When the items were created in VPI, you received an identifier for each item. Use that identifier to update the item. At most 100 items can be updated in a single request. |
»» anonymous | body | ItemProperties | false | none |
»»» brand | body | string | true | The item brand. |
»»» catalog_id | body | integer(int) | true | The ID of item catalog. This must be a leaf catalog. Use the ontologies endpoint to get the catalog tree. |
»»» color_ids | body | [integer] | false | The item colors IDs. Use the ontologies endpoint to get the colors. |
»»» currency | body | Currency | true | The currency used for prices. |
»»» description | body | string | true | The item description. Must be between 5 and 2000 characters. |
»»» is_unisex | body | boolean | false | A boolean indicating if item is unisex. |
»»» manufacturer | body | string | false | Manufacturer credentials. E.g. "Mattel (USA)". |
»»» manufacturer_labelling | body | string | false | Labelling and marketing information. This should be general information on product safety and compliance such as safety warnings and instructions of use or safety marks/logo/certifications related to the product. |
»»» measurement_length | body | integer(int) | false | The item measurement length. |
»»» measurement_width | body | integer(int) | false | The item measurement width. |
»»» package_size_id | body | integer(int) | true | The ID of item package size. Use the ontologies endpoint to get the package sizes. |
»»» photo_urls | body | [string] | true | The URLs of the item photos. Must be publicly accessible. At least one photo is required. |
»»» price | body | number(float) | true | The item price. |
»»» size_id | body | integer(int) | false | The ID of item size. This is required for catalogs that have a size group (i.e. a non-empty size_group_ids array). Use the ontologies endpoint to get the size groups. |
»»» status_id | body | integer(int) | true | The ID of item status (condition). Use the ontologies endpoint to get the statuses. |
»»» title | body | string | true | The item title. Must be between 5 and 100 characters. |
»» anonymous | body | ItemIsDraft | false | none |
»»» is_draft | body | boolean | true | A boolean indicating whether the item is a draft. |
»» anonymous | body | object | false | none |
»»» item_id | body | string(uuid) | true | The item ID. |
Enumerated Values
Parameter | Value |
---|---|
»»» currency | EUR |
»»» currency | GBP |
Example responses
202 Response
{
"items": [
{
"accepted": true,
"item_id": "4d8cd62e-a579-4dae-af8c-3172f96f8f7c",
"reason": "ITEM_NOT_FOUND"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
202 | Accepted | Request accepted. Updates will be processed in the background. If items were not recognized as items that belong to your account the Updates will silently fail. | UpdateItemsResponse |
400 | Bad Request | A validation error occured. | ValidationError |
401 | Unauthorized | The user is not authorized to use API. | None |
500 | Internal Server Error | An unexpected error occured. | None |
GetItemStatus
Code samples
# You can also use wget
curl -X GET /api/v1/items/{id}/status \
-H 'Accept: application/json' \
-H 'X-Vpi-Hmac-Sha256: string' \
-H 'X-Vpi-Access-Key: API_KEY'
GET /api/v1/items/{id}/status
Retrieves the current status of an item on Vinted by its ID.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
X-Vpi-Hmac-Sha256 | header | string | true | Signature header. Reference script in documentation. |
id | path | string(uuid) | true | The item ID. |
Example responses
200 Response
{
"errors": [
{
"field": "string",
"message": "string"
}
],
"status": "IN_PROGRESS"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Successfully retrieved the item status. | GetItemStatusResponse |
400 | Bad Request | A validation error occured. | ValidationError |
401 | Unauthorized | The user is not authorized to use API. | None |
404 | Not Found | The item could not be found. | None |
500 | Internal Server Error | An unexpected error occured. | None |
GetOntologies
Code samples
# You can also use wget
curl -X GET /api/v1/ontologies \
-H 'Accept: application/json' \
-H 'X-Vpi-Hmac-Sha256: string' \
-H 'X-Vpi-Access-Key: API_KEY'
GET /api/v1/ontologies
Gets the ontologies required to create valid Vinted items. For many fields the valid values depend on the category of the item. Therefore it's recommended to first map your category tree to Vinted's category tree before you map other product properties. Note that gender is encoded in the root categories at Vinted, but the category trees aren't equal for the Women, Men and Kids. This means your category mapping should take gender into account as well. Brands are omitted from the response due to the large number of brands available on Vinted. You can send any brand name when creating or updating an item which will automatically be mapped to a supported brand or VPI will leave the brand unassigned if its not recognised.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
X-Vpi-Hmac-Sha256 | header | string | true | Signature header. Reference script in documentation. |
Example responses
200 Response
{
"enumerations": {
"catalogs": [
{
"catalogs": [
{}
],
"disabled_fields": [
"brand"
],
"id": 0,
"size_group_ids": [
0
],
"title": "string"
}
],
"colors": [
{
"id": 0,
"title": "string"
}
],
"package_sizes": [
{
"id": 0,
"title": "string",
"weight_description": "string"
}
],
"size_groups": [
{
"description": "string",
"id": 0,
"sizes": [
{
"id": 0,
"title": "string"
}
],
"title": "string"
}
],
"statuses": [
{
"description": "string",
"id": 0,
"title": "string"
}
]
},
"validation_rules": {
"max_photos": 0,
"max_price": 0.1,
"min_price": 0.1
},
"version": {
"country": "AT",
"currency": "EUR",
"last_updated_on": "2019-08-24T14:15:22Z"
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Successfully retrieved ontologies. | GetOntologiesResponse |
400 | Bad Request | A validation error occured. | ValidationError |
401 | Unauthorized | The user is not authorized to use API. | None |
500 | Internal Server Error | An unexpected error occured. | None |
Orders API
GetOrders
Code samples
# You can also use wget
curl -X GET /api/v1/orders \
-H 'Accept: application/json' \
-H 'X-Vpi-Hmac-Sha256: string' \
-H 'X-Vpi-Access-Key: API_KEY'
GET /api/v1/orders
Returns a list of orders. Use the after-id
query parameter to iterate over the results.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
X-Vpi-Hmac-Sha256 | header | string | true | Signature header. Reference script in documentation. |
after-id | query | integer(int64) | false | If set, returns only orders created after the order with this ID. |
Example responses
200 Response
{
"orders": [
{
"created_at": "2019-08-24T14:15:22Z",
"id": 0,
"status": "CREATED"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The orders list. | GetOrdersResponse |
400 | Bad Request | A validation error occured. | ValidationError |
401 | Unauthorized | User is not authorized to use API. | None |
500 | Internal Server Error | An unexpected error occurred. | None |
GetOrder
Code samples
# You can also use wget
curl -X GET /api/v1/orders/{id} \
-H 'Accept: application/json' \
-H 'X-Vpi-Hmac-Sha256: string' \
-H 'X-Vpi-Access-Key: API_KEY'
GET /api/v1/orders/{id}
Returns the order with the given ID.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
X-Vpi-Hmac-Sha256 | header | string | true | Signature header. Reference script in documentation. |
id | path | integer(int64) | true | The order ID |
Example responses
200 Response
{
"amount": 0.01,
"billing_address": {
"city": "string",
"country_code": "string",
"line_1": "string",
"line_2": "string",
"name": "John Doe",
"postal_code": "string",
"state": "string"
},
"created_at": "2019-08-24T14:15:22Z",
"currency": "EUR",
"delivery_address": {
"city": "string",
"country_code": "string",
"line_1": "string",
"line_2": "string",
"name": "John Doe",
"postal_code": "string",
"state": "string"
},
"id": 0,
"items": [
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"title": "White Hilfiger t-shirt"
}
],
"status": "CREATED"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The order. | GetOrderResponse |
401 | Unauthorized | User is not authorized to use API. | None |
403 | Forbidden | User is not authorized to use this endpoint. | None |
404 | Not Found | Order not found. | None |
500 | Internal Server Error | An unexpected error occurred. | None |
GetOrderShipment
Code samples
# You can also use wget
curl -X GET /api/v1/orders/{id}/shipment \
-H 'Accept: application/json' \
-H 'X-Vpi-Hmac-Sha256: string' \
-H 'X-Vpi-Access-Key: API_KEY'
GET /api/v1/orders/{id}/shipment
Returns the shipment for the order with the given ID.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
X-Vpi-Hmac-Sha256 | header | string | true | Signature header. Reference script in documentation. |
id | path | integer(int64) | true | The order ID |
Example responses
200 Response
{
"carrier": {
"name": "Vinted Go"
},
"currency": "EUR",
"price_ex_vat": 0.01,
"tracking_code": "string",
"vat_amount": 0.01
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The shipment. | GetOrderShipmentResponse |
401 | Unauthorized | User is not authorized to use API. | None |
404 | Not Found | Shipment not found. This can be because the shipment does not (yet) exist. | None |
500 | Internal Server Error | An unexpected error occurred. | None |
GetOrderShipmentLabel
Code samples
# You can also use wget
curl -X GET /api/v1/orders/{id}/shipment-label \
-H 'Accept: application/pdf' \
-H 'X-Vpi-Hmac-Sha256: string' \
-H 'X-Vpi-Access-Key: API_KEY'
GET /api/v1/orders/{id}/shipment-label
Retrieves the shipment label shipment label by order ID.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
X-Vpi-Hmac-Sha256 | header | string | true | Signature header. Reference script in documentation. |
id | path | integer(int64) | true | The order ID. |
Example responses
200 Response
404 Response
{
"error": "ORDER_NOT_FOUND"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Successfully retrieved the order shipment label. | string |
401 | Unauthorized | The user is not authorized to use API. | None |
404 | Not Found | The shipment label could not be found. Will also be returned for orders containing items that are not managed via Vinted Pro Integrations. | GetOrderShipmentLabelNotFoundResponse |
500 | Internal Server Error | An unexpected error occured. | None |
Webhooks API
GetWebhooks
Code samples
# You can also use wget
curl -X GET /api/v1/webhooks \
-H 'Accept: application/json' \
-H 'X-Vpi-Hmac-Sha256: string' \
-H 'X-Vpi-Access-Key: API_KEY'
GET /api/v1/webhooks
Lists your registered webhooks.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
X-Vpi-Hmac-Sha256 | header | string | true | Signature header. Reference script in documentation. |
Example responses
200 Response
[
{
"event_types": [
"CREATE_ITEM_SUCCESS"
],
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"url": "string"
}
]
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Successfully retrieved the webhooks. | GetWebhooksResponse |
400 | Bad Request | A validation error occured. | ValidationError |
401 | Unauthorized | The user is not authorized to use API. | None |
500 | Internal Server Error | An unexpected error occured. | None |
CreateWebhook
Code samples
# You can also use wget
curl -X POST /api/v1/webhooks \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'X-Vpi-Hmac-Sha256: string' \
-H 'X-Vpi-Access-Key: API_KEY'
POST /api/v1/webhooks
Add a webhook to be called when events happen in Vinted.
Body parameter
{
"event_types": [
"CREATE_ITEM_SUCCESS"
],
"url": "stringstr"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
X-Vpi-Hmac-Sha256 | header | string | true | Signature header. Reference script in documentation. |
body | body | CreateUpdateWebhook | true | The request body for creating or updating webhooks. |
» event_types | body | [WebhookEventType] | true | [The event type of the webhook.] |
» url | body | string(url) | true | The URL to POST the webhook to when the event occurs. Must be between 9 and 255 characters and start with http:// or https://. |
Enumerated Values
Parameter | Value |
---|---|
» event_types | CREATE_ITEM_SUCCESS |
» event_types | CREATE_ITEM_FAILURE |
» event_types | UPDATE_ITEM_SUCCESS |
» event_types | UPDATE_ITEM_FAILURE |
» event_types | DELETE_ITEM_SUCCESS |
» event_types | DELETE_ITEM_FAILURE |
» event_types | ITEM_SOLD |
» event_types | ORDER_CREATED |
» event_types | SHIPMENT_LABEL_CREATED |
Example responses
201 Response
{
"signing_key": "string",
"webhook": {
"event_types": [
"CREATE_ITEM_SUCCESS"
],
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"url": "string"
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | The webhook was successfully created. | CreateWebhookResponse |
400 | Bad Request | A validation error occured. | ValidationError |
401 | Unauthorized | The user is not authorized to use API. | None |
422 | Unprocessable Entity | The request could not be processed. | CreateWebhookError |
500 | Internal Server Error | An unexpected error occured. | None |
DeleteWebhook
Code samples
# You can also use wget
curl -X DELETE /api/v1/webhooks/{id} \
-H 'Accept: application/json' \
-H 'X-Vpi-Hmac-Sha256: string' \
-H 'X-Vpi-Access-Key: API_KEY'
DELETE /api/v1/webhooks/{id}
Deletes a webhook.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
X-Vpi-Hmac-Sha256 | header | string | true | Signature header. Reference script in documentation. |
id | path | string(uuid) | true | The webhook ID. |
Example responses
400 Response
{
"field": "string",
"message": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Successfully deleted the webhook. | None |
304 | Not Modified | The webhook has already been deleted. | None |
400 | Bad Request | A validation error occured. | ValidationError |
401 | Unauthorized | The user is not authorized to use API. | None |
404 | Not Found | The webhook could not be found. | None |
500 | Internal Server Error | An unexpected error occured. | None |
UpdateWebhook
Code samples
# You can also use wget
curl -X PUT /api/v1/webhooks/{id} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'X-Vpi-Hmac-Sha256: string' \
-H 'X-Vpi-Access-Key: API_KEY'
PUT /api/v1/webhooks/{id}
Updates a webhook's URL and/or subscribed event types.
Body parameter
{
"event_types": [
"CREATE_ITEM_SUCCESS"
],
"url": "stringstr"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
X-Vpi-Hmac-Sha256 | header | string | true | Signature header. Reference script in documentation. |
id | path | string(uuid) | true | The webhook ID. |
body | body | CreateUpdateWebhook | true | The request body for creating or updating webhooks. |
» event_types | body | [WebhookEventType] | true | [The event type of the webhook.] |
» url | body | string(url) | true | The URL to POST the webhook to when the event occurs. Must be between 9 and 255 characters and start with http:// or https://. |
Enumerated Values
Parameter | Value |
---|---|
» event_types | CREATE_ITEM_SUCCESS |
» event_types | CREATE_ITEM_FAILURE |
» event_types | UPDATE_ITEM_SUCCESS |
» event_types | UPDATE_ITEM_FAILURE |
» event_types | DELETE_ITEM_SUCCESS |
» event_types | DELETE_ITEM_FAILURE |
» event_types | ITEM_SOLD |
» event_types | ORDER_CREATED |
» event_types | SHIPMENT_LABEL_CREATED |
Example responses
400 Response
{
"field": "string",
"message": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Successfully updated webhook. | None |
400 | Bad Request | A validation error occured. | ValidationError |
401 | Unauthorized | The user is not authorized to use API. | None |
404 | Not Found | The webhook could not be found. | None |
422 | Unprocessable Entity | The request could not be processed. | UpdateWebhookError |
500 | Internal Server Error | An unexpected error occured. | None |
GetWebhookDeliveryResults
Code samples
# You can also use wget
curl -X GET /api/v1/webhooks/{id}/delivery-results \
-H 'Accept: application/json' \
-H 'X-Vpi-Hmac-Sha256: string' \
-H 'X-Vpi-Access-Key: API_KEY'
GET /api/v1/webhooks/{id}/delivery-results
Gets the 100 latest delivery results (attempts, failures and successes) for a webhook.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
X-Vpi-Hmac-Sha256 | header | string | true | Signature header. Reference script in documentation. |
id | path | string(uuid) | true | The webhook ID. |
Example responses
200 Response
[
{
"created_at": "2019-08-24T14:15:22Z",
"error_msg": "string",
"event_type": "CREATE_ITEM_SUCCESS",
"http_status_code": 0,
"success": true
}
]
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Successfully retrieved the delivery results. | Inline |
400 | Bad Request | A validation error occured. | ValidationError |
401 | Unauthorized | The user is not authorized to use API. | None |
500 | Internal Server Error | An unexpected error occured. | None |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [WebhookDeliveryResult] | false | none | none |
» created_at | string(date-time) | true | none | The date and time when the delivery result was created. |
» error_msg | string | false | none | The error message if the delivery was not successful. |
» event_type | WebhookEventType | true | none | The event type of the webhook. |
» http_status_code | integer(int) | false | none | The HTTP status code of the response that Vinted received from the webhook endpoint. If a response was received at all. |
» success | boolean | true | none | A boolean indicating if the delivery was successful. |
Enumerated Values
Property | Value |
---|---|
event_type | CREATE_ITEM_SUCCESS |
event_type | CREATE_ITEM_FAILURE |
event_type | UPDATE_ITEM_SUCCESS |
event_type | UPDATE_ITEM_FAILURE |
event_type | DELETE_ITEM_SUCCESS |
event_type | DELETE_ITEM_FAILURE |
event_type | ITEM_SOLD |
event_type | ORDER_CREATED |
event_type | SHIPMENT_LABEL_CREATED |
Dev mode API
TriggerItemSold
Code samples
# You can also use wget
curl -X POST /dev/v1/triggers/item-sold/{itemID} \
-H 'Accept: application/json' \
-H 'X-Vpi-Hmac-Sha256: string' \
-H 'X-Vpi-Access-Key: API_KEY'
POST /dev/v1/triggers/item-sold/{itemID}
Triggers the sale of an item
Use this endpoint to simulate making a sale. Only available in dev mode.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
X-Vpi-Hmac-Sha256 | header | string | true | Signature header. Reference script in documentation. |
itemID | path | string(uuid) | true | The item ID. |
Example responses
400 Response
{
"field": "string",
"message": "string"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The item sale was successfully triggered. | None |
400 | Bad Request | A validation error occured. | ValidationError |
401 | Unauthorized | The request had invalid authentication. | None |
404 | Not Found | The item is not found. | None |
409 | Conflict | The item is already sold. | None |
500 | Internal Server Error | An unexpected error occured. | None |
Schemas
Address
{
"city": "string",
"country_code": "string",
"line_1": "string",
"line_2": "string",
"name": "John Doe",
"postal_code": "string",
"state": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
city | string | true | none | none |
country_code | string | true | none | ISO 3166 alpha-2 country code. |
line_1 | string | true | none | none |
line_2 | string | false | none | none |
name | string | true | none | Name of the addressee. |
postal_code | string | true | none | none |
state | string | false | none | none |
Catalog
{
"catalogs": [
{
"catalogs": [],
"disabled_fields": [
"brand"
],
"id": 0,
"size_group_ids": [
0
],
"title": "string"
}
],
"disabled_fields": [
"brand"
],
"id": 0,
"size_group_ids": [
0
],
"title": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
catalogs | [Catalog] | false | none | The child catalogs. Empty for leaf catalogs. |
disabled_fields | [string] | false | none | Fields that are disabled for this catalog. Empty for non-leaf catalogs. Disabled fields will be ignored on an item when the catalog is set to this catalog. |
id | integer | true | none | The catalog ID. |
size_group_ids | [integer] | false | none | Only the provided size groups are valid for this catalog. Empty for non-leaf catalogs. |
title | string | true | none | The catalog title. |
Color
{
"id": 0,
"title": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | integer | true | none | The color ID. |
title | string | true | none | The color title. |
CompleteItemToCreate
{
"brand": "string",
"catalog_id": 0,
"color_ids": [
0
],
"currency": "EUR",
"description": "string",
"is_unisex": true,
"manufacturer": "string",
"manufacturer_labelling": "string",
"measurement_length": 0,
"measurement_width": 0,
"package_size_id": 0,
"photo_urls": [
"http://example.com"
],
"price": 1,
"size_id": 0,
"status_id": 0,
"title": "string",
"item_reference": "string",
"is_draft": true
}
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | ItemProperties | false | none | none |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | ItemReference | false | none | none |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | ItemIsDraft | false | none | none |
CreateItemFailureEventData
{
"item_id": "4d8cd62e-a579-4dae-af8c-3172f96f8f7c",
"item_reference": "string",
"errors": [
{
"field": "string",
"message": "string"
}
],
"message": "string"
}
Properties
None
CreateItemSuccessEventData
{
"item_id": "4d8cd62e-a579-4dae-af8c-3172f96f8f7c",
"item_reference": "string"
}
Properties
None
CreateItemValidationError
{
"field": "string",
"message": "string"
}
Properties
None
CreateItems
{
"items": [
{
"brand": "string",
"catalog_id": 0,
"color_ids": [
0
],
"currency": "EUR",
"description": "string",
"is_unisex": true,
"manufacturer": "string",
"manufacturer_labelling": "string",
"measurement_length": 0,
"measurement_width": 0,
"package_size_id": 0,
"photo_urls": [
"http://example.com"
],
"price": 1,
"size_id": 0,
"status_id": 0,
"title": "string",
"item_reference": "string",
"is_draft": true
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
items | [CompleteItemToCreate] | true | none | An array of items to create. At most 100 items can be created in a single request. |
CreateItemsResponse
{
"items": [
{
"item_id": "4d8cd62e-a579-4dae-af8c-3172f96f8f7c",
"item_reference": "string"
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
items | [ItemIDAndReference] | true | none | none |
CreateItemsValidationErrorResponse
[
{
"field": "string",
"message": "string"
}
]
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [CreateItemValidationError] | false | none | none |
CreateUpdateWebhook
{
"event_types": [
"CREATE_ITEM_SUCCESS"
],
"url": "stringstr"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
event_types | [WebhookEventType] | true | none | [The event type of the webhook.] |
url | string(url) | true | none | The URL to POST the webhook to when the event occurs. Must be between 9 and 255 characters and start with http:// or https://. |
CreateWebhookError
{
"error": "MAX_WEBHOOKS_EXCEEDED"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
error | string | true | none | none |
Enumerated Values
Property | Value |
---|---|
error | MAX_WEBHOOKS_EXCEEDED |
error | ONLY_HTTPS_URLS_ALLOWED |
CreateWebhookResponse
{
"signing_key": "string",
"webhook": {
"event_types": [
"CREATE_ITEM_SUCCESS"
],
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"url": "string"
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
signing_key | string | true | none | none |
webhook | Webhook | true | none | none |
Currency
"EUR"
The currency used for prices.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | string | false | none | The currency used for prices. |
Enumerated Values
Property | Value |
---|---|
anonymous | EUR |
anonymous | GBP |
DeleteItemFailureEventData
{
"item_id": "4d8cd62e-a579-4dae-af8c-3172f96f8f7c",
"item_reference": "string"
}
Properties
None
DeleteItemSuccessEventData
{
"item_id": "4d8cd62e-a579-4dae-af8c-3172f96f8f7c",
"item_reference": "string"
}
Properties
None
DeleteItems
{
"item_ids": [
"497f6eca-6276-4993-bfeb-53cbbbba6f08"
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
item_ids | [string] | true | none | An array of item identifiers. When the items were created in VPI, you received an identifier for each item. Use that identifier to delete the item. At most 100 items can be deleted in a single request. |
DeleteItemsResponse
{
"items": [
{
"accepted": true,
"item_id": "4d8cd62e-a579-4dae-af8c-3172f96f8f7c"
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
items | [DeleteItemsResponseItem] | true | none | none |
DeleteItemsResponseItem
{
"accepted": true,
"item_id": "4d8cd62e-a579-4dae-af8c-3172f96f8f7c"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
accepted | boolean | true | none | A boolean indicating if the deletion request for the item was accepted. Examples of reasons for an item deletion not to be accepted are than you do not own the item, the item was already deleted or the item was already sold. |
item_id | string(uuid) | true | none | none |
GetItemStatusResponse
{
"errors": [
{
"field": "string",
"message": "string"
}
],
"status": "IN_PROGRESS"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
errors | [ValidationError] | false | none | none |
status | string | true | none | The item status. |
Enumerated Values
Property | Value |
---|---|
status | IN_PROGRESS |
status | ACTIVE |
status | SOLD |
status | DELETED |
status | DELETE_INTERNAL_ERROR |
status | VALIDATION_ERROR |
status | UPDATE_INTERNAL_ERROR |
status | UPDATE_VALIDATION_ERROR |
status | INTERNAL_ERROR |
GetOntologiesResponse
{
"enumerations": {
"catalogs": [
{
"catalogs": [
{}
],
"disabled_fields": [
"brand"
],
"id": 0,
"size_group_ids": [
0
],
"title": "string"
}
],
"colors": [
{
"id": 0,
"title": "string"
}
],
"package_sizes": [
{
"id": 0,
"title": "string",
"weight_description": "string"
}
],
"size_groups": [
{
"description": "string",
"id": 0,
"sizes": [
{
"id": 0,
"title": "string"
}
],
"title": "string"
}
],
"statuses": [
{
"description": "string",
"id": 0,
"title": "string"
}
]
},
"validation_rules": {
"max_photos": 0,
"max_price": 0.1,
"min_price": 0.1
},
"version": {
"country": "AT",
"currency": "EUR",
"last_updated_on": "2019-08-24T14:15:22Z"
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
enumerations | object | true | none | Ontologies enumerations. Only values from these enumerations are valid for sending as item data. However, not all values from these enumerations are valid for all items. The Catalog object dictates some subsets of valid values. |
» catalogs | [Catalog] | true | none | none |
» colors | [Color] | true | none | none |
» package_sizes | [PackageSize] | true | none | [The size of the package that the item will be shipped in.] |
» size_groups | [SizeGroup] | true | none | none |
» statuses | [Status] | true | none | [Condition of an item/product.] |
validation_rules | ValidationRules | true | none | none |
version | object | true | none | Although most of the ontologies data is static, it does vary based on country and currency, therefore the ontologies are versioned using those properties + a date-time reference to when it was last updated. |
» country | string | true | none | none |
» currency | Currency | true | none | The currency used for prices. |
» last_updated_on | string(date-time) | true | none | none |
Enumerated Values
Property | Value |
---|---|
country | AT |
country | BE |
country | DE |
country | ES |
country | FR |
country | IT |
country | LU |
country | NL |
country | PT |
country | UK |
GetOrderResponse
{
"amount": 0.01,
"billing_address": {
"city": "string",
"country_code": "string",
"line_1": "string",
"line_2": "string",
"name": "John Doe",
"postal_code": "string",
"state": "string"
},
"created_at": "2019-08-24T14:15:22Z",
"currency": "EUR",
"delivery_address": {
"city": "string",
"country_code": "string",
"line_1": "string",
"line_2": "string",
"name": "John Doe",
"postal_code": "string",
"state": "string"
},
"id": 0,
"items": [
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"title": "White Hilfiger t-shirt"
}
],
"status": "CREATED"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
amount | Price | true | none | The amount you will receive for this order. |
billing_address | Address | true | none | none |
created_at | string(date-time) | true | none | none |
currency | Currency | true | none | The currency used for prices. |
delivery_address | Address | true | none | none |
id | integer | true | none | none |
items | [OrderItem] | true | none | The items in the order. |
status | OrderStatus | true | none | none |
GetOrderShipmentLabelNotFoundResponse
{
"error": "ORDER_NOT_FOUND"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
error | string | true | none | none |
Enumerated Values
Property | Value |
---|---|
error | ORDER_NOT_FOUND |
error | LABEL_CREATION_IN_PROGRESS |
error | LABEL_CREATION_FAILED |
GetOrderShipmentResponse
{
"carrier": {
"name": "Vinted Go"
},
"currency": "EUR",
"price_ex_vat": 0.01,
"tracking_code": "string",
"vat_amount": 0.01
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
carrier | object | true | none | none |
» name | string | false | none | none |
currency | Currency | false | none | The currency used for prices. |
price_ex_vat | Price | true | none | The price paid for the label, excluding VAT. |
tracking_code | string | true | none | The tracking code for the shipment. Will be empty for orders containing items that are not managed via Vinted Pro Integrations. |
vat_amount | Price | true | none | The VAT paid. |
GetOrdersResponse
{
"orders": [
{
"created_at": "2019-08-24T14:15:22Z",
"id": 0,
"status": "CREATED"
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
orders | [OrderListElement] | false | none | none |
GetWebhooksResponse
[
{
"event_types": [
"CREATE_ITEM_SUCCESS"
],
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"url": "string"
}
]
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [Webhook] | false | none | none |
ItemIDAndReference
{
"item_id": "4d8cd62e-a579-4dae-af8c-3172f96f8f7c",
"item_reference": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
item_id | string(uuid) | true | none | The main item identifier. |
item_reference | string | true | none | The item reference for the integrator to identify the item. |
ItemIDAndReferenceWithErrors
{
"item_id": "4d8cd62e-a579-4dae-af8c-3172f96f8f7c",
"item_reference": "string",
"errors": [
{
"field": "string",
"message": "string"
}
],
"message": "string"
}
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | ItemIDAndReference | false | none | none |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» errors | [ValidationError] | false | none | none |
» message | string | false | none | none |
ItemIsDraft
{
"is_draft": true
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
is_draft | boolean | true | none | A boolean indicating whether the item is a draft. |
ItemProperties
{
"brand": "string",
"catalog_id": 0,
"color_ids": [
0
],
"currency": "EUR",
"description": "string",
"is_unisex": true,
"manufacturer": "string",
"manufacturer_labelling": "string",
"measurement_length": 0,
"measurement_width": 0,
"package_size_id": 0,
"photo_urls": [
"http://example.com"
],
"price": 1,
"size_id": 0,
"status_id": 0,
"title": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
brand | string | true | none | The item brand. |
catalog_id | integer(int) | true | none | The ID of item catalog. This must be a leaf catalog. Use the ontologies endpoint to get the catalog tree. |
color_ids | [integer] | false | none | The item colors IDs. Use the ontologies endpoint to get the colors. |
currency | Currency | true | none | The currency used for prices. |
description | string | true | none | The item description. Must be between 5 and 2000 characters. |
is_unisex | boolean | false | none | A boolean indicating if item is unisex. |
manufacturer | string | false | none | Manufacturer credentials. E.g. "Mattel (USA)". |
manufacturer_labelling | string | false | none | Labelling and marketing information. This should be general information on product safety and compliance such as safety warnings and instructions of use or safety marks/logo/certifications related to the product. |
measurement_length | integer(int) | false | none | The item measurement length. |
measurement_width | integer(int) | false | none | The item measurement width. |
package_size_id | integer(int) | true | none | The ID of item package size. Use the ontologies endpoint to get the package sizes. |
photo_urls | [string] | true | none | The URLs of the item photos. Must be publicly accessible. At least one photo is required. |
price | number(float) | true | none | The item price. |
size_id | integer(int) | false | none | The ID of item size. This is required for catalogs that have a size group (i.e. a non-empty size_group_ids array). Use the ontologies endpoint to get the size groups. |
status_id | integer(int) | true | none | The ID of item status (condition). Use the ontologies endpoint to get the statuses. |
title | string | true | none | The item title. Must be between 5 and 100 characters. |
ItemReference
{
"item_reference": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
item_reference | string | true | none | The item reference for the integrator to identify the item. |
ItemSoldEventData
{
"item_id": "4d8cd62e-a579-4dae-af8c-3172f96f8f7c",
"item_reference": "string"
}
Properties
None
ItemToUpdate
{
"brand": "string",
"catalog_id": 0,
"color_ids": [
0
],
"currency": "EUR",
"description": "string",
"is_unisex": true,
"manufacturer": "string",
"manufacturer_labelling": "string",
"measurement_length": 0,
"measurement_width": 0,
"package_size_id": 0,
"photo_urls": [
"http://example.com"
],
"price": 1,
"size_id": 0,
"status_id": 0,
"title": "string",
"is_draft": true,
"item_id": "4d8cd62e-a579-4dae-af8c-3172f96f8f7c"
}
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | ItemProperties | false | none | none |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | ItemIsDraft | false | none | none |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» item_id | string(uuid) | true | none | The item ID. |
OrderCreatedEventData
{
"items": [
{
"item_id": "4d8cd62e-a579-4dae-af8c-3172f96f8f7c",
"item_reference": "string"
}
],
"order_id": 0
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
items | [ItemIDAndReference] | true | none | The items in the order. |
order_id | integer(int64) | true | none | The order ID. |
OrderItem
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"title": "White Hilfiger t-shirt"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string(uuid) | true | none | The item ID. Will be 00000000-0000-0000-0000-000000000000 for items not managed via Vinted Pro Integrations. |
title | string | true | none | The title under which the item was listed. |
OrderListElement
{
"created_at": "2019-08-24T14:15:22Z",
"id": 0,
"status": "CREATED"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
created_at | string(date-time) | true | none | none |
id | integer(int64) | true | none | none |
status | OrderStatus | true | none | none |
OrderStatus
"CREATED"
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | string | false | none | none |
Enumerated Values
Property | Value |
---|---|
anonymous | CREATED |
anonymous | READY_TO_BE_SHIPPED |
anonymous | SHIPPED |
anonymous | DELIVERED |
anonymous | LOST |
anonymous | RETURN_REQUESTED |
anonymous | RETURN_INITIATED |
anonymous | RETURN_SHIPPED |
anonymous | RETURN_DELIVERED |
anonymous | RETURN_LOST |
anonymous | CANCELED |
anonymous | COMPLETED |
anonymous | PARTIALLY_COMPLETED |
anonymous | CLOSED |
PackageSize
{
"id": 0,
"title": "string",
"weight_description": "string"
}
The size of the package that the item will be shipped in.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | integer | true | none | The package size ID. |
title | string | true | none | The package size title. |
weight_description | string | false | none | The package size weight description. |
Price
0.01
A price paid for something.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | number(float) | false | none | A price paid for something. |
ShipmentLabelCreatedEventData
{
"order_id": 0
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
order_id | integer(int64) | true | none | The order ID. |
Size
{
"id": 0,
"title": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | integer | true | none | The size ID. |
title | string | true | none | The size title. |
SizeGroup
{
"description": "string",
"id": 0,
"sizes": [
{
"id": 0,
"title": "string"
}
],
"title": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
description | string | true | none | The size group description. |
id | integer | true | none | The size group ID. |
sizes | [Size] | true | none | The sizes in this size group. |
title | string | true | none | The size group title. |
Status
{
"description": "string",
"id": 0,
"title": "string"
}
Condition of an item/product.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
description | string | true | none | The status description. |
id | integer | true | none | The status ID. |
title | string | true | none | The status title. |
UpdateItemFailureEventData
{
"item_id": "4d8cd62e-a579-4dae-af8c-3172f96f8f7c",
"item_reference": "string",
"errors": [
{
"field": "string",
"message": "string"
}
],
"message": "string"
}
Properties
None
UpdateItemSuccessEventData
{
"item_id": "4d8cd62e-a579-4dae-af8c-3172f96f8f7c",
"item_reference": "string"
}
Properties
None
UpdateItems
{
"items": [
{
"brand": "string",
"catalog_id": 0,
"color_ids": [
0
],
"currency": "EUR",
"description": "string",
"is_unisex": true,
"manufacturer": "string",
"manufacturer_labelling": "string",
"measurement_length": 0,
"measurement_width": 0,
"package_size_id": 0,
"photo_urls": [
"http://example.com"
],
"price": 1,
"size_id": 0,
"status_id": 0,
"title": "string",
"is_draft": true,
"item_id": "4d8cd62e-a579-4dae-af8c-3172f96f8f7c"
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
items | [ItemToUpdate] | true | none | An array of items to update. When the items were created in VPI, you received an identifier for each item. Use that identifier to update the item. At most 100 items can be updated in a single request. |
UpdateItemsResponse
{
"items": [
{
"accepted": true,
"item_id": "4d8cd62e-a579-4dae-af8c-3172f96f8f7c",
"reason": "ITEM_NOT_FOUND"
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
items | [UpdateItemsResponseItem] | true | none | none |
UpdateItemsResponseItem
{
"accepted": true,
"item_id": "4d8cd62e-a579-4dae-af8c-3172f96f8f7c",
"reason": "ITEM_NOT_FOUND"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
accepted | boolean | true | none | A boolean indicating if the update request for the item was accepted. Examples of reasons for an item update not to be accepted are that you do not own the item or the item was already sold. |
item_id | string(uuid) | true | none | none |
reason | string | false | none | The reason why the update was not accepted. |
Enumerated Values
Property | Value |
---|---|
reason | ITEM_NOT_FOUND |
reason | ITEM_SOLD |
reason | ITEM_DELETED |
reason | ITEM_IN_PROGRESS |
reason | ITEM_NOT_ACTIVE |
UpdateWebhookError
{
"error": "ONLY_HTTPS_URLS_ALLOWED"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
error | string | true | none | none |
Enumerated Values
Property | Value |
---|---|
error | ONLY_HTTPS_URLS_ALLOWED |
ValidationError
{
"field": "string",
"message": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
field | string | true | none | none |
message | string | true | none | none |
ValidationRules
{
"max_photos": 0,
"max_price": 0.1,
"min_price": 0.1
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
max_photos | integer | true | none | The maximum number of photos allowed for an item. |
max_price | number(float) | true | none | The maximum price allowed for an item. |
min_price | number(float) | true | none | The minimum price allowed for an item. |
Webhook
{
"event_types": [
"CREATE_ITEM_SUCCESS"
],
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"url": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
event_types | [WebhookEventType] | true | none | [The event type of the webhook.] |
id | string(uuid) | true | none | none |
url | string(url) | true | none | none |
WebhookDeliveryResult
{
"created_at": "2019-08-24T14:15:22Z",
"error_msg": "string",
"event_type": "CREATE_ITEM_SUCCESS",
"http_status_code": 0,
"success": true
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
created_at | string(date-time) | true | none | The date and time when the delivery result was created. |
error_msg | string | false | none | The error message if the delivery was not successful. |
event_type | WebhookEventType | true | none | The event type of the webhook. |
http_status_code | integer(int) | false | none | The HTTP status code of the response that Vinted received from the webhook endpoint. If a response was received at all. |
success | boolean | true | none | A boolean indicating if the delivery was successful. |
WebhookEventData
{
"event_data": {
"item_id": "4d8cd62e-a579-4dae-af8c-3172f96f8f7c",
"item_reference": "string"
},
"event_type": "CREATE_ITEM_SUCCESS",
"webhook_id": "a47606a1-5b39-4a81-9480-c2cb738ff675"
}
The event data sent to a webhook endpoint.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
event_data | any | true | none | The data that is sent with the webhook. |
oneOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | CreateItemSuccessEventData | false | none | none |
xor
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | CreateItemFailureEventData | false | none | none |
xor
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | UpdateItemSuccessEventData | false | none | none |
xor
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | UpdateItemFailureEventData | false | none | none |
xor
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | DeleteItemSuccessEventData | false | none | none |
xor
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | DeleteItemFailureEventData | false | none | none |
xor
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | ItemSoldEventData | false | none | none |
xor
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | OrderCreatedEventData | false | none | none |
xor
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | ShipmentLabelCreatedEventData | false | none | none |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
event_type | WebhookEventType | true | none | The event type of the webhook. |
webhook_id | string(uuid) | true | none | none |
WebhookEventType
"CREATE_ITEM_SUCCESS"
The event type of the webhook.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | string | false | none | The event type of the webhook. |
Enumerated Values
Property | Value |
---|---|
anonymous | CREATE_ITEM_SUCCESS |
anonymous | CREATE_ITEM_FAILURE |
anonymous | UPDATE_ITEM_SUCCESS |
anonymous | UPDATE_ITEM_FAILURE |
anonymous | DELETE_ITEM_SUCCESS |
anonymous | DELETE_ITEM_FAILURE |
anonymous | ITEM_SOLD |
anonymous | ORDER_CREATED |
anonymous | SHIPMENT_LABEL_CREATED |