# Happy Scribe

Happy Scribe offers automatic and professional transcription services, converting audio and video files into text with high accuracy.

- **Category:** transcription
- **Auth:** API_KEY
- **Composio Managed App Available?** N/A
- **Tools:** 21
- **Triggers:** 0
- **Slug:** `HAPPY_SCRIBE`
- **Version:** 20260312_00

## Tools

### Create Subtitle

**Slug:** `HAPPY_SCRIBE_CREATE_SUBTITLE`

Create subtitles for a video file using Happy Scribe's automatic transcription service. Submits a video URL to be processed for subtitle generation. The video must be publicly accessible during ingestion. Returns a subtitle job with an editor URL for reviewing and editing the generated subtitles. Processing states progress from 'initial' -> 'ingesting' -> 'automatic_done' (or 'failed'). Use the GET transcription endpoint to check processing status.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `transcription` | object | Yes | Transcription creation parameters |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Translation Task

**Slug:** `HAPPY_SCRIBE_CREATE_TRANSLATION_TASK`

Creates an AI-powered translation task to translate an existing transcription into another language. Use this after a transcription is complete (state='automatic_done') to translate it. The task runs asynchronously - use Retrieve Translation Task to check progress and get results. Note: Not all language pairs are supported (e.g., German to English may fail).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `target_language` | string | Yes | Two-letter ISO 639-1 language code to translate into (e.g., 'es' for Spanish, 'de' for German, 'fr' for French). Not all source-target language pairs are supported. |
| `source_transcription_id` | string | Yes | ID of the transcription to translate. The transcription must exist and be in 'automatic_done' state. Get this from List Transcriptions or Create Transcription actions. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Transcription

**Slug:** `HAPPY_SCRIBE_DELETE_TRANSCRIPTION`

Tool to delete a transcription job. Use when you have a transcription ID and want to remove it, optionally permanently. Use after confirming the transcription ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Unique identifier of the transcription to delete (32-character hexadecimal string) |
| `permanent` | boolean | No | If true, permanently deletes the transcription; otherwise moves it to Trash (default false) |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Webhook

**Slug:** `HAPPY_SCRIBE_DELETE_WEBHOOK`

Deletes a webhook by its ID. This action is idempotent: if the webhook does not exist or was already deleted, it returns success. Use Get Webhooks to retrieve available webhook IDs.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Unique identifier of the webhook to delete. Obtain the webhook ID from the Get Webhooks action. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Account Details

**Slug:** `HAPPY_SCRIBE_GET_ACCOUNT_DETAILS`

Tool to retrieve details about your account, including subscription status and usage statistics. Use after authenticating your API key to monitor plan and usage.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `organization_id` | string | No | Organization ID to scope the account information; if omitted, returns default account. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Supported Languages

**Slug:** `HAPPY_SCRIBE_GET_LANGUAGE_LIST`

Retrieve the list of supported language codes for Happy Scribe transcription services. Returns BCP-47 language codes and indicates which languages have human transcription service available. This is a static reference based on Happy Scribe's official documentation, as there is no dedicated languages API endpoint.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `filter_human_service` | boolean | No | If True, return only languages with human transcription service available. If False, return only languages without human service. If not specified, returns all languages. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get API Rate Limit

**Slug:** `HAPPY_SCRIBE_GET_RATE_LIMIT`

Get Happy Scribe API rate limit information. Returns the documented rate limit for the Happy Scribe API: - Default limit: 200 requests per hour - Applies only to the transcription creation endpoint - When rate limited, API returns HTTP 429 with 'retry_in_seconds' in the body Note: Happy Scribe does not expose rate limit headers, so this tool provides documented defaults. If you encounter a 429 response during transcription creation, wait for the 'retry_in_seconds' value before retrying. For higher limits, contact sales@happyscribe.co with subject "Happy Scribe for Business".

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Signed Upload URL

**Slug:** `HAPPY_SCRIBE_GET_SIGNED_UPLOAD_URL`

Tool to get a signed URL for uploading a file to Happy Scribe's S3 storage. Use before creating a transcription or order to obtain a secure upload URL for your media file.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `filename` | string | Yes | The filename of the file to upload. Should include the file extension (e.g., 'audio.mp3', 'video.mp4'). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Confirm Order

**Slug:** `HAPPY_SCRIBE_HS_CONFIRM_ORDER`

Tool to confirm a pending order. Use after creating an order with confirm=false when you're ready to submit it for processing.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Unique identifier of the order to confirm (UUID format). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Translation Order

**Slug:** `HAPPY_SCRIBE_HS_CREATE_TRANSLATION_ORDER`

Tool to create a translation order from an existing transcription. Use when you have a completed transcription and want translations into one or more languages. By default, the order remains incomplete unless confirm=true.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `order` | object | Yes | Wrapper object containing the translation order parameters. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Export Transcription

**Slug:** `HAPPY_SCRIBE_HS_EXPORT_TRANSCRIPTION`

