@@ -130,14 +130,17 @@ func (p *Anthropic) CreateInterceptor(w http.ResponseWriter, r *http.Request, tr
130130 // set BYOKBearerToken and clear the centralized key.
131131 // When both are present, X-Api-Key takes priority to match
132132 // claude-code behavior.
133+ credKind := intercept .CredentialKindCentralized
133134 authHeaderName := p .AuthHeader ()
134135 if apiKey := r .Header .Get ("X-Api-Key" ); apiKey != "" {
135136 cfg .Key = apiKey
136137 authHeaderName = "X-Api-Key"
138+ credKind = intercept .CredentialKindPersonalAPIKey
137139 } else if token := utils .ExtractBearerToken (r .Header .Get ("Authorization" )); token != "" {
138140 cfg .BYOKBearerToken = token
139141 cfg .Key = ""
140142 authHeaderName = "Authorization"
143+ credKind = intercept .CredentialKindPersonalAPIKey
141144 }
142145
143146 var interceptor intercept.Interceptor
@@ -146,6 +149,12 @@ func (p *Anthropic) CreateInterceptor(w http.ResponseWriter, r *http.Request, tr
146149 } else {
147150 interceptor = messages .NewBlockingInterceptor (id , reqPayload , p .Name (), cfg , p .bedrockCfg , r .Header , authHeaderName , tracer )
148151 }
152+ // Determine the credential hint from the key actually used.
153+ credHint := intercept .MaskCredential (cfg .Key )
154+ if cfg .BYOKBearerToken != "" {
155+ credHint = intercept .MaskCredential (cfg .BYOKBearerToken )
156+ }
157+ interceptor .SetCredential (credKind , credHint )
149158 span .SetAttributes (interceptor .TraceAttributes (r )... )
150159 return interceptor , nil
151160 }
0 commit comments