List meetings
https://api.norreach.app/v1/meetingsThe workspace's meetings in time order (earliest first). Filter by status (pending_approval = waiting for a person's yes), host_id, contact_id, and a start range from / to.
curl -X GET "https://api.norreach.app/v1/meetings" \
-H "Authorization: Bearer $NORREACH_API_KEY"{
"object": "list",
"data": [
{
"id": "4a5b6c7d-8e9f-4a0b-9c1d-2e3f4a5b6c7d",
"object": "meeting",
"title": "Intro call: Anna Lindqvist (Example Care AB)",
"status": "pending_approval",
"starts_at": "2026-11-12T09:00:00.000Z",
"ends_at": "2026-11-12T09:30:00.000Z",
"duration_minutes": 30,
"host_id": "0b6f8a52-8d9e-4c1a-b7f3-5e2d9c4a1b00",
"contact_id": "7d1c3b2a-5e4f-4a1b-9c8d-0e1f2a3b4c5d",
"meeting_type_id": "5b6c7d8e-9f0a-4b1c-8d2e-3f4a5b6c7d8e",
"source": "nora",
"attendee": {
"name": "Anna Lindqvist",
"email": "anna@example.com",
"timezone": "Europe/Stockholm",
"company": "Example Care AB"
},
"location_kind": "video",
"join_url": null,
"campaign_id": null,
"created_at": "2026-11-05T10:00:00.000Z",
"updated_at": "2026-11-05T10:00:00.000Z"
}
],
"has_more": false,
"next_cursor": null
}Authorizations
Bearer authentication: send Authorization: Bearer <key>, with an API key or an OAuth access token. The key needs the scope meetings:read. API keys and scopes
Query parameters
Page size (1–200, default 50).
The next_cursor of the previous page.
An id (UUID).
An id (UUID).
Meetings starting at or after this time.
Meetings starting at or before this time.
Response
200application/json— List meetings
Show child attributesHide child attributes
An id (UUID).
pending_approval (waits for a person's yes), scheduled, in_progress, completed, cancelled …
The member hosting it (who it's assigned to, else who it was booked for).
How it was booked: booking_page, nora (Nora or the API), manual, ai_detected.
Show child attributesHide child attributes
video, phone, in_person or link (booking-page meetings).
Errors
Errors are application/problem+json with a stable code.
| Status | Code | Meaning |
|---|---|---|
| 400 | bad_request | The request couldn't be read. |
| 400 | unknown_field | The request has a field this operation doesn't know. |
| 400 | invalid_cursor | That cursor doesn't belong to this list. |
| 401 | unauthorized | A valid API key is required. |
| 403 | insufficient_scope | This API key doesn't have the scope this operation needs. |
| 403 | feature_not_enabled | The API isn't switched on for this workspace. |
| 429 | rate_limited | Too many requests. Slow down and try again. |
| 500 | server_error | Something went wrong on our side. |
| 503 | unavailable | The API isn't available right now. Try again shortly. |