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

# Model cost missing when using third-party SDKs

> [!NOTE]
>
> **Applies to:**
>
> * Plan - Any
> * Deployment - Any
> *
> * Use case - Users calling models via third-party SDKs who see \$0 cost in logs or dashboards despite tokens being tracked

## Summary

**Issue:** Spans show `$0` cost in Braintrust logs when using a third-party SDK to call models. Cost data is also missing from dashboards even after registering a custom provider.

**Cause:** Cost lookup matches the logged model string against Braintrust's model catalog. Known reasoning-effort and thinking-tier suffixes (`-thinking`, `-none`, `-low`, `-medium`, `-high`, `-xhigh`, `-max`) are stripped automatically, so Cursor-style slugs like `claude-opus-4-8-thinking-high` resolve to the base model's price without a custom provider. But when a third-party SDK formats the model ID differently in other ways, such as a different prefix structure, no match is found. Additionally, custom providers registered at the project level are not visible to dashboards.

**Resolution:** Register a custom provider at the organization level with the model string exactly matching what your SDK sends.

## Resolution steps

### If you are using the Braintrust AI proxy directly

Verify the model string in your API calls exactly matches the catalog key.

Calls must route through `https://api.braintrust.dev/v1/proxy` for cost attribution to apply. Cost calculation is handled server-side — no SDK update is required.

### If you are using a third-party SDK

Third-party SDKs may format model IDs differently than Braintrust's catalog. For example, the Vercel AI SDK with Fireworks sends `fireworks/models/<model>`, but Braintrust's catalog keys Fireworks models as `accounts/fireworks/models/<model>`.

#### Step 1: Identify the exact model string your SDK sends

Check your logs to see the exact model ID format in the span data.

#### Step 2: Register a custom provider at the organization level

1. Go to ** Settings** > [** Models**](https://www.braintrust.dev/app/~/configuration/models/organization).
2. Click  **Organization provider**, then choose **Custom providers** >  **New**.
3. On **Setup**, configure the provider, then under **Models**, click  **Custom model**. Enter the exact model string your SDK sends.
4. Click the  settings icon beside the model and set pricing to match the provider's published rates.
5. Click **Create**.

> **Note:** A custom provider registered only at the project level will appear in **Logs** but not on the **Dashboards** page. Organization-level registration is required for dashboard cost charts to populate.

#### Step 3: Verify cost appears in logs and dashboards

After saving, trigger a new request and confirm:

* The span in **Logs** shows the expected cost
* The **Dashboards** page reflects cost data for the model

### If the model is not yet in the Braintrust catalog

If you believe the model should be in the catalog (it has published pricing and an official slug from the provider), file a request to add it. In the meantime, use the custom provider workaround above.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.