Gutter API
Access the world's largest database of guttural human expression. The Gutter API provides programmatic access to over 890 million grunts, 4,000 catalogued grunt types, and the only AI translation layer that claims to convert primal sounds into English (success rate: 12%).
What you can build
- Grunt aggregators - Collect and analyze grunts from across the platform
- Translation apps - Attempt to decode what people are actually saying (good luck)
- Sentiment analysis - Determine if a grunt is angry, frustrated, or just regular angry
- Gutter bots - Automate your grunting for maximum antisocial reach
- Panhandling platforms - Monetize grunts with our aggressive panhandling module
Quickstart
Start grunting programmatically in under 5 minutes.
1. Get your API key
Sign up for a free Gutter Developer account. Free tier includes 500 grunts/day and access to the translation API (results may vary).
2. Install the SDK
# npm npm install @vagibond/gutter-sdk # pip pip install gutter-api # If you're truly committed curl -X POST https://api.gutter.vagibond.com/v1/grunts \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{"audio_url": "https://example.com/my-grunt.mp3"}'
3. Post your first grunt
import { Gutter } from '@vagibond/gutter-sdk'; const client = new Gutter('your_api_key'); // Post a grunt from audio file const grunt = await client.grunts.post({ audio_url: 'https://your-server.com/aaarrgh.mp3', intensity: 0.87, // 0-1 scale, 0.87 = quite frustrated hashtags: ['#AAARRGH', '#mondaymorning'] }); console.log(grunt); // { // id: "grt_8f3k2j1", // audio_url: "https://cdn.gutter.vagibond.com/grunts/grt_8f3k2j1.mp3", // transcription: "AAAAARRRRRGGGHHHH", // translation: "I am experiencing displeasure", // AI attempt // translation_confidence: 0.12, // As expected // intensity: 0.87, // regrunts: 0, // created_at: "2024-01-15T08:30:00Z" // }
Authentication
All API requests require authentication. We support two methods:
| Prefix | Type | Usage |
|---|---|---|
gtr_live_ |
Production | Real grunts, real intensity, real consequences |
gtr_test_ |
Sandbox | Fake grunts that nobody hears (just like real life) |
Rate Limits
Even we have limits on how much screaming we can process.
| Plan | Grunts/day | Translations/day | Spaces Access |
|---|---|---|---|
| Free Tier | 500 | 100 (12% accurate) | Listen only |
| Premium Profanity | 10,000 | Unlimited (still 12% accurate) | Full yelling rights |
| Enterprise Anger | Unlimited | Unlimited | Host your own Spaces |
Grunts API
Returns a timeline of grunts from users you follow, sorted by intensity.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
min_intensity |
float | Filter grunts below this intensity (0.0-1.0) |
include_translations |
boolean | Include AI translation attempts (default: false, save yourself) |
limit |
integer | Max grunts to return (default: 50) |
Response
{
"grunts": [
{
"id": "grt_x7k9m2",
"user": {
"id": "usr_abc123",
"handle": "@ShoutyPete",
"verified_grunter": true
},
"audio_url": "https://cdn.gutter.vagibond.com/grunts/grt_x7k9m2.mp3",
"transcription": "HRRRNNNGGGHHHH BLAAARRGH",
"intensity": 0.94,
"grunt_type": "frustrated_morning",
"hashtags": ["#AAARRGH", "#traffic"],
"regrunts": 47,
"created_at": "2024-01-15T07:45:00Z"
}
]
}
Post a new grunt to the platform. Audio is analyzed for intensity, classified by our 4,000-type grunt taxonomy, and optionally translated (poorly).
Request Body
{
"audio_url": "https://your-server.com/grunt.mp3",
"hashtags": ["#grumble", "#existential"],
"reply_to": "grt_parent123", // optional
"location": { // optional, for local grunt discovery
"lat": 37.7749,
"lng": -122.4194
}
}
Attempt to translate a grunt into human-readable text using our proprietary AI. Success rate: approximately 12%. We're not proud of this number but we're honest about it.
Request Body
{
"grunt_id": "grt_x7k9m2",
"target_language": "en" // Also supports: "es", "fr", "existential_dread"
}
Response
{
"grunt_id": "grt_x7k9m2",
"original_transcription": "HRRRNNNGGGHHHH BLAAARRGH",
"translation": "I believe the traffic situation is suboptimal",
"confidence": 0.08,
"alternative_translations": [
"My coffee is cold",
"Existence is pain",
"The meeting could have been an email"
],
"disclaimer": "This translation is almost certainly wrong"
}
Join a live Gutter Space - real-time group yelling sessions where users express themselves through synchronized grunting.
Request Body
{
"space_id": "spc_monday_rage",
"mode": "yeller" // or "listener" for free tier
}
Active Spaces (Sample)
| Space | Participants | Avg Intensity | Theme |
|---|---|---|---|
spc_monday_rage |
2,847 | 0.91 | Start of week frustration |
spc_tech_support |
1,203 | 0.97 | IT-related screaming |
spc_peaceful_grumble |
89 | 0.34 | Low-intensity venting |
Our most popular module. Initiate an aggressive panhandling campaign attached to your grunts. Converts primal expression into revenue through our proprietary "Sympathy-to-Currency" algorithm.
Request Body
{
"grunt_id": "grt_x7k9m2",
"intensity": "aggressive", // "passive", "aggressive", "very_aggressive"
"amount_requested": 5.00,
"currency": "USD", // Also accepts: "cans", "favors", "crypto"
"message": "Every grunt helps. Please donate to keep me grunting."
}
Grunt Catalog
Our linguists have catalogued over 4,000 distinct grunt types. Here are the most common:
| Type Code | Name | Typical Intensity | Common Context |
|---|---|---|---|
frustrated_morning |
The Monday Moan | 0.75-0.90 | 6-9 AM, coffee-related |
traffic_rage |
Commuter's Lament | 0.85-0.98 | Rush hour, any city |
existential_sigh |
The Void Acknowledgment | 0.30-0.50 | 2-4 AM, alone |
meal_satisfaction |
The Food Grunt | 0.20-0.40 | Post-meal contentment |
tech_frustration |
The IT Scream | 0.92-1.00 | Software updates, printers |
pure_primal |
Uncategorized Rage | 0.95-1.00 | Unknown, concerning |
Pricing
- 500 grunts/day
- 100 translations (12% accurate)
- Listen-only Spaces access
- Basic analytics
- 10,000 grunts/day
- Unlimited translations
- Full yelling rights in Spaces
- Aggressive Panhandling module
- Priority trending placement
- Unlimited everything
- Host private Spaces
- Custom grunt taxonomy
- Dedicated rage support
- SLA for uptime (not mood)
Changelog
- Added 200 new grunt types including
zoom_fatigueandai_replacement_anxiety - Improved translation accuracy from 11% to 12% (major breakthrough)
- New Spaces feature: "Synchronized Screaming" for group catharsis
- Launched Aggressive Panhandling module
- Added support for grunt threads (sequential screaming)
- New intensity algorithm accounts for time of day
- Removed support for actual words in grunts (policy violation)
- Deprecated
/v2/endpoints - New grunt classification system with 4,000 types