Overview
Access your logs from the Logs page in the dashboard. The API Logs view shows a comprehensive table of all API requests with the following information:API logs are retained for 30 days. After this period, logs are automatically deleted.
Filtering Logs
Use the filter controls at the top of the page to narrow down your search.Date Range
Select a custom date range to view logs from a specific period. The default view shows the last 7 days.API Keys
Filter logs by specific API key to see requests made by a particular integration:- All API Keys - View logs from all API keys
- Specific key - Select a named API key to filter
User Agents
Filter by the SDK or client used to make requests:Status Codes
Filter by HTTP response status to quickly identify successful requests or errors:Searching Logs
Click the Search button after applying filters to refresh the results. The search respects all active filters including date range, API key, user agent, and status code selections.Log Details
Click the details icon (or anywhere on a row) to open the full log detail view for any request.Request Information
The detail view shows:- Method & Path - The HTTP method and API endpoint (e.g.,
POST api/emails) - Status Code - The response status with color indicator (green for success, red for errors)
- Timestamp - Exact date and time of the request
- Request Body - The full JSON payload sent to the API
Response Information
- Response Body - The complete API response
Metadata
Additional information about the request:- IP Address - The source IP address
- API Key - The API key name used (with the key itself partially masked for security)
- User Agent - The client or SDK used (e.g.,
bruno-runtime/3.0.2,lettr-node/1.0.0)
Truncated Fields
To optimize storage and display, some large fields are truncated in the logs:Truncation only affects log display. The actual email sent contains the full content.
Common Status Codes
Success Codes
Client Error Codes
Server Error Codes
Troubleshooting with Logs
Finding Failed Requests
- Set the Status filter to show only error codes (4xx, 5xx)
- Click Search to filter results
- Click on a failed request to view details
- Check the Response Body for error messages
Debugging a Specific Integration
- Filter by the API Key used by that integration
- Optionally filter by User Agent if using an SDK
- Review recent requests for patterns or errors
Tracking Rate Limit Issues
- Filter by status code 429 - Too Many Requests
- Note the timestamps to identify when limits are being hit
- Review the IP addresses to see if requests are distributed
- Implement exponential backoff in your integration
Best Practices
Monitor Regularly
Check your API logs periodically to catch issues early:- Watch for error patterns — A sudden spike in 422 or 401 errors often indicates a configuration change or integration bug
- Set up alerting — Use webhook-based alerting so your team is notified when error rates exceed a threshold
- Monitor rate limits — Pay particular attention to 429 errors, which may signal that your integration needs pacing improvements or a plan upgrade
Use Descriptive API Key Names
Name your API keys descriptively (e.g., “Production Server”, “Staging Environment”, “Marketing Integration”) to easily identify which system made each request.Correlate with Email Events
When troubleshooting email delivery issues:- Find the send request in logs using the timestamp
- Note the
request_idfrom the response - Use this ID to track the email in the Emails dashboard
Next Steps
API Keys
Manage your API keys and permissions
Rate Limits
Understand and handle rate limits