Error Response Format
All Sixtyfour API errors return a JSON response with a consistent structure:HTTP Status Codes
The API uses standard HTTP status codes to indicate success or failure.| Status Code | Meaning | Description |
|---|---|---|
| 200 | OK | Request succeeded |
| 400 | Bad Request | Invalid request body, missing required fields, or malformed data |
| 401 | Unauthorized | Missing or invalid API key |
| 429 | Too Many Requests | Rate limit exceeded |
| 500 | Internal Server Error | Server error - retry after a brief wait |
Common Error Types
400 Bad Request
Causes:- Missing required fields in request body
- Invalid field types or formats
- Malformed JSON payload
- Empty or invalid lead/company data
- Verify all required fields are included in your request
- Check that field types match the API specification
- Ensure JSON is properly formatted
- Validate input data before making the request
401 Unauthorized
Causes:- Missing
x-api-keyheader - Invalid or expired API key
- API key not properly formatted
- Verify your API key is correct
- Ensure the
x-api-keyheader is included in every request - Check that your API key hasn’t been revoked or expired
- Get a new API key from the dashboard
429 Rate Limit Exceeded
Causes:- Exceeded the rate limit of 500 requests per minute
- Implement exponential backoff and retry logic
- Wait 60 seconds before retrying
- Spread requests over time to stay under the limit
- Use async endpoints for bulk operations
- Contact support if you need a higher rate limit
500 Internal Server Error
Causes:- Temporary server issue
- Unexpected error during processing
- Service degradation
- Wait a few seconds and retry the request
- Implement retry logic with exponential backoff
- If the error persists, contact support at [email protected]
Rate Limits
The Sixtyfour API enforces the following rate limits:- 500 requests per minute per API key
X-RateLimit-Limit: Maximum requests allowed per minuteX-RateLimit-Remaining: Remaining requests in current windowX-RateLimit-Reset: Unix timestamp when the limit resets
Best Practices for Rate Limiting
- Implement Retry Logic
- Use Async Endpoints for Bulk Operations
/enrich-company-async, /enrich-lead-async) instead of making many synchronous calls.
- Implement Request Queuing
Timeout Issues
Long-Running Requests
Some endpoints perform deep research and can take several minutes:- Enrich Lead: P95 runtime ~5 minutes, up to 10 minutes
- Enrich Company: Several minutes depending on research depth
- QA Agent: Varies based on criteria complexity
- Set Appropriate Timeouts
- Use Async Endpoints
- Use Webhooks
Common Troubleshooting Scenarios
Issue: “Invalid API key” error
Check:- Is the
x-api-keyheader included? - Is the API key copied correctly (no extra spaces)?
- Has the API key been revoked or expired?
Issue: Request times out
Check:- Are you using a sync endpoint for long-running operations?
- Is your HTTP client timeout set appropriately?
Issue: Empty or incomplete results
Check:- Did you provide enough input data for the enrichment?
- Is the
structfield properly defined with clear descriptions? - Are you requesting data that may not be publicly available?
- Provide as much input data as possible (name, company, LinkedIn, etc.)
- Write clear, detailed descriptions in the
structfield - Check the
confidence_scorein the response to gauge data quality
Issue: Rate limit exceeded frequently
Check:- Are you making more than 500 requests per minute?
- Are you implementing retry logic properly?
- Use async endpoints for bulk operations
- Implement request queuing to control the rate
- Add delays between requests
- Contact support if you need a higher limit
Issue: “Bad Request” with valid data
Check:- Is the JSON properly formatted?
- Are all required fields included?
- Are field types correct (object vs string, etc.)?
Getting Help
If you’re experiencing issues not covered in this guide:- Check the API Reference for endpoint-specific requirements
- Review the starter notebooks for working examples
- Contact support at [email protected]
- Include the following in your support request:
- Request/response details (remove sensitive data)
- Error message
- Endpoint being called
- Approximate timestamp of the error