> ## Documentation Index
> Fetch the complete documentation index at: https://docs.portkey.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Count Tokens

Portkey supports the [token counting endpoint from anthropic](https://docs.anthropic.com/en/docs/build-with-claude/token-counting) across vertex-ai, bedrock and anthropic in the same format. This allows use to use claude code and any other tooling with the same API signature across providers.

# Examples

<CodeGroup>
  ```py Python theme={"system"}
  import anthropic

  client = anthropic.Anthropic(
      api_key="dummy", # we will use portkey's provider slug
      default_headers={"x-portkey-api-key": "YOUR_PORTKEY_API_KEY"},
      base_url="https://api.portkey.ai"
  )

  response = client.messages.count_tokens(
      model="@your-provider-slug/your-model-name",
      system="You are a scientist",
      messages=[{
          "role": "user",
          "content": "Hello, Claude"
      }],
  )

  print(response.json())
  ```

  ```ts TypeScript theme={"system"}
  import Anthropic from '@anthropic-ai/sdk';

  const client = new Anthropic({
    apiKey: 'dummy', // we will use portkey's provider slug
    baseURL: "https://api.portkey.ai/v1",
    defaultHeaders: { "x-portkey-api-key": "YOUR_PORTKEY_API_KEY" }
  });

  const response = await client.messages.countTokens({
    model: '@your-provider-slug/your-model-name',
    system: 'You are a scientist',
    messages: [{
      role: 'user',
      content: 'Hello, Claude'
    }]
  });

  console.log(response);
  ```

  ```sh cURL theme={"system"}
  curl https://api.portkey.ai/v1/messages/count_tokens \
      --header "x-portkey-api-key: $PORTKEY_API_KEY" \
      --header "content-type: application/json" \
      --data '{
        "model": "@your-provider-slug/your-model-name",
        "system": "You are a scientist",
        "messages": [{
          "role": "user",
          "content": "Hello, Claude"
        }]
      }'
  ```
</CodeGroup>
