Update blog post
curl --request PUT \
--url https://api.truthlocks.com/v1/platform/blog/posts/{id} \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"title": "<string>",
"slug": "<string>",
"category": "<string>",
"content": "<string>",
"excerpt": "<string>",
"cover_image_url": "<string>",
"tags": [
"<string>"
]
}
'import requests
url = "https://api.truthlocks.com/v1/platform/blog/posts/{id}"
payload = {
"title": "<string>",
"slug": "<string>",
"category": "<string>",
"content": "<string>",
"excerpt": "<string>",
"cover_image_url": "<string>",
"tags": ["<string>"]
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
title: '<string>',
slug: '<string>',
category: '<string>',
content: '<string>',
excerpt: '<string>',
cover_image_url: '<string>',
tags: ['<string>']
})
};
fetch('https://api.truthlocks.com/v1/platform/blog/posts/{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.truthlocks.com/v1/platform/blog/posts/{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([
'title' => '<string>',
'slug' => '<string>',
'category' => '<string>',
'content' => '<string>',
'excerpt' => '<string>',
'cover_image_url' => '<string>',
'tags' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <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://api.truthlocks.com/v1/platform/blog/posts/{id}"
payload := strings.NewReader("{\n \"title\": \"<string>\",\n \"slug\": \"<string>\",\n \"category\": \"<string>\",\n \"content\": \"<string>\",\n \"excerpt\": \"<string>\",\n \"cover_image_url\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("X-API-Key", "<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.put("https://api.truthlocks.com/v1/platform/blog/posts/{id}")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"<string>\",\n \"slug\": \"<string>\",\n \"category\": \"<string>\",\n \"content\": \"<string>\",\n \"excerpt\": \"<string>\",\n \"cover_image_url\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.truthlocks.com/v1/platform/blog/posts/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"<string>\",\n \"slug\": \"<string>\",\n \"category\": \"<string>\",\n \"content\": \"<string>\",\n \"excerpt\": \"<string>\",\n \"cover_image_url\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"status": "<string>",
"updated_at": "<string>"
}{
"code": "AUTH_REQUIRED",
"message": "Authentication required",
"http_status": 401
}Blog Management
Update blog post
Update one or more fields on an existing blog post.
PUT
/
v1
/
platform
/
blog
/
posts
/
{id}
Update blog post
curl --request PUT \
--url https://api.truthlocks.com/v1/platform/blog/posts/{id} \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"title": "<string>",
"slug": "<string>",
"category": "<string>",
"content": "<string>",
"excerpt": "<string>",
"cover_image_url": "<string>",
"tags": [
"<string>"
]
}
'import requests
url = "https://api.truthlocks.com/v1/platform/blog/posts/{id}"
payload = {
"title": "<string>",
"slug": "<string>",
"category": "<string>",
"content": "<string>",
"excerpt": "<string>",
"cover_image_url": "<string>",
"tags": ["<string>"]
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
title: '<string>',
slug: '<string>',
category: '<string>',
content: '<string>',
excerpt: '<string>',
cover_image_url: '<string>',
tags: ['<string>']
})
};
fetch('https://api.truthlocks.com/v1/platform/blog/posts/{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.truthlocks.com/v1/platform/blog/posts/{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([
'title' => '<string>',
'slug' => '<string>',
'category' => '<string>',
'content' => '<string>',
'excerpt' => '<string>',
'cover_image_url' => '<string>',
'tags' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <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://api.truthlocks.com/v1/platform/blog/posts/{id}"
payload := strings.NewReader("{\n \"title\": \"<string>\",\n \"slug\": \"<string>\",\n \"category\": \"<string>\",\n \"content\": \"<string>\",\n \"excerpt\": \"<string>\",\n \"cover_image_url\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("X-API-Key", "<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.put("https://api.truthlocks.com/v1/platform/blog/posts/{id}")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"<string>\",\n \"slug\": \"<string>\",\n \"category\": \"<string>\",\n \"content\": \"<string>\",\n \"excerpt\": \"<string>\",\n \"cover_image_url\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.truthlocks.com/v1/platform/blog/posts/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"title\": \"<string>\",\n \"slug\": \"<string>\",\n \"category\": \"<string>\",\n \"content\": \"<string>\",\n \"excerpt\": \"<string>\",\n \"cover_image_url\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"status": "<string>",
"updated_at": "<string>"
}{
"code": "AUTH_REQUIRED",
"message": "Authentication required",
"http_status": 401
}Updates the specified blog post. Only include the fields you want to change — omitted fields remain unchanged.
Requires the content admin or super admin platform role.
Changing the
slug of a published post updates its public URL. If the post has been shared or indexed, keep the original slug to avoid broken links.Parameters
string
required
The blog post ID.
string
Updated post headline.
string
Updated URL path segment.
string
Updated category. One of
engineering, product, security, company, or industry.string
Updated Markdown body.
string
Updated short summary.
string
Updated cover image URL.
string[]
Updated list of tags. Replaces the existing tags.
Responses
Authorizations
API key for machine-to-machine authentication
Path Parameters
Body
application/json

