curl --request POST \
--url https://api.athenahq.ai/api/v1/content/prompts \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"website_id": "123e4567-e89b-12d3-a456-426614174000",
"content_id": "11111111-2222-3333-4444-555555555555",
"filters": {
"start_date": "2024-01-01T00:00:00.000Z",
"end_date": "2024-01-31T23:59:59.999Z"
}
}
'import requests
url = "https://api.athenahq.ai/api/v1/content/prompts"
payload = {
"website_id": "123e4567-e89b-12d3-a456-426614174000",
"content_id": "11111111-2222-3333-4444-555555555555",
"filters": {
"start_date": "2024-01-01T00:00:00.000Z",
"end_date": "2024-01-31T23:59:59.999Z"
}
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
website_id: '123e4567-e89b-12d3-a456-426614174000',
content_id: '11111111-2222-3333-4444-555555555555',
filters: {start_date: '2024-01-01T00:00:00.000Z', end_date: '2024-01-31T23:59:59.999Z'}
})
};
fetch('https://api.athenahq.ai/api/v1/content/prompts', 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.athenahq.ai/api/v1/content/prompts",
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([
'website_id' => '123e4567-e89b-12d3-a456-426614174000',
'content_id' => '11111111-2222-3333-4444-555555555555',
'filters' => [
'start_date' => '2024-01-01T00:00:00.000Z',
'end_date' => '2024-01-31T23:59:59.999Z'
]
]),
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.athenahq.ai/api/v1/content/prompts"
payload := strings.NewReader("{\n \"website_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"content_id\": \"11111111-2222-3333-4444-555555555555\",\n \"filters\": {\n \"start_date\": \"2024-01-01T00:00:00.000Z\",\n \"end_date\": \"2024-01-31T23:59:59.999Z\"\n }\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.athenahq.ai/api/v1/content/prompts")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"website_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"content_id\": \"11111111-2222-3333-4444-555555555555\",\n \"filters\": {\n \"start_date\": \"2024-01-01T00:00:00.000Z\",\n \"end_date\": \"2024-01-31T23:59:59.999Z\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.athenahq.ai/api/v1/content/prompts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"website_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"content_id\": \"11111111-2222-3333-4444-555555555555\",\n \"filters\": {\n \"start_date\": \"2024-01-01T00:00:00.000Z\",\n \"end_date\": \"2024-01-31T23:59:59.999Z\"\n }\n}"
response = http.request(request)
puts response.read_body{
"content_id": "11111111-2222-3333-4444-555555555555",
"content_url": "example.com/blog/crm-roundup",
"content_normalized_url": "example.com/blog/crm-roundup",
"prompts": [
{
"prompt_id": "22222222-3333-4444-5555-666666666666",
"prompt": "what are the best CRMs for early-stage startups?",
"citation_percent": 33.3,
"citations": 5,
"estimated_impressions": 1200
}
]
}Per-Content Prompt Citation Breakdown
For a single tracked content item, returns every prompt whose AI responses cite the URL — with citations, citation %, and estimated impressions for the date range.
Use this to drill into a specific URL after POST /api/v1/content. Works for both 1st-party (topic-attached) and 3rd-party / Reddit content without topic assignment.
When the URL exists but has no normalized form (legacy unnormalized rows) the response is a successful 200 with prompts: []. Unknown content_id returns 404.
curl --request POST \
--url https://api.athenahq.ai/api/v1/content/prompts \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"website_id": "123e4567-e89b-12d3-a456-426614174000",
"content_id": "11111111-2222-3333-4444-555555555555",
"filters": {
"start_date": "2024-01-01T00:00:00.000Z",
"end_date": "2024-01-31T23:59:59.999Z"
}
}
'import requests
url = "https://api.athenahq.ai/api/v1/content/prompts"
payload = {
"website_id": "123e4567-e89b-12d3-a456-426614174000",
"content_id": "11111111-2222-3333-4444-555555555555",
"filters": {
"start_date": "2024-01-01T00:00:00.000Z",
"end_date": "2024-01-31T23:59:59.999Z"
}
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
website_id: '123e4567-e89b-12d3-a456-426614174000',
content_id: '11111111-2222-3333-4444-555555555555',
filters: {start_date: '2024-01-01T00:00:00.000Z', end_date: '2024-01-31T23:59:59.999Z'}
})
};
fetch('https://api.athenahq.ai/api/v1/content/prompts', 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.athenahq.ai/api/v1/content/prompts",
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([
'website_id' => '123e4567-e89b-12d3-a456-426614174000',
'content_id' => '11111111-2222-3333-4444-555555555555',
'filters' => [
'start_date' => '2024-01-01T00:00:00.000Z',
'end_date' => '2024-01-31T23:59:59.999Z'
]
]),
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.athenahq.ai/api/v1/content/prompts"
payload := strings.NewReader("{\n \"website_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"content_id\": \"11111111-2222-3333-4444-555555555555\",\n \"filters\": {\n \"start_date\": \"2024-01-01T00:00:00.000Z\",\n \"end_date\": \"2024-01-31T23:59:59.999Z\"\n }\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.athenahq.ai/api/v1/content/prompts")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"website_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"content_id\": \"11111111-2222-3333-4444-555555555555\",\n \"filters\": {\n \"start_date\": \"2024-01-01T00:00:00.000Z\",\n \"end_date\": \"2024-01-31T23:59:59.999Z\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.athenahq.ai/api/v1/content/prompts")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"website_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"content_id\": \"11111111-2222-3333-4444-555555555555\",\n \"filters\": {\n \"start_date\": \"2024-01-01T00:00:00.000Z\",\n \"end_date\": \"2024-01-31T23:59:59.999Z\"\n }\n}"
response = http.request(request)
puts response.read_body{
"content_id": "11111111-2222-3333-4444-555555555555",
"content_url": "example.com/blog/crm-roundup",
"content_normalized_url": "example.com/blog/crm-roundup",
"prompts": [
{
"prompt_id": "22222222-3333-4444-5555-666666666666",
"prompt": "what are the best CRMs for early-stage startups?",
"citation_percent": 33.3,
"citations": 5,
"estimated_impressions": 1200
}
]
}Body
Request body for drilling into the prompts that cite a single content item.
The website that owns the content item. Must match the content's website.
"123e4567-e89b-12d3-a456-426614174000"
The content_id returned by POST /api/v1/content. The endpoint resolves this server-side to a normalized URL and queries every prompt whose responses cite it.
"11111111-2222-3333-4444-555555555555"
Filters for querying responses and metrics. Pass location filters in the JSON body as filters.location_ids.
Show child attributes
Show child attributes
If true, only count responses that mention your brand. If false, only responses that don't. Omit to count every response.
Response
Successful response with the list of citing prompts.
The content_id that was queried.
The content's display URL (may be null for legacy rows).
The content's normalized URL — the value joined against citation data. null for legacy rows that were never normalized; in that case prompts is always [].
Show child attributes
Show child attributes
Was this page helpful?