Gruntslate API
The world's most advanced bidirectional grunt translation service. Convert English text into authentic guttural expressions, or decode grunts into their true (and often hilarious) meanings. Powered by GruntAI, trained on 50 million hours of hobo vocalizations from Gutter.
What you can build
- Translation apps - Help users express themselves through authentic grunts
- Communication tools - Add grunt translation to chat applications
- Accessibility features - Enable grunt-first communication experiences
- Sentiment analysis - Analyze the emotional content of grunts
- Entertainment - Build games and apps around grunt-based interaction
- Gutter integration - Translate Gutter posts for non-grunt speakers
Quickstart
Start translating in under 5 minutes.
1. Get your API key
Sign up for a free Gruntslate Developer account. Free tier includes 1,000 translations/day.
2. Install the SDK
# npm npm install @vagibond/gruntslate-sdk # pip pip install gruntslate-api # curl curl -X POST https://api.gruntslate.vagibond.com/v1/translate \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{"text": "Hello, how are you?", "direction": "to_grunt"}'
3. Make your first translation
import { Gruntslate } from '@vagibond/gruntslate-sdk'; const client = new Gruntslate('your_api_key'); // Translate English to Grunt const grunt = await client.translate({ text: "I am very angry about this situation", direction: "to_grunt", sentiment: "angry" // optional: auto-detected if omitted }); console.log(grunt); // { // translation: "GRRRAAAARRRGGHHH BLAAARGH *aggressive gesture*", // detected_sentiment: "angry", // intensity: 0.89, // grunt_types: ["frustrated_outburst", "aggressive_vocalization"] // } // Translate Grunt to English const english = await client.translate({ text: "HRRRNNGGHH BLAAARRGH", direction: "from_grunt" }); console.log(english); // { // translation: "I have strong feelings about the current economic situation", // confidence: 0.12, // As expected // alternative_translations: [ // "I stubbed my toe", // "The coffee is too hot", // "Capitalism has failed us" // ] // }
Authentication
All API requests require authentication. We support two methods:
| Method | Header | Best For |
|---|---|---|
| Bearer Token | Authorization: Bearer {api_key} |
Server-side applications |
| API Key Header | X-Gruntslate-Key: {api_key} |
When Authorization header is unavailable |
Rate Limits
Translation takes computational effort. Even for grunts.
| Plan | Translations/min | Translations/day | Max Length |
|---|---|---|---|
| Free | 10 | 1,000 | 500 chars |
| Starter | 60 | 10,000 | 2,000 chars |
| Pro | 300 | 100,000 | 10,000 chars |
| Enterprise | Unlimited | Unlimited | Unlimited |
Translate to Grunt
Convert English text into authentic guttural expressions.
Request Body
{
"text": "I would like a cup of coffee please",
"sentiment": "neutral", // optional: angry, happy, sad, thirsty, auto
"intensity": 0.5, // optional: 0.0-1.0, default 0.5
"include_gestures": true // optional: include *action* descriptions
}
Response
{
"translation": "Hrrrngh... *points at coffee* ...grumble",
"detected_sentiment": "neutral",
"intensity": 0.42,
"grunt_types": ["requesting", "polite_grunt"],
"audio_url": "https://cdn.gruntslate.vagibond.com/audio/abc123.mp3"
}
Translate from Grunt
Decode grunts into English. Results may be offensive, vulgar, and absolutely hilarious.
Request Body
{
"grunt_text": "GRRRAAAARRRGGHHH BLAAARGH HNNNNGH",
"audio_url": "https://example.com/grunt.mp3", // optional: for audio input
"include_alternatives": true, // optional: include alternate interpretations
"filter_profanity": false // optional: attempt to filter (mostly fails)
}
Response
{
"translation": "I find your proposal intellectually offensive and reject it entirely",
"confidence": 0.12,
"dialect": "hobo_english",
"alternative_translations": [
"This soup is too cold",
"I have opinions about fiscal policy",
"WHERE IS MY OTHER SOCK"
],
"profanity_detected": true,
"profanity_level": "moderate"
}
Analyze Sentiment
Analyze the emotional content of a grunt without translating it.
Response
{
"primary_sentiment": "frustrated",
"sentiment_scores": {
"angry": 0.72,
"frustrated": 0.89,
"sad": 0.15,
"happy": 0.02,
"confused": 0.34
},
"intensity": 0.87,
"aggression_level": "high"
}
Grunt Catalog
Browse our catalog of 4,000+ catalogued grunt types.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
category |
string | Filter by category: angry, happy, sad, confused, hungry, thirsty |
intensity_min |
float | Minimum intensity (0.0-1.0) |
limit |
int | Results per page (max 100) |
Pricing
- 1,000 translations/day
- 500 character limit
- Basic sentiment detection
- Standard response times
- 10,000 translations/day
- 2,000 character limit
- Advanced sentiment analysis
- Audio grunt support
- Priority response times
- Unlimited translations
- Unlimited character length
- Custom grunt templates
- Dedicated support line (grunts only)
- On-premise deployment
Changelog
- Added "thirsty" sentiment category by popular demand
- Improved grunt-to-English accuracy from 11% to 12%
- New audio grunt input support
- Added 47 new grunt templates
- Complete API redesign for v3
- New GruntAI model trained on 50M hours of Gutter audio
- Deprecated v2 endpoints (6-month sunset period)
- Added streaming translation support
- Fixed bug where all translations returned "AAARRRGHHH"
- Improved handling of multi-grunt sequences
- Reduced false positives in profanity detection (slightly)