1 · Get an API key
Sign in to verseodin.com/dashboard,
open Settings → API keys, click Generate key.
Copy the vso_… value out of the modal immediately — it’s shown
exactly once. If you lose it, revoke and generate a new one.
Anyone with your key can read every metric on every universe you own
(and call your Claude / MCP connector). Store it like a database
password — env vars, secrets manager, never committed to git.
2 · Make your first call
The discovery endpoint is the cheapest way to confirm auth works:
curl -H "Authorization: Bearer vso_xxx" \
https://verseodin.com/api/v1/metrics
Expected response — a list of every metric column you can query:
{
"data": [
"ai_trust_mentions",
"ai_avg_trust_position",
"geo_competitor_analysis",
"prompts_rows",
"..."
]
}
3 · List your universes
curl -H "Authorization: Bearer vso_xxx" \
https://verseodin.com/api/v1/universes
The id field on each entry is what you’ll pass to every other
endpoint:
{
"count": 3,
"universes": [
{
"id": "7f45877a-0e8e-498f-bd7f-5e70ef65a2de",
"universe_name": "Verseodin",
"website": "https://verseodin.com/",
"status": "completed",
"latest_day": "2026-04-27"
}
]
}
4 · Pull a metric
Pick a universe, pick a metric, pick a day:
curl -H "Authorization: Bearer vso_xxx" \
"https://verseodin.com/api/v1/universes/<id>/metrics/ai_avg_trust_position?day=2026-04-27"
{
"metric": "ai_avg_trust_position",
"results": [
{ "day": "2026-04-27", "engine": "chatgpt", "value": 9 }
]
}
5 · Pull the AI answer + citations for a prompt
curl -H "Authorization: Bearer vso_xxx" \
"https://verseodin.com/api/v1/universes/<id>/prompts?day=2026-04-27&status=completed&limit=3"
The data[].response_text field contains the full AI answer body,
and data[].my_citations / data[].competitor_citations carry the
URLs the AI cited.
What’s next
Authentication
Header format, key rotation, leak playbook.
Rate limits
60 req/min/key. Headers and 429 handling.
Errors
Stripe-style envelope. Status code → error type table.
Data model
Universes → history → prompts. Where each column comes from.