curl --request GET \
--url https://api.sidenet.ai/v1/prompt-blocks/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.sidenet.ai/v1/prompt-blocks/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.sidenet.ai/v1/prompt-blocks/{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.sidenet.ai/v1/prompt-blocks/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.sidenet.ai/v1/prompt-blocks/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.sidenet.ai/v1/prompt-blocks/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sidenet.ai/v1/prompt-blocks/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"block": {
"id": "d41a8f6b-9c27-4b13-a5e8-2f60c1d7b394",
"org_id": "2b9d7c31-8e4f-4a2b-9d61-77c0a3f5e812",
"name": "Brand voice",
"description": "Tone rules shared by every support agent",
"active_version_id": "7e2b5a90-3c48-4d61-b9f7-05a8c2e14d6f",
"activeVersionNumber": 2,
"latestPublishedVersionNumber": 2,
"draftDirty": true,
"created_at": "2026-07-02T09:14:22.418Z",
"updated_at": "2026-08-11T16:03:47.902Z"
},
"version": {
"id": "7e2b5a90-3c48-4d61-b9f7-05a8c2e14d6f",
"block_id": "d41a8f6b-9c27-4b13-a5e8-2f60c1d7b394",
"version_number": 2,
"rev": 1,
"content": "Speak warmly and never promise a refund you can't confirm.",
"rules": null,
"change_message": "Soften the tone",
"created_at": "2026-08-04T10:22:05.117Z",
"updated_at": "2026-08-04T10:22:05.117Z"
}
}Get prompt block
Returns the block and exactly ONE of its versions. Which one is up to version; by default it is the active (published) version that agents pin to, falling back to the draft when nothing has been activated yet. The block object always reports activeVersionNumber, latestPublishedVersionNumber and draftDirty, so a client can tell what else exists — unpublished edits, or a newer published version agents have not been rolled onto — and ask for it by number in a second call.
curl --request GET \
--url https://api.sidenet.ai/v1/prompt-blocks/{id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.sidenet.ai/v1/prompt-blocks/{id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.sidenet.ai/v1/prompt-blocks/{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.sidenet.ai/v1/prompt-blocks/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.sidenet.ai/v1/prompt-blocks/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.sidenet.ai/v1/prompt-blocks/{id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sidenet.ai/v1/prompt-blocks/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"block": {
"id": "d41a8f6b-9c27-4b13-a5e8-2f60c1d7b394",
"org_id": "2b9d7c31-8e4f-4a2b-9d61-77c0a3f5e812",
"name": "Brand voice",
"description": "Tone rules shared by every support agent",
"active_version_id": "7e2b5a90-3c48-4d61-b9f7-05a8c2e14d6f",
"activeVersionNumber": 2,
"latestPublishedVersionNumber": 2,
"draftDirty": true,
"created_at": "2026-07-02T09:14:22.418Z",
"updated_at": "2026-08-11T16:03:47.902Z"
},
"version": {
"id": "7e2b5a90-3c48-4d61-b9f7-05a8c2e14d6f",
"block_id": "d41a8f6b-9c27-4b13-a5e8-2f60c1d7b394",
"version_number": 2,
"rev": 1,
"content": "Speak warmly and never promise a refund you can't confirm.",
"rules": null,
"change_message": "Soften the tone",
"created_at": "2026-08-04T10:22:05.117Z",
"updated_at": "2026-08-04T10:22:05.117Z"
}
}Authorizations
Organization API key, generated in studio.sidenet.ai. Backend only — never in a browser.
Path Parameters
"d41a8f6b-9c27-4b13-a5e8-2f60c1d7b394"
Query Parameters
Which version of the prompt block to return. Takes any of: a version number (3, or v3); 0 or draft for the unpublished draft; latest for the newest published version; active for the one serving traffic; or the version row's uuid. Defaults to active, falling back to the draft when nothing has been activated yet.
"active"
Response
The block and the version that was selected