API keys and integrations
EmailConnect's REST API enables powerful integrations with automation platforms, custom applications, and third-party services. Here's how to create and manage API keys for seamless connectivity.
Creating API keys
Access API settings
- Navigate to Settings > API Keys
- Click "Create new API key"
Configure key permissions
Full scope (default)
- Complete access to all API endpoints
- Read and write permissions
- Suitable for trusted applications
Limited scopes Choose specific permissions:
- Domains: List and manage domains
- Aliases: Create and manage email aliases
- Webhooks: Configure webhook endpoints
- Emails: Read email history and logs
- Statistics: Access usage statistics
Generate and save
- Choose key name (e.g., "Zapier Integration")
- Select permissions
- Click "Generate key"
- Important: Save the key immediately - it won't be shown again
API documentation
Access comprehensive API documentation at emailconnect.eu/docs:
- Interactive API explorer
- Request/response examples
- Authentication details
- Rate limits and quotas
Popular integrations
Zapier
Connect EmailConnect to 5,000+ apps:
- Create API key with full scope
- Add EmailConnect as a Zapier app
- Use API key for authentication
- Build zaps to process emails
Example Zapier workflows:
- Email → EmailConnect → Google Sheets
- Email → EmailConnect → Slack notification
- Email → EmailConnect → CRM update
Make (formerly Integromat)
Visual automation platform:
- Create API key in EmailConnect
- Add HTTP module in Make
- Configure with EmailConnect API endpoints
- Process emails in complex workflows
Example Make scenarios:
- Parse invoices and update accounting software
- Extract leads from emails to CRM
- Trigger multi-step approval workflows
N8n (self-hosted automation)
Open-source workflow automation:
- Install official EmailConnect n8n node
- Create API key with required scopes
- Configure node with your API key
- Build automation workflows
n8n advantages:
- Native EmailConnect integration
- Self-hosted for data privacy
- Complex workflow capabilities
- Cost-effective for high volume
Common API operations
List domains
GET https://app.emailconnect.eu/api/domains
X-API-KEY: your-api-key-here
Create alias
POST https://app.emailconnect.eu/api/aliases
X-API-KEY: your-api-key-here
Content-Type: application/json
{
"domain_id": "dom_123",
"name": "support",
"description": "Support ticket intake"
}
Configure webhook
POST https://app.emailconnect.eu/api/webhooks
X-API-KEY: your-api-key-here
Content-Type: application/json
{
"alias_id": "alias_456",
"url": "https://your-app.com/webhook",
"headers": {
"X-Custom-Header": "value"
}
}
Get email logs
GET https://app.emailconnect.eu/api/emails?alias_id=alias_456
X-API-KEY: your-api-key-here
Security best practices
Key rotation
- Rotate keys every 90 days
- Use different keys per integration
- Revoke unused keys immediately
Scope limitation
- Use minimum required permissions
- Create separate keys for read vs write
- Audit key usage regularly
Environment separation
- Development: Limited scope, test domains only
- Production: Full scope, IP restrictions
- CI/CD: Temporary keys with expiration
Storage guidelines
- Never commit keys to version control
- Use environment variables
- Encrypt keys in configuration files
- Use secret management services
Rate limits
Limits by plan
| Plan | Requests per hour | Effective per minute |
|---|---|---|
| Free | 60 | 1 |
| Maker | 600 | 10 |
| Business | 3,000 | 50 |
| Platform | Unlimited | 10,000 cap |
Some endpoints have additional limits: sensitive operations are limited to 3 per 30 minutes, and test webhook deliveries to 10 per hour.
Rate limit headers
All API responses include rate limit headers:
x-ratelimit-limit: 600
x-ratelimit-remaining: 592
x-ratelimit-reset: 1640995200
When you exceed your limit, the response returns HTTP 429 with a retry-after header indicating how many seconds to wait.
Integration examples
Python
import requests
API_KEY = "your-api-key-here"
BASE_URL = "https://app.emailconnect.eu/api"
headers = {
"X-API-KEY": API_KEY,
"Content-Type": "application/json"
}
# List all domains
response = requests.get(f"{BASE_URL}/domains", headers=headers)
domains = response.json()
Node.js
const axios = require('axios');
const API_KEY = 'your-api-key-here';
const BASE_URL = 'https://app.emailconnect.eu/api';
const client = axios.create({
baseURL: BASE_URL,
headers: {
'X-API-KEY': API_KEY,
'Content-Type': 'application/json'
}
});
// Create an alias
async function createAlias(domainId, name) {
const response = await client.post('/aliases', {
domain_id: domainId,
name: name
});
return response.data;
}
cURL
# Get account statistics
curl -X GET https://app.emailconnect.eu/api/statistics \
-H "X-API-KEY: your-api-key-here"
Troubleshooting
Authentication errors
- Verify API key is correct
- Check key hasn't been revoked
- Ensure X-API-KEY header is included
Permission denied
- Check key has required scopes
- Verify resource ownership
- Confirm account limits
Rate limiting
- Implement exponential backoff
- Cache responses when possible
- Use webhooks instead of polling
Advanced usage
Webhook signature verification
Verify that webhook requests are genuinely from EmailConnect using HMAC-SHA256 signatures. See the Webhook signing guide for full implementation details and code examples in multiple languages.
Updating an alias
Update an existing alias configuration:
PATCH https://app.emailconnect.eu/api/aliases/{aliasId}
Pagination
Handle large result sets:
GET https://app.emailconnect.eu/api/emails?page=2&limit=100
The API provides powerful programmatic access to all EmailConnect features, enabling seamless integration with your existing tools and workflows.