Quickstart
Create an API key, check it, and read the action items from your latest call. Three requests.
You need the Convo desktop app on a Starter plan or above. The API is at https://www.itsconvo.com/api/v1.
1. Create an API key
- Open the desktop app and go to Settings → Convo API.
- Click Create key, give the key a name and accept the API Terms of Use.
- Copy the key. It is shown only once.
The examples read the key from CONVO_API_KEY. Keep it on your server. More in Authentication.
export CONVO_API_KEY="convo_..."2. Check your key
Call GET /user/profile to check your key and see your profile, plan and AI credit usage.
curl https://www.itsconvo.com/api/v1/user/profile \
-H "Authorization: Bearer $CONVO_API_KEY"const API = "https://www.itsconvo.com/api/v1";
const headers = { Authorization: `Bearer ${process.env.CONVO_API_KEY}` };
const { data: profile } = await (await fetch(`${API}/user/profile`, { headers })).json();
console.log(profile.subscription.tier);import os
import requests
API = "https://www.itsconvo.com/api/v1"
headers = {"Authorization": f"Bearer {os.environ['CONVO_API_KEY']}"}
profile = requests.get(f"{API}/user/profile", headers=headers).json()["data"]
print(profile["subscription"]["tier"]){
"data": {
"profile": { "name": "Alice Chen", "email": "alice@example.com" },
"subscription": { "tier": "professional", "status": "active" },
"apiUsage": { "aiGenerations": { "used": 1240, "limit": 15000, "remaining": 13760, "resetsAt": "2026-04-01T00:00:00.000Z" } }
}
}This response is shortened. Rate limit headers, including X-RateLimit-Remaining, are included in the response. A 401 means the key is wrong or the Bearer prefix is missing. See Error Codes.
3. Find your latest call
Calls come newest first.
curl "https://www.itsconvo.com/api/v1/conversations?limit=1" \
-H "Authorization: Bearer $CONVO_API_KEY"const { data: calls } = await (await fetch(`${API}/conversations?limit=1`, { headers })).json();
const callId = calls[0].id;calls = requests.get(f"{API}/conversations", params={"limit": 1}, headers=headers).json()["data"]
call_id = calls[0]["id"]{
"data": [
{
"id": "session_1773842400000",
"title": "Acme pilot pricing call",
"startTime": "2026-03-18T14:00:00.000Z",
"endTime": "2026-03-18T14:45:00.000Z",
"duration": 45,
"segmentCount": 187
}
],
"pagination": { "total": 42, "limit": 1, "offset": 0 }
}4. Read its action items
curl https://www.itsconvo.com/api/v1/conversations/session_1773842400000/keypoints \
-H "Authorization: Bearer $CONVO_API_KEY"const { data: keyPoints } = await (await fetch(`${API}/conversations/${callId}/keypoints`, { headers })).json();
console.log(keyPoints.keypoints.actionItems);key_points = requests.get(f"{API}/conversations/{call_id}/keypoints", headers=headers).json()["data"]
print(key_points["keypoints"]["actionItems"]){
"data": {
"id": "session_1773842400000",
"title": "Acme pilot pricing call",
"keypoints": {
"decisions": ["Start a two-team pilot in April"],
"actionItems": [
{ "item": "Send the pilot pricing to Sarah", "owner": "Alice", "confidence": 0.95, "priority": "high" }
]
},
"createdAt": "2026-03-18T14:47:10.000Z"
}
}This response is shortened. The app generates key points after each call. If a call has none yet, you get a 404. POST to the same path generates them, for free.
What's Next?
List Conversations
Fetch your recent meetings and their metadata.
Get a Transcript
Retrieve the full speaker-attributed transcript for any meeting.
Generate Key Points
Get an AI-generated summary with decisions and action items.
Core Concepts
Understand the data model before building your integration.
Webhooks
Get a signed request when a call's key points are ready.
MCP Server
Ask Claude, ChatGPT or Cursor about your calls.