curl --request POST \
--url https://sandbox.axle.insure/policies/{policyId}/validate \
--header 'Content-Type: application/json' \
--header 'x-access-token: <x-access-token>' \
--header 'x-client-id: <x-client-id>' \
--header 'x-client-secret: <api-key>' \
--data '
[
{
"rule": "example-rule"
},
{
"rule": "example-rule-with-input",
"input": {
"date": "2025-01-01"
}
}
]
'import requests
url = "https://sandbox.axle.insure/policies/{policyId}/validate"
payload = [
{ "rule": "example-rule" },
{
"rule": "example-rule-with-input",
"input": { "date": "2025-01-01" }
}
]
headers = {
"x-client-id": "<x-client-id>",
"x-access-token": "<x-access-token>",
"x-client-secret": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-client-id': '<x-client-id>',
'x-access-token': '<x-access-token>',
'x-client-secret': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify([
{rule: 'example-rule'},
{rule: 'example-rule-with-input', input: {date: '2025-01-01'}}
])
};
fetch('https://sandbox.axle.insure/policies/{policyId}/validate', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://sandbox.axle.insure/policies/{policyId}/validate",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
[
'rule' => 'example-rule'
],
[
'rule' => 'example-rule-with-input',
'input' => [
'date' => '2025-01-01'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-access-token: <x-access-token>",
"x-client-id: <x-client-id>",
"x-client-secret: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://sandbox.axle.insure/policies/{policyId}/validate"
payload := strings.NewReader("[\n {\n \"rule\": \"example-rule\"\n },\n {\n \"rule\": \"example-rule-with-input\",\n \"input\": {\n \"date\": \"2025-01-01\"\n }\n }\n]")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-client-id", "<x-client-id>")
req.Header.Add("x-access-token", "<x-access-token>")
req.Header.Add("x-client-secret", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://sandbox.axle.insure/policies/{policyId}/validate")
.header("x-client-id", "<x-client-id>")
.header("x-access-token", "<x-access-token>")
.header("x-client-secret", "<api-key>")
.header("Content-Type", "application/json")
.body("[\n {\n \"rule\": \"example-rule\"\n },\n {\n \"rule\": \"example-rule-with-input\",\n \"input\": {\n \"date\": \"2025-01-01\"\n }\n }\n]")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.axle.insure/policies/{policyId}/validate")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-client-id"] = '<x-client-id>'
request["x-access-token"] = '<x-access-token>'
request["x-client-secret"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "[\n {\n \"rule\": \"example-rule\"\n },\n {\n \"rule\": \"example-rule-with-input\",\n \"input\": {\n \"date\": \"2025-01-01\"\n }\n }\n]"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"status": "pass",
"summary": {
"example-rule": "pass"
},
"rules": {
"example-rule": {
"status": "pass",
"metadata": {},
"message": {},
"breakdown": {}
}
},
"validationResult": "<string>"
}
}{
"success": false,
"message": "Input validation failed due to one or more missing or invalid parameters. Review the request and try again."
}{
"message": "Unauthorized"
}{
"message": "Requested entity not found"
}{
"message": "Too Many Requests"
}Validate Policy
The Validate Policy endpoint returns the result of a evaluating a series of Rules against the requested policy object. For details about each Rule and their return types, see the Policy Validation Guide.
curl --request POST \
--url https://sandbox.axle.insure/policies/{policyId}/validate \
--header 'Content-Type: application/json' \
--header 'x-access-token: <x-access-token>' \
--header 'x-client-id: <x-client-id>' \
--header 'x-client-secret: <api-key>' \
--data '
[
{
"rule": "example-rule"
},
{
"rule": "example-rule-with-input",
"input": {
"date": "2025-01-01"
}
}
]
'import requests
url = "https://sandbox.axle.insure/policies/{policyId}/validate"
payload = [
{ "rule": "example-rule" },
{
"rule": "example-rule-with-input",
"input": { "date": "2025-01-01" }
}
]
headers = {
"x-client-id": "<x-client-id>",
"x-access-token": "<x-access-token>",
"x-client-secret": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-client-id': '<x-client-id>',
'x-access-token': '<x-access-token>',
'x-client-secret': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify([
{rule: 'example-rule'},
{rule: 'example-rule-with-input', input: {date: '2025-01-01'}}
])
};
fetch('https://sandbox.axle.insure/policies/{policyId}/validate', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://sandbox.axle.insure/policies/{policyId}/validate",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
[
'rule' => 'example-rule'
],
[
'rule' => 'example-rule-with-input',
'input' => [
'date' => '2025-01-01'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-access-token: <x-access-token>",
"x-client-id: <x-client-id>",
"x-client-secret: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://sandbox.axle.insure/policies/{policyId}/validate"
payload := strings.NewReader("[\n {\n \"rule\": \"example-rule\"\n },\n {\n \"rule\": \"example-rule-with-input\",\n \"input\": {\n \"date\": \"2025-01-01\"\n }\n }\n]")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-client-id", "<x-client-id>")
req.Header.Add("x-access-token", "<x-access-token>")
req.Header.Add("x-client-secret", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://sandbox.axle.insure/policies/{policyId}/validate")
.header("x-client-id", "<x-client-id>")
.header("x-access-token", "<x-access-token>")
.header("x-client-secret", "<api-key>")
.header("Content-Type", "application/json")
.body("[\n {\n \"rule\": \"example-rule\"\n },\n {\n \"rule\": \"example-rule-with-input\",\n \"input\": {\n \"date\": \"2025-01-01\"\n }\n }\n]")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.axle.insure/policies/{policyId}/validate")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-client-id"] = '<x-client-id>'
request["x-access-token"] = '<x-access-token>'
request["x-client-secret"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "[\n {\n \"rule\": \"example-rule\"\n },\n {\n \"rule\": \"example-rule-with-input\",\n \"input\": {\n \"date\": \"2025-01-01\"\n }\n }\n]"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"status": "pass",
"summary": {
"example-rule": "pass"
},
"rules": {
"example-rule": {
"status": "pass",
"metadata": {},
"message": {},
"breakdown": {}
}
},
"validationResult": "<string>"
}
}{
"success": false,
"message": "Input validation failed due to one or more missing or invalid parameters. Review the request and try again."
}{
"message": "Unauthorized"
}{
"message": "Requested entity not found"
}{
"message": "Too Many Requests"
}Authorizations
Your secret API key. This will be shared with you during onboarding and should be considered sensitive - it’s a password after all! Your secret will be matched with your client ID to authenticate your requests.
Headers
Your client ID. This will be shared with you during onboarding.
The client ID of the destination client. This is optional and only used by platform clients. See the Axle for Platforms guide for more information.
The access token required for access to the requested Account. Returned as part of Exchange Token.
Path Parameters
The unique ID for the requested policy, in the format pol_.... Returned by Get Account for each Policy associated with the Account.
Query Parameters
Set to renewal if you would like to receive the renewal policy information. By default it returns the policy the insurance carrier designates as default (i.e. insurance might return either current or renewal term).
⚠️ Note If endpoint returns 404, it means no renewal or current policy is available. We recommend calling the API again without the term query parameter to receive the policy the insurance carrier designates as default.
current, renewal Body
- Rule With No Input
- Rule With Input
policy-active, rental-covered-for-collision Was this page helpful?