Validate Template Blocks
curl --request POST \
--url https://reporter.sandbox.lerian.net/v1/templates/validate \
--header 'Content-Type: application/json' \
--header 'X-Organization-id: <x-organization-id>' \
--data '
{
"blocks": [
{
"type": "loop",
"collection": "accounts",
"iterator": "account",
"children": [
{
"type": "field",
"field": "account.name"
}
]
}
]
}
'import requests
url = "https://reporter.sandbox.lerian.net/v1/templates/validate"
payload = { "blocks": [
{
"type": "loop",
"collection": "accounts",
"iterator": "account",
"children": [
{
"type": "field",
"field": "account.name"
}
]
}
] }
headers = {
"X-Organization-id": "<x-organization-id>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Organization-id': '<x-organization-id>', 'Content-Type': 'application/json'},
body: JSON.stringify({
blocks: [
{
type: 'loop',
collection: 'accounts',
iterator: 'account',
children: [{type: 'field', field: 'account.name'}]
}
]
})
};
fetch('https://reporter.sandbox.lerian.net/v1/templates/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://reporter.sandbox.lerian.net/v1/templates/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([
'blocks' => [
[
'type' => 'loop',
'collection' => 'accounts',
'iterator' => 'account',
'children' => [
[
'type' => 'field',
'field' => 'account.name'
]
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Organization-id: <x-organization-id>"
],
]);
$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://reporter.sandbox.lerian.net/v1/templates/validate"
payload := strings.NewReader("{\n \"blocks\": [\n {\n \"type\": \"loop\",\n \"collection\": \"accounts\",\n \"iterator\": \"account\",\n \"children\": [\n {\n \"type\": \"field\",\n \"field\": \"account.name\"\n }\n ]\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Organization-id", "<x-organization-id>")
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://reporter.sandbox.lerian.net/v1/templates/validate")
.header("X-Organization-id", "<x-organization-id>")
.header("Content-Type", "application/json")
.body("{\n \"blocks\": [\n {\n \"type\": \"loop\",\n \"collection\": \"accounts\",\n \"iterator\": \"account\",\n \"children\": [\n {\n \"type\": \"field\",\n \"field\": \"account.name\"\n }\n ]\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://reporter.sandbox.lerian.net/v1/templates/validate")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Organization-id"] = '<x-organization-id>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"blocks\": [\n {\n \"type\": \"loop\",\n \"collection\": \"accounts\",\n \"iterator\": \"account\",\n \"children\": [\n {\n \"type\": \"field\",\n \"field\": \"account.name\"\n }\n ]\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"valid": false,
"errors": [
{
"blockId": "block-2",
"field": "collection",
"message": "collection is required for loop blocks"
}
]
}Validate Template Blocks
Use this endpoint to validate a sequence of template blocks before saving a template.
Validation issues are returned in the 200 response with valid set to false and a per-block list of messages. HTTP 400 is reserved for a malformed request body.
POST
/
v1
/
templates
/
validate
Validate Template Blocks
curl --request POST \
--url https://reporter.sandbox.lerian.net/v1/templates/validate \
--header 'Content-Type: application/json' \
--header 'X-Organization-id: <x-organization-id>' \
--data '
{
"blocks": [
{
"type": "loop",
"collection": "accounts",
"iterator": "account",
"children": [
{
"type": "field",
"field": "account.name"
}
]
}
]
}
'import requests
url = "https://reporter.sandbox.lerian.net/v1/templates/validate"
payload = { "blocks": [
{
"type": "loop",
"collection": "accounts",
"iterator": "account",
"children": [
{
"type": "field",
"field": "account.name"
}
]
}
] }
headers = {
"X-Organization-id": "<x-organization-id>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-Organization-id': '<x-organization-id>', 'Content-Type': 'application/json'},
body: JSON.stringify({
blocks: [
{
type: 'loop',
collection: 'accounts',
iterator: 'account',
children: [{type: 'field', field: 'account.name'}]
}
]
})
};
fetch('https://reporter.sandbox.lerian.net/v1/templates/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://reporter.sandbox.lerian.net/v1/templates/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([
'blocks' => [
[
'type' => 'loop',
'collection' => 'accounts',
'iterator' => 'account',
'children' => [
[
'type' => 'field',
'field' => 'account.name'
]
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Organization-id: <x-organization-id>"
],
]);
$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://reporter.sandbox.lerian.net/v1/templates/validate"
payload := strings.NewReader("{\n \"blocks\": [\n {\n \"type\": \"loop\",\n \"collection\": \"accounts\",\n \"iterator\": \"account\",\n \"children\": [\n {\n \"type\": \"field\",\n \"field\": \"account.name\"\n }\n ]\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-Organization-id", "<x-organization-id>")
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://reporter.sandbox.lerian.net/v1/templates/validate")
.header("X-Organization-id", "<x-organization-id>")
.header("Content-Type", "application/json")
.body("{\n \"blocks\": [\n {\n \"type\": \"loop\",\n \"collection\": \"accounts\",\n \"iterator\": \"account\",\n \"children\": [\n {\n \"type\": \"field\",\n \"field\": \"account.name\"\n }\n ]\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://reporter.sandbox.lerian.net/v1/templates/validate")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-Organization-id"] = '<x-organization-id>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"blocks\": [\n {\n \"type\": \"loop\",\n \"collection\": \"accounts\",\n \"iterator\": \"account\",\n \"children\": [\n {\n \"type\": \"field\",\n \"field\": \"account.name\"\n }\n ]\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"valid": false,
"errors": [
{
"blockId": "block-2",
"field": "collection",
"message": "collection is required for loop blocks"
}
]
}Headers
The authorization token in the 'Bearer ' format.
Important: This header is required if your environment has Access Manager enabled. For more information, refer to the Access Manager documentation.
The unique identifier of the Organization associated with the request.
Body
application/json
The template blocks to validate.
Was this page helpful?
⌘I

