Skip to main content

Authentication

The Fino API uses AWS Signature Version 4 (SigV4) authentication for all endpoints, ensuring secure access to conversational AI capabilities.

Authentication Method

All Fino API requests must be signed using AWS Signature Version 4 with your Infino access credentials.

Required Constants

ParameterValueDescription
AlgorithmAWS4-HMAC-SHA256Fixed signing algorithm
ServiceesService identifier (fixed)
Regionus-east-1AWS region (fixed)
Terminationaws4_requestRequest termination string

REST API Authentication

Required Headers

Authorization: AWS4-HMAC-SHA256 Credential=IAK_ExampleKey123456/20240120/us-east-1/es/aws4_request, SignedHeaders=host;x-amz-date, Signature=CALCULATED_SIGNATURE
Host: app.infino.ws
X-Amz-Date: 20240120T123000Z
Content-Type: application/json

Example: Create Thread

curl -X POST "https://app.infino.ws/fino/threads" \
-H "Authorization: AWS4-HMAC-SHA256 Credential=IAK_ExampleKey123456/20240120/us-east-1/es/aws4_request, SignedHeaders=host;x-amz-date, Signature=abc123..." \
-H "Host: app.infino.ws" \
-H "X-Amz-Date: 20240120T123000Z" \
-H "Content-Type: application/json" \
-d '{
"name": "Sales Analysis",
"index_name": "sales-data",
"status": "ongoing"
}'

WebSocket Authentication

WebSocket connections require authentication through query parameters using the same SigV4 signing process.

URL Format

wss://app.infino.ws/fino/nl?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ACCESS_KEY%2FDATE%2Fus-east-1%2Fes%2Faws4_request&X-Amz-Date=TIMESTAMP&X-Amz-SignedHeaders=host&X-Amz-Signature=SIGNATURE

Required Headers

x-infino-client-id: analytics-dashboard-001
x-infino-thread-id: thread-uuid-123

Error Handling

Authentication Errors

401 Unauthorized

{
"error": {
"type": "authentication_error",
"message": "Invalid or expired signature",
"code": 401,
"details": {
"signature_expired": true,
"timestamp": "20240120T123000Z",
"max_age_seconds": 300
}
}
}

Common causes:

  • Incorrect secret key in signature calculation
  • Timestamp outside allowed window (must be within 15 minutes of current time)
  • Improperly formatted canonical request or signing process

403 Forbidden

{
"error": {
"type": "authorization_error",
"message": "Access denied for requested resource",
"code": 403,
"details": {
"resource": "/fino/threads",
"required_permissions": ["conversation:read"]
}
}
}

Common causes:

  • Incorrect access key provided in credentials
  • Account suspended or deactivated
  • Insufficient permissions for the requested resource or operation