# krisp-api Documentation > Documentation for krisp-api Append .md to any documentation page URL to get its markdown version. ## Guides - [Welcome to Krisp Meeting Assistant API](https://meeting-api-docs.krisp.ai/docs/getting-started.md): Programmatic access to your Krisp meetings, notes, transcripts, recordings, and action items, from your own tools and scripts. ## API Reference - [Get key holder identity](https://meeting-api-docs.krisp.ai/reference/get_me.md): Returns the profile of the user who owns this API key. Use this to verify the key is working and to confirm which user and team context it belongs to. **Required scope:** `read` **Rate limit:** 5 req/s (25 per 5s), enforced per account — shared across all your API keys. Exceeding returns `429`. - [List meetings](https://meeting-api-docs.krisp.ai/reference/get_meetings.md): Returns a paginated list of meetings visible to the key holder. **Visibility:** Includes meetings the key holder owns and meetings shared with them in the app. Public-link recipients and workspace-wide meetings are excluded. **Readiness:** Only meetings that have finished processing are listed. A newly created or still-processing meeting (e.g. a recording import you just completed) does not appear here until its transcript has been processed; until then `GET /meetings/{id}` also returns `409` for it. **Required scope:** `read` **Rate limit:** 5 req/s (25 per 5s), enforced per account — shared across all your API keys. Exceeding returns `429`. - [Get a meeting](https://meeting-api-docs.krisp.ai/reference/get_meetings-id.md): Returns full details for a single meeting. Transcript, AI notes, and action items are not included by default — opt in with the `include` parameter. Returns `404` if the meeting does not exist or is not visible to this key. Returns `409` if the meeting exists but is still processing. **Required scope:** `read` **Rate limit:** 5 req/s (25 per 5s), enforced per account — shared across all your API keys. Exceeding returns `429`. - [List action items](https://meeting-api-docs.krisp.ai/reference/get_action-items.md): Returns action items extracted from meetings visible to the key holder. Action items come from all meetings the key holder owns or that were shared with them. Use `assigned_to_me=true` to get only items assigned to the key holder. **Required scope:** `read` **Rate limit:** 5 req/s (25 per 5s), enforced per account — shared across all your API keys. Exceeding returns `429`. - [List tags](https://meeting-api-docs.krisp.ai/reference/get_tags.md): Returns all tags belonging to the key holder. Tags are one way meetings are organised in Krisp. Use tag IDs from this endpoint as filters in `GET /meetings?tags=id1,id2`. Returns up to 100 tags. **Required scope:** `read` **Rate limit:** 5 req/s (25 per 5s), enforced per account — shared across all your API keys. Exceeding returns `429`. - [Import a recording](https://meeting-api-docs.krisp.ai/reference/post_import.md): Start a recording import. Returns an `import_id` and a single pre-signed S3 `url`. Upload the file to `url` with `PUT`; that upload alone drives the rest — the meeting is created and transcription starts automatically. There is no separate "complete" call. **Flow:** 1. `POST /import` (all fields optional: `title`, `language`, `size`, `duration`) → `{ import_id, url, expires_at }`. If `size` is given and won't fit your remaining storage, the request fails fast with `403`. 2. `PUT {url}` → upload the file bytes directly to S3. The `Content-Type` header is optional and need not match — the recording's type is detected from the file's contents, so a missing or generic `Content-Type` works fine. 3. Poll `GET /import/{import_id}/status` until `status` is `ready`, then use `meeting_id` **Concurrency:** only one import start per user may be in flight at a time. Start imports **sequentially** (await each before the next); there is no fixed cooldown — once a call returns you may start the next immediately. A start that overlaps another in-flight one returns `400` with `error_code: ACTION_IN_PROCESS` — retry that request. **Rate limit:** 5 req/s (25 per 5s), enforced per account — shared across all your API keys. Exceeding returns `429`. **Required scope:** `write` - [Get import status](https://meeting-api-docs.krisp.ai/reference/get_import-import-id-status.md): Poll the status of an import started with `POST /import`. Status is one of `uploading` (file not uploaded yet), `processing` (uploaded; meeting being created / transcribed), `ready` (meeting available — use `meeting_id`), or `failed`. **Required scope:** `read`