{"slug": "byok-and-enterprise-custom-models-in-the-copilot-usage-api", "title": "BYOK and enterprise custom models in the Copilot usage API", "summary": "GitHub added bring-your-own-key (BYOK) and enterprise custom model breakdowns to the Copilot usage metrics API, separating that usage from Copilot-hosted model totals in 1-day and 28-day enterprise and organization reports. Local BYOK appears in new fields including used_local_byok, totals_by_local_byok (split by byok_kind and surface), and daily, weekly and monthly active local BYOK user counts, while enterprise custom models are flagged by a new is_custom_enterprise_model boolean on totals_by_client[].totals_by_model[] entries. GitHub said existing totals are unchanged and that local BYOK figures are a lower bound because they rely on client telemetry, and that report days before the release have no is_custom_enterprise_model data.", "body_md": "Improvement\n\n# BYOK and enterprise custom models in the Copilot usage API\n\nThe Copilot usage metrics API now shows bring your own key (BYOK) usage across GitHub Copilot, so you can separate it from Copilot-hosted model usage. Reports cover two kinds of BYOK:\n\n- **Local BYOK** is configured by developers in their client. Requests go from Copilot CLI or the GitHub Copilot app directly to the developer’s provider key or local model. Find it in`used_local_byok` ,`totals_by_local_byok` , and active local BYOK user counts.\n- **Enterprise custom models** are configured by admins in GitHub settings, and requests route through GitHub to your provider. Find them with`is_custom_enterprise_model` in`totals_by_client` .\n\nBoth appear in enterprise and organization reports, at the user and aggregate level, in 1-day and 28-day reports.\n\n### [Local BYOK](#local-byok)\n\nLocal BYOK covers a developer’s own provider key and local models served by tools such as Ollama, Foundry Local, LM Studio, and llama-server.\n\n- **`used_local_byok`** : Whether a user made at least one local BYOK request in Copilot CLI or the Copilot app that day. Appears in user-level reports.\n- **`totals_by_local_byok`** : Session, request, prompt, and token counts, broken out by`byok_kind` (`local_managed` ,`local_user` ,`local_auto` , or`remote_user` ) and`surface` (`copilot_cli` or`copilot_app` ). Appears in user-level and aggregate reports.\n- **`daily_active_local_byok_users`, `weekly_active_local_byok_users`, and `monthly_active_local_byok_users`** : Distinct users with local BYOK activity for the day, calendar week, and calendar month. Appears in aggregate reports.\n\n### [Enterprise custom models](#enterprise-custom-models)\n\n- Added `is_custom_enterprise_model` , a boolean on each`totals_by_client[].totals_by_model[]` entry. Its value is`true` when the request used a custom model configured for your enterprise or organization. GitHub observes these requests server-side, so the field covers every client, including IDEs.\n- A model used both as a Copilot-hosted model and as a custom model appears as two entries, so the counts stay separate.\n- Custom model entries include real request and token counts.\n\n### [Why this matters](#why-this-matters)\n\nBYOK usage used to blend into Copilot-hosted totals, because local and custom models often share names with Copilot models. Now you can:\n\n- **Govern BYOK:** See who sends requests to their own provider keys, local models, or enterprise custom models, and check that against your BYOK policy.\n- **Understand spend:** Separate Copilot-hosted usage from usage billed by your own provider or run on free local models, so cost per user reflects what Copilot actually serves.\n- **See across all tools:** Get one view of AI usage in your enterprise, whichever model or provider your developers choose.\n- **Compare efficiency:** Group users by BYOK or custom model usage and compare them against the Copilot usage metrics you already track.\n\n### [Important notes](#important-notes)\n\n- **No change to existing totals:** BYOK usage is already counted. Local BYOK is a subset of`totals_by_cli` and`totals_by_copilot_app` , and custom model usage is already in`totals_by_client` . Existing totals are unchanged.\n- **Lower bound for local BYOK:** Local BYOK fields rely on client telemetry, so they undercount when telemetry is disabled. Token counts can also undercount because some local providers don’t report token usage. Enterprise custom model counts are observed server-side and don’t have this limitation.\n- **Model names:** Custom model names use the existing model name normalization, so unrecognized names appear as`unknown` . Local BYOK usage isn’t broken out by model name.\n- **No backfill:** Report days before this release don’t include`is_custom_enterprise_model` .\n- **Access:** Available to enterprise owners, enterprise billing managers, organization owners, and anyone with a custom organization or enterprise role that grants the`View Copilot Metrics` permission. The Copilot usage metrics policy must be enabled.\n\nVisit the [Copilot usage metrics API documentation](https://docs.github.com/rest/copilot/copilot-usage-metrics) to get started.", "url": "https://wpnews.pro/news/byok-and-enterprise-custom-models-in-the-copilot-usage-api", "canonical_source": "https://github.blog/changelog/2026-11-03-byok-and-enterprise-custom-models-in-the-copilot-usage-api", "published_at": "2026-11-04 00:32:19+00:00", "updated_at": "2026-11-04 01:22:29.453737+00:00", "lang": "en", "topics": ["ai-tools", "developer-tools", "ai-products"], "entities": ["GitHub", "GitHub Copilot", "Copilot CLI", "Ollama", "Foundry Local", "LM Studio", "llama-server"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/byok-and-enterprise-custom-models-in-the-copilot-usage-api", "markdown": "https://wpnews.pro/news/byok-and-enterprise-custom-models-in-the-copilot-usage-api.md", "text": "https://wpnews.pro/news/byok-and-enterprise-custom-models-in-the-copilot-usage-api.txt", "jsonld": "https://wpnews.pro/news/byok-and-enterprise-custom-models-in-the-copilot-usage-api.jsonld"}}