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 Standard Webhooks 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.