Marketplace Protocol
vtex · Company
The _Marketplace Protocol_ is a set of API requests and definitions to help you integrate external sellers into a VTEX marketplace as well as external marketplaces into VTEX sellers. ## External Seller Here you will find the endpoints involved in the integration between a VTEX marketplace and an external seller. Note that some of these requests are typically sent by the seller while others are received. | **Request** | **From** | **To** | |-|-|-| | [Fulfillment simulation](https://d
Authentication
Sample Requests
This endpoint can be triggered by marketplaces to simulate the fulfillment of an item in the cart. The fulfillment information is useful whenever you need to know the availability of fulfilling an order for a specific cart setting, since the API response will let you know the updated price, inven
Hover any highlighted part to learn what it does
| Accept | application/json |
| Content-Type | application/json |
curl -X POST "https://api.apis.guru/v2/specs/vtex.local/Marketplace-Protocol/1.0/api/checkout/pub/orderForms/simulation?sc=1&affiliateId=MNF" \ -H "Accept: application/json" \ -H "Content-Type: application/json"
import requests
params = {
"sc": "1",
"affiliateId": "MNF"
}
headers = {
"Accept": "application/json",
"Content-Type": "application/json"
}
response = requests.post(
"https://api.apis.guru/v2/specs/vtex.local/Marketplace-Protocol/1.0/api/checkout/pub/orderForms/simulation",
params=params,
headers=headers,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/vtex.local/Marketplace-Protocol/1.0/api/checkout/pub/orderForms/simulation');
url.searchParams.set('sc', '1');
url.searchParams.set('affiliateId', 'MNF');
const response = await fetch(url, {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
});
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/vtex.local/Marketplace-Protocol/1.0/api/checkout/pub/orderForms/simulation")
q := baseURL.Query()
q.Set("sc", "1")
q.Set("affiliateId", "MNF")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("POST", targetURL, nil)
req.Header.Set("Accept", "application/json")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/vtex.local/Marketplace-Protocol/1.0/api/checkout/pub/orderForms/simulation")
uri.query = URI.encode_www_form({
"sc" => "1",
"affiliateId" => "MNF"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Post.new(uri)
req["Accept"] = "application/json"
req["Content-Type"] = "application/json"
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/vtex.local/Marketplace-Protocol/1.0/api/checkout/pub/orderForms/simulation?" . http_build_query([
"sc" => "1",
"affiliateId" => "MNF"
]);
$opts = ["http" => [
"method" => "POST",
"header" => implode("\r\n", [
"Accept: application/json",
"Content-Type: application/json"
]),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Mapping categories guarantees that the VTEX category tree has a correct association with the marketplace’s category tree. To perform this association, VTEX made VTEX Mapper available. It is a tool integrated to the VTEX platform that allows the user to relate categories created in VTEX to categori
Hover any highlighted part to learn what it does
| Accept | application/json |
| Content-Type | application/json |
curl -X POST "https://api.apis.guru/v2/specs/vtex.local/Marketplace-Protocol/1.0/portal.vtexcommercestable.com.br/api/mkp-category-mapper/connector/register?an=accountName" \ -H "Accept: application/json" \ -H "Content-Type: application/json"
import requests
params = {
"an": "accountName"
}
headers = {
"Accept": "application/json",
"Content-Type": "application/json"
}
response = requests.post(
"https://api.apis.guru/v2/specs/vtex.local/Marketplace-Protocol/1.0/portal.vtexcommercestable.com.br/api/mkp-category-mapper/connector/register",
params=params,
headers=headers,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/vtex.local/Marketplace-Protocol/1.0/portal.vtexcommercestable.com.br/api/mkp-category-mapper/connector/register');
url.searchParams.set('an', 'accountName');
const response = await fetch(url, {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
});
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/vtex.local/Marketplace-Protocol/1.0/portal.vtexcommercestable.com.br/api/mkp-category-mapper/connector/register")
q := baseURL.Query()
q.Set("an", "accountName")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("POST", targetURL, nil)
req.Header.Set("Accept", "application/json")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/vtex.local/Marketplace-Protocol/1.0/portal.vtexcommercestable.com.br/api/mkp-category-mapper/connector/register")
uri.query = URI.encode_www_form({
"an" => "accountName"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Post.new(uri)
req["Accept"] = "application/json"
req["Content-Type"] = "application/json"
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/vtex.local/Marketplace-Protocol/1.0/portal.vtexcommercestable.com.br/api/mkp-category-mapper/connector/register?" . http_build_query([
"an" => "accountName"
]);
$opts = ["http" => [
"method" => "POST",
"header" => implode("\r\n", [
"Accept: application/json",
"Content-Type: application/json"
]),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));API to integrate an external channel's order into the VTEX plataform. This process is asynchronous and a notification with the order's integration results will be sent to the endpoint specified in the **connectorEndpoint** field in [App Template](https://developers.vtex.com/vtex-rest-api/docs/exter
Hover any highlighted part to learn what it does
| Accept | application/json |
| Content-Type | application/json |
curl -X POST "https://api.apis.guru/v2/specs/vtex.local/Marketplace-Protocol/1.0/{accountName}.vtexcommercestable.com.br/api/order-integration/orders?an=apiexamples&affiliateId=MKP" \
-H "Accept: application/json" \
-H "Content-Type: application/json"import requests
params = {
"an": "apiexamples",
"affiliateId": "MKP"
}
headers = {
"Accept": "application/json",
"Content-Type": "application/json"
}
response = requests.post(
"https://api.apis.guru/v2/specs/vtex.local/Marketplace-Protocol/1.0/{accountName}.vtexcommercestable.com.br/api/order-integration/orders",
params=params,
headers=headers,
)
print(response.json())const url = new URL('https://api.apis.guru/v2/specs/vtex.local/Marketplace-Protocol/1.0/{accountName}.vtexcommercestable.com.br/api/order-integration/orders');
url.searchParams.set('an', 'apiexamples');
url.searchParams.set('affiliateId', 'MKP');
const response = await fetch(url, {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
});
const data = await response.json();
console.log(data);package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
baseURL, _ := url.Parse("https://api.apis.guru/v2/specs/vtex.local/Marketplace-Protocol/1.0/{accountName}.vtexcommercestable.com.br/api/order-integration/orders")
q := baseURL.Query()
q.Set("an", "apiexamples")
q.Set("affiliateId", "MKP")
baseURL.RawQuery = q.Encode()
targetURL := baseURL.String()
req, _ := http.NewRequest("POST", targetURL, nil)
req.Header.Set("Accept", "application/json")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}require "net/http"
require "json"
uri = URI("https://api.apis.guru/v2/specs/vtex.local/Marketplace-Protocol/1.0/{accountName}.vtexcommercestable.com.br/api/order-integration/orders")
uri.query = URI.encode_www_form({
"an" => "apiexamples",
"affiliateId" => "MKP"
})
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
req = Net::HTTP::Post.new(uri)
req["Accept"] = "application/json"
req["Content-Type"] = "application/json"
res = http.request(req)
puts JSON.parse(res.body)<?php
$url = "https://api.apis.guru/v2/specs/vtex.local/Marketplace-Protocol/1.0/{accountName}.vtexcommercestable.com.br/api/order-integration/orders?" . http_build_query([
"an" => "apiexamples",
"affiliateId" => "MKP"
]);
$opts = ["http" => [
"method" => "POST",
"header" => implode("\r\n", [
"Accept: application/json",
"Content-Type: application/json"
]),
]];
$ctx = stream_context_create($opts);
$res = file_get_contents($url, false, $ctx);
print_r(json_decode($res, true));Postman Setup Guide
- See official documentation for authentication and setup.
What can you build with Marketplace Protocol?
Marketplace Protocol is a Company API. Developers commonly use company APIs for:
- enriching CRM records with company firmographics
- building lead-generation and prospecting tools
- verifying business identity and registration details
- monitoring competitors and market intelligence
- powering B2B data enrichment pipelines
No authentication required. This API is open — no signup or key needed. Ideal for quick prototypes and public-facing features. Marketplace Protocol is free to use, making it a low-risk choice to experiment with.
New to APIs? Read our beginner's guide · Learn about API keys · What is REST?