# Susitikimo protokolas

> Grąžina naujausią paruoštą protokolo versiją.

Šaltinis: https://diko.app/api-docs/zinynas/get-meeting-minutes

Susitikimai · `GET /meetings/{meeting_id}/minutes`

- **Bazinis URL:** https://api.diko.app/api/v1
- **Reikalingas leidimas:** `meetings:read`
- **Ribų politika:** `read`, `account`
- **Autentifikacija:** `Authorization: Bearer dk_live_...`

Kai paruoštos versijos nėra, atsakymas vis tiek yra 200, o `status` paaiškina kodėl: `none`, `generating`, `failed`, `insufficient` arba `unavailable`.

## Parametrai

| Pavadinimas | Vieta | Tipas | Privalomas | Numatytoji reikšmė | Apribojimai | Aprašas |
|---|---|---|---|---|---|---|
| `meeting_id` | path | `string` | taip | – | 26–26 simbolių; pattern: ^mtg_[0-9A-Za-z]{22}$ | Viešas susitikimo ID (priešdėlis `mtg_`). |

## Atsakymas

### 200

Protokolas.

- `RateLimit`: Labiausiai ribojanti taikyta politika: `"pavadinimas";r=<liko užklausų>;t=<sekundės>`. `t` – sekundės iki kitos leidžiamos užklausos (0, kai talpa pilna). Nesiunčiama, kai užklausai ribotuvas netaikytas.
- `RateLimit-Policy`: Užklausai taikytos ribų politikos, po vieną elementą `"pavadinimas";q=<pradinė talpa>;w=<sekundės>` kiekvienai, pavyzdžiui, `"read";q=10;w=2, "account";q=20;w=2`: `q` – pradinė talpa, `w` – sekundės, per kurias tuščia talpa vėl prisipildo. Siunčiama su kiekvienu autentifikuotu atsakymu; nesiunčiama, kai užklausai ribotuvas netaikytas, pavyzdžiui, kai ji atmesta dar nepatikrinus rakto.
- `Request-Id`: Šios užklausos ID (priešdėlis `req_`), toks pat kaip `request_id` klaidos atsakyme. Siunčiamas ir kaip `X-Request-ID`. Kreipdamiesi pagalbos nurodykite jį.
- `X-Client-Request-Id`: Jūsų siųsta užklausos antraštė `X-Client-Request-Id`, grąžinta atgal. Grąžinama tik tada, kai jūsų reikšmė turi 1–128 simbolius iš A-Z a-z 0-9 . _ : -.
- `X-RateLimit-Limit`: Labiausiai ribojančios politikos pradinė talpa (`q` antraštėje `RateLimit-Policy`). Nesiunčiama, kai užklausai ribotuvas netaikytas.
- `X-RateLimit-Remaining`: Labiausiai ribojančioje politikoje likusios užklausos (`r` antraštėje `RateLimit`). Nesiunčiama, kai užklausai ribotuvas netaikytas.
- `X-RateLimit-Reset`: Sekundės iki kitos leidžiamos užklausos labiausiai ribojančioje politikoje (`t` antraštėje `RateLimit`; 0, kai talpa pilna). Tai sekundžių skaičius, o ne laiko žyma. Nesiunčiama, kai užklausai ribotuvas netaikytas.

Turinio tipas: `application/json`

- `object` (string, privalomas): Visada `minutes`.
- `meeting_id` (string, privalomas, 26–26 simbolių, pattern: ^mtg_[0-9A-Za-z]{22}$): Susitikimo ID.
- `status` (string, privalomas): Protokolo būsena. Galimos reikšmės: `none`, `generating`, `ready`, `failed`, `insufficient`, `unavailable`.
- `reason` (string | null, privalomas): Priežastis, kai būsena `insufficient`.
- `version` (integer | null, privalomas, 0–2147483647, format: int32): Versijos numeris.
- `generated_at` (string | null, privalomas, ≤ 24 simbolių, format: date-time): Kada ši versija sugeneruota.
- `language` (string | null, privalomas): Protokolo kalba.
- `summary` (string | null, privalomas): Santraukos tekstas.
- `key_points` (array<object>, privalomas): Pagrindiniai punktai.
  - `text` (string, privalomas): Teiginys.
  - `timestamps_ms` (array<integer>, privalomas): Įrašo momentai, patvirtinantys teiginį, milisekundėmis.
