Find an API

Search public APIs with auth details & Postman guides

← All APIs

Orders API

vtex · Company

Company No Auth Free & Open API

>Check the new [Orders onboarding guide](https://developers.vtex.com/docs/guides/orders-overview). We created this guide to improve the onboarding experience for developers at VTEX. It assembles all documentation on our Developer Portal about Orders and is organized by focusing on the developer's journey. Receive, process, and manage every order in your store through our Order Management API.

Authentication

No authentication requiredFree to use with no key needed.

Sample Requests

GET Retrieve feed items

Retrieve items from [feed](https://developers.vtex.com/docs/guides/orders-feed) queue. The event will be removed if the message `send retry` is equal to, or greater than the maximum retention period. > This API will return `404 Not Found` if there is no [Feed Configuration](https://developers.

https://api.apis.guru/v2/specs/vtex.local/Orders-API/1.0/api/orders/feed?maxlot={{maxLot}}

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 GET "https://api.apis.guru/v2/specs/vtex.local/Orders-API/1.0/api/orders/feed?maxlot=%7B%7BmaxLot%7D%7D" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json"
import requests
params = {
    "maxlot": "{{maxLot}}"
}
headers = {
    "Accept": "application/json",
    "Content-Type": "application/json"
}
response = requests.get(
    "https://api.apis.guru/v2/specs/vtex.local/Orders-API/1.0/api/orders/feed",
    params=params,
    headers=headers,
)
print(response.json())
const url = new URL('https://api.apis.guru/v2/specs/vtex.local/Orders-API/1.0/api/orders/feed');
url.searchParams.set('maxlot', '{{maxLot}}');

const response = await fetch(url, {
  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/Orders-API/1.0/api/orders/feed")
	q := baseURL.Query()
	q.Set("maxlot", "{{maxLot}}")
	baseURL.RawQuery = q.Encode()
	targetURL := baseURL.String()
	req, _ := http.NewRequest("GET", 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/Orders-API/1.0/api/orders/feed")
uri.query = URI.encode_www_form({
  "maxlot" => "{{maxLot}}"
})

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"

req = Net::HTTP::Get.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/Orders-API/1.0/api/orders/feed?" . http_build_query([
    "maxlot" => "{{maxLot}}"
]);
$opts = ["http" => [
    "method" => "GET",
    "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));
GET List orders

Retrieves a list of orders according to the filters described below. The limit of information retrieval is 30 pages, the default number of orders per page is 15 and it is possible to configure it up to 100 using the `per_page` parameter. Be aware that as of October 3rd, 2018, this endpoint

https://api.apis.guru/v2/specs/vtex.local/Orders-API/1.0/api/oms/pvt/orders?q=- OrderID: v212333lux-02 - Client email: [email protected] - Client document: 21133355524 - Client name: Taylor&utc=-2000&page=10&f_RnB=Free+Shipping&orderBy=v502556llux-01,asc&f_status=ready-for-handling&per_page=15&f_UtmSource=christmas_campaign&f_isInstore=true&searchField= - SKU ID: `25` - Gift List ID: `11223` - Transaction ID (TID): `54546300238810034995829230012` - PCI Connector's Transaction ID (TID): `7032909234899834298423209` - Payment ID (PID): `2` - Connector's NSU: `2437281`&f_affiliateId=WLM&f_sellerNames=SellerName&f_creationDate=creationDate:[2016-01-01T02:00:00.000Z TO 2021-01-01T01:59:59.999Z]&f_invoicedDate=invoicedDate:[2022-01-01T02:00:00.000Z TO 2022-01-02T01:59:59.999Z]&f_paymentNames=Visa&f_salesChannel=Main&salesChannelId=1&f_authorizedDate=creationDate:[2022-01-01T02:00:00.000Z TO 2022-01-02T01:59:59.999Z]&incompleteOrders=true&f_hasInputInvoice=false&f_shippingEstimate=0.days&f_callCenterOperatorName=Operator%20Name

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 GET "https://api.apis.guru/v2/specs/vtex.local/Orders-API/1.0/api/oms/pvt/orders?q=-%20OrderID%3A%20v212333lux-02%20%0D%0A-%20Client%20email%3A%20taylor%40email.com%20%0D%0A-%20Client%20document%3A%2021133355524%20%0D%0A-%20Client%20name%3A%20Taylor&utc=-2000&page=10&f_RnB=Free%2BShipping&orderBy=v502556llux-01%2Casc&f_status=ready-for-handling&per_page=15&f_UtmSource=christmas_campaign&f_isInstore=true&searchField=%0D%0A-%20SKU%20ID%3A%20%6025%60%20%0D%0A-%20Gift%20List%20ID%3A%20%6011223%60%20%0D%0A-%20Transaction%20ID%20(TID)%3A%20%6054546300238810034995829230012%60%20%0D%0A-%20PCI%20Connector's%20Transaction%20ID%20(TID)%3A%20%607032909234899834298423209%60%20%0D%0A-%20Payment%20ID%20(PID)%3A%20%602%60%20%0D%0A-%20Connector's%20NSU%3A%20%602437281%60&f_affiliateId=WLM&f_sellerNames=SellerName&f_creationDate=creationDate%3A%5B2016-01-01T02%3A00%3A00.000Z%20TO%202021-01-01T01%3A59%3A59.999Z%5D&f_invoicedDate=invoicedDate%3A%5B2022-01-01T02%3A00%3A00.000Z%20TO%202022-01-02T01%3A59%3A59.999Z%5D&f_paymentNames=Visa&f_salesChannel=Main&salesChannelId=1&f_authorizedDate=creationDate%3A%5B2022-01-01T02%3A00%3A00.000Z%20TO%202022-01-02T01%3A59%3A59.999Z%5D&incompleteOrders=true&f_hasInputInvoice=false&f_shippingEstimate=0.days&f_callCenterOperatorName=Operator%2520Name" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json"
import requests
params = {
    "q": "- OrderID: v212333lux-02 
- Client email: [email protected] 
- Client document: 21133355524 
- Client name: Taylor",
    "utc": "-2000",
    "page": "10",
    "f_RnB": "Free+Shipping",
    "orderBy": "v502556llux-01,asc",
    "f_status": "ready-for-handling",
    "per_page": "15",
    "f_UtmSource": "christmas_campaign",
    "f_isInstore": "true",
    "searchField": "
- SKU ID: `25` 
- Gift List ID: `11223` 
- Transaction ID (TID): `54546300238810034995829230012` 
- PCI Connector's Transaction ID (TID): `7032909234899834298423209` 
- Payment ID (PID): `2` 
- Connector's NSU: `2437281`",
    "f_affiliateId": "WLM",
    "f_sellerNames": "SellerName",
    "f_creationDate": "creationDate:[2016-01-01T02:00:00.000Z TO 2021-01-01T01:59:59.999Z]",
    "f_invoicedDate": "invoicedDate:[2022-01-01T02:00:00.000Z TO 2022-01-02T01:59:59.999Z]",
    "f_paymentNames": "Visa",
    "f_salesChannel": "Main",
    "salesChannelId": "1",
    "f_authorizedDate": "creationDate:[2022-01-01T02:00:00.000Z TO 2022-01-02T01:59:59.999Z]",
    "incompleteOrders": "true",
    "f_hasInputInvoice": "false",
    "f_shippingEstimate": "0.days",
    "f_callCenterOperatorName": "Operator%20Name"
}
headers = {
    "Accept": "application/json",
    "Content-Type": "application/json"
}
response = requests.get(
    "https://api.apis.guru/v2/specs/vtex.local/Orders-API/1.0/api/oms/pvt/orders",
    params=params,
    headers=headers,
)
print(response.json())
const url = new URL('https://api.apis.guru/v2/specs/vtex.local/Orders-API/1.0/api/oms/pvt/orders');
url.searchParams.set('q', '- OrderID: v212333lux-02 
- Client email: [email protected] 
- Client document: 21133355524 
- Client name: Taylor');
url.searchParams.set('utc', '-2000');
url.searchParams.set('page', '10');
url.searchParams.set('f_RnB', 'Free+Shipping');
url.searchParams.set('orderBy', 'v502556llux-01,asc');
url.searchParams.set('f_status', 'ready-for-handling');
url.searchParams.set('per_page', '15');
url.searchParams.set('f_UtmSource', 'christmas_campaign');
url.searchParams.set('f_isInstore', 'true');
url.searchParams.set('searchField', '
- SKU ID: `25` 
- Gift List ID: `11223` 
- Transaction ID (TID): `54546300238810034995829230012` 
- PCI Connector's Transaction ID (TID): `7032909234899834298423209` 
- Payment ID (PID): `2` 
- Connector's NSU: `2437281`');
url.searchParams.set('f_affiliateId', 'WLM');
url.searchParams.set('f_sellerNames', 'SellerName');
url.searchParams.set('f_creationDate', 'creationDate:[2016-01-01T02:00:00.000Z TO 2021-01-01T01:59:59.999Z]');
url.searchParams.set('f_invoicedDate', 'invoicedDate:[2022-01-01T02:00:00.000Z TO 2022-01-02T01:59:59.999Z]');
url.searchParams.set('f_paymentNames', 'Visa');
url.searchParams.set('f_salesChannel', 'Main');
url.searchParams.set('salesChannelId', '1');
url.searchParams.set('f_authorizedDate', 'creationDate:[2022-01-01T02:00:00.000Z TO 2022-01-02T01:59:59.999Z]');
url.searchParams.set('incompleteOrders', 'true');
url.searchParams.set('f_hasInputInvoice', 'false');
url.searchParams.set('f_shippingEstimate', '0.days');
url.searchParams.set('f_callCenterOperatorName', 'Operator%20Name');

const response = await fetch(url, {
  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/Orders-API/1.0/api/oms/pvt/orders")
	q := baseURL.Query()
	q.Set("q", "- OrderID: v212333lux-02 
- Client email: [email protected] 
- Client document: 21133355524 
- Client name: Taylor")
	q.Set("utc", "-2000")
	q.Set("page", "10")
	q.Set("f_RnB", "Free+Shipping")
	q.Set("orderBy", "v502556llux-01,asc")
	q.Set("f_status", "ready-for-handling")
	q.Set("per_page", "15")
	q.Set("f_UtmSource", "christmas_campaign")
	q.Set("f_isInstore", "true")
	q.Set("searchField", "
- SKU ID: `25` 
- Gift List ID: `11223` 
- Transaction ID (TID): `54546300238810034995829230012` 
- PCI Connector's Transaction ID (TID): `7032909234899834298423209` 
- Payment ID (PID): `2` 
- Connector's NSU: `2437281`")
	q.Set("f_affiliateId", "WLM")
	q.Set("f_sellerNames", "SellerName")
	q.Set("f_creationDate", "creationDate:[2016-01-01T02:00:00.000Z TO 2021-01-01T01:59:59.999Z]")
	q.Set("f_invoicedDate", "invoicedDate:[2022-01-01T02:00:00.000Z TO 2022-01-02T01:59:59.999Z]")
	q.Set("f_paymentNames", "Visa")
	q.Set("f_salesChannel", "Main")
	q.Set("salesChannelId", "1")
	q.Set("f_authorizedDate", "creationDate:[2022-01-01T02:00:00.000Z TO 2022-01-02T01:59:59.999Z]")
	q.Set("incompleteOrders", "true")
	q.Set("f_hasInputInvoice", "false")
	q.Set("f_shippingEstimate", "0.days")
	q.Set("f_callCenterOperatorName", "Operator%20Name")
	baseURL.RawQuery = q.Encode()
	targetURL := baseURL.String()
	req, _ := http.NewRequest("GET", 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/Orders-API/1.0/api/oms/pvt/orders")
uri.query = URI.encode_www_form({
  "q" => "- OrderID: v212333lux-02 
- Client email: [email protected] 
- Client document: 21133355524 
- Client name: Taylor",
  "utc" => "-2000",
  "page" => "10",
  "f_RnB" => "Free+Shipping",
  "orderBy" => "v502556llux-01,asc",
  "f_status" => "ready-for-handling",
  "per_page" => "15",
  "f_UtmSource" => "christmas_campaign",
  "f_isInstore" => "true",
  "searchField" => "
- SKU ID: `25` 
- Gift List ID: `11223` 
- Transaction ID (TID): `54546300238810034995829230012` 
- PCI Connector's Transaction ID (TID): `7032909234899834298423209` 
- Payment ID (PID): `2` 
- Connector's NSU: `2437281`",
  "f_affiliateId" => "WLM",
  "f_sellerNames" => "SellerName",
  "f_creationDate" => "creationDate:[2016-01-01T02:00:00.000Z TO 2021-01-01T01:59:59.999Z]",
  "f_invoicedDate" => "invoicedDate:[2022-01-01T02:00:00.000Z TO 2022-01-02T01:59:59.999Z]",
  "f_paymentNames" => "Visa",
  "f_salesChannel" => "Main",
  "salesChannelId" => "1",
  "f_authorizedDate" => "creationDate:[2022-01-01T02:00:00.000Z TO 2022-01-02T01:59:59.999Z]",
  "incompleteOrders" => "true",
  "f_hasInputInvoice" => "false",
  "f_shippingEstimate" => "0.days",
  "f_callCenterOperatorName" => "Operator%20Name"
})

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"

req = Net::HTTP::Get.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/Orders-API/1.0/api/oms/pvt/orders?" . http_build_query([
    "q" => "- OrderID: v212333lux-02 
- Client email: [email protected] 
- Client document: 21133355524 
- Client name: Taylor",
    "utc" => "-2000",
    "page" => "10",
    "f_RnB" => "Free+Shipping",
    "orderBy" => "v502556llux-01,asc",
    "f_status" => "ready-for-handling",
    "per_page" => "15",
    "f_UtmSource" => "christmas_campaign",
    "f_isInstore" => "true",
    "searchField" => "
- SKU ID: `25` 
- Gift List ID: `11223` 
- Transaction ID (TID): `54546300238810034995829230012` 
- PCI Connector's Transaction ID (TID): `7032909234899834298423209` 
- Payment ID (PID): `2` 
- Connector's NSU: `2437281`",
    "f_affiliateId" => "WLM",
    "f_sellerNames" => "SellerName",
    "f_creationDate" => "creationDate:[2016-01-01T02:00:00.000Z TO 2021-01-01T01:59:59.999Z]",
    "f_invoicedDate" => "invoicedDate:[2022-01-01T02:00:00.000Z TO 2022-01-02T01:59:59.999Z]",
    "f_paymentNames" => "Visa",
    "f_salesChannel" => "Main",
    "salesChannelId" => "1",
    "f_authorizedDate" => "creationDate:[2022-01-01T02:00:00.000Z TO 2022-01-02T01:59:59.999Z]",
    "incompleteOrders" => "true",
    "f_hasInputInvoice" => "false",
    "f_shippingEstimate" => "0.days",
    "f_callCenterOperatorName" => "Operator%20Name"
]);
$opts = ["http" => [
    "method" => "GET",
    "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));
GET Retrieve user's orders

Lists all orders from a given client, filtering by their email. > Note that these requests are meant to be made by **Call center operator** profiles. Otherwise, they will return only orders from the same email making the request.

https://api.apis.guru/v2/specs/vtex.local/Orders-API/1.0/api/oms/user/orders?page=15&per_page=15&clientEmail=[email protected]

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 GET "https://api.apis.guru/v2/specs/vtex.local/Orders-API/1.0/api/oms/user/orders?page=15&per_page=15&clientEmail=customer%40mail.com" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json"
import requests
params = {
    "page": "15",
    "per_page": "15",
    "clientEmail": "[email protected]"
}
headers = {
    "Accept": "application/json",
    "Content-Type": "application/json"
}
response = requests.get(
    "https://api.apis.guru/v2/specs/vtex.local/Orders-API/1.0/api/oms/user/orders",
    params=params,
    headers=headers,
)
print(response.json())
const url = new URL('https://api.apis.guru/v2/specs/vtex.local/Orders-API/1.0/api/oms/user/orders');
url.searchParams.set('page', '15');
url.searchParams.set('per_page', '15');
url.searchParams.set('clientEmail', '[email protected]');

const response = await fetch(url, {
  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/Orders-API/1.0/api/oms/user/orders")
	q := baseURL.Query()
	q.Set("page", "15")
	q.Set("per_page", "15")
	q.Set("clientEmail", "[email protected]")
	baseURL.RawQuery = q.Encode()
	targetURL := baseURL.String()
	req, _ := http.NewRequest("GET", 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/Orders-API/1.0/api/oms/user/orders")
uri.query = URI.encode_www_form({
  "page" => "15",
  "per_page" => "15",
  "clientEmail" => "[email protected]"
})

http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"

req = Net::HTTP::Get.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/Orders-API/1.0/api/oms/user/orders?" . http_build_query([
    "page" => "15",
    "per_page" => "15",
    "clientEmail" => "[email protected]"
]);
$opts = ["http" => [
    "method" => "GET",
    "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 Orders API?

Orders API 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. Orders API 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 ↗