Policies System API
vtex · Company
This API will create promotion alarms when selling products with undesired prices and promotions. It will create conditions that will check if the prices and the promotions are correct. If not, the system will alarm the store with information about the product sold at unexpected prices. ## Index `GET` [Get Policy List](https://developers.vtex.com/docs/api-reference/policies-system-api#get-/api/policy-engine/policies) `POST` [Evaluate Policies](https://developers.vtex.com/docs/api-re
Authentication
Sample Requests
Retrieves a list of all policies in the account and general information of each policy.
Hover any highlighted part to learn what it does
| Accept | application/json |
| Content-Type | application/json |
curl -X GET "https://api.apis.guru/v2/specs/vtex.local/Policies-System-API/1.0.0/api/policy-engine/policies" \ -H "Accept: application/json" \ -H "Content-Type: application/json"
import requests
headers = {
"Accept": "application/json",
"Content-Type": "application/json"
}
response = requests.get(
"https://api.apis.guru/v2/specs/vtex.local/Policies-System-API/1.0.0/api/policy-engine/policies",
headers=headers,
)
print(response.json())const url = 'https://api.apis.guru/v2/specs/vtex.local/Policies-System-API/1.0.0/api/policy-engine/policies';
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"
)
func main() {
targetURL := "https://api.apis.guru/v2/specs/vtex.local/Policies-System-API/1.0.0/api/policy-engine/policies"
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/Policies-System-API/1.0.0/api/policy-engine/policies")
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/Policies-System-API/1.0.0/api/policy-engine/policies";
$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));Retrieves general information of a policy by its ID.
Hover any highlighted part to learn what it does
| Accept | application/json |
| Content-Type | application/json |
curl -X GET "https://api.apis.guru/v2/specs/vtex.local/Policies-System-API/1.0.0/api/policy-engine/policies/{id}" \
-H "Accept: application/json" \
-H "Content-Type: application/json"import requests
headers = {
"Accept": "application/json",
"Content-Type": "application/json"
}
response = requests.get(
"https://api.apis.guru/v2/specs/vtex.local/Policies-System-API/1.0.0/api/policy-engine/policies/{id}",
headers=headers,
)
print(response.json())const url = 'https://api.apis.guru/v2/specs/vtex.local/Policies-System-API/1.0.0/api/policy-engine/policies/{id}';
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"
)
func main() {
targetURL := "https://api.apis.guru/v2/specs/vtex.local/Policies-System-API/1.0.0/api/policy-engine/policies/{id}"
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/Policies-System-API/1.0.0/api/policy-engine/policies/{id}")
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/Policies-System-API/1.0.0/api/policy-engine/policies/{id}";
$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));This endpoint consults all policies and checks the ones that satisfy the request body’s conditions.
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/Policies-System-API/1.0.0/api/policy-engine/evaluate" \ -H "Accept: application/json" \ -H "Content-Type: application/json"
import requests
headers = {
"Accept": "application/json",
"Content-Type": "application/json"
}
response = requests.post(
"https://api.apis.guru/v2/specs/vtex.local/Policies-System-API/1.0.0/api/policy-engine/evaluate",
headers=headers,
)
print(response.json())const url = 'https://api.apis.guru/v2/specs/vtex.local/Policies-System-API/1.0.0/api/policy-engine/evaluate';
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"
)
func main() {
targetURL := "https://api.apis.guru/v2/specs/vtex.local/Policies-System-API/1.0.0/api/policy-engine/evaluate"
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/Policies-System-API/1.0.0/api/policy-engine/evaluate")
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/Policies-System-API/1.0.0/api/policy-engine/evaluate";
$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 Policies System API?
Policies System 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. Policies System 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?