# API Details & Rate Limits
## Rate Limiting
**Limit:** 5 requests per second
**Response:** HTTP 429 (Too Many Requests)
**Best Practices:**
- Avoid rapid consecutive requests
- The MCP server handles this automatically
- If you hit the limit, wait a second before retrying
## Authentication Modes
### Without API Token
**What you can do:**
- ✅ Create public pastes
- ✅ View public pastes
- ✅ Get language information
- ✅ Check if users exist
- ✅ View public profiles
**What you cannot do:**
- ❌ Create private pastes
- ❌ Edit/delete pastes
- ❌ Add tags to pastes
- ❌ View your profile
- ❌ List your pastes
### With API Token
**Full access to all features!**
## Paste Expiry Options
- `never` - Permanent (default)
- `1h` - 1 hour
- `2h` - 2 hours
- `10h` - 10 hours
- `1d` - 1 day
- `2d` - 2 days
- `1w` - 1 week
- `1m` - 1 month
- `1y` - 1 year
## Supported Languages
100+ programming languages including:
- Python, JavaScript, TypeScript, Java, C, C++, C#
- Go, Rust, Ruby, PHP, Swift, Kotlin, Scala
- HTML, CSS, SCSS, SQL, Shell, PowerShell
- Markdown, JSON, YAML, XML, TOML
- And many more!
## Paste Structure
A paste consists of:
- **ID:** Unique identifier (e.g., "abc123")
- **Title:** Optional title
- **Tags:** Array of strings (with auth)
- **Privacy:** Public or private
- **Expiry:** When it will be deleted
- **Pasties:** Array of code snippets
Each pasty has:
- **Title:** Optional filename
- **Language:** Programming language
- **Code:** The actual code content
- **ID:** Unique identifier within the paste