Skip to content
DikoAPI
API keys

Get a meeting

Open as Markdown

Returns one meeting with its participants, speakers and counts.

GET/meetings/{meeting_id}
Required scope
meetings:read
Authentication
Authorization: Bearer
Rate-limit policy
readaccount

A meeting that is not yours returns 404, never 403.

Parameters

Parameters
NameInTypeRequiredDefaultConstraintsDescription
meeting_idpathstringrequired–26–26 characters · pattern: ^mtg_[0-9A-Za-z]{22}$Public meeting ID (mtg_ prefix).

Response

200

The meeting.

  • RateLimit The most restrictive policy that applied: "name";r=<requests left>;t=<seconds>, where t is the number of seconds until one more request is allowed (0 when the quota is full). Absent when no rate limiter ran for the request.
  • RateLimit-Policy The rate-limit policies that applied to the request, one "name";q=<burst>;w=<seconds> item per policy, for example "read";q=10;w=2, "account";q=20;w=2: q is the burst quota and w the seconds in which an empty quota refills. Sent on every authenticated response; absent when no rate limiter ran for the request, for example when it was rejected before the key was checked.
  • Request-Id ID of this request (req_ prefix), the same as request_id in an error body. It is also sent as X-Request-ID. Quote it when you contact support.
  • X-Client-Request-Id Your own X-Client-Request-Id request header, echoed back. It is sent only when the value you sent has 1-128 characters from A-Z a-z 0-9 . _ : -.
  • X-RateLimit-Limit Burst quota of the most restrictive policy (q in RateLimit-Policy). Absent when no rate limiter ran.
  • X-RateLimit-Remaining Requests left in the most restrictive policy (r in RateLimit). Absent when no rate limiter ran.
  • X-RateLimit-Reset Seconds until one more request is allowed in the most restrictive policy (t in RateLimit; 0 when the quota is full). It is a number of seconds, not a timestamp. Absent when no rate limiter ran.

Content type: application/json

  • idstringrequired

    Public meeting ID (mtg_ prefix).

    26–26 characters · pattern: ^mtg_[0-9A-Za-z]{22}$

  • objectstringrequired

    Always meeting.

  • titlestringrequired

    Meeting title.

  • languagestring | nullrequired

    Language code of the meeting, for example lt.

  • statusstringrequired

    Derived status. Archived meetings keep the status of their latest processing run.

    Allowed values: draftrecordinguploadedprocessingreadyfailed

  • archivedbooleanrequired

    Whether the meeting is archived.

  • created_atstringrequired

    When the meeting was created.

    ≤ 24 characters · format: date-time

  • updated_atstringrequired

    When the meeting was last changed.

    ≤ 24 characters · format: date-time

  • started_atstring | nullrequired

    Real start time, or null while unknown. It is not aliased to created_at.

    ≤ 24 characters · format: date-time

  • duration_msinteger | nullrequired

    Duration in milliseconds, or null.

    0–9007199254740991 · format: int64

  • web_urlstringrequired

    Link to the meeting in the Diko app.

    format: uri

  • processingobjectrequired

    Latest processing run.

    3 fields
    • statusstring | nullrequired

      Processing status, or null when no run exists.

      Allowed values: queuedtranscribingdiarizingsummarizingcompletefailedcanceled

    • progressnumber | nullrequired

      Progress from 0 to 1, or null.

      0–1

    • errorobject | nullrequired

      Error details when processing failed.

      2 fields
      • codestringrequired

        Stable error code. Unknown internal codes are reported as internal_error.

        Allowed values: upload_unavailableaudio_invalidaudio_too_longtranscription_failedtranscription_timeoutprovider_limitcanceledinternal_error

      • messagestringrequired

        Explanation in the language of Accept-Language. Never an internal error text.

  • transcriptobjectrequired

    Transcript summary.

    4 fields
    • statusstringrequired

      Transcript status.

      Allowed values: noneprocessingready

    • revisionstring | nullrequired

      Opaque token that changes whenever any segment changes.

    • segment_countintegerrequired

      Number of segments.

      0–2147483647 · format: int32

    • has_pending_editsbooleanrequired

      Whether grammar suggestions are waiting for approval in Diko.

  • minutesobjectrequired

    Minutes summary.

    3 fields
    • statusstringrequired

      Minutes status.

      Allowed values: nonegeneratingreadyfailedinsufficientunavailable

    • versioninteger | nullrequired

      Version number of the latest ready minutes.

      0–2147483647 · format: int32

    • verification_statusstring | nullrequired

      Result of the evidence check: verified, repaired after a second pass, or unverified.

      Allowed values: verifiedrepairedunverified

  • participantsarray<object>

    Participants. Only in the single-meeting response.

    5 fields
    • idstringrequired

      Public participant ID (prt_ prefix).

      26–26 characters · pattern: ^prt_[0-9A-Za-z]{22}$

    • objectstringrequired

      Always participant.

    • namestring | nullrequired

      Participant name.

    • emailstring | nullrequired

      Participant e-mail address, if known.

    • rolestring | nullrequired

      Participant role, if known.

  • speakersarray<object>

    Speakers. Only in the single-meeting response.

    4 fields
    • idstringrequired

      Public speaker ID (spk_ prefix).

      26–26 characters · pattern: ^spk_[0-9A-Za-z]{22}$

    • objectstringrequired

      Always speaker.

    • labelstringrequired

      Automatic label such as SPEAKER_00.

    • namestring | nullrequired

      Name assigned to the speaker, if any.

  • countsobject

    Counts. Only in the single-meeting response.

    4 fields
    • participantsintegerrequired

      Number of participants.

      0–2147483647 · format: int32

    • speakersintegerrequired

      Number of speakers.

      0–2147483647 · format: int32

    • action_itemsintegerrequired

      Number of action items.

      0–2147483647 · format: int32

    • commentsintegerrequired

      Number of comments.

      0–2147483647 · format: int32

