curl --request POST \
--url https://sandbox.axle.insure/validation/templates/{id} \
--header 'Content-Type: application/json' \
--header 'x-client-id: <x-client-id>' \
--header 'x-client-secret: <api-key>' \
--data '
{
"displayName": "Overwrite Template",
"rules": [
{
"rule": "policy-active"
}
],
"metadata": {
"locationId": "123"
}
}
'import requests
url = "https://sandbox.axle.insure/validation/templates/{id}"
payload = {
"displayName": "Overwrite Template",
"rules": [{ "rule": "policy-active" }],
"metadata": { "locationId": "123" }
}
headers = {
"x-client-id": "<x-client-id>",
"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-client-secret': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
displayName: 'Overwrite Template',
rules: [{rule: 'policy-active'}],
metadata: {locationId: '123'}
})
};
fetch('https://sandbox.axle.insure/validation/templates/{id}', 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/validation/templates/{id}",
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([
'displayName' => 'Overwrite Template',
'rules' => [
[
'rule' => 'policy-active'
]
],
'metadata' => [
'locationId' => '123'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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/validation/templates/{id}"
payload := strings.NewReader("{\n \"displayName\": \"Overwrite Template\",\n \"rules\": [\n {\n \"rule\": \"policy-active\"\n }\n ],\n \"metadata\": {\n \"locationId\": \"123\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-client-id", "<x-client-id>")
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/validation/templates/{id}")
.header("x-client-id", "<x-client-id>")
.header("x-client-secret", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"displayName\": \"Overwrite Template\",\n \"rules\": [\n {\n \"rule\": \"policy-active\"\n }\n ],\n \"metadata\": {\n \"locationId\": \"123\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.axle.insure/validation/templates/{id}")
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-client-secret"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"displayName\": \"Overwrite Template\",\n \"rules\": [\n {\n \"rule\": \"policy-active\"\n }\n ],\n \"metadata\": {\n \"locationId\": \"123\"\n }\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"id": "tem_jsK9vrCIfABlCW7PqIknc",
"displayName": "Overwrite Template",
"createdAt": "2025-06-10T13:57:22.300Z",
"modifiedAt": "2025-06-10T14:30:00.000Z",
"rules": [
{
"rule": "policy-active"
}
],
"metadata": {
"locationId": "123"
}
}
}{
"success": false,
"message": "Input validation failed due to one or more missing or invalid parameters. Review the request and try again."
}{
"message": "Requested entity not found"
}{
"message": "Too Many Requests"
}Update Template
The Update Template endpoint updates a Template object. This endpoint will upsert template for provided clientId or destinationId.
curl --request POST \
--url https://sandbox.axle.insure/validation/templates/{id} \
--header 'Content-Type: application/json' \
--header 'x-client-id: <x-client-id>' \
--header 'x-client-secret: <api-key>' \
--data '
{
"displayName": "Overwrite Template",
"rules": [
{
"rule": "policy-active"
}
],
"metadata": {
"locationId": "123"
}
}
'import requests
url = "https://sandbox.axle.insure/validation/templates/{id}"
payload = {
"displayName": "Overwrite Template",
"rules": [{ "rule": "policy-active" }],
"metadata": { "locationId": "123" }
}
headers = {
"x-client-id": "<x-client-id>",
"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-client-secret': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
displayName: 'Overwrite Template',
rules: [{rule: 'policy-active'}],
metadata: {locationId: '123'}
})
};
fetch('https://sandbox.axle.insure/validation/templates/{id}', 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/validation/templates/{id}",
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([
'displayName' => 'Overwrite Template',
'rules' => [
[
'rule' => 'policy-active'
]
],
'metadata' => [
'locationId' => '123'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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/validation/templates/{id}"
payload := strings.NewReader("{\n \"displayName\": \"Overwrite Template\",\n \"rules\": [\n {\n \"rule\": \"policy-active\"\n }\n ],\n \"metadata\": {\n \"locationId\": \"123\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-client-id", "<x-client-id>")
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/validation/templates/{id}")
.header("x-client-id", "<x-client-id>")
.header("x-client-secret", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"displayName\": \"Overwrite Template\",\n \"rules\": [\n {\n \"rule\": \"policy-active\"\n }\n ],\n \"metadata\": {\n \"locationId\": \"123\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.axle.insure/validation/templates/{id}")
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-client-secret"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"displayName\": \"Overwrite Template\",\n \"rules\": [\n {\n \"rule\": \"policy-active\"\n }\n ],\n \"metadata\": {\n \"locationId\": \"123\"\n }\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"id": "tem_jsK9vrCIfABlCW7PqIknc",
"displayName": "Overwrite Template",
"createdAt": "2025-06-10T13:57:22.300Z",
"modifiedAt": "2025-06-10T14:30:00.000Z",
"rules": [
{
"rule": "policy-active"
}
],
"metadata": {
"locationId": "123"
}
}
}{
"success": false,
"message": "Input validation failed due to one or more missing or invalid parameters. Review the request and try again."
}{
"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.
Path Parameters
The unique ID of the Validation template.
Body
User friendly name of the template.
A list of Rules to perform on the policy object.
- Rule With No Input
- Rule With Input
Show child attributes
Show child attributes
Optional object to store custom information about the template. If provided, this value is returned in Get Template and Get Templates responses.
Response
Indicates whether the operation was performed successfully.
true
Updated validation template object for client.
Show child attributes
Show child attributes
{
"id": "tem_jsK9vrCIfABlCW7PqIknc",
"displayName": "Example Template",
"createdAt": "2025-06-10T13:57:22.300Z",
"modifiedAt": "2025-06-10T13:57:22.300Z",
"rules": [
{ "rule": "policy-active" },
{
"rule": "collision-coverage-meets-requirements",
"input": {
"deductible": {
"source": "maxDeductible",
"default": "500"
}
}
}
],
"metadata": { "locationId": "123" }
}
Was this page helpful?