# Table of Contents - [Authentification | V-TOOLS API](#authentification-v-tools-api) - [RESTful API v3 | V-TOOLS API](#restful-api-v3-v-tools-api) - [Abonnements | V-TOOLS API](#abonnements-v-tools-api) - [Authentification Discord | V-TOOLS API](#authentification-discord-v-tools-api) - [Article Vinted | V-TOOLS API](#article-vinted-v-tools-api) - [Authentification classique | V-TOOLS API](#authentification-classique-v-tools-api) - [Vinted | V-TOOLS API](#vinted-v-tools-api) - [(Dé)Lier un compte Discord | V-TOOLS API](#-d-lier-un-compte-discord-v-tools-api) - [Réinitialiser son mot de passe | V-TOOLS API](#r-initialiser-son-mot-de-passe-v-tools-api) - [Websocket | V-TOOLS API](#websocket-v-tools-api) - [See also | V-TOOLS API](#see-also-v-tools-api) - [Cache | V-TOOLS API](#cache-v-tools-api) - [Stripe | V-TOOLS API](#stripe-v-tools-api) - [Multicompte | V-TOOLS API](#multicompte-v-tools-api) - [Transactions | V-TOOLS API](#transactions-v-tools-api) - [Vinted CRM | V-TOOLS API](#vinted-crm-v-tools-api) - [Filtres | V-TOOLS API](#filtres-v-tools-api) - [Authentification Vinted | V-TOOLS API](#authentification-vinted-v-tools-api) - [Erreurs | V-TOOLS API](#erreurs-v-tools-api) - [Évènement | V-TOOLS API](#-v-nement-v-tools-api) --- # Authentification | V-TOOLS API L'authentification est cruciale dans une intégration web puisqu'elle permet a chaque utilisateur de faire des requêtes de manière indépendante et de coordonner les données. Il existe deux manières d'authentification : Authentification classiqueAuthentification Discord L'Authentification classique est la connexion la plus rudimentaire de toutes, on a besoin d'un email et d'un mot de passe. Pour faire fonctionner cette authentification, vous aurez besoin de souscrire un service de mail quelconque ainsi que de fournir certains liens de redirection. **Email Service** * Email Address * Email Address Password * Email Address Host * Email Address Port * Email Variables **Login Service** * Validate Account Redirect Uri * Reset Password Redirect Uri L'Authentification Discord comme son nom indique utilise Discord OAuth2 pour authentifier les utilisateurs. Un compte Discord est donc requis. Pour activer ce service vous devez avoir accès au panel Discord Developer. Discord Service * Extern Container Id * Discord Api Client Id * Discord Api Client Secret Les deux méthodes d'authentifications sont indépendantes l'une de l'autre mais pour une intégration web l'une d'entre elles doit être forcement choisie. [PreviousRESTful API v3](/restful-api) [NextAuthentification classique](/restful-api/restful-api-v3/authentification/authentification-classique) Last updated 7 months ago --- # RESTful API v3 | V-TOOLS API Ceci marque le début de la troisième itération de la RESTful API de V-TOOLS. Cette nouvelle version a pour but d'être extrêmement robuste et capable de supporter de belles charges serveur a elle seule. Elle se découple en pleins de petits _microservice_ qu'elle desservira en tant que pont entre le client et le serveur ; avec une telle approche ca nous permet de réduire considérablement la charge serveur bien qu'elle contienne évidemment sa propre logique et abstraction. L'objectif de cette troisième itération est aussi d'être le plus confidentielle possible quant a ces échanges et d'éviter de renvoyer des données inutiles. Cette nouvelle API reste tout de même en développement bien qu'elle soit stable et utilisable ; des baisses de rendement par moment sont a déplorer et on travaille activement pour y remédier. #### [](#format-des-requetes) Format des requêtes Si aucune spécification, l'ensemble des requêtes doivent s'effectuer de manière suivante. Toutes les requetes commenceront par https://custom.v-tools.fr/v3/, et devront contenir les en-tetes (headers) suivantes : * `X-Server-Key: 45018c47-eb02-45...` qui permet d'identifier le serveur de provenance de la requête. * `Authorization: Bearer eyJhbGciOiJIUzI1NiIsI...` qui selon le cas identifie d'une manière ou d'une autre l'auteur de la requête. En ce qui concerne le `X-Server-Key`, un administrateur vous fournira votre identifiant. [NextAuthentification](/restful-api/restful-api-v3/authentification) Last updated 7 months ago --- # Abonnements | V-TOOLS API Les abonnements sont une fonctionnalité optionnelle mais intéressante qui vous permet de moduler vos accès selon vos différentes offres. Veuillez demander à un administrateur de vous activer la fonctionnalité en mentionnant quel support vous utilisez pour créer, gérer et administrer vos abonnements. Les différents supports actuellement disponibles sont : DiscordStripe Le support Discord est une bonne alternative lorsque les abonnements sont administrés via Whop. C'est le support le moins sophistiqué mais tout de même efficace. Il se base tout simplement sur les rôles de l'utilisateur au sein du serveur Discord pour lui attribuer les différents accès. Vous devrez avoir implémenté l'[Authentification Discord](/restful-api/restful-api-v3/authentification#authentification-discord) au préalable. Un support Whop indépendant arrivera prochainement si nécessaire. Le support Stripe est la meilleure option lorsque les abonnements sont administrés via Stripe. Ce support est assez complet et permet la gestion des stocks ainsi que la mise en place modulaire d'abonnements avec des périodes et jours d'essai au besoin. Pour faire fonctionner ce service, les informations suivantes seront nécessaires : **Stripe Service** * Stripe Api Key * Stripe Api Webhook Secret * Stripe Purchase Redirect Uri * Stripe Customer Portal Uri #### [](#initialisation) Initialisation La création d'un endpoint webhook est nécessaire pour compléter la mise en place du service Stripe. Le lien de l'endpoint sera `https://custom.v-tools.fr/v3/store/subscription/w?server_key={{X_SERVER_KEY}}` et il faudra activer les événements suivants : * checkout.session.completed * customer.subscription.deleted * customer.subscription.updated * invoice.payment\_failed * invoice.payment\_succeeded [PreviousVinted CRM](/restful-api/restful-api-v3/vinted/vinted-crm) [NextStripe](/restful-api/restful-api-v3/abonnements/stripe) Last updated 7 months ago --- # Authentification Discord | V-TOOLS API [PreviousRéinitialiser son mot de passe](/restful-api/restful-api-v3/authentification/authentification-classique/reinitialiser-son-mot-de-passe) [Next(Dé)Lier un compte Discord](/restful-api/restful-api-v3/authentification/authentification-discord/de-lier-un-compte-discord) Last updated 7 months ago L'Authentification Discord tout comme la Classique se présente en plusieurs étapes. Cependant elle ne nécessite d'aucune vérification supplémentaire. [](#lien-discord-oauth2) 🔗 Lien Discord OAuth2 ---------------------------------------------------- Discord utilise l'OAuth2 pour nous autoriser l'accès aux informations relatives a un compte Discord. L'utilisateur doit donc accepter, avant de nous permettre d'accéder a ses données, d'où les étapes supplémentaires. > Exemple lien Discord OAuth2 : [https://discord.com/oauth2/authorize?client\_id=1050044067234463784&response\_type=code&redirect\_uri=https%3A%2F%2Fapp.v-tools.fr%2Flogin&scope=identify+email](https://discord.com/oauth2/authorize?client_id=1050044067234463784&response_type=code&redirect_uri=https%3A%2F%2Fapp.v-tools.fr%2Flogin&scope=identify+email) > . Notez que ce lien contient les informations concernant le lien ou vous serez redirige une fois la validation complète. Ce lien doit être généré depuis votre espace développeur Discord en cochant les scopes `identity` & `email`. [](#se-connecter-a-un-compte-discord) 🎯 Se connecter a un compte Discord ------------------------------------------------------------------------------ Une fois l'OAuth2 valide, notez que la redirection contient un _query param_ `code`. Ce code est la preuve que l'authentification s'est parfaitement déroule et celui qui permettra de récupérer les informations relatives a l'utilisateur. On peut donc maintenant procéder a la connexion du compte Discord : Une fois connecté, les tokens JWT fournis nous serviront d'_Authorization_ pour les prochaines requêtes, donc a conserver! Le _query param_ `redirect` correspond au lien de redirection contenu dans le lien Discord OAuth2. * * * N'oubliez pas de spécifier le `X-Server-Key` dans l'en-tête (header) de la requête. Authenticate a Discord account. post /oauth/login/discord Test it Query parameters codestringrequired The authorization code received from Discord. Example: `ABC123DEF456` redirectstringrequired The redirect URI to be used after authentication. Example: `https://app.v-tools.fr/login` Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Responses 200 Successfully authenticate the Discord account. application/json cURL JavaScript Python HTTP Copy curl -L \ --request POST \ --url 'https://custom.v-tools.fr/v3/oauth/login/discord?code=ABC123DEF456&redirect=https%3A%2F%2Fapp.v-tools.fr%2Flogin' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' 200 Copy { "data": { "client_oid": "65fec4c6b39b4562d777f08b", "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "expires_in": 259200 }, "code": 1 } Successfully authenticate the Discord account. * [🔗 Lien Discord OAuth2](#lien-discord-oauth2) * [🎯 Se connecter a un compte Discord](#se-connecter-a-un-compte-discord) * [POST/oauth/login/discord](#oauth-login-discord) --- # Article Vinted | V-TOOLS API La structure d'un article Vinted renvoyé par le websocket peut etre soumise a des changements, donc une attention particulière est requise. Seuls les champs qu'on considère primordiaux et immuables seront renseignés ; le restant des champs peuvent être soumis a des modifications voire suppressions. #### [](#example-darticle) Example d'article Copy { "content_type": "item", "data": { "product": { "item_id": 4915055560, "title": "Pantalón Real Madrid Adidas", "description": "Talla 13/14 años, una S/M aprox", "user": { "user_id": 42533069, "username": "amararodriguez", "feedback_reputation": 0, "positive_feedback": 0, "neutral_feedback": 0, "negative_feedback": 0, "feedback_count": 0, "city": "", "country": "Spain", "country_code": "ES", "avatar": "" }, "country": "Spain", "country_id": 7, "catalog": "Shorts", "catalog_id": 586, "size": "S", "size_id": 207, "brand": "adidas", "brand_id": 14, "status": "Très bon état", "status_id": 2, "color1": "Fuchsia", "color1_id": 5, "color2": "", "color2_id": 0, "material_ids": [], "platform_ids": [], "photos": [\ {\ "id": 19941178130,\ "url": "https://images1.vinted.net/t/02_01328_feuFpCPwZCFyzHjpeuuLb7Aq/f800/1724184335.jpeg?s=984300715a41797ddaa814fe2abe7930236b58a3",\ "is_main": true,\ "thumbnails": [\ {\ "type": "thumb70x100",\ "url": "https://images1.vinted.net/t/02_01328_feuFpCPwZCFyzHjpeuuLb7Aq/70x100/1724184335.jpeg?s=14c1e43980d6bdc64babd4282d432f78e821809f",\ "width": 70,\ "height": 100,\ "original_size": null\ },\ {\ "type": "thumb150x210",\ "url": "https://images1.vinted.net/t/02_01328_feuFpCPwZCFyzHjpeuuLb7Aq/150x210/1724184335.jpeg?s=a61a0a7e1a652b9001720f7952370d473ee3d4a9",\ "width": 150,\ "height": 210,\ "original_size": null\ },\ {\ "type": "thumb310x430",\ "url": "https://images1.vinted.net/t/02_01328_feuFpCPwZCFyzHjpeuuLb7Aq/310x430/1724184335.jpeg?s=0b27dd68a0af4c7078dbf69889c7cc54790bd7b6",\ "width": 310,\ "height": 430,\ "original_size": null\ },\ {\ "type": "thumb428x624",\ "url": "https://images1.vinted.net/t/02_01328_feuFpCPwZCFyzHjpeuuLb7Aq/f800/1724184335.jpeg?s=984300715a41797ddaa814fe2abe7930236b58a3",\ "width": 321,\ "height": 428,\ "original_size": true\ },\ {\ "type": "thumb624x428",\ "url": "https://images1.vinted.net/t/02_01328_feuFpCPwZCFyzHjpeuuLb7Aq/f800/1724184335.jpeg?s=984300715a41797ddaa814fe2abe7930236b58a3",\ "width": 468,\ "height": 624,\ "original_size": true\ },\ {\ "type": "thumb364x428",\ "url": "https://images1.vinted.net/t/02_01328_feuFpCPwZCFyzHjpeuuLb7Aq/f800/1724184335.jpeg?s=984300715a41797ddaa814fe2abe7930236b58a3",\ "width": 273,\ "height": 364,\ "original_size": true\ }\ ]\ },\ {\ "id": 19941178133,\ "url": "https://images1.vinted.net/t/01_0133f_EvC2aVJwvbxsKdnmkuCyNs7R/f800/1724184335.jpeg?s=0c0ddb096cb492701fd8dc1ff8b76214c9b88d5c",\ "is_main": false,\ "thumbnails": [\ {\ "type": "thumb70x100",\ "url": "https://images1.vinted.net/t/01_0133f_EvC2aVJwvbxsKdnmkuCyNs7R/70x100/1724184335.jpeg?s=1f3863a8be7a401d7afac4900f3b3e7a8e5f54d4",\ "width": 70,\ "height": 100,\ "original_size": null\ },\ {\ "type": "thumb150x210",\ "url": "https://images1.vinted.net/t/01_0133f_EvC2aVJwvbxsKdnmkuCyNs7R/150x210/1724184335.jpeg?s=56878a65fe549fe29c3bebc0cccc79842dde89ed",\ "width": 150,\ "height": 210,\ "original_size": null\ },\ {\ "type": "thumb310x430",\ "url": "https://images1.vinted.net/t/01_0133f_EvC2aVJwvbxsKdnmkuCyNs7R/310x430/1724184335.jpeg?s=7a97a456e436d39e04aa9f500ab9a3d61010af27",\ "width": 310,\ "height": 430,\ "original_size": null\ },\ {\ "type": "thumb428x624",\ "url": "https://images1.vinted.net/t/01_0133f_EvC2aVJwvbxsKdnmkuCyNs7R/f800/1724184335.jpeg?s=0c0ddb096cb492701fd8dc1ff8b76214c9b88d5c",\ "width": 321,\ "height": 428,\ "original_size": true\ },\ {\ "type": "thumb624x428",\ "url": "https://images1.vinted.net/t/01_0133f_EvC2aVJwvbxsKdnmkuCyNs7R/f800/1724184335.jpeg?s=0c0ddb096cb492701fd8dc1ff8b76214c9b88d5c",\ "width": 468,\ "height": 624,\ "original_size": true\ },\ {\ "type": "thumb364x428",\ "url": "https://images1.vinted.net/t/01_0133f_EvC2aVJwvbxsKdnmkuCyNs7R/f800/1724184335.jpeg?s=0c0ddb096cb492701fd8dc1ff8b76214c9b88d5c",\ "width": 273,\ "height": 364,\ "original_size": true\ }\ ]\ },\ {\ "id": 19941178136,\ "url": "https://images1.vinted.net/t/03_004f3_4TpDYdExnhGdCNCJNe1Lij2u/f800/1724184335.jpeg?s=c0770f696b7fb1d1228c9055ef3389e340c54fcc",\ "is_main": false,\ "thumbnails": [\ {\ "type": "thumb70x100",\ "url": "https://images1.vinted.net/t/03_004f3_4TpDYdExnhGdCNCJNe1Lij2u/70x100/1724184335.jpeg?s=9603ac882b691787ccdc625f93f06d4a4061de78",\ "width": 70,\ "height": 100,\ "original_size": null\ },\ {\ "type": "thumb150x210",\ "url": "https://images1.vinted.net/t/03_004f3_4TpDYdExnhGdCNCJNe1Lij2u/150x210/1724184335.jpeg?s=4b3e28d10eb9a1df4de6b792ca0c9deeeb4782e0",\ "width": 150,\ "height": 210,\ "original_size": null\ },\ {\ "type": "thumb310x430",\ "url": "https://images1.vinted.net/t/03_004f3_4TpDYdExnhGdCNCJNe1Lij2u/310x430/1724184335.jpeg?s=0a0d8b8f62bd9e888654df462e48eb582c8f0f57",\ "width": 310,\ "height": 430,\ "original_size": null\ },\ {\ "type": "thumb428x624",\ "url": "https://images1.vinted.net/t/03_004f3_4TpDYdExnhGdCNCJNe1Lij2u/f800/1724184335.jpeg?s=c0770f696b7fb1d1228c9055ef3389e340c54fcc",\ "width": 321,\ "height": 428,\ "original_size": true\ },\ {\ "type": "thumb624x428",\ "url": "https://images1.vinted.net/t/03_004f3_4TpDYdExnhGdCNCJNe1Lij2u/f800/1724184335.jpeg?s=c0770f696b7fb1d1228c9055ef3389e340c54fcc",\ "width": 468,\ "height": 624,\ "original_size": true\ },\ {\ "type": "thumb364x428",\ "url": "https://images1.vinted.net/t/03_004f3_4TpDYdExnhGdCNCJNe1Lij2u/f800/1724184335.jpeg?s=c0770f696b7fb1d1228c9055ef3389e340c54fcc",\ "width": 273,\ "height": 364,\ "original_size": true\ }\ ]\ },\ {\ "id": 19941178141,\ "url": "https://images1.vinted.net/t/01_01582_EVK8TiAhBHzwYmhGaCc4pEaf/f800/1724184335.jpeg?s=80e8e1f5a6d5cc8881cc721441ddc5d14dfd4dcc",\ "is_main": false,\ "thumbnails": [\ {\ "type": "thumb70x100",\ "url": "https://images1.vinted.net/t/01_01582_EVK8TiAhBHzwYmhGaCc4pEaf/70x100/1724184335.jpeg?s=85ff2d36a98f40e9f5db20c7e90556ccbd9f9db9",\ "width": 70,\ "height": 100,\ "original_size": null\ },\ {\ "type": "thumb150x210",\ "url": "https://images1.vinted.net/t/01_01582_EVK8TiAhBHzwYmhGaCc4pEaf/150x210/1724184335.jpeg?s=fd2c30b0ef3612f3109698bb07570969fe4c5f5f",\ "width": 150,\ "height": 210,\ "original_size": null\ },\ {\ "type": "thumb310x430",\ "url": "https://images1.vinted.net/t/01_01582_EVK8TiAhBHzwYmhGaCc4pEaf/310x430/1724184335.jpeg?s=3c6f4030f99e8902da1b24b5a985c34330c4d9e4",\ "width": 310,\ "height": 430,\ "original_size": null\ },\ {\ "type": "thumb428x624",\ "url": "https://images1.vinted.net/t/01_01582_EVK8TiAhBHzwYmhGaCc4pEaf/f800/1724184335.jpeg?s=80e8e1f5a6d5cc8881cc721441ddc5d14dfd4dcc",\ "width": 321,\ "height": 428,\ "original_size": true\ },\ {\ "type": "thumb624x428",\ "url": "https://images1.vinted.net/t/01_01582_EVK8TiAhBHzwYmhGaCc4pEaf/f800/1724184335.jpeg?s=80e8e1f5a6d5cc8881cc721441ddc5d14dfd4dcc",\ "width": 468,\ "height": 624,\ "original_size": true\ },\ {\ "type": "thumb364x428",\ "url": "https://images1.vinted.net/t/01_01582_EVK8TiAhBHzwYmhGaCc4pEaf/f800/1724184335.jpeg?s=80e8e1f5a6d5cc8881cc721441ddc5d14dfd4dcc",\ "width": 273,\ "height": 364,\ "original_size": true\ }\ ]\ }\ ], "currency": "EUR", "likes": 0, "views": 0, "is_sold": false, "is_repost": false, "is_hidden": false, "price_without_tax": 15, "price_with_tax": 16.45, "created_at": "2024-08-20T14:05:35-06:00", "updated_at": "2024-08-20T14:05:37-06:00" }, "filters": [\ {\ "oid": "66bcf238d741635396e0489f",\ "name": "adid*",\ "url": "https://www.vinted.fr/catalog?order=newest_first\u0026color_ids%5B%5D=5\u0026brand_ids%5B%5D=5758435\u0026brand_ids%5B%5D=373308\u0026brand_ids%5B%5D=132738\u0026brand_ids%5B%5D=78308\u0026brand_ids%5B%5D=194976\u0026brand_ids%5B%5D=123288\u0026brand_ids%5B%5D=543679\u0026brand_ids%5B%5D=115490\u0026brand_ids%5B%5D=6210267\u0026brand_ids%5B%5D=2293444\u0026brand_ids%5B%5D=337592\u0026brand_ids%5B%5D=484743\u0026brand_ids%5B%5D=14\u0026brand_ids%5B%5D=5808842\u0026status_ids%5B%5D=6\u0026status_ids%5B%5D=2\u0026status_ids%5B%5D=1",\ "tag_ids": null,\ "website_metadata": {\ "client_oid": "65a966017da83ab7cfdcaf95",\ "boosted": false\ },\ "discord_metadata": null\ }\ ] } } [PreviousCache](/restful-api/restful-api-v3/cache) [NextÉvènement](/restful-api/modeles/evenement) Last updated 5 months ago --- # Authentification classique | V-TOOLS API [PreviousAuthentification](/restful-api/restful-api-v3/authentification) [NextRéinitialiser son mot de passe](/restful-api/restful-api-v3/authentification/authentification-classique/reinitialiser-son-mot-de-passe) Last updated 7 months ago L'Authentification classique se présente en plusieurs étapes pour la bonne validation du compte. Tout nouveau compte se doit d'être vérifié avant de pouvoir être utilisé. [](#creer-un-nouveau-compte) 🏁 Créer un nouveau compte ------------------------------------------------------------ Pour procéder a la création d'un tout nouveau compte : Le nom d'utilisateur doit être unique. Pour vérifier sa unicité faites une requête a `https://custom.v-tools.fr/v3/oauth/username/validate?username=USERNAME`. Le mot de passe doit contenir au moins 8 caractères, 1 majuscule, 1 chiffre et un caractère spécial. [](#valider-son-nouveau-compte) 🐞 Valider son nouveau compte ------------------------------------------------------------------ Une fois la demande de création de compte effectuée, l'utilisateur recevra un e-mail. Si aucune action n'est prise dans les **15 minutes** de la demande de création du compte ; le compte sera définitivement supprimé et une nouvelle demande devra être faite. > Exemple de lien de validation : [https://custom.v-tools.fr/v3/oauth/register/c?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MTcyNjc0MzgsImlhdCI6MTcxNzI2NjUzOCwiaXNzIjoiMDE4ZjZhZDUtMjJjOC03ZTQ2LWE4ZmEtY2VjODZiODY5YzY4IiwicHVycG9zZSI6InJlc2V0X3Rva2VuIiwic3ViIjoiNjVmZWM0YzZiMzliNDU2MmQ3NzdmMDhiIn0.ejjYzeNyNa2GxV8fAXF7b9f6Zv-8Xfc9KIDhV7SsrIs&server\_key=018f6ad5-22c8-7e46-a8fa-cec86b869c68](https://custom.v-tools.fr/v3/oauth/reset/c?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MTcyNjc0MzgsImlhdCI6MTcxNzI2NjUzOCwiaXNzIjoiMDE4ZjZhZDUtMjJjOC03ZTQ2LWE4ZmEtY2VjODZiODY5YzY4IiwicHVycG9zZSI6InJlc2V0X3Rva2VuIiwic3ViIjoiNjVmZWM0YzZiMzliNDU2MmQ3NzdmMDhiIn0.ejjYzeNyNa2GxV8fAXF7b9f6Zv-8Xfc9KIDhV7SsrIs&server_key=018f6ad5-22c8-7e46-a8fa-cec86b869c68) L'action de clic sur ce lien va engendrer la validation du compte et la redirection de l'utilisateur vers le lien spécifié plus tôt. [](#se-connecter-a-un-compte) 🚩 Se connecter a un compte -------------------------------------------------------------- Une fois le compte valide, on peut procéder a la connexion du compte : Une fois connecté, les tokens JWT fournis nous serviront d'_Authorization_ pour les prochaines requêtes, donc a conserver! Sont considérés `username` l'adresse mail et le pseudo du compte. * * * N'oubliez pas de spécifier le `X-Server-Key` dans l'en-tête (header) de chaque requête. Register a new user. post /oauth/register Test it Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Body emailstring email Example: `support@v-tools.fr` namestring Example: `Support V-tools` passwordstring Example: `Motdepasse123!` Responses 204 Empty response indicating successful registration. cURL JavaScript Python HTTP Copy curl -L \ --request POST \ --url 'https://custom.v-tools.fr/v3/oauth/register' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' \ --header 'Content-Type: application/json' \ --data '{"email":"support@v-tools.fr","name":"Support V-tools","password":"Motdepasse123!"}' 204 No body Empty response indicating successful registration. Login with username and password. post /oauth/login Test it Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Body usernamestring Example: `Support V-tools` passwordstring Example: `Motdepasse123!` Responses 200 Successfully logged in. application/json cURL JavaScript Python HTTP Copy curl -L \ --request POST \ --url 'https://custom.v-tools.fr/v3/oauth/login' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' \ --header 'Content-Type: application/json' \ --data '{"username":"Support V-tools","password":"Motdepasse123!"}' 200 Copy { "data": { "client_oid": "65fec4c6b39b4562d777f08b", "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "expires_in": 259200 }, "code": 1 } Successfully logged in. * [🏁 Créer un nouveau compte](#creer-un-nouveau-compte) * [POST/oauth/register](#oauth-register) * [🐞 Valider son nouveau compte](#valider-son-nouveau-compte) * [🚩 Se connecter a un compte](#se-connecter-a-un-compte) * [POST/oauth/login](#oauth-login) --- # Vinted | V-TOOLS API Vinted est un point d'inflexion lors de cette troisième itération. L'ensemble de l'API tourne autour de Vinted, ce qui laisse comprendre que tout a été minutieusement agencé de manière qu'il y ait une belle harmonie avec le reste mais notamment avec l'intégration Vinted. L'Authentification Vinted est notamment une fonctionnalité cruciale qui marque les bases du restant de l'intégration. On a vraiment mis l'enclin dessus ainsi que la protection des tokens utilisateurs. #### [](#a-savoir) A savoir Vinted est un service externe non affilié a V-TOOLS. Lorsque Vinted devient instable l'API devient instable a son tour ; lorsque Vinted fait des changements on se doit de maintenir l'API et de faire des changements a notre tour donc des _downtime_ peuvent survenir. On est toujours a la recherche d'innovation mais restons a la merci de Vinted lorsqu'il s'agit de fonctionnalités qui deviennent indisponibles soudainement. [PreviousSee also](/restful-api/restful-api-v3/authentification/see-also) [NextAuthentification Vinted](/restful-api/restful-api-v3/vinted/authentification-vinted) Last updated 7 months ago --- # (Dé)Lier un compte Discord | V-TOOLS API [PreviousAuthentification Discord](/restful-api/restful-api-v3/authentification/authentification-discord) [NextSee also](/restful-api/restful-api-v3/authentification/see-also) Last updated 7 months ago L'Authentification Discord vient avec cette fonctionnalité qui complémente l'Authentification Classique qui est celle de pouvoir lier un compte Discord a un compte classique préexistant. Il est fortement recommandé d'avoir lu [Authentification Discord](/restful-api/restful-api-v3/authentification/authentification-discord#lien-discord-oauth2) avant de poursuivre avec cette intégration. [](#lier-son-compte-discord) 🥨 Lier son compte Discord ------------------------------------------------------------ Une fois l'[OAuth2 valide](/restful-api/restful-api-v3/authentification/authentification-discord#lien-discord-oauth2) , on peut maintenant procéder a la création l'enregistrement/création du compte Discord qui va par la même occasion le lier a notre compte : Maintenant il est sera désormais possible de s'authentifier directement via l'Authentification Discord. Toute création de nouvelle ressource vous fournit son identifiant (_oid_) ainsi qu'un peu de contexte. L'identifiant est extrêmement utile pour interagir avec une ressource en particulier ; dans ce contexte, il nous sert à supprimer la ressource ou à la délier de notre compte. Il est évidemment impossible pour un compte Discord d'être lié a plusieurs comptes en simultané ou inversement. [](#delier-son-compte-discord) 🥠 Délier son compte Discord ---------------------------------------------------------------- En récupérant son identifiant, vous pouvez maintenant délier le compte Discord : Il est impossible de délier le compte Discord d'un compte crée via Discord. [](#supprimer-son-compte-discord) 🍄 Supprimer son compte Discord ---------------------------------------------------------------------- En récupérant son identifiant, vous pouvez tout aussi supprimer complétement le compte Discord, ce qui causera automatiquement le déliage du compte : Il est impossible de supprimer un compte Discord non lié. * * * N'oubliez pas de spécifier le `X-Server-Key` & `Authorization` dans l'en-tête (header) de la requête. Authenticate a Discord account. post /discord/create Test it Authorizations Query parameters codestringrequired The authorization code received from Discord. Example: `ABC123DEF456` redirectstringrequired The redirect URI to be used after authentication. Example: `https://app.v-tools.fr/login` Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Responses 200 Successfully authenticated the Discord account. application/json cURL JavaScript Python HTTP Copy curl -L \ --request POST \ --url 'https://custom.v-tools.fr/v3/discord/create?code=ABC123DEF456&redirect=https%3A%2F%2Fapp.v-tools.fr%2Flogin' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' 200 Copy { "data": { "oid": "65fec4c6b39b4562d777f08e", "name": "support", "email": "support@v-tools.fr", "discord": "1234567890", "avatar_url": "https://cdn.discordapp.com/avatars/../..png?size=256" }, "code": 1 } Successfully authenticated the Discord account. Unbind a Discord account from its associated user. delete /discord/_{oid}_/bind Test it Authorizations Path parameters oidstringrequired Example: `65fec4c6b39b4562d777f08c` Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Responses 204 Successfully unbound the Discord account. cURL JavaScript Python HTTP Copy curl -L \ --request DELETE \ --url 'https://custom.v-tools.fr/v3/discord/{oid}/bind' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' 204 No body Successfully unbound the Discord account. Delete a Discord account. delete /discord/_{oid}_ Test it Authorizations Path parameters oidstringrequired Example: `65fec4c6b39b4562d777f08c` Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Responses 204 Successfully deleted the Discord account. cURL JavaScript Python HTTP Copy curl -L \ --request DELETE \ --url 'https://custom.v-tools.fr/v3/discord/{oid}' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' 204 No body Successfully deleted the Discord account. * [🥨 Lier son compte Discord](#lier-son-compte-discord) * [POST/discord/create](#discord-create) * [🥠 Délier son compte Discord](#delier-son-compte-discord) * [DELETE/discord/{oid}/bind](#discord-oid-bind) * [🍄 Supprimer son compte Discord](#supprimer-son-compte-discord) * [DELETE/discord/{oid}](#discord-oid) --- # Réinitialiser son mot de passe | V-TOOLS API [PreviousAuthentification classique](/restful-api/restful-api-v3/authentification/authentification-classique) [NextAuthentification Discord](/restful-api/restful-api-v3/authentification/authentification-discord) Last updated 7 months ago La réinitialisation de mot de passe est une fonctionnalité critique dans l'Authentification classique. [](#demander-la-reinitialisation) 🍪 Demander la réinitialisation ---------------------------------------------------------------------- Il faut avant tout demander la réinitialisation du mot de passe pour recevoir un e-mail : Par mesures de sécurité et de confidentialité, l'API renverra toujours une réponse affirmative même dans le cas ou l'adresse mail ne se trouve pas dans nos systèmes. [](#valider-la-demande-de-reinitialisation) 🍿 Valider la demande de réinitialisation ------------------------------------------------------------------------------------------ Une fois la demande de création de compte effectuée, l'utilisateur recevra un e-mail. > Exemple de lien de validation : [https://custom.v-tools.fr/v3/oauth/reset/c?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MTcyNjc0MzgsImlhdCI6MTcxNzI2NjUzOCwiaXNzIjoiMDE4ZjZhZDUtMjJjOC03ZTQ2LWE4ZmEtY2VjODZiODY5YzY4IiwicHVycG9zZSI6InJlc2V0X3Rva2VuIiwic3ViIjoiNjVmZWM0YzZiMzliNDU2MmQ3NzdmMDhiIn0.ejjYzeNyNa2GxV8fAXF7b9f6Zv-8Xfc9KIDhV7SsrIs&server\_key=018f6ad5-22c8-7e46-a8fa-cec86b869c68](https://custom.v-tools.fr/v3/oauth/reset/c?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MTcyNjc0MzgsImlhdCI6MTcxNzI2NjUzOCwiaXNzIjoiMDE4ZjZhZDUtMjJjOC03ZTQ2LWE4ZmEtY2VjODZiODY5YzY4IiwicHVycG9zZSI6InJlc2V0X3Rva2VuIiwic3ViIjoiNjVmZWM0YzZiMzliNDU2MmQ3NzdmMDhiIn0.ejjYzeNyNa2GxV8fAXF7b9f6Zv-8Xfc9KIDhV7SsrIs&server_key=018f6ad5-22c8-7e46-a8fa-cec86b869c68) L'action de clic sur ce lien va engendrer la validation de la demande de réinitialisation et la redirection de l'utilisateur vers le lien spécifié plus tôt. [](#modifier-son-mot-de-passe) 🥎 Modifier son mot de passe ---------------------------------------------------------------- Une fois la demande validée, on peut procéder a la modification du mot de passe : * * * N'oubliez pas de spécifier le `X-Server-Key` dans l'en-tête (header) de chaque requête. Send a confirmation email for password reset. post /oauth/reset/send\_confirmation Test it Query parameters emailstringrequired Example: `support@v-tools.fr` Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Responses 204 Confirmation email successfully sent. No content is returned. cURL JavaScript Python HTTP Copy curl -L \ --request POST \ --url 'https://custom.v-tools.fr/v3/oauth/reset/send_confirmation?email=support%40v-tools.fr' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' 204 No body Confirmation email successfully sent. No content is returned. Change the password for a user account. post /oauth/reset/change\_password Test it Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Body passwordstring Example: `Motdepasse123!` Responses 204 Password successfully changed. No content is returned. cURL JavaScript Python HTTP Copy curl -L \ --request POST \ --url 'https://custom.v-tools.fr/v3/oauth/reset/change_password' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' \ --header 'Content-Type: application/json' 204 No body Password successfully changed. No content is returned. * [🍪 Demander la réinitialisation](#demander-la-reinitialisation) * [POST/oauth/reset/send\_confirmation](#oauth-reset-send_confirmation) * [🍿 Valider la demande de réinitialisation](#valider-la-demande-de-reinitialisation) * [🥎 Modifier son mot de passe](#modifier-son-mot-de-passe) * [POST/oauth/reset/change\_password](#oauth-reset-change_password) --- # Websocket | V-TOOLS API [PreviousStripe](/restful-api/restful-api-v3/abonnements/stripe) [NextFiltres](/restful-api/restful-api-v3/websocket/filtres) Last updated 7 months ago Le websocket est primordial pour une intégration complète. C'est la pièce manquante pour profiter du fameux _zéro délai_. Actuellement, son utilisation est exclusive à la réception de nouveaux articles ainsi qu'à des événements envoyés par des services externes. Pour une intégration optimale et aucune perte de données, le websocket se doit d'être global à l'ensemble de l'application. #### [](#connexion) Connexion Initiate a WebSocket connection. get /v4 Test it Authorizations Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Responses 101 Switching Protocols cURL JavaScript Python HTTP Copy curl -L \ --url 'wss://ws.v-tools.fr/v4' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' 101 No body Switching Protocols --- # See also | V-TOOLS API [Previous(Dé)Lier un compte Discord](/restful-api/restful-api-v3/authentification/authentification-discord/de-lier-un-compte-discord) [NextVinted](/restful-api/restful-api-v3/vinted) Last updated 7 months ago [](#tokens-jwt) ⛳ Tokens JWT --------------------------------- Les tokens JWT sont au cœur de l'API et servent de clés d'authentification pour tous les utilisateurs. Si l'intégration a été réalisée avec succès, vous devriez désormais être en mesure de générer vos propres tokens. Voici comment les utiliser. #### [](#access-token) Access Token L'_access token_, ou token d'accès, est le plus important, et l'ensemble de votre future intégration repose dessus. Il est différent à chaque nouvelle connexion et regroupe toutes les informations nécessaires à la bonne identification de l'émetteur. Sa durée de vie est relativement courte, **environ trois jours (au moment de la rédaction)**. #### [](#refresh-token) Refresh Token Le _refresh token_ (le terme en français sonne moins bien) est plus trivial mais reste extrêmement intéressant. Comme son nom l'indique, il permet de rafraîchir le token d'accès pour prolonger sa durée de vie sans avoir à reconnecter l'utilisateur avec ses identifiants. Une autre particularité est qu'il ne change pas forcément entre les connexions, mais seulement lorsqu'il rafraîchit un autre token. Sa durée de vie est beaucoup plus longue, **environ trente jours (au moment de la rédaction)**. Le seul inconvénient est qu'il n'existe pas de token pour rafraîchir le _refresh token_. À son expiration, il faudra donc reconnecter l'utilisateur. Pour rafraichir les tokens a l'aide du _refresh token_ : Remplacer l'`Authorization` par le _refresh-token_ uniquement pour cette fois dans l'en-tête (header) de la requête. Il me semble évident de mentionner qu'à expiration, les tokens ne seront plus valides et l'API ne les acceptera plus. D'où tout l'intérêt de pouvoir les rafraîchir. [](#profil) 🦚 Profil -------------------------- La récupération du profil de l'utilisateur est une étape cruciale qui marque la fin de l'Authentification. Le profil de l'utilisateur regroupe l'ensemble des données nécessaires à la bonne initialisation de l'application. Il contient notamment les permissions attachées à l'utilisateur (qui lui donneront accès par la suite à certaines requêtes), ainsi que l'information indiquant si l'utilisateur doit avoir accès à l'application (utile lorsqu'on a des abonnements). Pour récupérer le profil de l'utilisateur : * * * N'oubliez pas de spécifier le `X-Server-Key` & `Authorization` dans l'en-tête (header) de la requête. Refresh an expired or soon-to-expire JWT access token. post /oauth/refresh Test it Authorizations Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Responses 200 Successfully refreshed the JWT access token. application/json cURL JavaScript Python HTTP Copy curl -L \ --request POST \ --url 'https://custom.v-tools.fr/v3/oauth/refresh' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' 200 Copy { "data": { "client_oid": "65fec4c6b39b4562d777f08b", "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "expires_in": 259200 }, "code": 1 } Successfully refreshed the JWT access token. Retrieve User's Profile. get /oauth/profile Test it Authorizations Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Responses 200 Successfully retrieval of the User's Profile. application/json cURL JavaScript Python HTTP Copy curl -L \ --url 'https://custom.v-tools.fr/v3/oauth/profile' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' 200 Copy { "data": { "client": { "oid": "65fec4c6b39b4562d777f08b", "name": "Support V-tools", "email": "support@v-tools.fr", "avatar": "https://images.v-tools.fr/avatar.png", "platform": "discord", "last_logged_on": "2024-06-12T06:53:06.673Z", "created_at": "2024-06-12T06:53:06.673Z" }, "subscription": {}, "permissions": [\ "text"\ ], "expires_in": 259200, "access_denied": false }, "code": 1 } Successfully retrieval of the User's Profile. * [⛳ Tokens JWT](#tokens-jwt) * [POST/oauth/refresh](#oauth-refresh) * [🦚 Profil](#profil) * [GET/oauth/profile](#oauth-profile) --- # Cache | V-TOOLS API [PreviousFiltres](/restful-api/restful-api-v3/websocket/filtres) [NextArticle Vinted](/restful-api/modeles/article-vinted) Last updated 7 months ago L'API utilise la technologie Redis pour conserver en mémoire les dernières réponses et permettre une récupération et réutilisation relativement rapides des données. L'ensemble des routes (_endpoints_) qui renvoient des données volumineuses intègre maintenant cette technologie. L'intégration est définitive et non optionnelle, il est donc impossible de choisir de ne pas utiliser la réutilisation du cache ; aucune option ne le permet pour l'instant. La technologie Redis est également implémentée pour l'ensemble des websockets, donc tous les messages reçus via les websockets sont disponibles pour une réutilisation ultérieure selon vos besoins. Sauf indication contraire, le cache a une durée de 24 heures. L'accès à la ressource rétablit son expiration. #### [](#cache-des-articles) Cache des Articles Le cache des articles a une limite de 20 articles. #### [](#cache-des-evenements) Cache des Événements Le cache des événements a une limite de 50 événements. * * * N'oubliez pas de spécifier le `X-Server-Key` & `Authorization` dans l'en-tête (header) de la requête. Retrieve cached items. get /services/cache/items Test it Authorizations Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Responses 200 Successfully retrieved cached items. application/json cURL JavaScript Python HTTP Copy curl -L \ --url 'https:/custom.v-tools.fr/v3/services/cache/items' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' 200 Copy { "data": [\ {}\ ], "code": 1 } Successfully retrieved cached items. Retrieve cached events. get /services/cache/events Test it Authorizations Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Responses 200 Successfully retrieved cached events. application/json cURL JavaScript Python HTTP Copy curl -L \ --url 'https:/custom.v-tools.fr/v3/services/cache/events' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' 200 Copy { "data": [\ {}\ ], "code": 1 } Successfully retrieved cached events. * [GET/services/cache/items](#services-cache-items) * [GET/services/cache/events](#services-cache-events) --- # Stripe | V-TOOLS API [PreviousAbonnements](/restful-api/restful-api-v3/abonnements) [NextWebsocket](/restful-api/restful-api-v3/websocket) Last updated 7 months ago Stripe vous permet de créer des produits puis d’y attacher des prix. Les prix contiennent les informations relatives aux modalités de paiement, notamment le cycle de facturation et le montant. [](#creer-un-abonnement) 🎍 Créer un abonnement ---------------------------------------------------- La création d'un abonnement compatible avec l'API requiert le suivi des étapes suivantes : 1. **Créer un nouveau produit.** La création du produit vous est propre ; customisez le produit comme vous le souhaitez, cela n'aura aucune incidence sur le comportement ou la compatibilité avec l'API. 2. **Mettre un prix.** Avant de valider votre produit, vous devez y mettre un prix. Pour simuler un abonnement, cochez le prix "récurrent" avec votre cycle de facturation. 3. **Insérer une clé de recherche.** La clé de recherche est un élément important qui va permettre d'identifier ce prix distinctement. Rendez-vous sur "Afficher plus d'options", puis en bas de page, vous pourrez entrer une clé de recherche. Une fois l'abonnement créé, demandez à un administrateur de vous l'activer. Le support pour l'activation des abonnements et leurs modifications indépendantes n'est pas encore disponible. [](#recuperer-les-produits) 🎁 Récupérer les produits ---------------------------------------------------------- Pour procéder à la récupération de la liste de tous les produits disponibles et convertibles en abonnements à la vente : Cette route ne nécessite pas de `Authorization` dans l'en-tête (header). [](#sabonner) 🎟️ S'abonner -------------------------------- Pour vous abonner à un produit, vous aurez besoin de sa clé de recherche ; vous recevrez alors un lien de paiement qui s'occupera des informations de paiement, puis redirigera vers un lien défini plus tôt. Pour procéder à l'abonnement : [](#recuperer-labonnement) 🎠 Récupérer l'abonnement --------------------------------------------------------- Une fois abonné, il est possible de récupérer les informations relatives à l'abonnement de l'utilisateur. Pour procéder à la récupération : * * * N'oubliez pas de spécifier le `X-Server-Key` & `Authorization` dans l'en-tête (header) de la requête. Retrieve available subscription products. get /store/subscription/products Test it Authorizations Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Responses 200 Successfully retrieved subscription products. application/json cURL JavaScript Python HTTP Copy curl -L \ --url 'https:/custom.v-tools.fr/v3/store/subscription/products' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' 200 Copy { "data": [\ {\ "product_name": "Sniper Monthly",\ "metadata": "sniper-y",\ "available_stock": 1\ }\ ], "code": 1 } Successfully retrieved subscription products. Initiate the subscription checkout process. get /store/subscription/checkout Test it Authorizations Query parameters lookupstringrequired Example: `performance-m` Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Responses 200 Successfully initiated subscription checkout. application/json cURL JavaScript Python HTTP Copy curl -L \ --url 'https:/custom.v-tools.fr/v3/store/subscription/checkout?lookup=performance-m' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' 200 Copy { "data": "https://checkout.stripe.com/c/pay/...", "code": 1 } Successfully initiated subscription checkout. Retrieve the subscription details for the authenticated user. get /store/subscription Test it Authorizations Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Responses 200 Successfully retrieved user subscription details. application/json cURL JavaScript Python HTTP Copy curl -L \ --url 'https:/custom.v-tools.fr/v3/store/subscription' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' 200 Copy { "data": { "client_oid": "65fec4c6b39b4562d777f08b", "name": "Sniper", "customer": "cus_abc1263def84", "customer_portal": "https://billing.stripe.com/p/login/...?prefilled_email=support@v-tools.fr", "created_at": "2024-06-12T06:53:06.673Z", "expires_at": "2024-06-12T06:53:06.673Z" }, "code": 1 } Successfully retrieved user subscription details. * [🎍 Créer un abonnement](#creer-un-abonnement) * [🎁 Récupérer les produits](#recuperer-les-produits) * [GET/store/subscription/products](#store-subscription-products) * [🎟️ S'abonner](#sabonner) * [GET/store/subscription/checkout](#store-subscription-checkout) * [🎠 Récupérer l'abonnement](#recuperer-labonnement) * [GET/store/subscription](#store-subscription) --- # Multicompte | V-TOOLS API [PreviousAuthentification Vinted](/restful-api/restful-api-v3/vinted/authentification-vinted) [NextTransactions](/restful-api/restful-api-v3/vinted/transactions) Last updated 7 months ago Comme dit plus tôt, nous proposons un support multicompte Vinted, ce qui bouleverse pas mal de choses et impose parfois un certain type d'intégration. Nous avons donc mis en place des routes pour vous aider à ne pas perdre le fil avec tous ces comptes. [](#gestionnaire-de-comptes-vinted) 🧟‍♀️ Gestionnaire de comptes Vinted ----------------------------------------------------------------------------- L'_account manager_ répertorie l'ensemble de vos comptes Vinted de manière minimaliste. Il possède également une version _extended_ qui vous donne l'ensemble des informations sur les comptes. Utilisez-le selon vos besoins. * * * N'oubliez pas de spécifier le `X-Server-Key` & `Authorization` dans l'en-tête (header) de la requête. Retrieve basic account management information for the authenticated user. get /account/manage Test it Authorizations Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Responses 200 Successfully retrieved basic account management information. application/json cURL JavaScript Python HTTP Copy curl -L \ --url 'https:/custom.v-tools.fr/v3/account/manage' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' 200 Copy { "data": { "client_oid": "65fec4c6b39b4562d777f08b", "discord_oid": "000000000000000000000000", "configurations": [\ {\ "oid": "65fec4c6b39b4562d777f08c",\ "name": "vinted123",\ "selected": true\ }\ ] }, "code": 1 } Successfully retrieved basic account management information. Retrieve extended account management information for the authenticated user. get /account/manage/extended Test it Authorizations Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Responses 200 Successfully retrieved extended account management information. application/json cURL JavaScript Python HTTP Copy curl -L \ --url 'https:/custom.v-tools.fr/v3/account/manage/extended' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' 200 Copy { "data": { "client_oid": "65fec4c6b39b4562d777f08b", "discord": {}, "configurations": [\ {\ "data": {\ "oid": "65fec4c6b39b4562d777f08c",\ "user_id": 123456789,\ "name": "Compte Vinted",\ "avatar_url": "https://images.vinted.fr/",\ "position": {\ "country": "FR",\ "country_code": 16,\ "latitude": 12.123456789,\ "longitude": 1.123456789,\ "address": "26000 Valence, France"\ },\ "relays": [\ {\ "name": "BAR TABAC (MONDIAL RELAY)",\ "package_type_id": 10,\ "pickup_point_code": "1035382",\ "external_code": "6193P",\ "carrier_id": 27\ }\ ],\ "card": {\ "id": 123456789,\ "owner_name": "M. Support V-tools",\ "brand": "Mastercard",\ "last_4": "1234",\ "expiration_year": 2024,\ "expiration_month": 9\ },\ "last_refresh_at": "2024-06-12T06:53:06.673Z",\ "updated_at": "2024-06-12T06:53:06.673Z"\ },\ "selected": true\ }\ ] }, "code": 1 } Successfully retrieved extended account management information. * [🧟‍♀️ Gestionnaire de comptes Vinted](#gestionnaire-de-comptes-vinted) * [GET/account/manage](#account-manage) * [GET/account/manage/extended](#account-manage-extended) --- # Transactions | V-TOOLS API [PreviousMulticompte](/restful-api/restful-api-v3/vinted/multicompte) [NextVinted CRM](/restful-api/restful-api-v3/vinted/vinted-crm) Last updated 7 months ago Maintenant que vous savez comment connecter un compte Vinted, il est temps d'apprendre à acheter avec les différents comptes. Il existe deux types d'achats : l'achat en un clic (_autobuy_) et l'achat automatique (_autocop_). L'_autocop_ est une version réduite du **V-tools Sniper** ; c'est un deuxième niveau de priorité sur les articles voulus par les membres Sniper. L'_autocop_ achètera donc automatiquement les articles non voulus par les membres Sniper ainsi que les _reposts_. [](#achat-en-un-clic) 🪝 Achat en un clic ---------------------------------------------- L'_achat en un clic_ est une fonctionnalité indispensable pour tout utilisateur lambda, donc une implémentation rigoureuse est nécessaire. Pour procéder à l'achat d'un article, munissez-vous de l'identifiant du compte Vinted avec lequel vous voulez opérer, puis : [](#achat-automatique) 🤖 Achat automatique ------------------------------------------------ Comme son nom l'indique, l'_achat automatique_ est automatique et ne demande aucune action réelle, à l'exception de la mise en place de l'outil. La communication du service externe se fera via websocket. #### [](#des-activer-loutil) (Des)Activer l'outil #### [](#selectionner-le-compte-acheteur) Sélectionner le compte acheteur #### [](#recuperer-la-configuration) Récupérer la configuration [](#annuler-une-commande) 🚫 Annuler une commande ------------------------------------------------------ Parfois, lorsqu'on achète, on ne fait pas trop attention et on finit par regretter, donc on peut demander l'annulation d'une commande sur Vinted. Pour procéder à la demande : C'est uniquement une demande d'annulation, la décision finale revient au vendeur de décider s'il veut ou non annuler la commande. * * * N'oubliez pas de spécifier le `X-Server-Key` & `Authorization` dans l'en-tête (header) de la requête. Initiate a transaction for a specified item. post /base/transaction Test it Authorizations Query parameters item\_idintegerrequired The ID of the item for which the transaction is initiated. Example: `123456789` Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Responses 200 Success response indicating transaction success. application/json cURL JavaScript Python HTTP Copy curl -L \ --request POST \ --url 'https:/custom.v-tools.fr/v3/base/transaction?item_id=123456789' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' 200 Copy { "data": { "message": "https://3ds.vinted.fr/", "transaction_id": 123456789, "buyer_id": 123456789 }, "code": 1 } Success response indicating transaction success. Activate autocop for the authenticated user. post /services/autocop/status Test it Authorizations Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Responses 204 Autocop successfully activated. No content is returned. cURL JavaScript Python HTTP Copy curl -L \ --request POST \ --url 'https:/custom.v-tools.fr/v3/services/autocop/status' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' 204 No body Autocop successfully activated. No content is returned. Deactivate autocop for the authenticated user. delete /services/autocop/status Test it Authorizations Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Responses 204 Autocop successfully deactivated. No content is returned. cURL JavaScript Python HTTP Copy curl -L \ --request DELETE \ --url 'https:/custom.v-tools.fr/v3/services/autocop/status' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' 204 No body Autocop successfully deactivated. No content is returned. Select a specific account for autocop using its ID. post /services/autocop/_{oid}_/select Test it Authorizations Path parameters oidstringrequired Example: `65fec4c6b39b4562d777f08c` Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Responses 204 Account successfully selected for autocop. No content is returned. cURL JavaScript Python HTTP Copy curl -L \ --request POST \ --url 'https:/custom.v-tools.fr/v3/services/autocop/{oid}/select' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' 204 No body Account successfully selected for autocop. No content is returned. Retrieve the current autocop settings for the authenticated user. get /services/autocop Test it Authorizations Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Responses 200 Successfully retrieved autocop settings. application/json cURL JavaScript Python HTTP Copy curl -L \ --url 'https:/custom.v-tools.fr/v3/services/autocop' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' 200 Copy { "data": { "client_oid": "65fec4c6b39b4562d777f08b", "selected_oid": "65fec4c6b39b4562d777f08c", "boosted": false, "enabled": false, "expires_at": "2024-06-12T06:53:06.673Z" }, "code": 1 } Successfully retrieved autocop settings. Cancel a transaction. post /base/transaction/cancel Test it Authorizations Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Body transaction\_idinteger Example: `123456789` buyer\_idinteger Example: `123456789` reasonstring Example: `Beaucoup trop cher!` Responses 204 Empty response indicating successful transaction cancellation. cURL JavaScript Python HTTP Copy curl -L \ --request POST \ --url 'https:/custom.v-tools.fr/v3/base/transaction/cancel' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' \ --header 'Content-Type: application/json' \ --data '{"transaction_id":123456789,"buyer_id":123456789,"reason":"Beaucoup trop cher!"}' 204 No body Empty response indicating successful transaction cancellation. * [🪝 Achat en un clic](#achat-en-un-clic) * [POST/base/transaction](#base-transaction) * [🤖 Achat automatique](#achat-automatique) * [POST/services/autocop/status](#services-autocop-status) * [DELETE/services/autocop/status](#services-autocop-status-1) * [POST/services/autocop/{oid}/select](#services-autocop-oid-select) * [GET/services/autocop](#services-autocop) * [🚫 Annuler une commande](#annuler-une-commande) * [POST/base/transaction/cancel](#base-transaction-cancel) --- # Vinted CRM | V-TOOLS API [PreviousTransactions](/restful-api/restful-api-v3/vinted/transactions) [NextAbonnements](/restful-api/restful-api-v3/abonnements) Last updated 7 months ago Le Vinted CRM est un "chapitre" très important puisqu'il donne tous les outils nécessaires pour satisfaire la vie d'un revendeur. Nous nous baserons principalement sur la récupération de toutes sortes d'articles en lien avec l'utilisateur ainsi que sur quelques chiffres importants. Le Vinted CRM a été conçu pour fonctionner en synergie avec le [Multicompte](/restful-api/restful-api-v3/vinted/multicompte) , ce qui impose une certaine intégration à ne pas négliger. [](#recuperer-les-transactions) 🐡 Récupérer les transactions ------------------------------------------------------------------ La récupération des transactions est un point crucial qui permet à l'utilisateur de visualiser le nombre de transactions effectuées depuis la création de son compte Vinted. Pour procéder à la récupération : Lorsque les transactions sont trop anciennes, Vinted décide malheureusement de supprimer certaines données qu'il juge désormais non pertinentes, ce qui fait que parfois une grande partie des données est vide. [](#recuperer-les-articles-en-vente) 🦀 Récupérer les articles en vente ---------------------------------------------------------------------------- La récupération de l'ensemble des articles propres à l'utilisateur est un point pertinent qui lui permet de visualiser son stock, y compris les articles vendus et invendus. Pour procéder à la récupération : [](#recuperer-les-details) 🪼 Récupérer les détails -------------------------------------------------------- Ce que l'on entend par détails de l'utilisateur concerne principalement sa visibilité face aux autres utilisateurs et sa réputation au sein de Vinted. Pour procéder à la récupération : [](#recuperer-le-porte-monnaie) 🐙 Récupérer le porte-monnaie ------------------------------------------------------------------ Le porte-monnaie peut sembler négligeable, mais il peut être extrêmement utile pour se vanter ou encore savoir s'il faut arrêter de revendre pour aujourd'hui. Pour procéder à la récupération : [](#recuperer-les-statistiques) 🐚 Récupérer les statistiques ------------------------------------------------------------------ C'est clairement le cœur du Vinted CRM de connaître notre MRR (Monthly Recurring Revenue), nos bénéfices ou encore notre chiffre d'affaires sur une période donnée. Il possède aussi une version étendue avec plus de détails sur les marques les plus achetées. Pour procéder à la récupération : [](#recuperer-les-succes) 🪸 Récupérer les succès ------------------------------------------------------ Lorsqu'on passe beaucoup de temps à acheter, on en perd la notion. Il est donc crucial de savoir ce qu'on a acheté et à quel moment. Pour procéder à la récupération : * * * Le Vinted CRM reste en développement actif, donc des modifications sont à venir. N'oubliez pas de spécifier le `X-Server-Key` & `Authorization` dans l'en-tête (header) de la requête. Retrieve orders associated with the authenticated user's account. get /account/orders Test it Authorizations Query parameters accounts\[\]string\[\]required Show child attributes Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Responses 200 Successfully retrieved orders associated with the account. application/json cURL JavaScript Python HTTP Copy curl -L \ --url 'https:/custom.v-tools.fr/v3/account/orders?accounts%5B%5D=65fec4c6b39b4562d777f08c' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' 200 Copy { "data": [\ {\ "oid": "65fec4c6b39b4562d777f08c",\ "name": "vinted123",\ "data": {\ "purchases": [\ {\ "id": 123456789,\ "title": "Article Sympa",\ "size": "M",\ "brand": "Ralph Lauren",\ "currency": "EUR",\ "favourite_count": 0,\ "view_count": 2,\ "catalog": "Chemises a rayures",\ "color": {\ "name": "Blanc",\ "hex": "#FFFFFF"\ },\ "user": {\ "id": 123456789,\ "login": "Compte Vinted",\ "feedback_reputation": 0.8,\ "positive_feedback_count": 10,\ "neutral_feedback_count": 3,\ "country_id": 16,\ "country_code": "FR",\ "photo": {\ "id": 123456789,\ "url": "https://images.vinted.net/",\ "is_main": true\ }\ },\ "photos": [\ {\ "id": 123456789,\ "url": "https://images.vinted.net/",\ "is_main": true\ }\ ],\ "price": 10.3,\ "taxes": 2.3,\ "state": "Tres bon etat",\ "status": 230,\ "shipment_status": 300,\ "is_sold": true,\ "extra": {\ "buyer": 123456789,\ "transaction": 123456789\ },\ "created_at": "2024-06-12T06:53:06.673Z",\ "updated_at": "2024-06-12T06:53:06.673Z",\ "debit_processed_at": "2024-06-12T06:53:06.673Z"\ }\ ],\ "purchases_count": 1,\ "sales": [\ {\ "id": 123456789,\ "title": "Article Sympa",\ "size": "M",\ "brand": "Ralph Lauren",\ "currency": "EUR",\ "favourite_count": 0,\ "view_count": 2,\ "catalog": "Chemises a rayures",\ "color": {\ "name": "Blanc",\ "hex": "#FFFFFF"\ },\ "user": {\ "id": 123456789,\ "login": "Compte Vinted",\ "feedback_reputation": 0.8,\ "positive_feedback_count": 10,\ "neutral_feedback_count": 3,\ "country_id": 16,\ "country_code": "FR",\ "photo": {\ "id": 123456789,\ "url": "https://images.vinted.net/",\ "is_main": true\ }\ },\ "photos": [\ {\ "id": 123456789,\ "url": "https://images.vinted.net/",\ "is_main": true\ }\ ],\ "price": 10.3,\ "taxes": 2.3,\ "state": "Tres bon etat",\ "status": 230,\ "shipment_status": 300,\ "is_sold": true,\ "extra": {\ "buyer": 123456789,\ "transaction": 123456789\ },\ "created_at": "2024-06-12T06:53:06.673Z",\ "updated_at": "2024-06-12T06:53:06.673Z",\ "debit_processed_at": "2024-06-12T06:53:06.673Z"\ }\ ],\ "sales_count": 1,\ "refunds": [\ {\ "id": 123456789,\ "title": "Article Sympa",\ "size": "M",\ "brand": "Ralph Lauren",\ "currency": "EUR",\ "favourite_count": 0,\ "view_count": 2,\ "catalog": "Chemises a rayures",\ "color": {\ "name": "Blanc",\ "hex": "#FFFFFF"\ },\ "user": {\ "id": 123456789,\ "login": "Compte Vinted",\ "feedback_reputation": 0.8,\ "positive_feedback_count": 10,\ "neutral_feedback_count": 3,\ "country_id": 16,\ "country_code": "FR",\ "photo": {\ "id": 123456789,\ "url": "https://images.vinted.net/",\ "is_main": true\ }\ },\ "photos": [\ {\ "id": 123456789,\ "url": "https://images.vinted.net/",\ "is_main": true\ }\ ],\ "price": 10.3,\ "taxes": 2.3,\ "state": "Tres bon etat",\ "status": 230,\ "shipment_status": 300,\ "is_sold": true,\ "extra": {\ "buyer": 123456789,\ "transaction": 123456789\ },\ "created_at": "2024-06-12T06:53:06.673Z",\ "updated_at": "2024-06-12T06:53:06.673Z",\ "debit_processed_at": "2024-06-12T06:53:06.673Z"\ }\ ],\ "refunds_count": 1\ }\ }\ ], "code": 1 } Successfully retrieved orders associated with the account. Retrieve items associated with the authenticated user's account. get /account/items Test it Authorizations Query parameters accounts\[\]string\[\]required Show child attributes Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Responses 200 Successfully retrieved items associated with the account. application/json cURL JavaScript Python HTTP Copy curl -L \ --url 'https:/custom.v-tools.fr/v3/account/items?accounts%5B%5D=65fec4c6b39b4562d777f08c' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' 200 Copy { "data": [\ {\ "oid": "65fec4c6b39b4562d777f08c",\ "name": "vinted123",\ "data": {\ "items": [\ {\ "id": 123456789,\ "title": "Article Sympa",\ "size": "M",\ "brand": "Ralph Lauren",\ "currency": "EUR",\ "favourite_count": 0,\ "view_count": 2,\ "catalog": "Chemises a rayures",\ "color": {\ "name": "Blanc",\ "hex": "#FFFFFF"\ },\ "user": {\ "id": 123456789,\ "login": "Compte Vinted",\ "feedback_reputation": 0.8,\ "positive_feedback_count": 10,\ "neutral_feedback_count": 3,\ "country_id": 16,\ "country_code": "FR",\ "photo": {\ "id": 123456789,\ "url": "https://images.vinted.net/",\ "is_main": true\ }\ },\ "photos": [\ {\ "id": 123456789,\ "url": "https://images.vinted.net/",\ "is_main": true\ }\ ],\ "price": 10.3,\ "taxes": 2.3,\ "state": "Tres bon etat",\ "status": 230,\ "shipment_status": 300,\ "is_sold": true,\ "extra": {\ "buyer": 123456789,\ "transaction": 123456789\ },\ "created_at": "2024-06-12T06:53:06.673Z",\ "updated_at": "2024-06-12T06:53:06.673Z",\ "debit_processed_at": "2024-06-12T06:53:06.673Z"\ }\ ],\ "drafts": [\ {\ "id": 123456789,\ "title": "Article Sympa",\ "size": "M",\ "brand": "Ralph Lauren",\ "currency": "EUR",\ "favourite_count": 0,\ "view_count": 2,\ "catalog": "Chemises a rayures",\ "color": {\ "name": "Blanc",\ "hex": "#FFFFFF"\ },\ "user": {\ "id": 123456789,\ "login": "Compte Vinted",\ "feedback_reputation": 0.8,\ "positive_feedback_count": 10,\ "neutral_feedback_count": 3,\ "country_id": 16,\ "country_code": "FR",\ "photo": {\ "id": 123456789,\ "url": "https://images.vinted.net/",\ "is_main": true\ }\ },\ "photos": [\ {\ "id": 123456789,\ "url": "https://images.vinted.net/",\ "is_main": true\ }\ ],\ "price": 10.3,\ "taxes": 2.3,\ "state": "Tres bon etat",\ "status": 230,\ "shipment_status": 300,\ "is_sold": true,\ "extra": {\ "buyer": 123456789,\ "transaction": 123456789\ },\ "created_at": "2024-06-12T06:53:06.673Z",\ "updated_at": "2024-06-12T06:53:06.673Z",\ "debit_processed_at": "2024-06-12T06:53:06.673Z"\ }\ ]\ }\ }\ ], "code": 1 } Successfully retrieved items associated with the account. Retrieve details of the authenticated user's account. get /account/details Test it Authorizations Query parameters accounts\[\]string\[\]required Show child attributes Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Responses 200 Successfully retrieved account details. application/json cURL JavaScript Python HTTP Copy curl -L \ --url 'https:/custom.v-tools.fr/v3/account/details?accounts%5B%5D=65fec4c6b39b4562d777f08c' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' 200 Copy { "data": [\ {\ "oid": "65fec4c6b39b4562d777f08c",\ "name": "vinted123",\ "data": {\ "id": 123456789,\ "username": "vinted123",\ "email": "support@vinted.fr",\ "avatar_url": "https://images.v-tools.fr/image.png",\ "favourites_count": 100,\ "views_count": 1000,\ "feedback_reputation": 0.8,\ "feedback_count": 10,\ "followers_count": 10,\ "following_count": 10,\ "city": "Montpellier",\ "country": "France",\ "last_logged_on": "2024-06-12T10:31:20+02:00"\ }\ }\ ], "code": 1 } Successfully retrieved account details. Retrieve the balance associated with the authenticated user's account. get /account/balance Test it Authorizations Query parameters accounts\[\]string\[\]required Show child attributes Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Responses 200 Successfully retrieved account balance. application/json cURL JavaScript Python HTTP Copy curl -L \ --url 'https:/custom.v-tools.fr/v3/account/balance?accounts%5B%5D=65fec4c6b39b4562d777f08c' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' 200 Copy { "data": [\ {\ "oid": "65fec4c6b39b4562d777f08c",\ "name": "vinted123",\ "data": {\ "available_amount": "1000.87",\ "escrow_amount": "100.3",\ "currency": "EUR"\ }\ }\ ], "code": 1 } Successfully retrieved account balance. Retrieve statistics related to the authenticated user's account. get /account/statistics Test it Authorizations Query parameters accounts\[\]string\[\]required Show child attributes Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Responses 200 Successfully retrieved account statistics. application/json cURL JavaScript Python HTTP Copy curl -L \ --url 'https:/custom.v-tools.fr/v3/account/statistics?accounts%5B%5D=65fec4c6b39b4562d777f08c' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' 200 Copy { "data": [\ {\ "oid": "65fec4c6b39b4562d777f08c",\ "name": "vinted123",\ "data": {\ "events": [\ {\ "amount": 1000.87,\ "items_count": 1,\ "created_at": "2024-06-02T00:00:00Z"\ }\ ],\ "count": 1\ }\ }\ ], "code": 1 } Successfully retrieved account statistics. Retrieve extended statistics related to the authenticated user's account. get /account/statistics/extended Test it Authorizations Query parameters accounts\[\]string\[\]required Show child attributes Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Responses 200 Successfully retrieved extended account statistics. application/json cURL JavaScript Python HTTP Copy curl -L \ --url 'https:/custom.v-tools.fr/v3/account/statistics/extended?accounts%5B%5D=65fec4c6b39b4562d777f08c' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' 200 Copy { "data": [\ {\ "oid": "65fec4c6b39b4562d777f08c",\ "name": "vinted123",\ "data": {\ "sales_without_tax": 2001.32,\ "sales_with_tax": 2031.98,\ "purchases_without_tax": 2001.32,\ "purchases_with_tax": 2031.98,\ "brand_statistics": [\ {\ "title": "Ralph Lauren",\ "value_without_tax": 1234.12,\ "value_with_tax": 1274.32,\ "sales_count": 10,\ "ratio": 92.34\ }\ ],\ "views_count": 1000,\ "sales_count": 1,\ "purchases_count": 1\ }\ }\ ], "code": 1 } Successfully retrieved extended account statistics. Retrieve success records associated with the authenticated user's account. get /account/successes Test it Authorizations Query parameters accounts\[\]string\[\]required Show child attributes Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Responses 200 Successfully retrieved success records associated with the account. application/json cURL JavaScript Python HTTP Copy curl -L \ --url 'https:/custom.v-tools.fr/v3/account/successes?accounts%5B%5D=65fec4c6b39b4562d777f08c' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' 200 Copy { "data": [\ {\ "oid": "65fec4c6b39b4562d777f08c",\ "name": "vinted123",\ "data": {\ "products": [\ {\ "id": 123456789,\ "title": "Article Sympa",\ "size": "M",\ "brand": "Ralph Lauren",\ "currency": "EUR",\ "favourite_count": 0,\ "view_count": 2,\ "catalog": "Chemises a rayures",\ "color": {\ "name": "Blanc",\ "hex": "#FFFFFF"\ },\ "user": {\ "id": 123456789,\ "login": "Compte Vinted",\ "feedback_reputation": 0.8,\ "positive_feedback_count": 10,\ "neutral_feedback_count": 3,\ "country_id": 16,\ "country_code": "FR",\ "photo": {\ "id": 123456789,\ "url": "https://images.vinted.net/",\ "is_main": true\ }\ },\ "photos": [\ {\ "id": 123456789,\ "url": "https://images.vinted.net/",\ "is_main": true\ }\ ],\ "price": 10.3,\ "taxes": 2.3,\ "state": "Tres bon etat",\ "status": 230,\ "shipment_status": 300,\ "is_sold": true,\ "extra": {\ "buyer": 123456789,\ "transaction": 123456789\ },\ "created_at": "2024-06-12T06:53:06.673Z",\ "updated_at": "2024-06-12T06:53:06.673Z",\ "debit_processed_at": "2024-06-12T06:53:06.673Z"\ }\ ],\ "count": 1\ }\ }\ ], "code": 1 } Successfully retrieved success records associated with the account. * [🐡 Récupérer les transactions](#recuperer-les-transactions) * [GET/account/orders](#account-orders) * [🦀 Récupérer les articles en vente](#recuperer-les-articles-en-vente) * [GET/account/items](#account-items) * [🪼 Récupérer les détails](#recuperer-les-details) * [GET/account/details](#account-details) * [🐙 Récupérer le porte-monnaie](#recuperer-le-porte-monnaie) * [GET/account/balance](#account-balance) * [🐚 Récupérer les statistiques](#recuperer-les-statistiques) * [GET/account/statistics](#account-statistics) * [GET/account/statistics/extended](#account-statistics-extended) * [🪸 Récupérer les succès](#recuperer-les-succes) * [GET/account/successes](#account-successes) --- # Filtres | V-TOOLS API [PreviousWebsocket](/restful-api/restful-api-v3/websocket) [NextCache](/restful-api/restful-api-v3/cache) Last updated 6 months ago La seule façon d'orienter et de modifier le flux d'articles envoyés par le websocket est via la création, la modification et la suppression de filtres. Les filtres permettent ainsi de créer des chemins entre vous et le flux principal d'articles. [](#recuperer-ses-filtres) 🥇 Récupérer ses filtres -------------------------------------------------------- La récupération des filtres utilise la pagination. La limite maximale du nombre de filtres à récupérer à la fois est de 100. Vous devrez donc utiliser le paramètre `after` pour vous déplacer dans la liste. [](#creer-un-nouveau-filtre) 🪩 Créer un nouveau filtre ------------------------------------------------------------ La création d'un nouveau filtre est flexible, car elle vous permet soit de renseigner champ par champ, soit d'utiliser directement un lien Vinted contenant toutes les informations basiques relatives au filtre. Pour procéder à la création : Le champ `website_metadata.boosted` se réfère a l'[Autocop](/restful-api/restful-api-v3/vinted/transactions#achat-automatique) . Vous devez posséder les permissions nécessaires avant de pouvoir cocher cette case. [](#modifier-un-filtre-existant) 🧸 Modifier un filtre existant -------------------------------------------------------------------- La modification d'un filtre préexistant est extrêmement similaire à la création d'un tout nouveau. La seule différence réside dans le fait de devoir renseigner l'identifiant du filtre que vous désirez modifier. Pour procéder à la modification : [](#supprimer-un-filtre-existant) 🪅 Supprimer un filtre existant ---------------------------------------------------------------------- La suppression d'un filtre nécessite uniquement l'identifiant du ou des filtres concernés. Pour procéder à la suppression : * * * #### [](#quelques-routes-utilitaires) Quelques routes utilitaires Ces routes facilitent la création et la modification des filtres, fournissant un contexte supplémentaire et servant de support en ce qui concerne tous les identifiants à renseigner et leur compatibilité mutuelle. * * * N'oubliez pas de spécifier le `X-Server-Key` & `Authorization` dans l'en-tête (header) de la requête. Retrieve filters associated with the authenticated user's account. get /services/filters Test it Authorizations Query parameters group\_namestring The name of the filter group to retrieve. Optional parameter to filter results by a specific group name. Example: `Chaussures de marque` limitinteger The maximum number of filters to retrieve. Optional parameter to limit the number of returned results. Example: `100` afterstring A cursor for pagination. Optional parameter to retrieve filters created after the specified cursor. Example: `65fec4c6b39b4562d777f080` Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Responses 200 Successfully retrieved filters associated with the account. application/json cURL JavaScript Python HTTP Copy curl -L \ --url 'https:/custom.v-tools.fr/v3/services/filters' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' 200 Copy { "data": [\ {\ "oid": "65fec4c6b39b4562d777f08w",\ "name": "Filtre Sympa",\ "search_text": "chemise ralph lauren",\ "price_from": 1.2,\ "price_to": 20,\ "catalogs": [\ {\ "id": 1231,\ "data": "Chaussures"\ }\ ],\ "brands": [\ {\ "id": 14,\ "data": "adidas"\ }\ ],\ "sizes": [\ {\ "id": 777,\ "data": "38,5"\ }\ ],\ "statuses": [\ {\ "id": 6,\ "data": "Neuf avec étiquette"\ }\ ],\ "colors": [\ {\ "id": 12,\ "data": "Blanc"\ }\ ],\ "countries": [\ {\ "id": 13,\ "data": "Royaume-Uni"\ }\ ],\ "whitelist": [\ {\ "id": 192680997,\ "data": "mathieuuporte"\ }\ ],\ "blacklist": [],\ "hide_repost": false,\ "url": "https://www.vinted.co.uk/catalog?catalog[]=1231&material_ids[]=149&size_ids[]=777&size_ids[]=778&size_ids[]=779&brand_ids[]=14&brand_ids[]=535&status_ids[]=6&color_ids[]=12&color_ids[]=2&price_from=0¤cy=EUR&price_to=40",\ "website_metadata": {\ "client_oid": "65fec4c6b39b4562d777f08b",\ "group_name": "Chaussures de marque",\ "group_color": "#f1c40f",\ "boosted": true\ },\ "discord_metadata": {\ "guild_id": "123456789123",\ "channel": "123456789123",\ "boosted": true\ },\ "enabled": true,\ "updated_at": "2024-06-12T06:53:06.673Z",\ "created_at": "2024-06-12T06:53:06.673Z"\ }\ ], "code": 1 } Successfully retrieved filters associated with the account. Create new filters for the authenticated user's account. post /services/filters Test it Authorizations Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Body namestring Example: `Filtre Sympa` search\_textstring Example: `chemise ralph lauren` price\_fromnumber Example: `1.2` price\_tonumber Example: `20` catalog\_idsinteger\[\] Show child attributes brand\_idsinteger\[\] Show child attributes size\_idsinteger\[\] Show child attributes status\_idsinteger\[\] Show child attributes color\_idsinteger country\_codestring Example: `uk` whitelist\_idsinteger blacklist\_idsinteger urlstring Example: `https://www.vinted.fr/catalog?` website\_metadatanullable object Show child attributes discord\_metadatanullable object Show child attributes Responses 201 Successfully created filters. application/json cURL JavaScript Python HTTP Copy curl -L \ --request POST \ --url 'https:/custom.v-tools.fr/v3/services/filters' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' \ --header 'Content-Type: application/json' \ --data '[{"name":"Filtre Sympa","search_text":"chemise ralph lauren","price_from":1.2,"price_to":20,"catalog_ids":[1231],"brand_ids":[14],"size_ids":[777],"status_ids":[6],"country_code":"uk","url":"https://www.vinted.fr/catalog?","website_metadata":{"group_name":"Chaussures de marque","group_color":"#f1c40f","boosted":true},"discord_metadata":{"guild_id":"123456789123","channel":"123456789123","boosted":true}}]' 201 Copy { "data": [\ {\ "oid": "65fec4c6b39b4562d777f08w",\ "name": "Filtre Sympa",\ "search_text": "chemise ralph lauren",\ "price_from": 1.2,\ "price_to": 20,\ "catalogs": [\ {\ "id": 1231,\ "data": "Chaussures"\ }\ ],\ "brands": [\ {\ "id": 14,\ "data": "adidas"\ }\ ],\ "sizes": [\ {\ "id": 777,\ "data": "38,5"\ }\ ],\ "statuses": [\ {\ "id": 6,\ "data": "Neuf avec étiquette"\ }\ ],\ "colors": [\ {\ "id": 12,\ "data": "Blanc"\ }\ ],\ "countries": [\ {\ "id": 13,\ "data": "Royaume-Uni"\ }\ ],\ "whitelist": [\ {\ "id": 192680997,\ "data": "mathieuuporte"\ }\ ],\ "blacklist": [],\ "hide_repost": false,\ "url": "https://www.vinted.co.uk/catalog?catalog[]=1231&material_ids[]=149&size_ids[]=777&size_ids[]=778&size_ids[]=779&brand_ids[]=14&brand_ids[]=535&status_ids[]=6&color_ids[]=12&color_ids[]=2&price_from=0¤cy=EUR&price_to=40",\ "website_metadata": {\ "client_oid": "65fec4c6b39b4562d777f08b",\ "group_name": "Chaussures de marque",\ "group_color": "#f1c40f",\ "boosted": true\ },\ "discord_metadata": {\ "guild_id": "123456789123",\ "channel": "123456789123",\ "boosted": true\ },\ "enabled": true,\ "updated_at": "2024-06-12T06:53:06.673Z",\ "created_at": "2024-06-12T06:53:06.673Z"\ }\ ], "code": 1 } Successfully created filters. Update filters associated with the authenticated user's account. put /services/filters Test it Authorizations Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Body oidstring Example: `65fec4c6b39b4562d777f08w` namestring Example: `Filtre Sympa` search\_textstring Example: `chemise ralph lauren` price\_fromnumber Example: `1.2` price\_tonumber Example: `20` catalog\_idsinteger\[\] Show child attributes brand\_idsinteger\[\] Show child attributes size\_idsinteger\[\] Show child attributes status\_idsinteger\[\] Show child attributes color\_idsinteger country\_codestring Example: `uk` whitelist\_idsinteger blacklist\_idsinteger urlstring Example: `https://www.vinted.fr/catalog?catalog[]=1231&material_ids[]=149&size_ids[]=777&size_ids[]=778&size_ids[]=779&brand_ids[]=14&brand_ids[]=535&status_ids[]=6&color_ids[]=12&color_ids[]=2&price_from=0¤cy=EUR&price_to=40` website\_metadatanullable object Show child attributes discord\_metadatanullable object Show child attributes Responses 200 Successfully updated filters. application/json cURL JavaScript Python HTTP Copy curl -L \ --request PUT \ --url 'https:/custom.v-tools.fr/v3/services/filters' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' \ --header 'Content-Type: application/json' \ --data '[{"oid":"65fec4c6b39b4562d777f08w","name":"Filtre Sympa","search_text":"chemise ralph lauren","price_from":1.2,"price_to":20,"catalog_ids":[1231],"brand_ids":[14],"size_ids":[777],"status_ids":[6],"country_code":"uk","url":"https://www.vinted.fr/catalog?catalog[]=1231&material_ids[]=149&size_ids[]=777&size_ids[]=778&size_ids[]=779&brand_ids[]=14&brand_ids[]=535&status_ids[]=6&color_ids[]=12&color_ids[]=2&price_from=0¤cy=EUR&price_to=40","website_metadata":{"group_name":"Chaussures de marque","group_color":"#f1c40f","boosted":true},"discord_metadata":{"guild_id":"123456789123","channel":"123456789123","boosted":true}}]' 200 Copy { "data": [\ {\ "oid": "65fec4c6b39b4562d777f08w",\ "name": "Filtre Sympa",\ "search_text": "chemise ralph lauren",\ "price_from": 1.2,\ "price_to": 20,\ "catalogs": [\ {\ "id": 1231,\ "data": "Chaussures"\ }\ ],\ "brands": [\ {\ "id": 14,\ "data": "adidas"\ }\ ],\ "sizes": [\ {\ "id": 777,\ "data": "38,5"\ }\ ],\ "statuses": [\ {\ "id": 6,\ "data": "Neuf avec étiquette"\ }\ ],\ "colors": [\ {\ "id": 12,\ "data": "Blanc"\ }\ ],\ "countries": [\ {\ "id": 13,\ "data": "Royaume-Uni"\ }\ ],\ "whitelist": [\ {\ "id": 192680997,\ "data": "mathieuuporte"\ }\ ],\ "blacklist": [],\ "hide_repost": false,\ "url": "https://www.vinted.co.uk/catalog?catalog[]=1231&material_ids[]=149&size_ids[]=777&size_ids[]=778&size_ids[]=779&brand_ids[]=14&brand_ids[]=535&status_ids[]=6&color_ids[]=12&color_ids[]=2&price_from=0¤cy=EUR&price_to=40",\ "website_metadata": {\ "client_oid": "65fec4c6b39b4562d777f08b",\ "group_name": "Chaussures de marque",\ "group_color": "#f1c40f",\ "boosted": true\ },\ "discord_metadata": {\ "guild_id": "123456789123",\ "channel": "123456789123",\ "boosted": true\ },\ "enabled": true,\ "updated_at": "2024-06-12T06:53:06.673Z",\ "created_at": "2024-06-12T06:53:06.673Z"\ }\ ], "code": 1 } Successfully updated filters. Delete filters associated with the authenticated user's account. delete /services/filters Test it Authorizations Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Responses 204 Successfully deleted filters. No content returned. cURL JavaScript Python HTTP Copy curl -L \ --request DELETE \ --url 'https:/custom.v-tools.fr/v3/services/filters' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' 204 No body Successfully deleted filters. No content returned. Retrieve a list of brands based on a keyword search. get /services/filters/brands Test it Authorizations Query parameters searchstring The keyword to search for matching brands. Example: `Zar` Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Responses 200 Successfully retrieved the list of brands matching the search keyword. application/json cURL JavaScript Python HTTP Copy curl -L \ --url 'https:/custom.v-tools.fr/v3/services/filters/brands' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' 200 Copy { "data": [\ {\ "id": 12,\ "title": "Zara"\ }\ ], "code": 0 } Successfully retrieved the list of brands matching the search keyword. Retrieve details of a specific brand by its ID. get /services/filters/brands/_{id}_ Test it Authorizations Path parameters idstringrequired The ID of the brand to retrieve. Example: `12` Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Responses 200 Successfully retrieved the brand details by ID. application/json cURL JavaScript Python HTTP Copy curl -L \ --url 'https:/custom.v-tools.fr/v3/services/filters/brands/{id}' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' 200 Copy { "data": { "id": 12, "title": "Zara", "item_count": 63596100, "path": "/brand/12-zara" }, "code": 0 } Successfully retrieved the brand details by ID. Retrieve details of a specific catalog and its subcatalogs. If no ID is provided, the top-level catalogs are retrieved by default. get /services/filters/catalogs/_{id}_ Test it Authorizations Path parameters idstringrequired The ID of the catalog to retrieve. If not provided, retrieves top-level catalogs by default. Example: `1904` Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Responses 200 Successfully retrieved the catalog details. application/json cURL JavaScript Python HTTP Copy curl -L \ --url 'https:/custom.v-tools.fr/v3/services/filters/catalogs/{id}' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' 200 Copy { "data": { "id": 1904, "title": "Femmes", "code": "WOMEN_ROOT", "size_group_id": 4, "size_group_ids": [\ 4,\ 53,\ 30,\ 72,\ 7,\ 60,\ 64,\ 61,\ 62,\ 52\ ], "catalogs": [\ {\ "id": 1904,\ "title": "Femmes",\ "code": "WOMEN_ROOT",\ "size_group_id": 4,\ "size_group_ids": [\ 4,\ 53,\ 30,\ 72,\ 7,\ 60,\ 64,\ 61,\ 62,\ 52\ ],\ "catalogs": null\ }\ ] }, "code": 0 } Successfully retrieved the catalog details. Retrieve details of a specific size by its ID. get /services/filters/sizes/_{id}_ Test it Authorizations Path parameters idstringrequired The ID of the size to retrieve. Example: `7` Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Responses 200 Successfully retrieved the size details by ID. application/json cURL JavaScript Python HTTP Copy curl -L \ --url 'https:/custom.v-tools.fr/v3/services/filters/sizes/{id}' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' 200 Copy { "data": { "id": 7, "title": "XXL / 44 / 16", "type": "default", "options": [] }, "code": 0 } Successfully retrieved the size details by ID. Retrieve details of a specific size group by its ID. get /services/filters/sizes/groups/_{id}_ Test it Authorizations Path parameters idstringrequired The ID of the size group to retrieve. Example: `4` Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Responses 200 Successfully retrieved the size group details by ID. application/json cURL JavaScript Python HTTP Copy curl -L \ --url 'https:/custom.v-tools.fr/v3/services/filters/sizes/groups/{id}' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' 200 Copy { "data": [\ {\ "id": 7,\ "title": "XXL / 44 / 16",\ "type": "default",\ "options": []\ }\ ], "code": 0 } Successfully retrieved the size group details by ID. Retrieve details of the available colors. get /services/filters/colors Test it Authorizations Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Responses 200 Successfully retrieved the available colors. application/json cURL JavaScript Python HTTP Copy curl -L \ --url 'https:/custom.v-tools.fr/v3/services/filters/colors' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' 200 Copy { "data": [\ {\ "id": 1,\ "title": "Noir",\ "prefix": {\ "hex": "000000",\ "code": "BLACK"\ }\ }\ ], "code": 0 } Successfully retrieved the available colors. Retrieve details of the available materials. get /services/filters/materials Test it Authorizations Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Responses 200 Successfully retrieved the available materials. application/json cURL JavaScript Python HTTP Copy curl -L \ --url 'https:/custom.v-tools.fr/v3/services/filters/materials' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' 200 Copy { "data": [\ {\ "id": 468,\ "title": "Acier"\ }\ ], "code": 0 } Successfully retrieved the available materials. Retrieve details of the available statuses. get /services/filters/statuses Test it Authorizations Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Responses 200 Successfully retrieved the available statuses. application/json cURL JavaScript Python HTTP Copy curl -L \ --url 'https:/custom.v-tools.fr/v3/services/filters/statuses' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' 200 Copy { "data": [\ {\ "id": 6,\ "title": "Neuf avec étiquette",\ "description": "Article neuf, jamais porté/utilisé avec étiquettes ou dans son emballage d’origine."\ }\ ], "code": 0 } Successfully retrieved the available statuses. Retrieve details of the available countries. get /services/filters/countries Test it Authorizations Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Responses 200 Successfully retrieved the available countries. application/json cURL JavaScript Python HTTP Copy curl -L \ --url 'https:/custom.v-tools.fr/v3/services/filters/countries' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' 200 Copy { "data": [\ {\ "id": 16,\ "title": "France",\ "iso_code": "FR",\ "alias": [\ ".fr",\ "fr",\ "france",\ "french"\ ]\ }\ ], "code": 0 } Successfully retrieved the available countries. * [🥇 Récupérer ses filtres](#recuperer-ses-filtres) * [GET/services/filters](#services-filters) * [🪩 Créer un nouveau filtre](#creer-un-nouveau-filtre) * [POST/services/filters](#services-filters-1) * [🧸 Modifier un filtre existant](#modifier-un-filtre-existant) * [PUT/services/filters](#services-filters-2) * [🪅 Supprimer un filtre existant](#supprimer-un-filtre-existant) * [DELETE/services/filters](#services-filters-3) * [GET/services/filters/brands](#services-filters-brands) * [GET/services/filters/brands/{id}](#services-filters-brands-id) * [GET/services/filters/catalogs/{id}](#services-filters-catalogs-id) * [GET/services/filters/sizes/{id}](#services-filters-sizes-id) * [GET/services/filters/sizes/groups/{id}](#services-filters-sizes-groups-id) * [GET/services/filters/colors](#services-filters-colors) * [GET/services/filters/materials](#services-filters-materials) * [GET/services/filters/statuses](#services-filters-statuses) * [GET/services/filters/countries](#services-filters-countries) --- # Authentification Vinted | V-TOOLS API [PreviousVinted](/restful-api/restful-api-v3/vinted) [NextMulticompte](/restful-api/restful-api-v3/vinted/multicompte) Last updated 7 months ago Nous utilisons ce qu'on appelle la _connexion automatique_, qui, à la différence de la _connexion par token_, utilise directement les identifiants pour simuler une connexion directe sur Vinted. L'API supporte le [Multicompte](/restful-api/restful-api-v3/vinted/multicompte) , permettant ainsi à un utilisateur de gérer plusieurs comptes Vinted en simultané. [](#se-connecter-a-un-compte-vinted) 🌱 Se connecter à un compte Vinted ---------------------------------------------------------------------------- Tout comme lorsqu'on lie un compte Discord, lorsqu'on crée un nouveau compte Vinted, celui-ci nous est directement attribué. Pour procéder à sa création : Depuis que Vinted a renforcé sa politique anti-bot, la connexion automatique est devenue plus complexe avec l'arrivée de l'A2F obligatoire. Les détenteurs des comptes Vinted vont donc recevoir un code de confirmation lors de l'exécution. Des réponses partielles (HTTP 206) seront donc retournées pour indiquer la bonne réception et compréhension de la demande, mais avec besoin de validation supplémentaire. #### [](#valider-la2f) Valider l'A2F Une fois la réponse partielle (HTTP 206) reçue, il faudra récupérer le code de validation A2F puis procéder à sa validation : Le compte Vinted est maintenant associé au compte et des modifications peuvent y être apportées. [](#recuperer-des-informations-sur-un-compte-vinted) 🦦 Récupérer des informations sur un compte Vinted ------------------------------------------------------------------------------------------------------------ Pour récupérer des informations sur un compte Vinted quelconque, vous devez le lier avant tout puis récupérer son identifiant. #### [](#informations-basiques) Informations basiques #### [](#adresse-postale) Adresse postale #### [](#points-relais) Points relais #### [](#moyens-de-paiement) Moyens de paiement [](#mettre-a-jour-les-informations-dun-compte-vinted) 🦉 Mettre à jour les informations d'un compte Vinted --------------------------------------------------------------------------------------------------------------- Pour utiliser le compte Vinted comme on le souhaite, on peut personnaliser ses attributs qui seront ensuite utilisés pour différentes actions. C'est un peu comme un enregistrement de nos préférences. #### [](#adresse-postale-1) Adresse postale #### [](#points-relais-1) Points relais #### [](#moyen-de-paiement) Moyen de paiement Ces routes ne modifient pas le compte Vinted mais uniquement sa configuration dans nos systèmes. [](#modifier-son-compte-vinted) 🐈‍⬛ Modifier son compte Vinted -------------------------------------------------------------------- Si vous souhaitez apporter des modifications plus durables, vous pouvez directement modifier les attributs de votre compte Vinted cette fois-ci. #### [](#adresse-postale-2) Adresse postale #### [](#numero-de-telephone-livraison) Numéro de téléphone (livraison) #### [](#moyens-de-paiement-1) Moyens de paiement Ces routes ne modifient pas la configuration dans nos systèmes, mais uniquement le compte Vinted lui-même. * * * N'oubliez pas de spécifier le `X-Server-Key` & `Authorization` dans l'en-tête (header) de la requête. Create or validate a Vinted entity. post /vinted/create Test it Authorizations Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Body one of Show child attributes Show child attributes Responses 200 Successfully created the Vinted entity. application/json 206 Partial content response. Waiting for validation. application/json cURL JavaScript Python HTTP Copy curl -L \ --request POST \ --url 'https://custom.v-tools.fr/v3/vinted/create' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' \ --header 'Content-Type: application/json' \ --data '{"username":"Compte Vinted","password":"Motdepasse123!"}' 200 206 Copy { "data": { "oid": "65fec4c6b39b4562d777f08c", "user_id": 123456789, "name": "Compte Vinted", "avatar_url": "https://images.vinted.fr/", "position": { "country": "FR", "country_code": 16, "latitude": 12.123456789, "longitude": 1.123456789, "address": "26000 Valence, France" }, "relays": [\ {\ "name": "BAR TABAC (MONDIAL RELAY)",\ "package_type_id": 10,\ "pickup_point_code": "1035382",\ "external_code": "6193P",\ "carrier_id": 27\ }\ ], "card": { "id": 123456789, "owner_name": "M. Support V-tools", "brand": "Mastercard", "last_4": "1234", "expiration_year": 2024, "expiration_month": 9 }, "last_refresh_at": "2024-06-12T06:53:06.673Z", "updated_at": "2024-06-12T06:53:06.673Z" }, "code": 1 } Successfully created the Vinted entity. Create or validate a Vinted entity. post /vinted/create Test it Authorizations Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Body one of Show child attributes Show child attributes Responses 200 Successfully created the Vinted entity. application/json 206 Partial content response. Waiting for validation. application/json cURL JavaScript Python HTTP Copy curl -L \ --request POST \ --url 'https://custom.v-tools.fr/v3/vinted/create' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' \ --header 'Content-Type: application/json' \ --data '{"username":"Compte Vinted","password":"Motdepasse123!"}' 200 206 Copy { "data": { "oid": "65fec4c6b39b4562d777f08c", "user_id": 123456789, "name": "Compte Vinted", "avatar_url": "https://images.vinted.fr/", "position": { "country": "FR", "country_code": 16, "latitude": 12.123456789, "longitude": 1.123456789, "address": "26000 Valence, France" }, "relays": [\ {\ "name": "BAR TABAC (MONDIAL RELAY)",\ "package_type_id": 10,\ "pickup_point_code": "1035382",\ "external_code": "6193P",\ "carrier_id": 27\ }\ ], "card": { "id": 123456789, "owner_name": "M. Support V-tools", "brand": "Mastercard", "last_4": "1234", "expiration_year": 2024, "expiration_month": 9 }, "last_refresh_at": "2024-06-12T06:53:06.673Z", "updated_at": "2024-06-12T06:53:06.673Z" }, "code": 1 } Successfully created the Vinted entity. Retrieve user status for a Vinted entity. get /vinted/_{oid}_/user/status Test it Authorizations Path parameters oidstringrequired Example: `65fec4c6b39b4562d777f08c` Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Responses 200 Successfully retrieved user status. application/json cURL JavaScript Python HTTP Copy curl -L \ --url 'https://custom.v-tools.fr/v3/vinted/{oid}/user/status' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' 200 Copy { "data": { "user_id": 123456789, "name": "Compte Vinted", "avatar": "https://images.vinted.fr/" }, "code": 1 } Successfully retrieved user status. Retrieve user location details for a Vinted entity. get /vinted/_{oid}_/user/location Test it Authorizations Path parameters oidstringrequired Example: `65fec4c6b39b4562d777f08c` Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Responses 200 Successfully retrieved user location details. application/json cURL JavaScript Python HTTP Copy curl -L \ --url 'https://custom.v-tools.fr/v3/vinted/{oid}/user/location' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' 200 Copy { "data": { "country": "FR", "country_code": 16, "latitude": 12.123456789, "longitude": 1.123456789, "address": "26000 Valence, France" }, "code": 1 } Successfully retrieved user location details. Retrieve user shipment details for a Vinted entity. get /vinted/_{oid}_/user/shipment Test it Authorizations Path parameters oidstringrequired Example: `65fec4c6b39b4562d777f08c` Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Responses 200 Successfully retrieved user shipment details. application/json cURL JavaScript Python HTTP Copy curl -L \ --url 'https://custom.v-tools.fr/v3/vinted/{oid}/user/shipment' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' 200 Copy { "data": [\ {\ "transporter": {\ "name": "Mondial Relay",\ "price": "2.99",\ "description": "Disponible au point relais sous 2 - 4 jours ouvrés"\ },\ "delivery": {\ "name": "BAR TABAC (MONDIAL RELAY)",\ "carrier_code": "MONRIAL_RELAY",\ "carrier_id": 27,\ "external_code": "6193P",\ "address": {\ "line_1": "1 RUE DES REVES",\ "line_2": "",\ "postal_code": "26000",\ "city": "Valence",\ "country_code": "FR"\ },\ "distance": 2.12345645\ },\ "shipment": {\ "name": "BAR TABAC (MONDIAL RELAY)",\ "package_type_id": 10,\ "pickup_point_code": "1035382",\ "external_code": "6193P",\ "carrier_id": 27\ }\ }\ ], "code": 1 } Successfully retrieved user shipment details. Retrieve user credit card details for a Vinted entity. get /vinted/_{oid}_/user/credit\_cards Test it Authorizations Path parameters oidstringrequired Example: `65fec4c6b39b4562d777f08c` Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Responses 200 Successfully retrieved user credit card details. application/json cURL JavaScript Python HTTP Copy curl -L \ --url 'https://custom.v-tools.fr/v3/vinted/{oid}/user/credit_cards' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' 200 Copy [\ {\ "id": 123456789,\ "owner_name": "M. Support V-tools",\ "brand": "Mastercard",\ "last_4": "1234",\ "expiration_year": 2024,\ "expiration_month": 9\ }\ ] Successfully retrieved user credit card details. Update user location for a Vinted entity. post /vinted/_{oid}_/location Test it Authorizations Path parameters oidstringrequired Example: `65fec4c6b39b4562d777f08c` Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Body countrystring Example: `FR` country\_codeinteger Example: `16` latitudenumber Example: `12.123456789` longitudenumber Example: `1.123456789` addressstring Example: `26000 Valence, France` Responses 200 Successfully updated user location for the Vinted entity. application/json cURL JavaScript Python HTTP Copy curl -L \ --request POST \ --url 'https://custom.v-tools.fr/v3/vinted/{oid}/location' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' \ --header 'Content-Type: application/json' \ --data '{"country":"FR","country_code":16,"latitude":12.123456789,"longitude":1.123456789,"address":"26000 Valence, France"}' 200 Copy { "data": { "oid": "65fec4c6b39b4562d777f08c", "user_id": 123456789, "name": "Compte Vinted", "avatar_url": "https://images.vinted.fr/", "position": { "country": "FR", "country_code": 16, "latitude": 12.123456789, "longitude": 1.123456789, "address": "26000 Valence, France" }, "relays": [\ {\ "name": "BAR TABAC (MONDIAL RELAY)",\ "package_type_id": 10,\ "pickup_point_code": "1035382",\ "external_code": "6193P",\ "carrier_id": 27\ }\ ], "card": { "id": 123456789, "owner_name": "M. Support V-tools", "brand": "Mastercard", "last_4": "1234", "expiration_year": 2024, "expiration_month": 9 }, "last_refresh_at": "2024-06-12T06:53:06.673Z", "updated_at": "2024-06-12T06:53:06.673Z" }, "code": 1 } Successfully updated user location for the Vinted entity. Update user shipment details for a Vinted entity. post /vinted/_{oid}_/shipment Test it Authorizations Path parameters oidstringrequired Example: `65fec4c6b39b4562d777f08c` Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Body namestring Example: `BAR TABAC (MONDIAL RELAY)` package\_type\_idinteger Example: `10` pickup\_point\_codestring Example: `1035382` Responses 200 Successfully updated user shipment details for the Vinted entity. application/json cURL JavaScript Python HTTP Copy curl -L \ --request POST \ --url 'https://custom.v-tools.fr/v3/vinted/{oid}/shipment' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' \ --header 'Content-Type: application/json' \ --data '[{"name":"BAR TABAC (MONDIAL RELAY)","package_type_id":10,"pickup_point_code":"1035382"}]' 200 Copy { "data": { "oid": "65fec4c6b39b4562d777f08c", "user_id": 123456789, "name": "Compte Vinted", "avatar_url": "https://images.vinted.fr/", "position": { "country": "FR", "country_code": 16, "latitude": 12.123456789, "longitude": 1.123456789, "address": "26000 Valence, France" }, "relays": [\ {\ "name": "BAR TABAC (MONDIAL RELAY)",\ "package_type_id": 10,\ "pickup_point_code": "1035382",\ "external_code": "6193P",\ "carrier_id": 27\ }\ ], "card": { "id": 123456789, "owner_name": "M. Support V-tools", "brand": "Mastercard", "last_4": "1234", "expiration_year": 2024, "expiration_month": 9 }, "last_refresh_at": "2024-06-12T06:53:06.673Z", "updated_at": "2024-06-12T06:53:06.673Z" }, "code": 1 } Successfully updated user shipment details for the Vinted entity. Mark a shipment for pickup for a Vinted entity. post /vinted/_{oid}_/shipment/mark\_as\_pickup Test it Authorizations Path parameters oidstringrequired Example: `65fec4c6b39b4562d777f08c` Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Responses 200 Successfully marked shipment as pickup for the Vinted entity. application/json cURL JavaScript Python HTTP Copy curl -L \ --request POST \ --url 'https://custom.v-tools.fr/v3/vinted/{oid}/shipment/mark_as_pickup' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' 200 Copy { "data": { "oid": "65fec4c6b39b4562d777f08c", "user_id": 123456789, "name": "Compte Vinted", "avatar_url": "https://images.vinted.fr/", "position": { "country": "FR", "country_code": 16, "latitude": 12.123456789, "longitude": 1.123456789, "address": "26000 Valence, France" }, "relays": [\ {\ "name": "BAR TABAC (MONDIAL RELAY)",\ "package_type_id": 10,\ "pickup_point_code": "1035382",\ "external_code": "6193P",\ "carrier_id": 27\ }\ ], "card": { "id": 123456789, "owner_name": "M. Support V-tools", "brand": "Mastercard", "last_4": "1234", "expiration_year": 2024, "expiration_month": 9 }, "last_refresh_at": "2024-06-12T06:53:06.673Z", "updated_at": "2024-06-12T06:53:06.673Z" }, "code": 1 } Successfully marked shipment as pickup for the Vinted entity. Mark a shipment for home delivery for a Vinted entity. post /vinted/_{oid}_/shipment/mark\_as\_home Test it Authorizations Path parameters oidstringrequired Example: `65fec4c6b39b4562d777f08c` Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Responses 200 Successfully marked shipment as home delivery for the Vinted entity. application/json cURL JavaScript Python HTTP Copy curl -L \ --request POST \ --url 'https://custom.v-tools.fr/v3/vinted/{oid}/shipment/mark_as_home' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' 200 Copy { "data": { "oid": "65fec4c6b39b4562d777f08c", "user_id": 123456789, "name": "Compte Vinted", "avatar_url": "https://images.vinted.fr/", "position": { "country": "FR", "country_code": 16, "latitude": 12.123456789, "longitude": 1.123456789, "address": "26000 Valence, France" }, "relays": [\ {\ "name": "BAR TABAC (MONDIAL RELAY)",\ "package_type_id": 10,\ "pickup_point_code": "1035382",\ "external_code": "6193P",\ "carrier_id": 27\ }\ ], "card": { "id": 123456789, "owner_name": "M. Support V-tools", "brand": "Mastercard", "last_4": "1234", "expiration_year": 2024, "expiration_month": 9 }, "last_refresh_at": "2024-06-12T06:53:06.673Z", "updated_at": "2024-06-12T06:53:06.673Z" }, "code": 1 } Successfully marked shipment as home delivery for the Vinted entity. Update user credit card details for a Vinted entity. post /vinted/_{oid}_/credit\_card Test it Authorizations Path parameters oidstringrequired Example: `65fec4c6b39b4562d777f08c` Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Body idinteger Example: `123456789` owner\_namestring Example: `M. Support V-tools` brandstring Example: `Mastercard` last\_4string Example: `1234` expiration\_yearinteger Example: `2024` expiration\_monthinteger Example: `9` Responses 200 Successfully updated user credit card details for the Vinted entity. application/json cURL JavaScript Python HTTP Copy curl -L \ --request POST \ --url 'https://custom.v-tools.fr/v3/vinted/{oid}/credit_card' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' \ --header 'Content-Type: application/json' \ --data '{"id":123456789,"owner_name":"M. Support V-tools","brand":"Mastercard","last_4":"1234","expiration_year":2024,"expiration_month":9}' 200 Copy { "data": { "oid": "65fec4c6b39b4562d777f08c", "user_id": 123456789, "name": "Compte Vinted", "avatar_url": "https://images.vinted.fr/", "position": { "country": "FR", "country_code": 16, "latitude": 12.123456789, "longitude": 1.123456789, "address": "26000 Valence, France" }, "relays": [\ {\ "name": "BAR TABAC (MONDIAL RELAY)",\ "package_type_id": 10,\ "pickup_point_code": "1035382",\ "external_code": "6193P",\ "carrier_id": 27\ }\ ], "card": { "id": 123456789, "owner_name": "M. Support V-tools", "brand": "Mastercard", "last_4": "1234", "expiration_year": 2024, "expiration_month": 9 }, "last_refresh_at": "2024-06-12T06:53:06.673Z", "updated_at": "2024-06-12T06:53:06.673Z" }, "code": 1 } Successfully updated user credit card details for the Vinted entity. Update user address details for a Vinted entity. post /vinted/_{oid}_/user/address Test it Authorizations Path parameters oidstringrequired Example: `65fec4c6b39b4562d777f08c` Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Body country\_idinteger Example: `16` namestring Example: `Mon adresse` citystring Example: `Valence` line1string Example: `1 Rue du Cauchemar` line2string Example: postal\_codestring Example: `26000` Responses 204 Empty response indicating successful update of user address details. cURL JavaScript Python HTTP Copy curl -L \ --request POST \ --url 'https://custom.v-tools.fr/v3/vinted/{oid}/user/address' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' \ --header 'Content-Type: application/json' \ --data '{"country_id":16,"name":"Mon adresse","city":"Valence","line1":"1 Rue du Cauchemar","line2":"","postal_code":"26000"}' 204 No body Empty response indicating successful update of user address details. Update user phone number for a Vinted entity. post /vinted/_{oid}_/user/phone Test it Authorizations Path parameters oidstringrequired Example: `65fec4c6b39b4562d777f08c` Query parameters phonestringrequired Example: `33612312312` Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Responses 204 Empty response indicating successful update of user phone number. cURL JavaScript Python HTTP Copy curl -L \ --request POST \ --url 'https://custom.v-tools.fr/v3/vinted/{oid}/user/phone?phone=33612312312' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' 204 No body Empty response indicating successful update of user phone number. Update user credit card details for a Vinted entity. post /vinted/_{oid}_/user/credit\_card Test it Authorizations Path parameters oidstringrequired Example: `65fec4c6b39b4562d777f08c` Header parameters X-Server-Keystringrequired A token to identify the server. Example: `6ff437db-ebe1-4662-9912-835e885c01e5` Body card\_namestring Example: `M. Compte Vinted` card\_numberstring Example: `1234123412341234` card\_expiratonstring Example: `0127` card\_cvvstring Example: `123` Responses 204 Empty response indicating successful update of user credit card details. cURL JavaScript Python HTTP Copy curl -L \ --request POST \ --url 'https://custom.v-tools.fr/v3/vinted/{oid}/user/credit_card' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...' \ --header 'X-Server-Key: 6ff437db-ebe1-4662-9912-835e885c01e5' \ --header 'Content-Type: application/json' \ --data '{"card_name":"M. Compte Vinted","card_number":"1234123412341234","card_expiraton":"0127","card_cvv":"123"}' 204 No body Empty response indicating successful update of user credit card details. * [🌱 Se connecter à un compte Vinted](#se-connecter-a-un-compte-vinted) * [POST/vinted/create](#vinted-create) * [POST/vinted/create](#vinted-create-1) * [🦦 Récupérer des informations sur un compte Vinted](#recuperer-des-informations-sur-un-compte-vinted) * [GET/vinted/{oid}/user/status](#vinted-oid-user-status) * [GET/vinted/{oid}/user/location](#vinted-oid-user-location) * [GET/vinted/{oid}/user/shipment](#vinted-oid-user-shipment) * [GET/vinted/{oid}/user/credit\_cards](#vinted-oid-user-credit_cards) * [🦉 Mettre à jour les informations d'un compte Vinted](#mettre-a-jour-les-informations-dun-compte-vinted) * [POST/vinted/{oid}/location](#vinted-oid-location) * [POST/vinted/{oid}/shipment](#vinted-oid-shipment) * [POST/vinted/{oid}/shipment/mark\_as\_pickup](#vinted-oid-shipment-mark_as_pickup) * [POST/vinted/{oid}/shipment/mark\_as\_home](#vinted-oid-shipment-mark_as_home) * [POST/vinted/{oid}/credit\_card](#vinted-oid-credit_card) * [🐈‍⬛ Modifier son compte Vinted](#modifier-son-compte-vinted) * [POST/vinted/{oid}/user/address](#vinted-oid-user-address) * [POST/vinted/{oid}/user/phone](#vinted-oid-user-phone) * [POST/vinted/{oid}/user/credit\_card](#vinted-oid-user-credit_card) --- # Erreurs | V-TOOLS API La structure d'une erreur est générique et statique sur l'ensemble de l'API, immuable. Elle contiendra constamment un code d'erreur ainsi que son message d'erreur associé. Voici un exemple des différentes erreurs que vous pourriez rencontrer. La plupart des erreurs se basent sur le contexte de la requête, donc il est important de savoir ce que vous faites a tout moment. #### [](#invalid-operation) Invalid Operation Généralement lorsque vous rencontrez _Invalid Operation_ c'est un simple manque de documentation a propos de l'erreur donc réclamez le changement auprès d'un administrateur. Copy { "data": "Invalid Operation.", "code": 1 } #### [](#illegal-access) Illegal Access _Illegal Access_ decrit une tentative d'accès erronée a la ressource soit par un manquement des bons credentials ou bien simplement une ressource qui ne vous est pas propre. Cette erreur est généralement trouve dans l'[Authentification](/restful-api/restful-api-v3/authentification) . Copy { "data": "Illegal Access.", "code": 1 } #### [](#invalid-account) Invalid Account _Invalid Account_ decrit une tentative d'accès a une ressource appartenant a un compte Vinted étranger. Cette erreur est généralement aperçu lors de l'intégration de [Vinted](/restful-api/restful-api-v3/vinted) . Copy { "data": "Invalid Account.", "code": 1 } #### [](#not-authorized-not-allowed) Not Authorized / Not Allowed _Not Authorized_ décrit une tentative d'accès a la ressource avec une `Authorization` invalide. Copy { "data": "Not Authorized.", "code": 10 } #### [](#invalid-body-invalid-response) Invalid Body / Invalid Response _Invalid Body_ décrit une corps de requête (body) ou de réponse non conforme, c'est souvent un problème cause cote client. Copy { "data": "Invalid Body.", "code": 20 } Copy { "data": "Invalid Response.", "code": 1 } #### [](#not-subscribed) Not Subscribed _Not Subscribed_ décrit une tentative d'accès a la ressource sans avoir souscrit un abonnement. Copy { "data": "Not Subscribed.", "code": 11 } #### [](#subscription-payment-failed) Subscription Payment Failed _Subscription Payment Failed_ décrit un échec de paiement donc un interdiction d'accès a la ressource. Copy { "data": "Subscription Payment Failed.", "code": 12 } #### [](#server-do-not-meet-requirements) Server Do Not Meet Requirements _Server Do Not Meet Requirements_ décrit un manquement dans la configuration du serveur, veuillez contacter un administrateur a ce moment la. Copy { "data": "Server Do Not Meet Requirements (xxx).", "code": 70 } #### [](#server-has-been-suspended) Server Has Been Suspended _Server Has Been Suspended_ décrit une suspension forcée des activités du serveur, souvent lié a un manque de paiement de la part de l'abonné (gérant du serveur). Copy { "data": "Server Has Been Suspended.", "code": 71 } #### [](#not-registered-issuer) Not Registered Issuer _Not Registered Issuer_ décrit une tentative d'accès a la ressource avec un `X-Server-Key` invalide. Copy { "data": "Not Registered Issuer.", "code": 72 } * * * Cette page recapitule uniquement les erreurs les plus communes et generales, d'autres erreurs bien plus specifiques peuvent tout de meme survenir. [PreviousÉvènement](/restful-api/modeles/evenement) Last updated 7 months ago 🪀 🍅 --- # Évènement | V-TOOLS API La strucutre d'un evenement emis par le websocket est statique et ne sera soumise a aucun changement, toutefois le contenu des evenements est independant et eux pourront subir des modifications, donc une particuliere est requise. Voici une liste des évènements actuellement disponibles. #### [](#buy_attempt) buy\_attempt L'évènement _buy\_attempt_ est émis lorsqu'un utilisateur lance le paiement d'un article (uniquement a la dernière étape du paiement). Copy { "content_type": "event", "data": { "target": "**", "event": "buy_attempt", "data": { "who": "65a966017da83ab7cfdcaf95", "item_id": 4699404456, "boosted": false }, "created_at": "2024-01-01T00:00:00.000000000Z" } } #### [](#buy_failed) buy\_failed L'évènement _buy\_failed_ est émis lorsqu'un utilisateur lance le paiement d'un article mais échoue. Copy { "content_type": "event", "data": { "target": "65a966017da83ab7cfdcaf95", "event": "buy_failed", "data": { "who": "65a966017da83ab7cfdcaf95", "item_id": 4699404456, "error": "Le paiement a échoué (Generic Error Y01). Si le problème persiste, contacte-nous." }, "created_at": "2024-01-01T00:00:00.000000000Z" } } #### [](#buy_completed) buy\_completed L'évènement _buy\_completed_ est émis lorsqu'un utilisateur lance le paiement d'un article avec succès. Copy { "content_type": "event", "data": { "target": "**", "event": "buy_completed", "data": { "who": "65a966017da83ab7cfdcaf95", "item_id": 4699404456, "3ds": "https://payment.vinted.fr/confirm", "scope": "autocop", // present uniquement lors d'autocop "boosted": true // false -> classique }, "created_at": "2024-01-01T00:00:00.000000000Z" } } #### [](#sniper_toggle) sniper\_toggle L'évènement _sniper\_toggle_ est émis lors d'un changement d'état de l'autocop. Il simule si l'activation/désactivation de l'autocop en temps réel. Copy { "content_type": "event", "data": { "target": "65a966017da83ab7cfdcaf95", "event": "sniper_toggle", "data": { "status": true // false -> l'autocop est maintenant inactif }, "created_at": "2024-01-01T00:00:00.000000000Z" } } [PreviousArticle Vinted](/restful-api/modeles/article-vinted) [NextErreurs](/restful-api/modeles/erreurs) Last updated 7 months ago 🪀 🍈 ---