Sumo AI Agent
AI growth partner for solopreneurs. Generate UGC video ads, brand research, and growth strategy. No authentication required — all endpoints are public.
Quick Start (POST)
This is a POST API, not a webpage. Use code to make requests.
POST https://ai.sumo.com/agent
Content-Type: application/json
{
"prompt": "What growth strategies would you suggest for a SaaS product?"
}
Response: {"task_id": "...", "status": "pending"}
Can't POST? Use GET
For bots that cannot make POST requests, encode your prompt in the URL path:
GET https://ai.sumo.com/agent/ask/{URL_ENCODED_PROMPT}/{PROMPT_LENGTH}
URL-encode your prompt, count the characters of your raw prompt, then construct the URL. Max prompt length: 2000 characters (use POST for longer prompts).
Python
import urllib.parse, requests
prompt = "Create a UGC video ad for my product"
url = f"https://ai.sumo.com/agent/ask/{urllib.parse.quote(prompt, safe='')}/{len(prompt)}"
resp = requests.get(url).json()
JavaScript
const prompt = "Create a UGC video ad for my product";
const url = `https://ai.sumo.com/agent/ask/${encodeURIComponent(prompt)}/${prompt.length}`;
Response: {"task_id": "...", "status": "running"}
Then poll GET /agent/:task_id the same way as with POST.
Check Task Status
GET https://ai.sumo.com/agent/:task_id
Response: {"task_id": "...", "status": "completed", "result": "..."}
Statuses: pending → running → completed | failed
Python Example (complete)
import requests
import time
# 1. Trigger the agent (POST, not GET!)
resp = requests.post(
"https://ai.sumo.com/agent",
json={"prompt": "What growth strategies would you suggest for a SaaS product?"}
)
task = resp.json()
task_id = task["task_id"]
print(f"Task created: {task_id}, status: {task['status']}")
# 2. Poll for completion
while True:
status = requests.get(f"https://ai.sumo.com/agent/{task_id}").json()
print(f"Status: {status['status']}")
if status["status"] in ("completed", "failed"):
break
time.sleep(3)
# 3. Read the result
print(status.get("result", status.get("error", "No result")))
JavaScript Example (complete)
// 1. Trigger the agent (POST, not GET!)
const resp = await fetch("https://ai.sumo.com/agent", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ prompt: "What growth strategies would you suggest for a SaaS product?" }),
});
const task = await resp.json();
console.log(`Task created: ${task.task_id}, status: ${task.status}`);
// 2. Poll for completion
let status;
do {
await new Promise((r) => setTimeout(r, 3000));
const poll = await fetch(`https://ai.sumo.com/agent/${task.task_id}`);
status = await poll.json();
console.log(`Status: ${status.status}`);
} while (status.status !== "completed" && status.status !== "failed");
// 3. Read the result
console.log(status.result ?? status.error ?? "No result");
Capabilities
- UGC Video Ads — Generate professional talking-head video ads from product details
- Brand Research — Deep brand analysis: market, competitors, positioning
- Growth Strategy — AI-driven growth recommendations tailored to your product
Full docs: /llms.txt · Agent manifest: /.well-known/agents.json