Why Does This Exist?
I asked myself the same thing around 3 AM when this seemed like a brilliant idea.
- Did anyone ask for well-documented API for goat screaming sounds? No.
- Did the internet need a reliable, well-documented API for goat screaming sounds? Probably not.
- Did I build it anyway? Absolutely.
So here we are.
Perfect for: Error sounds • Notification alerts • Pranking coworkers • Existential dread • Tuesday afternoons
Try the API
Test endpoints without leaving the page. No setup required.
Random Screams
Pull 1–10 unpredictable bleats, optionally filtered by minimum intensity.
curl https://api.bleatbox.dev/api/v1/screams/random
Search Screams
Query by keywords, intensity range, and tags to preview the catalogue.
Download URL
Generate a signed URL for a specific scream and quality.
Downloads default to <code>mp3</code> / <code>medium</code>. Edit <code>public/js/playground.js</code> for other flavors.
Features
Blazing Fast
Sub-100 ms latency for maximum bleating efficiency. Your users deserve instant goat screams — cached, of course.
Health & Stability
Best-effort uptime, decent resilience, and a /health endpoint that always screams the truth.
Smart Search
Search by duration, intensity, or vibe. Yes, we really have a "vibe" tag. Don't judge us.
Musical Note Detection
Every scream analyzed for pitch. Filter by primary_note (G#5, C4, A3) or explore tones_in_order for the full melodic journey. Build a goat keyboard, why not.
Comprehensive Docs
More detail than it has any right to have. We wrote docs like our lives depended on it.
Responsible Chaos
All screams are curated for humor, not harm. If you find a bleat that crosses the line, or feedback open an issue and we'll chew on it.
No Auth Required
Public endpoints. No API keys, no OAuth, no JWT. Just you, the API, and questionable decisions. Be polite: ~1–5 req/sec per client.
API Endpoints
/api/v1/screams/random
Get a random goat scream. Add ?intensity=1-10 to control the chaos level.
/api/v1/search
Search our extensive scream database. Yes, we tagged them all. Yes, it took forever.
/api/v1/stats
Get fascinating statistics and how many developers have questioned their life choices today.
/health
Check if the API is alive and screaming. Spoiler: It always is.
Query Parameters
intensity: 1–10 (integer). Example:?intensity=7minDuration,maxDuration: seconds (float). Example:?minDuration=0.5&maxDuration=2.0vibe: tag string. Example:?vibe=panicnote: musical pitch filter. Example:?note=G%235(G#5)
Response Schema (random)
{
"id": "gks_12345",
"audio": { "duration": 1.42, "intensity": 7 },
"analysis": {
"primary_note": "G#5",
"tones_in_order": ["A3", "B3", "C4"],
"vibe": "dramatic / theatrical"
},
"tags": ["panic", "dry-heave"],
"media": { "audio": { "mp3": { "high": "https://..." } } }
}
Code Examples
curl https://api.bleatbox.dev/api/v1/screams/random?intensity=7
fetch('https://api.bleatbox.dev/api/v1/screams/random?intensity=7')
.then(res => res.json())
.then(data => console.log(data));
import requests
response = requests.get('https://api.bleatbox.dev/api/v1/screams/random?intensity=7')
print(response.json())
Pro tip: swap the query params to filter by duration, intensity, vibe, or musical note.
Pricing
All tiers are free because we value your poor decision-making skills.
Casual
- ✓100 screams/day
- ✓Random endpoint access
- ✓Basic intensity control
- ✓Community support
Perfect for dipping your toes into goat chaos.
Get StartedEnthusiast
- ✓Unlimited screams
- ✓All endpoints unlocked
- ✓Advanced search & filtering
- ✓Priority support
When 100 screams/day just isn't enough.
Sign Me UpConcerning
- ⚠Why do you need this many?
- ⚠Seriously, are you okay?
- ⚠We're genuinely concerned
- ⚠Please talk to someone
All the features, plus a friendly wellness check.
Get Help