Upstream Authentication
By default, Onwards sends upstream API keys using the standard Authorization: Bearer <key> header format. Some AI providers use different authentication header formats. You can customize both the header name and prefix per target.
Custom header name
Some providers use custom header names for authentication:
{
"targets": {
"custom-api": {
"url": "https://api.custom-provider.com",
"onwards_key": "your-api-key-123",
"upstream_auth_header_name": "X-API-Key"
}
}
}
This sends: X-API-Key: Bearer your-api-key-123
Custom header prefix
Some providers use different prefixes or no prefix at all:
{
"targets": {
"api-with-prefix": {
"url": "https://api.provider1.com",
"onwards_key": "token-xyz",
"upstream_auth_header_prefix": "ApiKey "
},
"api-without-prefix": {
"url": "https://api.provider2.com",
"onwards_key": "plain-key-456",
"upstream_auth_header_prefix": ""
}
}
}
This sends:
- To provider1:
Authorization: ApiKey token-xyz - To provider2:
Authorization: plain-key-456
Combining custom name and prefix
You can customize both the header name and prefix:
{
"targets": {
"fully-custom": {
"url": "https://api.custom.com",
"onwards_key": "secret-key",
"upstream_auth_header_name": "X-Custom-Auth",
"upstream_auth_header_prefix": "Token "
}
}
}
This sends: X-Custom-Auth: Token secret-key
Default behavior
If these options are not specified, Onwards uses the standard OpenAI-compatible format:
{
"targets": {
"standard-api": {
"url": "https://api.openai.com",
"onwards_key": "sk-openai-key"
}
}
}
This sends: Authorization: Bearer sk-openai-key