- `decisions` (array<object>, privalomas): Sprendimai.
  - `text` (string, privalomas): Teiginys.
  - `timestamps_ms` (array<integer>, privalomas): Įrašo momentai, patvirtinantys teiginį, milisekundėmis.
- `action_items` (array<object>, privalomas): Sugeneruotos užduotys.
  - `object` (string, privalomas): Visada `action_item`.
  - `id` (string | null, privalomas, 26–26 simbolių, pattern: ^act_[0-9A-Za-z]{22}$): Viešas ID (priešdėlis `act_`). `null` sugeneruotoms užduotims.
  - `source` (string, privalomas): Iš kur užduotis. Galimos reikšmės: `manual`, `generated`.
  - `text` (string, privalomas): Užduoties pavadinimas.
  - `description` (string | null, privalomas): Ilgesnis aprašas, jei yra.
  - `status` (string, privalomas): Užduoties būsena. Sugeneruotos užduotys visada `open`. Galimos reikšmės: `open`, `in_progress`, `done`, `canceled`.
  - `assignee_name` (string | null, privalomas): Atsakingo asmens vardas.
  - `due_text` (string | null, privalomas): Laisvo teksto terminas iš sugeneruoto protokolo.
  - `due_at` (string | null, privalomas, ≤ 24 simbolių, format: date-time): Rankinės užduoties terminas.
  - `timestamps_ms` (array<integer>, privalomas): Įrašo momentai, iš kurių paimta užduotis, milisekundėmis.
  - `created_at` (string | null, privalomas, ≤ 24 simbolių, format: date-time): Kada sukurta rankinė užduotis. `null` sugeneruotoms užduotims.
- `open_questions` (array<object>, privalomas): Atviri klausimai.
  - `text` (string, privalomas): Teiginys.
  - `timestamps_ms` (array<integer>, privalomas): Įrašo momentai, patvirtinantys teiginį, milisekundėmis.
- `sections` (array<object>, privalomas): Papildomi skyriai.
  - `title` (string, privalomas): Skyriaus pavadinimas.
  - `content` (string, privalomas): Skyriaus tekstas.
- `verification_status` (string | null, privalomas): Faktų patikros rezultatas. Galimos reikšmės: `verified`, `repaired`, `unverified`.

```json
{
  "object": "minutes",
  "meeting_id": "mtg_5uF4g2Xu1i0qz3yAp0CP7W",
  "status": "ready",
  "reason": null,
  "version": 2,
  "generated_at": "2026-10-11T09:30:00.000Z",
  "language": "lt",
  "summary": "Aptartas pasiūlymo kainodaros pakeitimas ir kiti žingsniai iki mėnesio pabaigos.",
  "key_points": [
    {
      "text": "Nauja kainodara įsigalioja nuo lapkričio 1 d.",
      "timestamps_ms": []
    }
  ],
  "decisions": [
    {
      "text": "Pasiūlymą klientui išsiunčiame šią savaitę.",
      "timestamps_ms": [
        754000
      ]
    }
  ],
  "action_items": [
    {
      "object": "action_item",
      "id": null,
      "source": "generated",
      "text": "Išsiųsti pasiūlymą",
      "description": null,
      "status": "open",
      "assignee_name": "Jonas",
      "due_text": null,
      "due_at": null,
      "timestamps_ms": [],
      "created_at": null
    }
  ],
  "open_questions": [
    {
      "text": "Ar nuolaida taikoma ir esamiems klientams?",
      "timestamps_ms": []
    }
  ],
  "sections": [
    {
      "title": "Kainodara",
      "content": "Kainos peržiūrimos kartą per ketvirtį.\nNuolaidos taikomos nuo trečios licencijos."
    }
  ],
  "verification_status": "verified"
}
```

## Pavyzdžiai

**cURL**

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

**Python**

