🔊 Sound Upload

Upload an audio file, get a direct link, and paste it into the audioUrl field of our Whisper (speech-to-text) or TTS actors on Apify.

Upload

Click or drop an audio file here
WAV (PCM) · max 5 minutes · max 25 MiB

Your limits (IP)

Loading…

Rules

Max clip length5 minutes
Per 10-minute window5 hours of audio
Per day24 hours of audio
Total per IP5 hours
Files auto-delete after7 days

Hitting 80% of a quota shows a warning. Need more? Contact info@metanetsoft.com to have your IP whitelisted (limits disabled).

Then what?

Copy your link and run our actors:
Whisper Turbo Speech to Text → paste into audioUrl

API

No key needed — same limits as the page, per IP. Send the raw WAV body with a WAV content-type; the response is JSON with a ready-to-use url.

POST /api/upload → upload a WAV, returns {url, durationSeconds, bytes} GET /api/usage → your remaining quota (JSON)

curl

curl -X POST https://soundupload.tr.foxtools.de/api/upload \ -H 'Content-Type: audio/wav' \ --data-binary @voice.wav

Python

import urllib.request, json req = urllib.request.Request( 'https://soundupload.tr.foxtools.de/api/upload', data=open('voice.wav','rb').read(), headers={'Content-Type': 'audio/wav'}) r = json.loads(urllib.request.urlopen(req).read()) print(r['url']) # → paste into the actor's audioUrl

Node

const fs = require('fs'); const r = await fetch('https://soundupload.tr.foxtools.de/api/upload', { method: 'POST', headers: { 'Content-Type': 'audio/wav' }, body: fs.readFileSync('voice.wav'), }); const { url } = await r.json();

Then feed the URL straight into the actor run API:

curl -X POST https://api.apify.com/v2/acts/myagizm~whisper-turbo-speech-to-text/runs?token=APIFY_TOKEN \ -H 'Content-Type: application/json' \ -d '{"audioUrl": "…from the upload above…"}'

Errors come back as JSON: {error, warning?, usage?} — 413 too large, 415 wrong type, 400 bad WAV/too long, 429 rate limited.

Contact

Questions, higher limits or IP whitelisting: info@metanetsoft.com