@@ -123,14 +123,17 @@ func (p *Anthropic) CreateInterceptor(w http.ResponseWriter, r *http.Request, tr
123123 // set BYOKBearerToken and clear the centralized key.
124124 // When both are present, X-Api-Key takes priority to match
125125 // claude-code behavior.
126+ credKind := intercept .CredentialKindCentralized
126127 authHeaderName := p .AuthHeader ()
127128 if apiKey := r .Header .Get ("X-Api-Key" ); apiKey != "" {
128129 cfg .Key = apiKey
129130 authHeaderName = "X-Api-Key"
131+ credKind = intercept .CredentialKindPersonalAPIKey
130132 } else if token := utils .ExtractBearerToken (r .Header .Get ("Authorization" )); token != "" {
131133 cfg .BYOKBearerToken = token
132134 cfg .Key = ""
133135 authHeaderName = "Authorization"
136+ credKind = intercept .CredentialKindPersonalAPIKey
134137 }
135138
136139 var interceptor intercept.Interceptor
@@ -139,6 +142,12 @@ func (p *Anthropic) CreateInterceptor(w http.ResponseWriter, r *http.Request, tr
139142 } else {
140143 interceptor = messages .NewBlockingInterceptor (id , reqPayload , cfg , p .bedrockCfg , r .Header , authHeaderName , tracer )
141144 }
145+ // Determine the credential hint from the key actually used.
146+ credHint := intercept .MaskCredential (cfg .Key )
147+ if cfg .BYOKBearerToken != "" {
148+ credHint = intercept .MaskCredential (cfg .BYOKBearerToken )
149+ }
150+ interceptor .SetCredential (credKind , credHint )
142151 span .SetAttributes (interceptor .TraceAttributes (r )... )
143152 return interceptor , nil
144153 }
0 commit comments