Authentication Methods
Infino uses API key authentication for all API access. All authenticated requests require proper credentials and follow AWS Signature v4 style request signing.
API Key Authentication
All API requests use access keys and secret keys with request signing.
Request Headers
All API requests must include these headers:
| Header | Description | Example |
|---|---|---|
Authorization | AWS Signature v4 authorization header | AWS4-HMAC-SHA256 Credential=ACCESS_KEY/20241201/us-east-1/infino/aws4_request, SignedHeaders=host;x-amz-date, Signature=... |
X-Amz-Date | Request timestamp in ISO 8601 format | 20241201T120000Z |
Host | API endpoint hostname | api.infino.ai |
Example Request
curl -X GET "https://api.infino.ai/my-index/_search" \
-H "Authorization: AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20241201/us-east-1/infino/aws4_request, SignedHeaders=host;x-amz-date, Signature=calculated_signature" \
-H "X-Amz-Date: 20241201T120000Z" \
-H "Host: api.infino.ai"
Rotate API Keys
Generate new access and secret keys for a user account.
Endpoint: GET /_account/users/{username}/rotate_keys
Request:
GET /_account/users/myuser/rotate_keys
Authorization: AWS4-HMAC-SHA256 Credential=OLD_ACCESS_KEY/...
Response:
{
"account_id": "123456789012",
"access_key": "AKIAIOSFODNN7NEWKEY",
"secret_key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYNEWEXAMPLE",
"username": "myuser",
"password": "generated_password"
}
Important Notes:
- Old keys are immediately invalidated after rotation
- Update your applications with new credentials promptly
- Any user can rotate their own keys
Authentication Best Practices
Security Recommendations:
- Rotate API keys regularly (recommend monthly)
- Use HTTPS for all API requests
- Store credentials securely (environment variables, secrets management)
- Implement proper timestamp validation
Integration Tips:
- Use AWS SDKs which handle request signing automatically
- Implement retry logic for authentication failures
- Monitor for 401/403 responses and rotate keys if needed
- Use separate credentials for different applications/environments