# 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}"
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://karini-ai.gitbook.io/karini-ai-documentation/agents/kariniscribe.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
