Conversation intelligence, as an API.
Send a meeting link or a call recording. Get back transcripts, structured insights and scorecards — ready to plug into your product.
curl -X POST https://meetinsights.in/v1/meetings/schedules \ -H "API_KEY: mi_your_api_key" \ -H "Content-Type: application/json" \ -d '{ "meet_link": "https://meet.google.com/abc-defg-hij", "start_time": "2026-11-03T15:30", "meeting_name": "Backend Engineer – Round 2" }'
import requests res = requests.post( "https://meetinsights.in/v1/meetings/schedules", headers={"API_KEY": "mi_your_api_key"}, json={ "meet_link": "https://meet.google.com/abc-defg-hij", "start_time": "2026-11-03T15:30", "meeting_name": "Backend Engineer – Round 2", }, ) print(res.json()["mid"])
const res = await fetch("https://meetinsights.in/v1/meetings/schedules", { method: "POST", headers: { "API_KEY": "mi_your_api_key", "Content-Type": "application/json", }, body: JSON.stringify({ meet_link: "https://meet.google.com/abc-defg-hij", start_time: "2026-11-03T15:30", meeting_name: "Backend Engineer – Round 2", }), }); const { mid } = await res.json();
Quickstart
Three calls take you from a meeting link to structured intelligence.
Get your API key
Log in and create a key from your account page. Keys start with mi_.
Schedule a meeting
Send the meeting link and start time. MeetInsights joins the call and returns a meeting ID (mid).
curl -X POST https://meetinsights.in/v1/meetings/schedules \ -H "API_KEY: mi_your_api_key" \ -H "Content-Type: application/json" \ -d '{"meet_link": "https://meet.google.com/abc-defg-hij", "start_time": "2026-11-03T15:30"}'
Fetch the insights
Once the meeting has been processed, fetch the transcript and insights with the mid.
curl https://meetinsights.in/v1/meetings/insights/MID \ -H "API_KEY: mi_your_api_key"
Authentication
Every request must include your API key in the API_KEY header. Requests without a valid key return 401.
API_KEY: mi_your_api_key
Meetings
Schedule MeetInsights to join a live meeting, then retrieve its transcript and insights. Analysis follows the default scenario configured for your account.
Schedule a meeting for recording and analysis. Returns 201 with the meeting ID.
| meet_linkstringrequired | Full meeting URL, e.g. https://meet.google.com/abc-defg-hij. |
| start_timestringrequired | Start time in IST, formatted YYYY-MM-DDTHH:MM. |
| end_timestring | Expected end time, same format. |
| meeting_namestring | Display name for the meeting. |
| meeting_tagsstring | Comma-separated tags, e.g. "backend,round-2". |
| bot_namestring | Name shown when joining. Defaults to MeetInsights.ai. |
| callback_urlstring | Your endpoint to notify when processing completes. See Callbacks. |
{
"success": true,
"message": "Meeting scheduled successfully",
"mid": "mi7x2k9qA8fG3pLz",
"meeting_details": {
"meet_id": "abc-defg-hij",
"start_time": "2026-11-03T15:30",
"start_time_utc": "2026-11-03T10:00:00Z",
"scenario": "Backend Engineer Interview",
"bot_id": "b1f4…",
"status": "scheduled"
}
}
List all meetings scheduled with your key, newest first.
{
"success": true,
"total_count": 1,
"meetings": [
{
"mid": "mi7x2k9qA8fG3pLz",
"meet_id": "abc-defg-hij",
"meeting_name": "Backend Engineer – Round 2",
"start_time": "2026-11-03T15:30",
"status": "scheduled",
"category": "Interview",
"meeting_tags": ["backend", "round-2"],
"bot_name": "MeetInsights.ai",
"created_at": "2026-11-01T09:12:44"
}
]
}
Retrieve the full transcript, insights and processing state for one meeting. Returns 404 if the meeting does not belong to your key.
{
"success": true,
"meeting_id": "mi7x2k9qA8fG3pLz",
"meeting_name": "Backend Engineer – Round 2",
"status": "completed",
"category": "Interview",
"participants": [ … ],
"recording_url": "https://…",
"transcription_state": "completed",
"report_state": "completed",
"transcript": [
{
"speaker_name": "Interviewer",
"transcription": "Walk me through…",
"timestamp_ms": 64000,
"formatted_time": "15:31:04"
}
],
"insights": {
"interview_summary": { …, "final_rating": 8 }
},
"total_duration_sec": 2710
}
insights depends on the scenario configured for your account — for example interview scorecards with a final_rating, or sales summaries.Sales calls
Upload recorded calls for transcription and analysis, then list them with their transcripts and insights.
Upload an audio file directly, or point us to a recording you already host. Returns 201.
| audiofilerequired | MP3, WAV, M4A or MP4. Max 100 MB. |
| callback_urlstringrequired | Your endpoint to notify when processing completes. |
| titlestring | Display title. Defaults to the file name. |
curl -X POST https://meetinsights.in/v1/sales/calls/records \ -H "API_KEY: mi_your_api_key" \ -F "audio=@/path/to/call.mp3" \ -F "callback_url=https://your-app.com/webhooks/meetinsights" \ -F "title=Acme – discovery call"
{
"call_id": "3f8b2c1e-6a4d-4f0e-9b7a-2d5c8e1f0a93",
"lead_id": "KQXR4821",
"recording_url": "https://…/sales_calls/3f8b2c1e….mp3",
"status": "uploaded"
}
lead_id, recording_url and callback_url (all required). The response contains the new call_id.List your uploaded calls, newest first. Processed calls include their transcript and insights.
{
"success": true,
"total_count": 1,
"calls": [
{
"call_id": "3f8b2c1e-6a4d-4f0e-9b7a-2d5c8e1f0a93",
"lead_id": "KQXR4821",
"title": "Acme – discovery call",
"status": "processed",
"formatted_duration": "23:41",
"created_at": "2026-11-01T11:02:17+00:00",
"transcript": [ … ],
"insights": { … }
}
]
}
Callbacks
Pass a callback_url when you schedule a meeting or upload a call. MeetInsights notifies that endpoint as processing progresses, so you don’t need to poll.
2xx quickly and do heavy work asynchronously.Errors
Errors return a JSON body with an error message.
API_KEY header is missing or invalid.{ "error": "Invalid API key" }
Support
We typically respond within 24 hours. Priority support is available for enterprise customers.
Talk to us
Planning a larger rollout or a custom scenario? Book a walkthrough.