Find an API

Search public APIs with auth details & Postman guides

← All APIs

Marketplace Protocol

vtex · Company

Company No Auth Free & Open API

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

No authentication requiredFree to use with no key needed.

Sample Requests

POST Fulfillment simulation - External Marketplace

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

https://api.apis.guru/v2/specs/vtex.local/Marketplace-Protocol/1.0/api/checkout/pub/orderForms/simulation?sc=1&affiliateId=MNF

Hover any highlighted part to learn what it does

Headers — extra info sent with the request
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));
POST VTEX Mapper Registration

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

https://api.apis.guru/v2/specs/vtex.local/Marketplace-Protocol/1.0/portal.vtexcommercestable.com.br/api/mkp-category-mapper/connector/register?an=accountName

Hover any highlighted part to learn what it does

Headers — extra info sent with the request
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));
POST New Order Integration

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

https://api.apis.guru/v2/specs/vtex.local/Marketplace-Protocol/1.0/{accountName}.vtexcommercestable.com.br/api/order-integration/orders?an=apiexamples&affiliateId=MKP

Hover any highlighted part to learn what it does

Headers — extra info sent with the request
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

Get Postman ↗
  1. 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?

Open documentation ↗