curl --request POST \
--url https://app.gc.ai/api/external/v1/playbooks/{id}/checks \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"title": "Limitation of liability",
"positions": [
{
"guidance": "Require a mutual liability cap at 12 months of fees."
}
],
"description": "<string>"
}
'import requests
url = "https://app.gc.ai/api/external/v1/playbooks/{id}/checks"
payload = {
"title": "Limitation of liability",
"positions": [{ "guidance": "Require a mutual liability cap at 12 months of fees." }],
"description": "<string>"
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
title: 'Limitation of liability',
positions: [{guidance: 'Require a mutual liability cap at 12 months of fees.'}],
description: '<string>'
})
};
fetch('https://app.gc.ai/api/external/v1/playbooks/{id}/checks', 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://app.gc.ai/api/external/v1/playbooks/{id}/checks",
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' => 'Limitation of liability',
'positions' => [
[
'guidance' => 'Require a mutual liability cap at 12 months of fees.'
]
],
'description' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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://app.gc.ai/api/external/v1/playbooks/{id}/checks"
payload := strings.NewReader("{\n \"title\": \"Limitation of liability\",\n \"positions\": [\n {\n \"guidance\": \"Require a mutual liability cap at 12 months of fees.\"\n }\n ],\n \"description\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<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://app.gc.ai/api/external/v1/playbooks/{id}/checks")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"Limitation of liability\",\n \"positions\": [\n {\n \"guidance\": \"Require a mutual liability cap at 12 months of fees.\"\n }\n ],\n \"description\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.gc.ai/api/external/v1/playbooks/{id}/checks")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"Limitation of liability\",\n \"positions\": [\n {\n \"guidance\": \"Require a mutual liability cap at 12 months of fees.\"\n }\n ],\n \"description\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"title": "<string>",
"description": "<string>",
"positions": [
{
"guidance": "<string>"
}
],
"created_at": "<string>",
"updated_at": "<string>"
}{
"error": "<string>",
"code": "<string>",
"message": "<string>",
"details": {}
}{
"error": "<string>",
"code": "<string>",
"message": "<string>",
"details": {}
}{
"error": "<string>",
"code": "<string>",
"message": "<string>",
"details": {}
}{
"error": "<string>",
"code": "<string>",
"message": "<string>",
"details": {}
}{
"error": "<string>",
"code": "<string>",
"message": "<string>",
"details": {}
}{
"error": "<string>",
"code": "<string>",
"message": "<string>",
"details": {}
}{
"error": "<string>",
"code": "<string>",
"message": "<string>",
"details": {}
}Add a Check to a Playbook
Create a check and append it to the playbook.
Requires write access to the playbook. With a user-scoped key the caller is recorded as the check’s creator; with an org-scoped key the check has no individual creator and is org-owned.
curl --request POST \
--url https://app.gc.ai/api/external/v1/playbooks/{id}/checks \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"title": "Limitation of liability",
"positions": [
{
"guidance": "Require a mutual liability cap at 12 months of fees."
}
],
"description": "<string>"
}
'import requests
url = "https://app.gc.ai/api/external/v1/playbooks/{id}/checks"
payload = {
"title": "Limitation of liability",
"positions": [{ "guidance": "Require a mutual liability cap at 12 months of fees." }],
"description": "<string>"
}
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
title: 'Limitation of liability',
positions: [{guidance: 'Require a mutual liability cap at 12 months of fees.'}],
description: '<string>'
})
};
fetch('https://app.gc.ai/api/external/v1/playbooks/{id}/checks', 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://app.gc.ai/api/external/v1/playbooks/{id}/checks",
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' => 'Limitation of liability',
'positions' => [
[
'guidance' => 'Require a mutual liability cap at 12 months of fees.'
]
],
'description' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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://app.gc.ai/api/external/v1/playbooks/{id}/checks"
payload := strings.NewReader("{\n \"title\": \"Limitation of liability\",\n \"positions\": [\n {\n \"guidance\": \"Require a mutual liability cap at 12 months of fees.\"\n }\n ],\n \"description\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<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://app.gc.ai/api/external/v1/playbooks/{id}/checks")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"Limitation of liability\",\n \"positions\": [\n {\n \"guidance\": \"Require a mutual liability cap at 12 months of fees.\"\n }\n ],\n \"description\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.gc.ai/api/external/v1/playbooks/{id}/checks")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"Limitation of liability\",\n \"positions\": [\n {\n \"guidance\": \"Require a mutual liability cap at 12 months of fees.\"\n }\n ],\n \"description\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"title": "<string>",
"description": "<string>",
"positions": [
{
"guidance": "<string>"
}
],
"created_at": "<string>",
"updated_at": "<string>"
}{
"error": "<string>",
"code": "<string>",
"message": "<string>",
"details": {}
}{
"error": "<string>",
"code": "<string>",
"message": "<string>",
"details": {}
}{
"error": "<string>",
"code": "<string>",
"message": "<string>",
"details": {}
}{
"error": "<string>",
"code": "<string>",
"message": "<string>",
"details": {}
}{
"error": "<string>",
"code": "<string>",
"message": "<string>",
"details": {}
}{
"error": "<string>",
"code": "<string>",
"message": "<string>",
"details": {}
}{
"error": "<string>",
"code": "<string>",
"message": "<string>",
"details": {}
}Authorizations
API key for authentication. Format: gcai_xxxxxxxxx
Create API keys in the GC AI app under Settings → API.
Path Parameters
Playbook ID from GET /playbooks.
Body
Check title (required, non-empty).
1"Limitation of liability"
The check's positions: exactly one standard position plus any number of fallback positions.
1Show child attributes
Show child attributes
Optional internal description.
Optional priority within the playbook.
low, medium, high, null Response
Check created
Unique check identifier
Check title
Optional internal description, or null if unset
Priority of this check within the playbook, or null if unset
low, medium, high, null The check's positions: one standard stance plus any fallbacks.
Show child attributes
Show child attributes
ISO 8601 creation timestamp
ISO 8601 last-update timestamp
Was this page helpful?