Find an API

Search public APIs with auth details & Postman guides

← All APIs

Policies System API

vtex · Company

Company No Auth Free & Open API

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

No authentication requiredFree to use with no key needed.

Sample Requests

GET Get Policy List

Retrieves a list of all policies in the account and general information of each policy.

https://api.apis.guru/v2/specs/vtex.local/Policies-System-API/1.0.0/api/policy-engine/policies

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/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));
GET Get Policy by ID

Retrieves general information of a policy by its ID.

https://api.apis.guru/v2/specs/vtex.local/Policies-System-API/1.0.0/api/policy-engine/policies/{id}

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/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));
POST Evaluate Policies

This endpoint consults all policies and checks the ones that satisfy the request body’s conditions.

https://api.apis.guru/v2/specs/vtex.local/Policies-System-API/1.0.0/api/policy-engine/evaluate

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/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

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

Open documentation ↗