Murf
Generate lifelike voiceovers and manage voices with the Murf API.
On this page
Connect
Auth type: API key (secret_text). Paste the API key (or token) from the provider's settings into the connect dialog. It is encrypted at rest and only decrypted on the server when an action runs.
- In the editor: Backend panel, Integrations tab, then Connect. This connects it for the project.
- For every project in a workspace: Workspace settings, Integrations.
- Owners and admins choose which integrations members may connect in the admin panel (Integrations tab), and can attach their own OAuth app there.
Call it from a workflow
Pass the action name and its input. The call resolves with { success, output, error? }; a missing connection resolves with success false and the reason. See ctx.integrations.invoke and ctx.integrations.call.
// .workflow.js (native ctx)
export async function run(ctx) {
const res = await ctx.integrations.invoke("murf_api", "list-voices", {
"locale": "<locale>"
});
if (!res.success) throw new Error(res.error);
ctx.log.info("Murf answered", { output: res.output });
}// defineWorkflow module (@app/sdk ctx)
import { defineWorkflow } from "@app/sdk";
export default defineWorkflow({
id: "murf-api-list-voices",
name: "Murf: List Voices",
description: "Calls Murf when a row is created.",
trigger: { type: "entity_event", entity: "tickets", event: "created" },
async run(ctx, event) {
const res = await ctx.integrations.call("murf_api", {
"action": "list-voices",
"locale": "<locale>"
}) as { success: boolean; error?: string };
if (!res.success) throw new Error(res.error);
},
});curl -X POST "$APP_ORIGIN/__appbricx/connector-proxy/murf_api/list-voices" \
-H "Authorization: Bearer $APP_KEY" \
-H "content-type: application/json" \
-d '{"props":{"locale":"<locale>"}}'Actions
list-voicesin catalog
List Voices. Get the list of available voices for text-to-speech
Also accepted as list_voices.
| Input | Type | Description |
|---|---|---|
localerequired | id (picked from your account) | Select your preferred language for the translated output. |
styleoptional | id (picked from your account) | Filter by style (optional) |
text_to_speechin catalog
Text to Speech. Converts input text into speech using Murf AI.
| Input | Type | Description |
|---|---|---|
languagerequired | id (picked from your account) | Select your preferred language for the translated output. |
voiceIdrequired | id (picked from your account) | Choose a voice for converting text into speech |
textrequired | long text | The text to be synthesized. |
audioDurationoptional | number | Specify audio length. If 0, Murf ignores this. Only for Gen2 model. |
channelTypeoptional | one of "MONO" | "STEREO" | Mono or Stereo output. |
encodeAsBase64optional | boolean | Return Base64 encoded audio instead of URL (zero retention). |
formatoptional | one of "MP3" | "WAV" | "FLAC" | "ALAW" | "ULAW" | "PCM" | "OGG" | Select audio format. |
modelVersionoptional | one of "GEN1" | "GEN2" | Choose Gen1 or Gen2. |
multiNativeLocaleoptional | text | Set multi-language voice (e.g., en-US, es-ES). Only for Gen2. |
pitchoptional | number | Pitch adjustment (-50 to 50). |
rateoptional | number | Speed adjustment (-50 to 50). |
styleoptional | text | Voice style (e.g., 'default', 'calm', 'energetic'). Check voice details. |
sampleRateoptional | number | Defaults to 44100. Allowed: 8000, 24000, 44100, 48000. |
variationoptional | number | Variation level (0–5). Defaults to 1. Higher = more natural pauses/pitch/speed. |
wordDurationsAsOriginalTextoptional | boolean | If true, response word timings map to original text. (English only). |
pronunciationDictionaryoptional | JSON | Custom word pronunciations. |
custom_api_call
Custom API Call. Make a custom API call to a specific endpoint
| Input | Type | Description |
|---|---|---|
urlrequired | object (depends on other props) | url |
methodrequired | one of "GET" | "POST" | "PATCH" | "PUT" | "DELETE" | "HEAD" | Method |
headersrequired | object | Authorization headers are injected automatically from your connection. |
queryParamsrequired | object | Query Parameters |
body_typeoptional | one of "none" | "json" | "form_data" | "raw" | Body Type |
bodyoptional | object (depends on other props) | Body |
response_is_binaryoptional | boolean | Enable for files like PDFs, images, etc. |
failsafeoptional | boolean | No Error on Failure |
timeoutoptional | number | Timeout (in seconds) |
followRedirectsoptional | boolean | Follow redirects |
translateText
Translate Text. Translate one or more texts to the target language.
| Input | Type | Description |
|---|---|---|
targetLanguagerequired | id (picked from your account) | Select your preferred language for the translated output. |
textsrequired | array | List of texts to translate |
voice-changer-convert
Voice Changer. Convert an input audio file to a different voice using Murf Voice Changer.
| Input | Type | Description |
|---|---|---|
languagerequired | id (picked from your account) | Select your preferred language for the translated output. |
voiceIdrequired | id (picked from your account) | Choose a voice for converting text into speech |
fileUrloptional | text | Publicly accessible URL of the input audio file. Either provide this or upload a file. |
fileoptional | file | Upload an audio file for voice conversion |
formatoptional | one of "MP3" | "WAV" | "FLAC" | "OGG" | Format of the generated audio file |
channelTypeoptional | one of "MONO" | "STEREO" | Choose MONO or STEREO output |
pitchoptional | number | Pitch adjustment (-50 to 50) |
rateoptional | number | Speed adjustment (-50 to 50) |
encodeOutputAsBase64optional | boolean | Receive audio directly as Base64 instead of a file URL |
Details
- Id
murf_api- Category
- AI and ML
- Tags
- speech, tts, voice, voiceover, ai
- Package
@activepieces/piece-murf-api@0.1.4- Tier
- Community