Validate content guidance
curl --request POST \
--url 'https://api.conductor.com/v4/accounts/{accountId}/drafts/{draftId}/validate?apiKey=&sig=' \
--header 'Content-Type: application/json' \
--data '
{
"title": "<string>",
"metaDescription": "<string>",
"bodyCopy": "<string>"
}
'import requests
url = "https://api.conductor.com/v4/accounts/{accountId}/drafts/{draftId}/validate?apiKey=&sig="
payload = {
"title": "<string>",
"metaDescription": "<string>",
"bodyCopy": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({title: '<string>', metaDescription: '<string>', bodyCopy: '<string>'})
};
fetch('https://api.conductor.com/v4/accounts/{accountId}/drafts/{draftId}/validate?apiKey=&sig=', 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://api.conductor.com/v4/accounts/{accountId}/drafts/{draftId}/validate?apiKey=&sig=",
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([
'title' => '<string>',
'metaDescription' => '<string>',
'bodyCopy' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$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://api.conductor.com/v4/accounts/{accountId}/drafts/{draftId}/validate?apiKey=&sig="
payload := strings.NewReader("{\n \"title\": \"<string>\",\n \"metaDescription\": \"<string>\",\n \"bodyCopy\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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://api.conductor.com/v4/accounts/{accountId}/drafts/{draftId}/validate?apiKey=&sig=")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"<string>\",\n \"metaDescription\": \"<string>\",\n \"bodyCopy\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.conductor.com/v4/accounts/{accountId}/drafts/{draftId}/validate?apiKey=&sig=")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"<string>\",\n \"metaDescription\": \"<string>\",\n \"bodyCopy\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body[
{
"type": "CONTENT_ANALYSIS_INSIGHT",
"errorCode": null,
"errorMessage": null,
"insightScore": null,
"summary": null,
"status": null,
"insightPresent": true,
"empty": false,
"details": {
"financial data integration": true,
"data pipelines": false,
"drag-and-drop": false,
"key features": false,
"analytics": true,
"customer experiences": true,
"real-time": true,
"use cases": true,
"enable": true,
"data lake": false,
"data sources": true,
"ai-powered": false,
"analytics-ready": true,
"resource-intensive": false,
"data quality": true,
"data-driven": true,
"data integration solution": true,
"data integration tools": true,
"integration": true,
"data volumes": false,
"data integration": true,
"data silos": true,
"data warehouse": false,
"data integration patterns": true,
"data management": true,
"ai-driven": false,
"end-to-end": true,
"low-code": false,
"platform": true,
"database": false,
"cloud-native": true,
"cloud-based": true,
"data ingestion": false,
"api integrations": true,
"data transformation": true,
"pre-built connectors": true,
"target system": true,
"api-based": true,
"subscription-based": true,
"on-premises": true,
"different sources": false,
"data integration platform": true,
"operational efficiency": true,
"transformation": true,
"integrate": true,
"multiple sources": false,
"up-to-date": true,
"enterprise-grade": false,
"no-code": false,
"various sources": false
}
},
{
"type": "HTML_HEADING1_COMMON",
"errorCode": null,
"errorMessage": null,
"insightScore": null,
"summary": null,
"status": null,
"insightPresent": true,
"empty": false,
"details": {
"data integration platform": false,
"data integration for banking": false,
"financial data integration": true,
"data integration": true
}
},
{
"type": "HTML_HEADING2_COMMON",
"errorCode": null,
"errorMessage": null,
"insightScore": null,
"summary": null,
"status": null,
"insightPresent": true,
"empty": false,
"details": {
"data integration use cases": false,
"financial data integration": true,
"benefits of data integration": false,
"data integration tools": false
}
},
{
"type": "HTML_HEADING3_COMMON",
"errorCode": null,
"errorMessage": null,
"insightScore": null,
"summary": null,
"status": null,
"insightPresent": true,
"empty": false,
"details": {
"financial data integration solutions": false,
"data integration challenges": false,
"benefits of data integration": false,
"data integration tools": false
}
}
]{
"code": "<string>",
"message": "<string>"
}Content Guidance
Validate content guidance
Validate on-page content (title, meta description, body copy) against Content Guidance recommendations for a given request.
POST
/
v4
/
accounts
/
{accountId}
/
drafts
/
{draftId}
/
validate
Validate content guidance
curl --request POST \
--url 'https://api.conductor.com/v4/accounts/{accountId}/drafts/{draftId}/validate?apiKey=&sig=' \
--header 'Content-Type: application/json' \
--data '
{
"title": "<string>",
"metaDescription": "<string>",
"bodyCopy": "<string>"
}
'import requests
url = "https://api.conductor.com/v4/accounts/{accountId}/drafts/{draftId}/validate?apiKey=&sig="
payload = {
"title": "<string>",
"metaDescription": "<string>",
"bodyCopy": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({title: '<string>', metaDescription: '<string>', bodyCopy: '<string>'})
};
fetch('https://api.conductor.com/v4/accounts/{accountId}/drafts/{draftId}/validate?apiKey=&sig=', 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://api.conductor.com/v4/accounts/{accountId}/drafts/{draftId}/validate?apiKey=&sig=",
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([
'title' => '<string>',
'metaDescription' => '<string>',
'bodyCopy' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$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://api.conductor.com/v4/accounts/{accountId}/drafts/{draftId}/validate?apiKey=&sig="
payload := strings.NewReader("{\n \"title\": \"<string>\",\n \"metaDescription\": \"<string>\",\n \"bodyCopy\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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://api.conductor.com/v4/accounts/{accountId}/drafts/{draftId}/validate?apiKey=&sig=")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"<string>\",\n \"metaDescription\": \"<string>\",\n \"bodyCopy\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.conductor.com/v4/accounts/{accountId}/drafts/{draftId}/validate?apiKey=&sig=")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"<string>\",\n \"metaDescription\": \"<string>\",\n \"bodyCopy\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body[
{
"type": "CONTENT_ANALYSIS_INSIGHT",
"errorCode": null,
"errorMessage": null,
"insightScore": null,
"summary": null,
"status": null,
"insightPresent": true,
"empty": false,
"details": {
"financial data integration": true,
"data pipelines": false,
"drag-and-drop": false,
"key features": false,
"analytics": true,
"customer experiences": true,
"real-time": true,
"use cases": true,
"enable": true,
"data lake": false,
"data sources": true,
"ai-powered": false,
"analytics-ready": true,
"resource-intensive": false,
"data quality": true,
"data-driven": true,
"data integration solution": true,
"data integration tools": true,
"integration": true,
"data volumes": false,
"data integration": true,
"data silos": true,
"data warehouse": false,
"data integration patterns": true,
"data management": true,
"ai-driven": false,
"end-to-end": true,
"low-code": false,
"platform": true,
"database": false,
"cloud-native": true,
"cloud-based": true,
"data ingestion": false,
"api integrations": true,
"data transformation": true,
"pre-built connectors": true,
"target system": true,
"api-based": true,
"subscription-based": true,
"on-premises": true,
"different sources": false,
"data integration platform": true,
"operational efficiency": true,
"transformation": true,
"integrate": true,
"multiple sources": false,
"up-to-date": true,
"enterprise-grade": false,
"no-code": false,
"various sources": false
}
},
{
"type": "HTML_HEADING1_COMMON",
"errorCode": null,
"errorMessage": null,
"insightScore": null,
"summary": null,
"status": null,
"insightPresent": true,
"empty": false,
"details": {
"data integration platform": false,
"data integration for banking": false,
"financial data integration": true,
"data integration": true
}
},
{
"type": "HTML_HEADING2_COMMON",
"errorCode": null,
"errorMessage": null,
"insightScore": null,
"summary": null,
"status": null,
"insightPresent": true,
"empty": false,
"details": {
"data integration use cases": false,
"financial data integration": true,
"benefits of data integration": false,
"data integration tools": false
}
},
{
"type": "HTML_HEADING3_COMMON",
"errorCode": null,
"errorMessage": null,
"insightScore": null,
"summary": null,
"status": null,
"insightPresent": true,
"empty": false,
"details": {
"financial data integration solutions": false,
"data integration challenges": false,
"benefits of data integration": false,
"data integration tools": false
}
}
]{
"code": "<string>",
"message": "<string>"
}Authorizations
API Key as a query parameter
Request signature computed using API key and secret. Valid for 5 minutes after creation.
Path Parameters
Account identifier
Draft identifier
Response
OK
- Option 1
- Option 2
- Option 3
- Option 4
- Option 5
- Option 6
- Option 7
- Option 8
- Option 9
- Option 10
- Option 11
- Option 12
- Option 13
- Option 14
- Option 15
Available options:
PAA_INSIGHT, BODY_CONTENT_COMMON, CONTENT_ANALYSIS_INSIGHT, HTML_HEADING1_COMMON, HTML_HEADING2_COMMON, HTML_HEADING3_COMMON, HTML_META_DESCRIPTION_COMMON, HTML_TITLE_COMMON, CONTENT_LENGTH_INSIGHT, READABILITY_INSIGHT, OBJECTIVE_INSIGHT, AUDIENCE_INSIGHT, JOURNEY_STAGE_INSIGHT, CONTENT_TYPE_INSIGHT, SUBTOPIC_INSIGHT, OPPORTUNITIES_SNIPPET, MSV_SNIPPET Processing status for an individual insight or snippet item.
Available options:
COMPLETED, COMPLETED_WITH_ERRORS, ERROR Shape varies by insight type; see the concrete *Insight subtypes.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
⌘I
