Generate Post Ideas Route
curl --request POST \
--url https://api.example.com/api/v1/brands/{brand_id}/brand-intelligence/post-ideas/generate \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"source": "own_post",
"post_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"count": 5
}
'import requests
url = "https://api.example.com/api/v1/brands/{brand_id}/brand-intelligence/post-ideas/generate"
payload = {
"source": "own_post",
"post_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"count": 5
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({source: 'own_post', post_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a', count: 5})
};
fetch('https://api.example.com/api/v1/brands/{brand_id}/brand-intelligence/post-ideas/generate', 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.example.com/api/v1/brands/{brand_id}/brand-intelligence/post-ideas/generate",
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([
'source' => 'own_post',
'post_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'count' => 5
]),
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.example.com/api/v1/brands/{brand_id}/brand-intelligence/post-ideas/generate"
payload := strings.NewReader("{\n \"source\": \"own_post\",\n \"post_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"count\": 5\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.example.com/api/v1/brands/{brand_id}/brand-intelligence/post-ideas/generate")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"source\": \"own_post\",\n \"post_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"count\": 5\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/brands/{brand_id}/brand-intelligence/post-ideas/generate")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"source\": \"own_post\",\n \"post_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"count\": 5\n}"
response = http.request(request)
puts response.read_body{
"source": "own_post",
"brand_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"ideas": [
{
"idea": "<string>",
"hook": "<string>",
"format": "video",
"angle": "<string>"
}
],
"generated_at": "2023-11-07T05:31:56Z",
"subject_label": "<string>",
"brand_name": "<string>",
"source_signals": [
"<string>"
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Brand Intelligence
Generate Post Ideas Route
Generate post ideas from one own post or one tracked cohort.
Ownership is checked twice on purpose, because the two arms reach the owning brand through different tables. The path check below proves the caller owns THIS BRAND; the own-post arm then proves the post is one this brand PUBLISHED (not merely one it tracks), and the cohort arm proves every requested domain is one of this brand’s tracked competitors. Neither arm’s check implies the other’s.
POST
/
api
/
v1
/
brands
/
{brand_id}
/
brand-intelligence
/
post-ideas
/
generate
Generate Post Ideas Route
curl --request POST \
--url https://api.example.com/api/v1/brands/{brand_id}/brand-intelligence/post-ideas/generate \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"source": "own_post",
"post_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"count": 5
}
'import requests
url = "https://api.example.com/api/v1/brands/{brand_id}/brand-intelligence/post-ideas/generate"
payload = {
"source": "own_post",
"post_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"count": 5
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({source: 'own_post', post_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a', count: 5})
};
fetch('https://api.example.com/api/v1/brands/{brand_id}/brand-intelligence/post-ideas/generate', 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.example.com/api/v1/brands/{brand_id}/brand-intelligence/post-ideas/generate",
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([
'source' => 'own_post',
'post_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'count' => 5
]),
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.example.com/api/v1/brands/{brand_id}/brand-intelligence/post-ideas/generate"
payload := strings.NewReader("{\n \"source\": \"own_post\",\n \"post_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"count\": 5\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.example.com/api/v1/brands/{brand_id}/brand-intelligence/post-ideas/generate")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"source\": \"own_post\",\n \"post_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"count\": 5\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/brands/{brand_id}/brand-intelligence/post-ideas/generate")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"source\": \"own_post\",\n \"post_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"count\": 5\n}"
response = http.request(request)
puts response.read_body{
"source": "own_post",
"brand_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"ideas": [
{
"idea": "<string>",
"hook": "<string>",
"format": "video",
"angle": "<string>"
}
],
"generated_at": "2023-11-07T05:31:56Z",
"subject_label": "<string>",
"brand_name": "<string>",
"source_signals": [
"<string>"
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Body
application/json
Response
Successful Response
The generated set plus enough provenance to render its header.
Was this page helpful?