REST + webhooks + MCP

Programmable audio cleanup, with receipts.

Audy is a developer API for improving audio — denoise, de-hum, de-ess, loudness-normalize, transcribe — composed into named, versioned workflows that sound identical on every file. Every result carries its full processing chain. Async, quality-preserving, agent-native.

Free tier, no card required. 60 seconds from signup to your first cleaned file.

audy — one job, one receipt
# clean a file straight from your bucket
$ curl -s https://audy.dev/v1/jobs \
    -H "X-API-Key: $AUDY_API_KEY" \
    -d '{"source": {"type": "s3",
                    "uri": "s3://acme-media/raw/ep41.wav"},
         "preset": "cleanup-v1",
         "output": {"type": "s3",
                    "uri": "s3://acme-media/clean/ep41.wav"}}'

HTTP/1.1 202 Accepted
{
  "id": "job_9f2c81", "status": "queued",
  "preset": "cleanup-v1"
}

# …webhook fires when it's done, receipt included:
{
  "status": "succeeded",
  "provenance": {
    "audy:input_format":  "wav/pcm_s16le",
    "audy:output_format": "wav/pcm_s16le",
    "audy:lossy_source":  false,
    "chain": ["denoise", "dehum", "deess",
              "loudnorm(-16 LUFS)"]
  }
}

Not another one-off magic button

Enhancement tools give you a black box and a different result every time. Audy gives you a pipeline you can name, version, audit, and ship.

🔁

Repeatable by construction

Save a chain once; run it identically forever. Workflow versions are immutable — episode 40 sounds like episode 12, provably.

🧾

Receipts on every job

Provenance records the exact processing chain, input/output formats, lossy-source detection, and measured loudness. Auditable pipelines, not vibes.

📝

Transcripts with timestamps

Word-level transcription, SRT/VTT captions, chapters, and show notes from the same job that cleaned the audio — one pass, one receipt.

🤖

Agent-native

A first-class MCP server with 20 tools means Claude, Cursor, or your own agent can operate the whole toolkit. Give your agent an audio engineer.

🎚️

Quality-preserving by design

Decode once to float, no intermediate lossy stages, video tracks stream-copied — never re-encoded. Loudness to broadcast and platform specs (EBU R128).

🪣

Your buckets, not ours

Audy reads from and writes to your S3 bucket, through an IAM role only your account can use, and keeps nothing by default. Ephemeral scratch space expires on a clock. How it works

Async by design: POST, then get a webhook

No long-lived connections to babysit. Create a job, go do something else, and Audy calls you back with the result and its receipt.

1

Point at your audio

An S3 reference to your bucket, or a short-lived direct upload for files you have in hand.

2

POST /v1/jobs → 202

Pick a preset or a saved workflow. Tune denoise strength, target LUFS, and more per job.

3

Webhook or poll

Result lands in your bucket; the job record carries the full provenance chain and measured loudness.

Reuse it: workflows are versioned

# save the house sound once…
POST /v1/workflows
{ "name": "podcast-house-sound",
  "nodes": [ {"kind": "preset", "preset": "cleanup-v1"},
             {"kind": "op", "op": "loudnorm", "target_lufs": -16} ] }

# …then every episode is one line, forever
POST /v1/jobs
{ "source": {…}, "workflow": "podcast-house-sound@1" }

Transcripts & captions, word-level

# transcription with word timestamps,
# SRT/VTT captions, chapters, show notes
POST /v1/jobs
{ "source": {…}, "preset": "transcribe-v1" }

# loudness compliance, measured & reported
POST /v1/jobs
{ "source": {…}, "preset": "cleanup-v1",
  "target_lufs": -23 }   # EBU R128 broadcast

Give your agent an audio engineer

The MCP server is a thin proxy over the same REST API — no contract drift. Twenty tools, from one-shot helpers to full workflow composition, ready for Claude, Cursor, or your own agent loop.

{
  "mcpServers": {
    "audy": {
      "command": "python",
      "args": ["-m", "audy.mcp_server"],
      "env": {
        "AUDY_API_URL": "https://audy.dev",
        "AUDY_API_KEY": "audy_sk_…"
      }
    }
  }
}

“Clean up this interview, normalize it for Spotify, give me chapters and show notes” — that's one prompt, not an afternoon. Your agent picks the tools; every result still carries its receipt.

cleanup_mediatranscribe_mediapodcast_package analyze_mediameasure_loudnessinspect_media create_jobwait_for_jobget_job get_job_eventsdownload_resultupload_file save_workflowlist_gallerylist_plugins get_plugin_parameterslist_plugin_presets get_plugin_presetlist_runnersget_capabilities

Built for people who ship audio features

Developers embedding audio

UGC platforms, course tools, meeting products, voice apps — clean user audio without building a DSP team.

Podcast tools & networks

A consistent, provable house sound across every show and episode — and receipts when someone asks why it sounds different.

AI & agent builders

Audio processing your agent can drive end-to-end over MCP, with structured results it can reason about.

Teams replacing an aging audio API

Portable by design: Docker for dev, Terraform for AWS, and your own buckets for storage. No lock-in on the media path.

What Audy is not (yet)

  • Not a consumer editor. Audy is an API-first backend — there's no GUI timeline, and that's on purpose.
  • Not a “magic AI voice” model. The bet is composability, repeatability, and receipts — not best-in-class neural enhancement. If you need a one-button miracle, other tools do that; they just can't prove what they did.
  • Not storage. Audy reads and writes your buckets and keeps nothing by default.

Where your audio runs

Enterprise buyers ask this in a questionnaire eventually. Here it is up front, and in full on the privacy and sub-processors page.

📍

Processing location

Processing runs on AWS (us-west-2) and on Audy-operated hardware in the United States. Both are under Audy's sole control, and AWS is the only third party your audio reaches — no transcription service, no AI vendor. The full sub-processor list is two rows long.

🧹

Isolated, then wiped

Every task gets its own working space, and it is deleted when the task ends. Uploads Audy holds expire within 24 hours; results go to your bucket, not ours.

🔒

Encrypted throughout

TLS in transit, including the per-task URLs a runner uses to move bytes — those are scoped to one task and they expire. Encrypted at rest in S3 and in the database.

Start free. Then $1 an hour, billed by the minute.

Buy credit when you need it, with no subscription. An hour of processing is $1, billed by the minute, and every charge reconciles against the same usage events you can query.

Free

$0
forever · no card
  • $2 of credit to start — about 2 hours of audio
  • Then $1 an hour, billed by the minute — top up when you need to
  • Whole files, not samples — nothing is truncated
  • Every feature: cleanup presets, saved workflows, transcription, captions, loudness targets
  • Full provenance receipts
  • REST + webhooks + MCP
Get an API key

Enterprise

Talk to us
volume, VPC, or self-hosted
  • Volume pricing
  • Deploy in your AWS account (Terraform included)
  • Custom presets & priority support
  • Hosting for AU/VST plugins you hold licenses for
Contact us