```python
import os

import requests

response = requests.get(
    "https://api.diko.app/api/v1/meetings/mtg_0aZ1bY2cX3dW4eV5fU6gT7/minutes",
    headers={"Authorization": f"Bearer {os.environ['DIKO_API_KEY']}"},
    timeout=30,
)
response.raise_for_status()
print(response.json())
```

**TypeScript**

```typescript
const response = await fetch("https://api.diko.app/api/v1/meetings/mtg_0aZ1bY2cX3dW4eV5fU6gT7/minutes", {
  headers: {
    Authorization: `Bearer ${process.env.DIKO_API_KEY}`,
  },
})
if (!response.ok) throw new Error(`${response.status} ${await response.text()}`)
console.log(await response.json())
```

## Klaidos

Šis endpointas gali grąžinti šias klaidas. Visų kodų aprašai yra klaidų kataloge.

| HTTP | Kodas | Reikšmė | Kartoti? |
|---|---|---|---|
| 401 | [`missing_api_key`](https://diko.app/api-docs/klaidos.md#missing_api_key) | Užklausoje nėra antraštės `Authorization`. | ne |
| 401 | [`invalid_api_key`](https://diko.app/api-docs/klaidos.md#invalid_api_key) | Antraštė netinkama (ne `Bearer` schema, tuščias raktas arba kelios antraštės `Authorization`) arba raktas nežinomas ar blogo formato (neatitinka struktūros ar kontrolinės sumos). Atsakymas visais šiais atvejais vienodas. | ne |
| 401 | [`api_key_expired`](https://diko.app/api-docs/klaidos.md#api_key_expired) | Rakto galiojimas pasibaigė. | ne |
| 401 | [`api_key_revoked`](https://diko.app/api-docs/klaidos.md#api_key_revoked) | Raktas atšauktas: rankiniu būdu, pasibaigus rotacijos persidengimui, dėl nutekėjimo arba išjungus paskyrą. | ne |
| 401 | [`api_key_disabled`](https://diko.app/api-docs/klaidos.md#api_key_disabled) | Raktas laikinai išjungtas. | ne |
| 402 | [`subscription_required`](https://diko.app/api-docs/klaidos.md#subscription_required) | Paskyra neturi aktyvios apmokėtos prieigos. | ne |
| 403 | [`ip_not_allowed`](https://diko.app/api-docs/klaidos.md#ip_not_allowed) | Raktas turi IP apribojimą, o užklausos IP nėra sąraše arba jo nepavyksta nustatyti patikimai. | ne |
| 403 | [`account_disabled`](https://diko.app/api-docs/klaidos.md#account_disabled) | Paskyra išjungta. | ne |
| 403 | [`email_not_verified`](https://diko.app/api-docs/klaidos.md#email_not_verified) | Paskyros el. paštas nepatvirtintas. | ne |
| 403 | [`api_access_suspended`](https://diko.app/api-docs/klaidos.md#api_access_suspended) | Diko administratorius sustabdė šios paskyros API prieigą. | ne |
| 403 | [`plan_required`](https://diko.app/api-docs/klaidos.md#plan_required) | Planas neapima API. `error.details.required_plans` yra `verslas`. | ne |
| 403 | [`insufficient_scope`](https://diko.app/api-docs/klaidos.md#insufficient_scope) | Raktas neturi endpointui reikalingo leidimo. `error.details` turi `required_scopes` ir `granted_scopes`. | ne |
| 404 | [`not_found`](https://diko.app/api-docs/klaidos.md#not_found) | Resurso nėra, jis nepriklauso jūsų paskyrai arba ID užkoduotas neteisingai. | ne |
| 429 | [`rate_limit_exceeded`](https://diko.app/api-docs/klaidos.md#rate_limit_exceeded) | Viršyta ribų politika. `error.details.policy` nurodo, kuri. | taip, po Retry-After |
| 500 | [`internal_error`](https://diko.app/api-docs/klaidos.md#internal_error) | Vidinė serverio klaida. | sąlygiškai |
| 503 | [`service_unavailable`](https://diko.app/api-docs/klaidos.md#service_unavailable) | Paslauga laikinai užimta, pavyzdžiui, dėl duomenų bazės apkrovos. | taip, po Retry-After |