Examples

Request

cURL
curl "https://api.diko.app/api/v1/meetings/mtg_0aZ1bY2cX3dW4eV5fU6gT7" \
  -H "Authorization: Bearer $DIKO_API_KEY"

Example response · 200 · application/json

JSON
{
  "id": "mtg_5uF4g2Xu1i0qz3yAp0CP7W",
  "object": "meeting",
  "title": "Pardavimų aptarimas",
  "language": "lt",
  "status": "ready",
  "archived": false,
  "created_at": "2026-10-11T08:00:00.000Z",
  "updated_at": "2026-10-11T09:30:00.000Z",
  "started_at": null,
  "duration_ms": 3541000,
  "web_url": "https://studio.diko.app/meetings/c2171dae-bbc2-53b3-92b9-ba8c37850ff6",
  "processing": {
    "status": "complete",
    "progress": 1,
    "error": null
  },
  "transcript": {
    "status": "ready",
    "revision": "r_1bedcb71b3a1fdc6bfeeb92054fc6f92",
    "segment_count": 412,
    "has_pending_edits": false
  },
  "minutes": {
    "status": "ready",
    "version": 2,
    "verification_status": "verified"
  },
  "participants": [
    {
      "id": "prt_6LwrMxamyJTo9VWwrFAvXU",
      "object": "participant",
      "name": "Jonas",
      "email": "jonas@example.com",
      "role": null
    }
  ],
  "speakers": [
    {
      "id": "spk_0deCHcpckGv0OnXkWw7nUx",
      "object": "speaker",
      "label": "SPEAKER_00",
      "name": "Jonas"
    }
  ],
  "counts": {
    "participants": 3,
    "speakers": 2,
    "action_items": 5,
    "comments": 1
  }
}

Errors

This endpoint can return these errors. Every code is described in the error catalog.

HTTPCodeMeaningRetry?
401missing_api_keyThe request has no `Authorization` header.no
401invalid_api_keyThe header is unusable (a scheme other than `Bearer`, an empty key or more than one `Authorization` header) or the key is unknown or malformed (wrong structure or checksum). The response is identical in all these cases.no
401api_key_expiredThe key has expired.no
401api_key_revokedThe key was revoked: manually, after a rotation grace period ended, because of a leak or because the account was disabled.no
401api_key_disabledThe key is temporarily disabled.no
402subscription_requiredThe account has no active paid access.no
403ip_not_allowedThe key has an IP allowlist and the request IP is not on it, or it cannot be determined reliably.no
403account_disabledThe account is disabled.no
403email_not_verifiedThe account e-mail address is not verified.no
403api_access_suspendedA Diko administrator suspended API access for this account.no
403plan_requiredThe plan does not include the API. `error.details.required_plans` lists `verslas`.no
403insufficient_scopeThe key lacks the scope this endpoint needs. `error.details` contains `required_scopes` and `granted_scopes`.no
404not_foundThe resource does not exist, does not belong to your account or its ID is encoded incorrectly.no
429rate_limit_exceededA rate-limit policy was exceeded. `error.details.policy` names it.yes, after Retry-After
500internal_errorAn internal server error.conditionally
503service_unavailableThe service is temporarily busy, for example because of database load.yes, after Retry-After

Search for a topic, an endpoint or an error code.

Search across all documentation pagesesc close