Meetings
Esta página aún no está disponible en tu idioma.
The Meetings API exposes scheduled, completed, and cancelled meetings created via graph8’s booking surface (calendar widget + sequence-driven calendar links). Each meeting carries attendees, recording link, AI transcript, and post-call analysis.
30-second start
List recent completed meetings:
curl 'https://be.graph8.com/api/v1/inbox/meetings?status=completed&limit=10' \ -H "Authorization: Bearer $G8_API_KEY"import { g8 } from '@graph8/sdk';g8.init({ apiKey: process.env.G8_API_KEY! });
const { data } = await g8.meetings.list({ status: 'completed', limit: 10 });console.log(data); // → MeetingSummary[]g8 list-meetings --status completed --limit 10Ask your agent: “Show me last week’s completed meetings” → tool: g8_list_meetings.
Quick reference
| Endpoint | Method | Purpose |
|---|---|---|
/inbox/meetings | GET | List meetings with filters |
/inbox/meetings/{meeting_id} | GET | Full meeting detail (attendees, transcript, recording, analysis) |
Meeting shape
{ id: "mtg_abc123", status: "scheduled" | "completed" | "cancelled" | "no_show", event_type: "demo-30min", scheduled_at: "2026-05-30T15:00:00Z", duration_minutes: 30, attendees: [ ], conferencing: { provider: "google_meet" | "whereby" | "roam" | "calcom", join_url: "https://meet.google.com/abc-defg-hij" }, recording_url: "https://recordings.graph8.com/mtg_abc123.mp4", transcript: [ { speaker: "Jane Smith", text: "We've been looking at...", timestamp: 0 }, { speaker: "Thomas", text: "Got it — let me show you...", timestamp: 8 } ], analysis: { sentiment: "positive", summary: "Prospect is evaluating against ZoomInfo and Apollo...", next_steps: ["Send pricing doc", "Schedule technical demo with Eng"], objections: ["Concerned about data freshness"], talk_listen_ratio: 0.62 }, created_at: "2026-05-23T10:15:00Z"}List
GET /api/v1/inbox/meetings?status=completed&date_from=2026-05-01&attendee_id=user_jane&page=1&limit=25Filterable params: status, date_from, date_to, attendee_id, event_type, contact_id, page, limit.
Returns a paginated list of meeting summaries (without the full transcript — fetch that via GET /{id}).
Get
GET /api/v1/inbox/meetings/{meeting_id}Returns the full record including transcript and AI analysis. The transcript is available once the recording has been transcribed (typically 1-5 minutes after the call ends).
Webhooks
The meeting.booked event fires when a new meeting is created via the booking widget. Subsequent events (meeting.started, meeting.completed, meeting.cancelled, meeting.transcribed) fire as the meeting progresses. See Webhooks for subscription mechanics.
Credit costs
| Operation | Credits |
|---|---|
| List + get | Free |
| Booked meeting (when one is created) | 20 per booking |
| Recording + transcript | Free (storage included) |
| AI analysis | Free (bundled with the meeting booking cost) |
The 20-credit booked-meeting charge fires once, at the moment of booking. Subsequent reads / re-analysis are free.
Errors
| Status | Cause | Fix |
|---|---|---|
401 | Missing or invalid Authorization: Bearer header | Get a key |
402 | Out of credits (waterfall enrichment, AI generation, voice minutes) | Top up in Settings → Billing, or switch to Platform |
404 | Resource ID doesn’t exist | List first to verify the ID |
422 | Validation error in request body | Inspect error.message + error.field in the response |
429 | Rate limit (5 rps per org) | Backoff per Retry-After header. See Rate Limits |
5xx | graph8 error | Retry with exponential backoff (5s → 30s → 120s) |
The full error envelope shape: { "error": { "code": "...", "message": "...", "field": "...", "request_id": "..." } }. Include the request_id in any support ticket. See Errors for the canonical reference.
See also
- SDK calendar methods — the booking surface (write-key safe)
- MCP meeting tools
- Webhooks — meeting lifecycle events
- Pricing — credit matrix