Create a pitch report
curl --request POST \
--url https://api.athenahq.ai/api/v1/pitches \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--header 'x-api-key: <api-key>' \
--data '
{
"website_url": "https://example.com",
"country": "United States",
"language": "English"
}
'import requests
url = "https://api.athenahq.ai/api/v1/pitches"
payload = {
"website_url": "https://example.com",
"country": "United States",
"language": "English"
}
headers = {
"Idempotency-Key": "<idempotency-key>",
"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: {
'Idempotency-Key': '<idempotency-key>',
'x-api-key': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
website_url: 'https://example.com',
country: 'United States',
language: 'English'
})
};
fetch('https://api.athenahq.ai/api/v1/pitches', 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/pitches",
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_url' => 'https://example.com',
'country' => 'United States',
'language' => 'English'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"Idempotency-Key: <idempotency-key>",
"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/pitches"
payload := strings.NewReader("{\n \"website_url\": \"https://example.com\",\n \"country\": \"United States\",\n \"language\": \"English\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Idempotency-Key", "<idempotency-key>")
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/pitches")
.header("Idempotency-Key", "<idempotency-key>")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"website_url\": \"https://example.com\",\n \"country\": \"United States\",\n \"language\": \"English\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.athenahq.ai/api/v1/pitches")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Idempotency-Key"] = '<idempotency-key>'
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"website_url\": \"https://example.com\",\n \"country\": \"United States\",\n \"language\": \"English\"\n}"
response = http.request(request)
puts response.read_body{
"pitch_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "processing",
"report_url": "<string>"
}Pitch Workspace
Create a pitch report
Generate a Pitch Workspace report from a public website URL. Requires a global organization API key, Pitch Workspace entitlement, and available pitch allowance. Returns a durable pitch ID while research runs. Poll GET /api/v1/pitches/ until pitch.status is completed or failed. The report URL is accessible to anyone holding it. Each admitted request consumes one pitch, including attempts that fail during generation. Retrying the same organization and Idempotency-Key with the same normalized input reuses the pitch; different input returns 409. Use a new key to deliberately request a fresh snapshot. Generation does not send email.
POST
/
api
/
v1
/
pitches
Create a pitch report
curl --request POST \
--url https://api.athenahq.ai/api/v1/pitches \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: <idempotency-key>' \
--header 'x-api-key: <api-key>' \
--data '
{
"website_url": "https://example.com",
"country": "United States",
"language": "English"
}
'import requests
url = "https://api.athenahq.ai/api/v1/pitches"
payload = {
"website_url": "https://example.com",
"country": "United States",
"language": "English"
}
headers = {
"Idempotency-Key": "<idempotency-key>",
"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: {
'Idempotency-Key': '<idempotency-key>',
'x-api-key': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
website_url: 'https://example.com',
country: 'United States',
language: 'English'
})
};
fetch('https://api.athenahq.ai/api/v1/pitches', 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/pitches",
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_url' => 'https://example.com',
'country' => 'United States',
'language' => 'English'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"Idempotency-Key: <idempotency-key>",
"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/pitches"
payload := strings.NewReader("{\n \"website_url\": \"https://example.com\",\n \"country\": \"United States\",\n \"language\": \"English\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Idempotency-Key", "<idempotency-key>")
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/pitches")
.header("Idempotency-Key", "<idempotency-key>")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"website_url\": \"https://example.com\",\n \"country\": \"United States\",\n \"language\": \"English\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.athenahq.ai/api/v1/pitches")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Idempotency-Key"] = '<idempotency-key>'
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"website_url\": \"https://example.com\",\n \"country\": \"United States\",\n \"language\": \"English\"\n}"
response = http.request(request)
puts response.read_body{
"pitch_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "processing",
"report_url": "<string>"
}Headers
Stable identifier for one logical request. Preserve it on retries.
Required string length:
1 - 128Body
application/json
Was this page helpful?