> For the complete documentation index, see [llms.txt](https://karini-ai.gitbook.io/karini-ai-documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://karini-ai.gitbook.io/karini-ai-documentation/agents/kariniscribe.md).

# KariniScribe

### Overview

KariniScribe Agent is an advanced transcription solution designed to efficiently convert audio from diverse settings such as public meetings, legal proceedings, and business discussions into structured insights. By leveraging AI-driven precision, KariniScribe processes audio through a powerful API, generating actionable summaries and clear next steps. This agent transforms raw audio data into strategic tools that enhance transparency, compliance, and productivity.

The architectural diagram of the KariniScribe Agent illustrates its core components and workflows.

<figure><img src="/files/D9y6zwsgDybYJbdBbttU" alt=""><figcaption></figcaption></figure>

KariniScribe Agent processes audio files through a REST API. Follow these steps to integrate and use the agent.

### Authentication

All API requests require authentication using the **x-api-token** header with your provided API token. You will receive your  api-token and recipe-id upon registration with AWS Marketplace listing

### Rate Limits

* POST requests: 5 requests per minute
* GET requests: 10 requests per minute

### Step 1: Prepare Audio File

Upload your audio file in .wav format to an Amazon S3 bucket and generate a pre-signed URL. Alternatively, you can use any unauthenticated Web URL but Amazon S3 is recommended.

Requirements:

* File format: .wav
* Maximum file size: 60 mins recording
* Presigned URL expiration: Minimum 1 hour

Reference: [AWS S3 Presigned URL Documentation](https://docs.aws.amazon.com/AmazonS3/latest/userguide/ShareObjectPreSignedURL.html)

### Step 2: Trigger KariniScribe Agent

#### Initiate Processing

Initiates the execution of a predefined processing workflow associated with the specified recipe\_id.

**Endpoint**: POST /api/webhook/recipe/{recipe\_id}

```
curl -X POST 
"https://app.karini.ai/api/webhook/recipe/{YOUR_RECIPE_ID}" \
 -H "Content-Type: application/json" \
 -H "x-api-token: {YOUR_API_TOKEN}" \
 -d '{
   "files": [{
     "content_type": "audio/wav",
     "file_name": "meeting_recording.wav",
     "file_path": "{S3_PRESIGNED_URL}"
   }],
   "input_message": "Make the transcription action-oriented",
   "metadata": {
     "session_id": "session_123",
     "user_id": "user_456"
   }
 }'
```

Response: Returns request\_id for tracking processing status.

### Step 3: Monitor and Retrieve Results

#### Get Request Status

Retrieves the current status and details of a submitted webhook request, identified by request\_id.

**Endpoint**: GET /api/webhook/request/{request\_id}

```
curl -X GET "https://app.karini.ai/api/webhook/request/{REQUEST_ID}" \
 -H "accept: application/json" \
 -H "x-api-token: {YOUR_API_TOKEN}"

```

#### List Webhook Requests

Retrieves a list of webhook requests that are associated with a specific recipe, identified by recipe\_id.

**Endpoint**: GET /api/webhook/recipe/{recipe\_id}

```
curl -X GET "https://app.karini.ai/api/webhook/recipe/{RECIPE_ID}?limit=10" \
 -H "accept: application/json" \
 -H "x-api-token: {YOUR_API_TOKEN}"
```
