Developers · API v1

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.

Base URL
https://meetinsights.in
Version
v1
Auth
API_KEY header
Format
JSON
Schedule a meeting
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"
  }'
Overview

Quickstart

Three calls take you from a meeting link to structured intelligence.

01

Get your API key

Log in and create a key from your account page. Keys start with mi_.

02

Schedule a meeting

Send the meeting link and start time. MeetInsights joins the call and returns a meeting ID (mid).

POST /v1/meetings/schedules
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"}'
03

Fetch the insights

Once the meeting has been processed, fetch the transcript and insights with the mid.

GET /v1/meetings/insights/{mid}
curl https://meetinsights.in/v1/meetings/insights/MID \
  -H "API_KEY: mi_your_api_key"
Overview

Authentication

Every request must include your API key in the API_KEY header. Requests without a valid key return 401.

Request header
API_KEY: mi_your_api_key
Keep your key secret. Call the API from your server, never from a browser or mobile app. If a key is exposed, generate a new one from your account page.
Meetings & interviews

Meetings

Schedule MeetInsights to join a live meeting, then retrieve its transcript and insights. Analysis follows the default scenario configured for your account.

POST/v1/meetings/schedules

Schedule a meeting for recording and analysis. Returns 201 with the meeting ID.

Body · application/json
meet_linkstringrequiredFull meeting URL, e.g. https://meet.google.com/abc-defg-hij.
start_timestringrequiredStart time in IST, formatted YYYY-MM-DDTHH:MM.
end_timestringExpected end time, same format.
meeting_namestringDisplay name for the meeting.
meeting_tagsstringComma-separated tags, e.g. "backend,round-2".
bot_namestringName shown when joining. Defaults to MeetInsights.ai.
callback_urlstringYour endpoint to notify when processing completes. See Callbacks.
201 Created
{
  "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"
  }
}
GET/v1/meetings/schedules

List all meetings scheduled with your key, newest first.

200 OK
{
  "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"
    }
  ]
}
GET/v1/meetings/insights/{mid}

Retrieve the full transcript, insights and processing state for one meeting. Returns 404 if the meeting does not belong to your key.

200 OK · abridged
{
  "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
}
The shape of insights depends on the scenario configured for your account — for example interview scorecards with a final_rating, or sales summaries.
Sales monitoring & training

Sales calls

Upload recorded calls for transcription and analysis, then list them with their transcripts and insights.

POST/v1/sales/calls/records

Upload an audio file directly, or point us to a recording you already host. Returns 201.

Body · multipart/form-data
audiofilerequiredMP3, WAV, M4A or MP4. Max 100 MB.
callback_urlstringrequiredYour endpoint to notify when processing completes.
titlestringDisplay title. Defaults to the file name.
Request · cURL
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"
201 Created
{
  "call_id": "3f8b2c1e-6a4d-4f0e-9b7a-2d5c8e1f0a93",
  "lead_id": "KQXR4821",
  "recording_url": "https://…/sales_calls/3f8b2c1e….mp3",
  "status": "uploaded"
}
Already host your recordings? Send JSON instead with lead_id, recording_url and callback_url (all required). The response contains the new call_id.
GET/v1/sales/calls/records

List your uploaded calls, newest first. Processed calls include their transcript and insights.

200 OK
{
  "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": { … }
    }
  ]
}
Reference

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.

Recommended pattern: treat the callback as a signal, then fetch the latest result with GET /v1/meetings/insights/{mid} or GET /v1/sales/calls/records. Respond with a 2xx quickly and do heavy work asynchronously.
Reference

Errors

Errors return a JSON body with an error message.

400Bad requestMissing required fields, invalid meeting link, unsupported file type, file over 100 MB, or no scenario configured.
401UnauthorizedThe API_KEY header is missing or invalid.
404Not foundThe meeting doesn’t exist or belongs to another account.
405Method not allowedThe HTTP method isn’t supported on this endpoint.
500Server errorSomething went wrong on our side, e.g. the meeting could not be scheduled. Safe to retry.
401 Unauthorized
{ "error": "Invalid API key" }
Reference

Support

We typically respond within 24 hours. Priority support is available for enterprise customers.

Developer support

Questions about the API, scenarios or your integration.

Email support →

Talk to us

Planning a larger rollout or a custom scenario? Book a walkthrough.