Pick your integration.
MCP lets an AI assistant or agent (Claude, Cursor, VS Code and other MCP clients) call ARIA as a tool, with each user signing in to their own account. The API is for integrating ARIA directly into your own applications and backends.
| Attribute | ARIA MCP | Persona MCP | ARIA API | Persona API |
|---|---|---|---|---|
| Status | Available | Available | Available | Coming soon |
| Best for | Assistants, IDEs, agents | Concept & claim testing in assistants | Your own apps and backends | Your own apps and backends |
| Auth | OAuth 2.1 sign-in with your Convosight account | confirm | Team API key, issued by the ARIA admin | n/a |
| Access | Public URL. Access on request: | confirm | By request: | Coming soon |
| Answers | Plain text, in the tool call | confirm | Plain text, async (poll for it) | n/a |
| Docs | ARIA MCP guide | confirm | ARIA API guide (below) | Notify me |
Quick start: ARIA MCP
ARIA runs as a remote Model Context Protocol (MCP) server. Add one URL to Claude, VS Code, Cursor or any other MCP client, sign in with your Convosight account, and your assistant can call ARIA for consumer intelligence.
What your agent gets
Access to ARIA, Convosight's social intelligence assistant, with real-time data across Facebook Groups, Instagram, TikTok, YouTube, Reddit and other communities.
- Get accessThe server URL is
https://aria-mcp.convosight.com/sse. Access is on request: email . - Add it to your clientOne remote server, over Streamable HTTP. Pick your client below.
- Sign in with your Convosight accountYour client opens a standard OAuth 2.1 sign-in the first time. No API keys or client secret to paste.
- Ask in plain languagePass the question as the user asked it. ARIA researches it live, usually in 2–3 minutes.
# Claude Code
claude mcp add --transport http aria https://aria-mcp.convosight.com/sseOne tool: ask ARIA.
ARIA MCP exposes a single tool, ask_aria_text. It takes a question in plain language and returns ARIA's answer as plain-text prose, so it works in any client, including ones without a rich UI.
| Input | Type | Required | Notes |
|---|---|---|---|
question | string | Yes | Pass the user's question verbatim. Don't rephrase it. |
session_id | UUID | No | Returned by a previous call. Pass it on follow-ups in the same conversation so ARIA keeps the context. |
ARIA researches live. Give it time.
Each call blocks until ARIA finishes researching. That usually takes 2–3 minutes and can take up to 15. Set your agent's tool-call timeout, and the timeout on anything proxying the request, well above that.
Optional: show progress. Instead of waiting on a silent connection, your client can opt in to status updates. Add a progressToken of your choice (any value that's unique to that call) to the request's _meta. The server then streams progress notifications on the same response, ahead of the final answer. Leave it out and you simply get the final answer.
// tools/call with an optional progress token
{
"method": "tools/call",
"params": {
"name": "ask_aria_text",
"arguments": {
"question": "Which hair care concerns are rising among USA consumers in the last 4 weeks?"
},
"_meta": { "progressToken": "<any-unique-value>" }
}
}onprogress handler for each update. Check your SDK's client docs before wiring it up by hand.Connecting a custom MCP client
Off-the-shelf clients like Claude, VS Code and Cursor handle sign-in for you. If you're wiring ARIA into your own agent or app, here's what to sort out first.
- Request your connection detailsEmail reachus@convosight.com. We'll share your MCP URL and the OAuth client details for your app.
- Send us your redirect URI(s)The callback URL(s) your app uses after sign-in, so we can register your app.
- Auto-discover the OAuth endpointsUse the server's standard OAuth metadata to find the authorize and token endpoints. Don't hardcode them.
- Allow long-running callsSet tool-call and proxy timeouts well above 15 minutes, and opt in to progress updates if you want a live status.
- Thread follow-upsKeep the
session_idfrom each answer and send it with the next question.
Errors and timeouts
error field in the structured content, to spot these cases.| What you see | What it means | What to do |
|---|---|---|
| “ARIA is taking longer than expected to research this question. Please try asking again.” | The question ran past 15 minutes. | Ask again. Narrowing the question can help. |
| “Your ARIA session has expired. Please reconnect the integration.” | Your sign-in has expired. | Reconnect ARIA in your client and sign in again. |
| “ARIA session not found. Try asking your question again.” | The session ID wasn't recognised. | Ask again, or start without a session ID. |
| “ARIA is temporarily unavailable. Please try again in a moment.” | A temporary issue on our side. | Wait a moment, then retry. |
| A message explaining why ARIA can't answer | ARIA can't answer this question for content reasons. | Rephrase the question, or ask a different one. |
ARIA doesn't retry automatically after a timeout or a temporary failure. If you want retries, re-issue the call from your side. Still stuck? Email reachus@convosight.com.
Quick start: Persona MCP
Persona turns social data into evidence-grounded consumer twins. With Persona MCP, you can talk to a Persona from any MCP-compatible assistant and pressure-test claims, concepts and messaging without switching tools.
# Claude Code
claude mcp add --transport http persona <your-persona-mcp-url>Discover with ARIA. Validate with Persona.
Take an ARIA insight straight to a Persona and push back on it. Add both servers to the same client and your assistant can call either one.
// One client, both Convosight servers
{
"mcpServers": {
"aria": {
"url": "https://aria-mcp.convosight.com/sse"
},
"persona": {
"url": "<your-persona-mcp-url>"
}
}
}Build ARIA into your own product.
The ARIA API lets you integrate ARIA's consumer intelligence directly into your apps, dashboards, workflows and agents. Call ARIA from your own backend, internal tools or agent framework. The same ARIA behind our app, ChatGPT and MCP.
It works over plain HTTP and it's asynchronous: you send a question, get a session_id back straight away, then poll until the answer is ready.
How it works
- Ask
POST · questionSend your question. You get 202 Accepted and asession_id. - Poll
GET …/{session_id}Every 3–5 seconds whilestatusisin_progress. - Read the answer
done · errordonereturns the answer as plain text.errorreturns a message, and it's safe to ask again. - Follow up
POST + session_idOnce the turn is done, ask again with the samesession_idand ARIA keeps the context.
Authentication
Send your team API key as the raw value of the Authorization header on every request. Don't add a Bearer prefix. Keys can be deactivated or expire; either one returns a 401.
Authorization: <YOUR_TEAM_API_KEY>
Content-Type: application/json<YOUR_TEAM_API_KEY> with your team's key. Keep it server-side.Endpoints
Both endpoints sit under your team's base URL, shown here as <aria-api-base-url>. You get it with your API access.
| Request | What it does | Returns |
|---|---|---|
POST <aria-api-base-url> | Asks a question: starts a new conversation, or continues one if you pass a session_id. | 202 · { "session_id": 12345 } |
GET <aria-api-base-url>/{session_id} | Checks progress and returns the answer when it's ready. | A status object (see below) |
Request body (POST)
| Field | Type | Required | Notes |
|---|---|---|---|
question | string | Yes | Not empty. Must not ask about a period outside your team's lookback window. |
session_id | integer | No | Leave it out to start a new conversation. Pass a previous value to continue that one. |
Status values (GET)
| status | Response | What to do |
|---|---|---|
| in_progress | { "status": "in_progress" } | Keep polling every 3–5 seconds. |
| done | { "status": "done", "answer": "..." } | Show the answer. It's plain text. |
| error | { "status": "error", "error": "..." } | A general error message. It's safe to retry by asking again. |
Polling client examples
Each example asks a question, polls until it's done, then asks a follow-up in the same session.
# 1. Configure once (server-side; never ship the key to a browser)
export ARIA_API_BASE_URL="<aria-api-base-url>"
export ARIA_API_KEY="<YOUR_TEAM_API_KEY>"
# 2. Ask a question -> 202 Accepted + a session_id
curl -s -X POST "$ARIA_API_BASE_URL" \
-H "Authorization: $ARIA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"question": "How did our engagement trend last month?"}'
# { "session_id": 12345 }
# 3. Poll every 3-5 s until status is done or error (~5 min max)
SESSION_ID=12345
for i in $(seq 1 75); do
sleep 4
RES=$(curl -s "$ARIA_API_BASE_URL/$SESSION_ID" -H "Authorization: $ARIA_API_KEY")
STATUS=$(echo "$RES" | jq -r .status)
if [ "$STATUS" != "in_progress" ]; then break; fi
done
echo "$RES" | jq -r 'if .status == "done" then .answer else .error end'
# 4. Follow up in the same conversation (after the last turn is done)
curl -s -X POST "$ARIA_API_BASE_URL" \
-H "Authorization: $ARIA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"question": "Which platform drove most of it?", "session_id": 12345}'Want to offer ARIA to your customers inside a product you sell? That's a partnership. Talk to us.
Error codes
| HTTP | What it means | What to do | Retry? |
|---|---|---|---|
| 400 | The body is invalid, the question asks about a period outside your lookback window, or your team's quota for the current period is used up. | Read the message. Fix the body or the period. Quota errors clear at the start of the next period. | No |
| 401 | The API key is missing, invalid, deactivated or expired. | Check the header. Ask your ARIA admin for a new key if needed. | No |
| 404 | The session_id doesn't exist or belongs to another team. | Check the ID, or start a new conversation. | No |
| 409 | A question is already running in this session. | Wait until the status is done or error, then retry. | Yes, once the turn ends |
| 429 | You polled the same session again within 3 seconds. | Slow down and retry with backoff. | Yes, with backoff |
Limits and behaviour
Best practices
- Keep the API key server-sideStore it in a secrets manager. Never ship it in browser or mobile code.
- Reuse the session_id for follow-upsSo ARIA keeps the conversational context.
- Retry 429s with backoffA 429 only means you polled too fast. Wait, then poll again.
- Don't retry 400 quota errorsThey won't succeed until your next quota period starts.
Plain-text answers, ready for your UI.
Over both MCP and the API, answers are plain text, so you decide how they render. The ARIA API returns the answer text only, without source links. confirm whether MCP answers include links to the source posts, as the public MCP docs say
Data
We get your account reference, your question and session info. You get the answer. Convosight doesn't train AI models on your questions and has no access to your systems.
Persona, inside your own product. Coming soon.
A Persona API so you can build evidence-grounded consumer twins into your own tools and workflows.
Persona MCP is available today. confirm Persona API timing; don't publish a date until it's confirmed
You're on the list.
We'll email you when the Persona API launches.