curl --request PUT \
--url https://api.kakiyo.com/v1/prompts/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data @- <<EOF
{
"name": "<string>",
"model": "<string>",
"followUpEnabled": true,
"context": "<string>",
"firstMessage": "<string>",
"followUps": [
{
"prompt": "If they didn't reply, send a short bump.",
"delay": 3
}
],
"comment": "<string>"
}
EOFimport requests
url = "https://api.kakiyo.com/v1/prompts/{id}"
payload = {
"name": "<string>",
"model": "<string>",
"followUpEnabled": True,
"context": "<string>",
"firstMessage": "<string>",
"followUps": [
{
"prompt": "If they didn't reply, send a short bump.",
"delay": 3
}
],
"comment": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
model: '<string>',
followUpEnabled: true,
context: '<string>',
firstMessage: '<string>',
followUps: [{prompt: 'If they didn\'t reply, send a short bump.', delay: 3}],
comment: '<string>'
})
};
fetch('https://api.kakiyo.com/v1/prompts/{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://api.kakiyo.com/v1/prompts/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'model' => '<string>',
'followUpEnabled' => true,
'context' => '<string>',
'firstMessage' => '<string>',
'followUps' => [
[
'prompt' => 'If they didn\'t reply, send a short bump.',
'delay' => 3
]
],
'comment' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.kakiyo.com/v1/prompts/{id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"model\": \"<string>\",\n \"followUpEnabled\": true,\n \"context\": \"<string>\",\n \"firstMessage\": \"<string>\",\n \"followUps\": [\n {\n \"prompt\": \"If they didn't reply, send a short bump.\",\n \"delay\": 3\n }\n ],\n \"comment\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.put("https://api.kakiyo.com/v1/prompts/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"model\": \"<string>\",\n \"followUpEnabled\": true,\n \"context\": \"<string>\",\n \"firstMessage\": \"<string>\",\n \"followUps\": [\n {\n \"prompt\": \"If they didn't reply, send a short bump.\",\n \"delay\": 3\n }\n ],\n \"comment\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.kakiyo.com/v1/prompts/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"model\": \"<string>\",\n \"followUpEnabled\": true,\n \"context\": \"<string>\",\n \"firstMessage\": \"<string>\",\n \"followUps\": [\n {\n \"prompt\": \"If they didn't reply, send a short bump.\",\n \"delay\": 3\n }\n ],\n \"comment\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "prompt_987654321",
"name": "Sales Outreach Sequence",
"type": "Messages",
"model": "model_claude3",
"followUpEnabled": true,
"variables": [
"<string>"
],
"context": "<string>",
"firstMessage": "<string>",
"followUps": [
{
"prompt": "If they didn't reply, send a short bump.",
"delay": 3
}
],
"comment": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"guidelines": {}
}{
"error": "validation_error",
"message": "The request parameters failed validation",
"details": [
{
"field": "name",
"message": "The name field is required"
}
]
}{
"error": "validation_error",
"message": "The request parameters failed validation",
"details": [
{
"field": "name",
"message": "The name field is required"
}
]
}{
"error": "validation_error",
"message": "The request parameters failed validation",
"details": [
{
"field": "name",
"message": "The name field is required"
}
]
}Update prompt
Patch prompt sections. Omitted fields stay stored. The server merges, validates, and writes canonical JSON. Do not send a raw content blob. followUps replaces the whole array (max 3). delay is days after the previous message (1-30).
curl --request PUT \
--url https://api.kakiyo.com/v1/prompts/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data @- <<EOF
{
"name": "<string>",
"model": "<string>",
"followUpEnabled": true,
"context": "<string>",
"firstMessage": "<string>",
"followUps": [
{
"prompt": "If they didn't reply, send a short bump.",
"delay": 3
}
],
"comment": "<string>"
}
EOFimport requests
url = "https://api.kakiyo.com/v1/prompts/{id}"
payload = {
"name": "<string>",
"model": "<string>",
"followUpEnabled": True,
"context": "<string>",
"firstMessage": "<string>",
"followUps": [
{
"prompt": "If they didn't reply, send a short bump.",
"delay": 3
}
],
"comment": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
model: '<string>',
followUpEnabled: true,
context: '<string>',
firstMessage: '<string>',
followUps: [{prompt: 'If they didn\'t reply, send a short bump.', delay: 3}],
comment: '<string>'
})
};
fetch('https://api.kakiyo.com/v1/prompts/{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://api.kakiyo.com/v1/prompts/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'model' => '<string>',
'followUpEnabled' => true,
'context' => '<string>',
'firstMessage' => '<string>',
'followUps' => [
[
'prompt' => 'If they didn\'t reply, send a short bump.',
'delay' => 3
]
],
'comment' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.kakiyo.com/v1/prompts/{id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"model\": \"<string>\",\n \"followUpEnabled\": true,\n \"context\": \"<string>\",\n \"firstMessage\": \"<string>\",\n \"followUps\": [\n {\n \"prompt\": \"If they didn't reply, send a short bump.\",\n \"delay\": 3\n }\n ],\n \"comment\": \"<string>\"\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.put("https://api.kakiyo.com/v1/prompts/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"model\": \"<string>\",\n \"followUpEnabled\": true,\n \"context\": \"<string>\",\n \"firstMessage\": \"<string>\",\n \"followUps\": [\n {\n \"prompt\": \"If they didn't reply, send a short bump.\",\n \"delay\": 3\n }\n ],\n \"comment\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.kakiyo.com/v1/prompts/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"model\": \"<string>\",\n \"followUpEnabled\": true,\n \"context\": \"<string>\",\n \"firstMessage\": \"<string>\",\n \"followUps\": [\n {\n \"prompt\": \"If they didn't reply, send a short bump.\",\n \"delay\": 3\n }\n ],\n \"comment\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "prompt_987654321",
"name": "Sales Outreach Sequence",
"type": "Messages",
"model": "model_claude3",
"followUpEnabled": true,
"variables": [
"<string>"
],
"context": "<string>",
"firstMessage": "<string>",
"followUps": [
{
"prompt": "If they didn't reply, send a short bump.",
"delay": 3
}
],
"comment": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"guidelines": {}
}{
"error": "validation_error",
"message": "The request parameters failed validation",
"details": [
{
"field": "name",
"message": "The name field is required"
}
]
}{
"error": "validation_error",
"message": "The request parameters failed validation",
"details": [
{
"field": "name",
"message": "The name field is required"
}
]
}{
"error": "validation_error",
"message": "The request parameters failed validation",
"details": [
{
"field": "name",
"message": "The name field is required"
}
]
}content blob. Unknown keys are validation_error.
Messages fields
| Field | Type | Description |
|---|---|---|
context | string | Role and mission. Counts toward mandatory {{variables}}. Omit to keep stored. |
firstMessage | string | First LinkedIn DM instructions. Counts toward mandatory {{variables}}. Omit to keep stored. |
followUps | array | Replaces the whole list. Max 3 items of { prompt, delay }. delay is 1-30 days after the previous message. Omit to keep current follow-ups; send [] to clear. |
followUpEnabled | boolean | Turns follow-up sending on or off without deleting followUps. |
GET /prompts/:id and send the full array.
A 4th follow-up, a delay outside 1-30, or dropped mandatory variables is rejected and nothing is saved.
Comment fields
| Field | Type | Description |
|---|---|---|
comment | string | Replaces the comment instructions. Invalid on Messages prompts. |
Example: change follow-up delays
curl -X PUT "https://api.kakiyo.com/v1/prompts/PROMPT_ID" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"followUps": [
{ "prompt": "If they didn'\''t reply, send a short bump.", "delay": 7 },
{ "prompt": "Second bump, mention a relevant post.", "delay": 5 }
]
}'
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
ID of the prompt
Body
Fields to patch. At least one field is required.
3 - 100Model ID from GET /models
Messages only. Turns follow-up sending on or off without deleting followUps.
Messages only. Omit to keep the stored context.
Messages only. Omit to keep the stored first message.
Messages only. Replaces the whole array. Omit to keep current follow-ups; send [] to clear. To change one delay, resend every item.
3Show child attributes
Show child attributes
Comment prompts only.
1Response
Updated prompt sections
"prompt_987654321"
"Sales Outreach Sequence"
Messages, Comment "Messages"
"model_claude3"
Whether follow-ups are sent. Does not delete stored followUps.
true
Custom variable names used in this prompt
Messages only. Role and mission. Counts toward mandatory variables.
Messages only. First LinkedIn DM instructions. Counts toward mandatory variables.
Messages only. Max 3 items.
3Show child attributes
Show child attributes
Comment prompts only.
Schema, mandatory variables, and update rules for this prompt