Creates an export job to download transcription content in various formats. Use this action after a transcription job completes (state='automatic_done'). First obtain transcription IDs using the List Transcriptions action. The export job runs asynchronously - poll the Retrieve Export action with the returned export ID to check when the download URL becomes available (state='ready'). Supported formats: - Documents: txt, docx, pdf (support timestamps, speakers, comments, highlights) - Subtitles: srt, vtt, stl (standard caption formats) - Video editing: avid, premiere, fcp (professional editing software) - Other: html, json, maxqda

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `format` | string ("txt" | "docx" | "pdf" | "srt" | "vtt" | "stl" | "avid" | "html" | "premiere" | "maxqda" | "json" | "fcp") | Yes | Export format: txt/docx/pdf (documents), srt/vtt/stl (subtitles), avid/premiere/fcp (video editing), html (web), json (structured data), maxqda (research) |
| `showComments` | boolean | No | Include editor comments in the export. Only applies to txt, docx, and pdf formats. |
| `showSpeakers` | boolean | No | Include speaker names/labels in the export. Only applies to txt, docx, and pdf formats. |
| `showHighlights` | boolean | No | Include highlighted text sections in the export. Only applies to docx and pdf formats. |
| `showTimestamps` | boolean | No | Include inline timestamps in the export. Only applies to txt, docx, and pdf formats. |
| `transcriptionIds` | array | Yes | One or more transcription IDs to export (obtain from List Transcriptions action). Multiple IDs will be combined into a single export file. |
| `showHighlightsOnly` | boolean | No | Export only the highlighted sections, excluding non-highlighted content. Only applies to docx and pdf formats. |
| `timestampsFrequency` | string ("5s" | "10s" | "15s" | "20s" | "30s" | "60s") | No | How often to insert timestamps (e.g., '30s' = every 30 seconds). Requires show_timestamps=true. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get API Version

**Slug:** `HAPPY_SCRIBE_HS_GET_API_VERSION`

Tool to retrieve current API version and check for updates. If Happy Scribe does not expose a dedicated /version endpoint, this tool attempts to infer the version from HTTP response headers or from the base_url path (e.g., /api/v1).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `organization_id` | string | No | Optional organization ID used when probing list endpoints |
| `endpoint_preference` | string | No | Preferred endpoint to probe for version: 'version', 'transcriptions', or 'auto' |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Error Codes

**Slug:** `HAPPY_SCRIBE_HS_GET_ERROR_CODES`

Returns a list of HTTP error codes used by the Happy Scribe API along with their descriptions. Use this tool to understand what different error responses mean when calling other Happy Scribe API endpoints. This returns static reference data matching the official Happy Scribe API documentation.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Supported Formats

**Slug:** `HAPPY_SCRIBE_HS_GET_SUPPORTED_FORMATS`

Tool to retrieve supported file formats. Use when you need to know available input and output formats before creating a transcription or subtitle. If a dedicated '/formats' endpoint is unavailable, this action probes known endpoints to verify connectivity and returns a curated list based on official documentation.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Optional limit on the number of formats returned for each list |
| `test_note` | string | No | Optional note used for testing (supports special characters and emoji) |
| `include_audio` | boolean | No | Include audio input formats (e.g., 'mp3', 'wav') |
| `include_video` | boolean | No | Include video input formats (e.g., 'mp4', 'mov') |
| `export_category` | string | No | Which output formats to include: 'subtitles', 'transcripts', or 'all' |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Transcription Details

**Slug:** `HAPPY_SCRIBE_HS_GET_TRANSCRIPTION`

Tool to retrieve details and status of a specific transcription job. Use after creating or listing transcription jobs to inspect a particular job's metadata.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Unique identifier of the transcription job to retrieve. This is a 32-character hexadecimal string obtained from creating a transcription or listing transcriptions. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Webhooks

**Slug:** `HAPPY_SCRIBE_HS_GET_WEBHOOKS`

Tool to retrieve webhooks configured for your account. Note: Happy Scribe's public API does not have a dedicated webhooks listing endpoint. Webhooks are specified via webhook_url when creating orders. This action attempts common endpoints and returns an empty list if unavailable.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `organization_id` | string | No | Organization ID to scope the webhooks query. Optional since the endpoint may not exist. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Retrieve Export

**Slug:** `HAPPY_SCRIBE_HS_RETRIEVE_EXPORT`

Tool to retrieve information about a specific export. Use when you need to check export status and get download link.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Unique identifier of the export to retrieve. This is typically a UUID returned when creating an export via the Export Transcription action. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Retrieve Translation Task

**Slug:** `HAPPY_SCRIBE_HS_RETRIEVE_TRANSLATION_TASK`

Retrieves the status and details of a translation task by its ID. Use this after creating a translation task with HAPPY_SCRIBE_CREATE_TRANSLATION_TASK to check progress (state: initial, working, failed, done) and obtain the translated transcription ID when complete. Note: This endpoint is deprecated; consider using HAPPY_SCRIBE_RETRIEVE_ORDER for new integrations.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Unique identifier of the translation task to retrieve. Obtain this ID from the response of creating a translation task via HAPPY_SCRIBE_CREATE_TRANSLATION_TASK. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Transcriptions

**Slug:** `HAPPY_SCRIBE_LIST_TRANSCRIPTIONS`

Retrieves a paginated list of transcription jobs for a Happy Scribe organization. Returns transcription metadata including ID, name, processing state, language, and duration. Supports filtering by folder and tags, with pagination for large result sets. Note: This returns metadata only; use the Export Transcription action to get actual transcript content.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `page` | integer | No | Zero-based page index for pagination. Each page returns up to 25 results. Use the '_links.next.url' from the response to get subsequent pages. |
| `tags` | array | No | Filter transcriptions by one or more tags. Only transcriptions matching ALL specified tags are returned. |
| `folder_id` | string | No | Filter results to a specific folder and its subfolders. The folder ID can be obtained from the folder URL in the Happy Scribe web app. |
| `organization_id` | string | Yes | The workspace/organization ID to list transcriptions from. Required. Can be found in the Happy Scribe web app under 'My Workspace > Personal Settings > API'. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Retrieve Order

**Slug:** `HAPPY_SCRIBE_RETRIEVE_ORDER`

Retrieve details of a Happy Scribe order by its ID. Returns order state, pricing, operations, and inputs. Use this to check order status, verify pricing details, or get information about translation/transcription operations. The order ID is obtained from create order responses (e.g., Create Translation Order).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Unique identifier (UUID) of the order to retrieve. Obtain this from a create order response. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
