diff --git a/litellm/llms/anthropic/count_tokens/handler.py b/litellm/llms/anthropic/count_tokens/handler.py index 38cd429d99a..9cdb886e5cd 100644 --- a/litellm/llms/anthropic/count_tokens/handler.py +++ b/litellm/llms/anthropic/count_tokens/handler.py @@ -66,8 +66,18 @@ class AnthropicCountTokensHandler(AnthropicCountTokensConfig): verbose_logger.debug("Transformed request: %s", request_body) - # Get endpoint URL - endpoint_url: Final = api_base or self.get_anthropic_count_tokens_endpoint() + # Construct clean endpoint URL handling custom proxy destinations + if api_base: + if api_base.endswith("/messages/count_tokens"): + endpoint_url = api_base + elif api_base.endswith("/v1/messages"): + endpoint_url = f"{api_base.rstrip('/')}/count_tokens" + elif api_base.endswith("/v1"): + endpoint_url = f"{api_base.rstrip('/')}/messages/count_tokens" + else: + endpoint_url = f"{api_base.rstrip('/')}/v1/messages/count_tokens" + else: + endpoint_url = self.get_anthropic_count_tokens_endpoint() verbose_logger.debug("Making request to: %s", endpoint_url)