Meetings

Get a meeting

The meeting with its schedule, people, settings, recordings and the status of its results. Fetch the content with GET /meetings/{id}/results.

get/meetings/{id}

Request

  • Base URL
    https://www.happyscribe.com/api/v1
  • Auth
    API key in header Authorization

Response

The meeting.

idstring

Beginning with mtg_. Stays the same through reschedules, URL changes and bot retries.

objectstring

Always meeting.

workspace_idstring

Workspace ID, beginning with wks_. Treat it as an opaque string.

source'calendar_connection' | 'calendar_sync' | 'bot'

Where the meeting came from.

  • calendar_connection: a calendar the member connected.
  • calendar_sync: an event you pushed with POST /calendar_events.
  • bot: a bot you sent with POST /bots.
phase'upcoming' | 'live' | 'past' | 'cancelled'

About time only; what happens after the call is in results.

  • upcoming: not started, and nothing recording yet.
  • live: a recording is active. An early start counts: activity beats the calendar.
  • past: the recording ended, or the scheduled end went by.
  • cancelled: the source event was cancelled. Listed only with phase=cancelled.
titlestring nullable

The calendar event's title, or a generated one for a bot sent without a calendar event.

starts_atstring date-time nullable

A bot meeting starts at the bot's join_at.

ends_atstring date-time nullable

Scheduled end, or null when unknown.

meeting_urlstring nullable

The link to join the call, or null when the event has none.

platform'meet' | 'zoom' | 'teams' | 'null' nullable

The meeting platform, from the link. null for any other link (Webex, a dial-in page) or none.

  • meet: Google Meet.
  • zoom: Zoom.
  • teams: Microsoft Teams, Teams Live included.
metadataMetadata

Your own key-value pairs, for your ids and context. HappyScribe stores them, returns them on the object and in every webhook that carries it, and never acts on them. Up to 50 keys of up to 40 characters (no square brackets), values up to 500 characters. See metadata.

created_atstring date-time

When the meeting first appeared, in ISO 8601.

updated_atstring date-time

When anything in the meeting last changed, in ISO 8601.

Example response

{
  "id": "mtg_01k6a2r9s8x7c2dvq3m5n6p4ab",
  "object": "meeting",
  "workspace_id": "wks_01k6a2r9s8x7c2dvq3m5n6p4ab",
  "source": "calendar_connection",
  "phase": "past",
  "title": "Weekly sync with Acme",
  "starts_at": "2026-09-29T09:00:00Z",
  "ends_at": "2026-09-29T09:30:00Z",
  "meeting_url": "https://meet.google.com/abc-defg-hij",
  "platform": "meet",
  "organizer": {
    "name": "Marc",
    "email": "marc@gurusup.com",
    "member_id": "mem_01k69x9s8x7c2dvq3m5n6p4ab"
  },
  "participants": [
    {
      "name": "Marc",
      "email": "marc@gurusup.com",
      "member_id": "mem_01k69x9s8x7c2dvq3m5n6p4ab"
    },
    {
      "name": "Ana Ruiz",
      "email": "ana@acme.com",
      "member_id": null
    }
  ],
  "calendar_event": {
    "id": "cev_01k6a2r9s8x7c2dvq3m5n6p4ab",
    "object": "calendar_event",
    "meeting_id": "mtg_01k6a2r9s8x7c2dvq3m5n6p4ab",
    "ical_uid": "7kq2b@google.com",
    "recurring": true,
    "title": "Weekly sync with Acme",
    "starts_at": "2026-09-29T09:00:00Z",
    "ends_at": "2026-09-29T09:30:00Z",
    "meeting_url": "https://meet.google.com/abc-defg-hij",
    "organizer": {
      "name": "Marc",
      "email": "marc@gurusup.com",
      "member_id": "mem_01k69x9s8x7c2dvq3m5n6p4ab"
    },
    "attendees": [
      {
        "name": "Marc",
        "email": "marc@gurusup.com",
        "member_id": "mem_01k69x9s8x7c2dvq3m5n6p4ab",
        "response": "accepted"
      },
      {
        "name": "Ana Ruiz",
        "email": "ana@acme.com",
        "member_id": null,
        "response": "needs_action"
      }
    ],
    "source": "calendar_connection",
    "metadata": {},
    "cancelled_at": null,
    "created_at": "2026-09-22T08:00:00Z",
    "updated_at": "2026-09-29T09:31:10Z"
  },
  "policy": {},
  "effective_policy": {
    "recording": {
      "enabled": true,
      "enabled_because": "in_scope",
      "methods": {
        "bot": {
          "start": "on_join",
          "mode": "audio_and_video",
          "silence_detection": {
            "alert": true
          }
        }
      }
    },
    "transcription": {
      "language": "auto"
    },
    "summary": {
      "template": null,
      "language": "en"
    },
    "branding": {
      "brand_kit_id": null
    }
  },
  "recordings": [
    {
      "id": "bot_01k6b0r9s8x7c2dvq3m5n6p4ab",
      "type": "bot",
      "status": "completed",
      "started_at": "2026-09-29T09:00:00Z",
      "ended_at": "2026-09-29T09:31:10Z"
    }
  ],
  "results": {
    "status": "ready",
    "transcript": {
      "status": "ready",
      "language": "en"
    },
    "summary": {
      "status": "ready"
    },
    "media": {
      "status": "ready",
      "duration_seconds": 1834
    }
  },
  "metadata": {},
  "created_at": "2026-09-22T10:14:03Z",
  "updated_at": "2026-09-29T09:41:10Z"
}

Changes

No recorded changes to this operation across all 1 revision of this API.