GitHub Copilot · Schema
GitHub Copilot Metrics Schema
JSON Schema for GitHub Copilot usage metrics, aggregated metrics reports, and usage report download objects returned by the Copilot REST API.
AgentsAIArtificial IntelligenceCode GenerationCode ReviewCoding AgentCustom InstructionsDeveloper ToolsExtensionsIDEMachine LearningMCPMetricsModel Context ProtocolProductivity
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/apis-json/artisanal/blob/main/github-copilot/json-schema/github-copilot-metrics-schema.json",
"title": "GitHub Copilot Metrics Schema",
"description": "JSON Schema for GitHub Copilot usage metrics, aggregated metrics reports, and usage report download objects returned by the Copilot REST API.",
"type": "object",
"$defs": {
"CopilotMetricsDay": {
"type": "object",
"title": "Copilot Metrics Day",
"description": "Aggregated Copilot usage metrics for a single day, broken down by feature area, editor, programming language, and AI model.",
"properties": {
"date": {
"type": "string",
"format": "date",
"description": "The date these metrics apply to in YYYY-MM-DD format."
},
"total_active_users": {
"type": "integer",
"description": "Total number of users with any Copilot activity on this date.",
"minimum": 0
},
"total_engaged_users": {
"type": "integer",
"description": "Total number of users who actively engaged with Copilot features on this date.",
"minimum": 0
},
"copilot_ide_code_completions": {
"oneOf": [
{ "$ref": "#/$defs/CopilotIdeCodeCompletions" },
{ "type": "null" }
],
"description": "Metrics for Copilot code completions in IDEs. Null if no data available."
},
"copilot_ide_chat": {
"oneOf": [
{ "$ref": "#/$defs/CopilotIdeChat" },
{ "type": "null" }
],
"description": "Metrics for Copilot Chat in IDEs. Null if no data available."
},
"copilot_dotcom_chat": {
"oneOf": [
{ "$ref": "#/$defs/CopilotDotcomChat" },
{ "type": "null" }
],
"description": "Metrics for Copilot Chat on github.com. Null if no data available."
},
"copilot_dotcom_pull_requests": {
"oneOf": [
{ "$ref": "#/$defs/CopilotDotcomPullRequests" },
{ "type": "null" }
],
"description": "Metrics for Copilot pull request summaries on github.com. Null if no data available."
}
},
"required": ["date"]
},
"CopilotIdeCodeCompletions": {
"type": "object",
"title": "IDE Code Completions",
"description": "Aggregated metrics for Copilot code completions across IDEs, including breakdowns by language, editor, and model.",
"properties": {
"total_engaged_users": {
"type": "integer",
"description": "Total users who accepted at least one code completion suggestion.",
"minimum": 0
},
"languages": {
"type": "array",
"description": "Engagement summary by programming language.",
"items": {
"$ref": "#/$defs/MetricsLanguageSummary"
}
},
"editors": {
"type": "array",
"description": "Detailed metrics by editor.",
"items": {
"$ref": "#/$defs/CodeCompletionsEditor"
}
}
}
},
"CodeCompletionsEditor": {
"type": "object",
"title": "Code Completions Editor",
"description": "Code completion metrics for a specific IDE or editor.",
"properties": {
"name": {
"type": "string",
"description": "Name of the editor (e.g., vscode, jetbrains, neovim, vim, xcode)."
},
"total_engaged_users": {
"type": "integer",
"description": "Number of users who engaged with code completions in this editor.",
"minimum": 0
},
"models": {
"type": "array",
"description": "Metrics broken down by AI model used.",
"items": {
"$ref": "#/$defs/CodeCompletionsModel"
}
}
}
},
"CodeCompletionsModel": {
"type": "object",
"title": "Code Completions Model",
"description": "Code completion metrics for a specific AI model, with per-language detail.",
"properties": {
"name": {
"type": "string",
"description": "Name of the AI model (e.g., 'default' or a specific model identifier)."
},
"is_custom_model": {
"type": "boolean",
"description": "Whether this is a custom fine-tuned model."
},
"custom_model_training_date": {
"type": ["string", "null"],
"description": "Training date of the custom model. Null for non-custom models."
},
"total_engaged_users": {
"type": "integer",
"description": "Number of users who engaged with this model.",
"minimum": 0
},
"languages": {
"type": "array",
"description": "Detailed code completion metrics per programming language.",
"items": {
"$ref": "#/$defs/CodeCompletionsLanguageMetrics"
}
}
}
},
"CodeCompletionsLanguageMetrics": {
"type": "object",
"title": "Code Completions Language Metrics",
"description": "Detailed code completion metrics for a specific programming language, including suggestion and acceptance counts.",
"properties": {
"name": {
"type": "string",
"description": "Name of the programming language."
},
"total_engaged_users": {
"type": "integer",
"description": "Number of users who engaged with completions in this language.",
"minimum": 0
},
"total_code_suggestions": {
"type": "integer",
"description": "Total number of code completion suggestions shown to users.",
"minimum": 0
},
"total_code_acceptances": {
"type": "integer",
"description": "Total number of code completion suggestions accepted by users.",
"minimum": 0
},
"total_code_lines_suggested": {
"type": "integer",
"description": "Total lines of code suggested across all completions.",
"minimum": 0
},
"total_code_lines_accepted": {
"type": "integer",
"description": "Total lines of code accepted by users from completions.",
"minimum": 0
}
}
},
"CopilotIdeChat": {
"type": "object",
"title": "IDE Chat",
"description": "Aggregated metrics for Copilot Chat interactions in IDEs.",
"properties": {
"total_engaged_users": {
"type": "integer",
"description": "Total users who prompted Copilot Chat in an IDE.",
"minimum": 0
},
"editors": {
"type": "array",
"description": "Chat metrics by editor.",
"items": {
"$ref": "#/$defs/IdeChatEditor"
}
}
}
},
"IdeChatEditor": {
"type": "object",
"title": "IDE Chat Editor",
"description": "IDE Chat metrics for a specific editor.",
"properties": {
"name": {
"type": "string",
"description": "Name of the editor."
},
"total_engaged_users": {
"type": "integer",
"description": "Number of users who engaged with Chat in this editor.",
"minimum": 0
},
"models": {
"type": "array",
"description": "Chat metrics by AI model.",
"items": {
"$ref": "#/$defs/IdeChatModel"
}
}
}
},
"IdeChatModel": {
"type": "object",
"title": "IDE Chat Model",
"description": "IDE Chat metrics for a specific AI model, including conversation and interaction counts.",
"properties": {
"name": {
"type": "string",
"description": "Name of the AI model."
},
"is_custom_model": {
"type": "boolean",
"description": "Whether this is a custom fine-tuned model."
},
"custom_model_training_date": {
"type": ["string", "null"],
"description": "Training date of the custom model. Null for non-custom models."
},
"total_engaged_users": {
"type": "integer",
"description": "Number of users who engaged with this model in Chat.",
"minimum": 0
},
"total_chats": {
"type": "integer",
"description": "Total number of chat conversations initiated.",
"minimum": 0
},
"total_chat_insertion_events": {
"type": "integer",
"description": "Number of times chat suggestions were inserted into code.",
"minimum": 0
},
"total_chat_copy_events": {
"type": "integer",
"description": "Number of times chat responses were copied by users.",
"minimum": 0
}
}
},
"CopilotDotcomChat": {
"type": "object",
"title": "Dotcom Chat",
"description": "Aggregated metrics for Copilot Chat on github.com.",
"properties": {
"total_engaged_users": {
"type": "integer",
"description": "Total users who engaged with Copilot Chat on github.com.",
"minimum": 0
},
"models": {
"type": "array",
"description": "Chat metrics by AI model.",
"items": {
"$ref": "#/$defs/DotcomChatModel"
}
}
}
},
"DotcomChatModel": {
"type": "object",
"title": "Dotcom Chat Model",
"description": "Chat metrics for a specific AI model on github.com.",
"properties": {
"name": {
"type": "string",
"description": "Name of the AI model."
},
"is_custom_model": {
"type": "boolean",
"description": "Whether this is a custom fine-tuned model."
},
"custom_model_training_date": {
"type": ["string", "null"],
"description": "Training date of the custom model. Null for non-custom models."
},
"total_engaged_users": {
"type": "integer",
"description": "Number of users who engaged with this model.",
"minimum": 0
},
"total_chats": {
"type": "integer",
"description": "Total number of chat conversations.",
"minimum": 0
}
}
},
"CopilotDotcomPullRequests": {
"type": "object",
"title": "Dotcom Pull Requests",
"description": "Aggregated metrics for Copilot pull request summaries on github.com.",
"properties": {
"total_engaged_users": {
"type": "integer",
"description": "Total users who generated pull request summaries.",
"minimum": 0
},
"repositories": {
"type": "array",
"description": "Pull request summary metrics by repository.",
"items": {
"$ref": "#/$defs/PullRequestRepository"
}
}
}
},
"PullRequestRepository": {
"type": "object",
"title": "Pull Request Repository",
"description": "Pull request summary metrics for a specific repository.",
"properties": {
"name": {
"type": "string",
"description": "Name of the repository."
},
"total_engaged_users": {
"type": "integer",
"description": "Number of users who generated PR summaries in this repository.",
"minimum": 0
},
"models": {
"type": "array",
"description": "PR summary metrics by AI model.",
"items": {
"$ref": "#/$defs/PullRequestModel"
}
}
}
},
"PullRequestModel": {
"type": "object",
"title": "Pull Request Model",
"description": "Pull request summary metrics for a specific AI model.",
"properties": {
"name": {
"type": "string",
"description": "Name of the AI model."
},
"is_custom_model": {
"type": "boolean",
"description": "Whether this is a custom fine-tuned model."
},
"custom_model_training_date": {
"type": ["string", "null"],
"description": "Training date of the custom model. Null for non-custom models."
},
"total_pr_summaries_created": {
"type": "integer",
"description": "Total number of pull request summaries generated.",
"minimum": 0
},
"total_engaged_users": {
"type": "integer",
"description": "Number of users who generated PR summaries with this model.",
"minimum": 0
}
}
},
"MetricsLanguageSummary": {
"type": "object",
"title": "Language Summary",
"description": "Summary engagement count for a single programming language.",
"properties": {
"name": {
"type": "string",
"description": "Name of the programming language."
},
"total_engaged_users": {
"type": "integer",
"description": "Number of users who engaged with Copilot for this language.",
"minimum": 0
}
}
},
"UsageReportDaily": {
"type": "object",
"title": "Usage Report Daily",
"description": "Download links for a daily Copilot usage metrics report. Links are signed URLs with limited expiration.",
"properties": {
"download_links": {
"type": "array",
"items": {
"type": "string",
"format": "uri"
},
"description": "Signed URLs to download the report files."
},
"report_day": {
"type": "string",
"format": "date",
"description": "The date the report covers in YYYY-MM-DD format."
}
},
"required": ["download_links", "report_day"]
},
"UsageReport28Day": {
"type": "object",
"title": "Usage Report 28-Day",
"description": "Download links for a 28-day aggregated Copilot usage metrics report. Links are signed URLs with limited expiration.",
"properties": {
"download_links": {
"type": "array",
"items": {
"type": "string",
"format": "uri"
},
"description": "Signed URLs to download the report files."
},
"report_start_day": {
"type": "string",
"format": "date",
"description": "Start date of the 28-day reporting period."
},
"report_end_day": {
"type": "string",
"format": "date",
"description": "End date of the 28-day reporting period."
}
},
"required": ["download_links", "report_start_day", "report_end_day"]
}
}
}