Medicare Advantage, Part D, Medicaid
get_network_groups
Get Network Groups·v0.2.0·L2·read-only·MCP + REST·admitted 2026-11-06
Inputs
70 required
Sources
2
Known limits
3
Real answer
1.7scomplete
What it answers
- 1Which physician groups and health systems a Medicare Advantage contract's published network covers, and how much of each: for a contract and plan year (2026 or 2027), every billing group its listed clinicians bill Medicare through (or every health system of the hospitals they are affiliated with), with the clinicians the contract lists, the group's own clinician count and the share; or search one group or system by name across every contract.
- 2Use cases: 'What share of Virginia Mason's doctors does Regence list?'; 'Which MA contracts list most of Optum's physicians in Texas?'; 'Which large groups does H5938 cover?'.
- 3Groups are CMS's Medicare reassignment (the group a clinician bills through); systems are CMS's hospital affiliation through the hospital system map.
- 4A clinician in several groups counts in each.
- 5A share is of the group's Medicare-enrolled clinicians, as listed in the plan's published directory.
- 6The publish is pinned by dataset_id.
- 7SOURCE: medicare_silver.ma_network_contract_group_v1 (the Data Tracker's directory table x CMS PECOS reassignment x CMS Doctors and Clinicians facility affiliation x the hospital system map).
Inputs (7)
| Name | Type | Required | Default | Accepts |
|---|---|---|---|---|
contract_id | any | optional | null | CMS contract id (H3817). One of contract_id / name. |
level | string | optional | "group" | 'group' (default; the billing group clinicians reassign to in Medicare) or 'system' (the health system of their hospitals). group | system |
limit | any | optional | null | Rows to return (default 50, max 500). |
min_clinicians | integer | optional | 10 | Smallest group or system returned, by its own clinician count (default 10). |
name | any | optional | null | Billing group or health system name (contains match, e.g. 'Virginia Mason'); searches every contract. |
plan_year | integer | optional | 2027 | 2026 or 2027 (default 2027). 2026 | 2027 |
state | any | optional | null | 2-letter state of the group; optional (groups only). |
Call it
# MCP (https://mcp.vladahealth.com/mcp): the tool by name get_network_groups(name="Virginia Mason", min_clinicians=500, limit=3)
curl -X POST https://api.vladahealth.com/v1/tools/get_network_groups \
-H "Authorization: Bearer $VLADA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Virginia Mason","min_clinicians":500,"limit":3}'
# the schema, no key
curl https://api.vladahealth.com/v1/tools/get_network_groups/schemaA real answer
customer seat, 2026-11-09·over REST·1.7s·status
complete·complete·verbatim{
"value": {
"found": false,
"not_found_reason": "no_row_matches_filters",
"query": {
"name": "Virginia Mason",
"plan_year": 2027,
"level": "group",
"min_clinicians": 500,
"limit": 3
},
"dataset_id": "7bceef45cc9e5910e64caa428a1f3e40869f91d149c4e19f08cc55f5e468ba7c",
"rows": [],
"query_ids": [
"7add1d36-0b8a-430f-9532-c0fd2d3afeb0"
]
},
"unit": "network_groups",
"vintage": null,
"source": {
"dataset": "MA plan networks, 2026 and 2027 (Data Tracker): plan year x CMS plan x NPI x listed location",
"publisher": "vlada",
"catalog_updated_at": "2026-11-02"
},
"caveats": [],
"response_hash": "865b1be73ac8247753af5fdf3842c60072ad001422d6e773075a1231685a75b5",
"semantic_version": 1,
"tool_version": "get_network_groups@0.2.0",
"explanation": null,
"status": "complete",
"audience": "customer",
"answer": {
"value_ref": "value",
"unit": "network_groups",
"scope": {
"tool": "get_network_groups",
"filters": {
"name": "Virginia Mason",
"plan_year": 2027,
"level": "group",
"min_clinicians": 500,
"limit": 3
}
}
},
"method": "Computed over the filters shown in this answer's scope, from the sources listed in its evidence. Nothing outside those filters was included. You did not specify level; group was used. You did not specify plan_year; 2027 was used.",
"evidence": {
"sources": [
{
"dataset": "MA plan networks, 2026 and 2027 (Data Tracker): plan year x CMS plan x NPI x listed location",
"publisher": "vlada",
"catalog_updated_at": "2026-11-02"
}
],
"response_hash": "865b1be73ac8247753af5fdf3842c60072ad001422d6e773075a1231685a75b5"
},
"defaults_applied": [
{
"param": "level",
"used": "group",
"reason": "'group' (default"
},
{
"param": "plan_year",
"used": 2027,
"reason": "2026 or 2027 (default 2027)."
}
],
"freshness": {
"state": "unknown",
"why": "This tool does not report an edition for its answer, and the door could not derive one from what the answer reads. Treat the result as current to no stated date."
}
}What comes back
| Field | Holds |
|---|---|
status | complete · partial · refused · failed · queued |
value | the shape below |
source · caveats · invariants_applied · response_hash | the public file and vintage; what to know before citing; the rules honoured; replayable |
refusal | code (15), message, recover_with |
{
"$defs": {
"Quality": {
"description": "Row-level quality signal. All flags precomputed at build time\n(stored on the gold mart) and passed through here.",
"properties": {
"is_outlier": {
"default": false,
"title": "Is Outlier",
"type": "boolean"
},
"is_ghost_candidate": {
"default": false,
"title": "Is Ghost Candidate",
"type": "boolean"
},
"n_similar_rates": {
"default": 0,
"title": "N Similar Rates",
"type": "integer"
},
"confidence": {
"default": 1,
"title": "Confidence",
"type": "number"
}
},
"title": "Quality",
"type": "object"
},
"Source": {
"description": "Cell-level provenance. Every served value traces back here.\n\n`snapshot_id` is the Iceberg snapshot the tool read from. Two calls\nat the same snapshot MUST produce byte-identical responses —\nthat's the content-addressed caching guarantee.",
"properties": {
"table": {
"title": "Table",
"type": "string"
},
"rate_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Rate Id"
},
"source_files": {
"items": {
"type": "string"
},
"title": "Source Files",
"type": "array"
},
"snapshot_id": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Snapshot Id"
}
},
"required": [
"table"
],
"title": "Source",
"type": "object"
}
},
"properties": {
"value": {
"default": null,
"title": "Value"
},
"unit": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Unit"
},
"vintage": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Vintage"
},
"source": {
"$ref": "#/$defs/Source"
},
"methodology": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Methodology"
},
"quality": {
"$ref": "#/$defs/Quality"
},
"invariants_applied": {
"items": {
"type": "string"
},
"title": "Invariants Applied",
"type": "array"
},
"caveats": {
"items": {
"type": "string"
},
"title": "Caveats",
"type": "array"
},
"response_hash": {
"default": "",
"title": "Response Hash",
"type": "string"
},
"semantic_version": {
"default": 1,
"title": "Semantic Version",
"type": "integer"
},
"tool_version": {
"default": "unknown",
"title": "Tool Version",
"type": "string"
},
"explanation": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Explanation"
},
"status": {
"default": "complete",
"title": "Status",
"type": "string"
},
"refusal": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Refusal"
},
"failure": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"default": null,
"title": "Failure"
},
"as_of": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "As Of"
},
"freshness_state": {
"default": "unknown",
"title": "Freshness State",
"type": "string"
}
},
"title": "NetworkGroupsResponse",
"type": "object"
}Sources
| Kind | Name |
|---|---|
| source | medicare_silver.ma_network_contract_group_v1 |
| source | medicare_silver.fact_ma_landscape |
| table | medicare_silver.ma_network_contract_group_v1 |
| table | medicare_silver.fact_ma_landscape |
Known limits (3)
- 1Groups come from Medicare reassignment: a group's clinicians who do not bill Medicare are not counted.
- 2Contract level: a contract with several networks (HMO and PPO plans) is read as one.
- 3Coverage follows the directory build (stage 25); an uncovered contract answers no_coverage.
| Admitted with a known defect |
|---|
| Groups count Medicare-enrolled clinicians only (reassignment); contract level, so a contract's HMO and PPO networks read as one; ACOs are not rolled up yet (CMS publishes ACO participants by legal name only). |
This page as markdown: /docs-md/tools/get_network_groups.md · every page in one file: /llms-full.txt