HTTP Status Codes
401 Unauthorized
Symptoms:- Request returns
401 Unauthorized - Error message indicates authentication failure
Missing or Invalid API Key
- Verify your API key is exactly 60 characters
- Check that you’re including the
x-api-keyheader - Ensure no extra whitespace or characters in the key
cURL
JavaScript
Python
Go
Rust
Java
Deleted or Expired API Key
Solution: Create a new API key in your Dakota Platform dashboardWrong Environment
Solution: Ensure you’re using the correct base URL:- Production:
https://api.platform.dakota.xyz
403 Forbidden
Symptoms:- Request returns
403 Forbidden - API key is valid but access is denied
Insufficient Permissions
- Check if your account has access to the requested feature
- Verify API key permissions in the Dakota Platform dashboard
- Contact support if you need additional permissions
Account Limitations
Solutions:- Complete required account verification steps
- Upgrade your account plan if needed
- Contact support for account-specific limitations
429 Too Many Requests
Symptoms:- Request returns
429 Too Many Requests - No response body, only HTTP status
- Rate limit headers indicate limits exceeded
- Implement exponential backoff (see Rate Limiting guide)
- Check
Retry-Afterheader for seconds to wait before retrying - Distribute requests more evenly over time
- Contact support if you need higher rate limits
Header Issues
Missing x-idempotency-key for POST Requests
Error:x-idempotency-key header for POST requests only:
cURL
JavaScript
Python
Go
Rust
Java
Invalid Idempotency Key Format
Error:cURL
JavaScript
Python
Go
Rust
Java
Connection Issues
SSL/TLS Errors
Symptoms:- Connection fails with SSL certificate errors
- “Unable to verify SSL certificate” messages
cURL
JavaScript
Python
Go
Rust
Java
Network Timeouts
Solutions:cURL
JavaScript
Python
Go
Rust
Java
Debugging Steps
1. Verify API Key Format
Check your API key meets the requirements:cURL
JavaScript
Python
Go
Rust
Java
2. Test with cURL
Use cURL to isolate issues from your code:cURL
-v flag provides verbose output showing the full HTTP exchange.
3. Check Response Headers
Always inspect response headers for debugging information:cURL
JavaScript
Python
Go
Rust
Java
4. Enable Request Logging
Log your requests to identify issues:cURL
JavaScript
Python
Go
Rust
Java
Error Response Format
All Dakota Platform API errors follow RFC 9457 Problem Details format withapplication/problem+json content type:
type field URI):
https://docs.dakota.xyz/errors/authentication-error- Authentication failed (401)https://docs.dakota.xyz/errors/forbidden- Access denied (403)https://docs.dakota.xyz/errors/validation-error- Invalid request format (400)https://docs.dakota.xyz/errors/not-found- Resource doesn’t exist (404)https://docs.dakota.xyz/errors/rate-limited- Too many requests (429)https://docs.dakota.xyz/errors/internal-error- Server error (500)
Getting Help
If you’re still experiencing issues:- Check the API status page for any ongoing issues
- Review recent changes to your code or configuration
- Test with minimal examples to isolate the problem
- Contact support with:
- Complete error messages
- Request/response logs (with API keys removed)
- Steps to reproduce the issue
- A relevant Request ID from the response headers, if available
Support Information
- Email: support@dakota.xyz
- Include “API Authentication Issue” in the subject line
- Provide relevant logs with sensitive information removed
- Mention this troubleshooting guide and what you’ve already tried
Quick Checklist
Before contacting support, verify:- API key is exactly 60 characters
- Using correct header name:
x-api-key - Including
x-idempotency-keyfor POST requests only - Using HTTPS base URL:
https://api.platform.dakota.xyz - API key is active in your dashboard
- Account has necessary permissions
- Not hitting rate limits
- Request format matches API documentation