HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept
{
"props": {
"district_type": "senate",
"district_map": "https://s3.amazonaws.com/vpap-production/static/districts/plan_maps/planmap78.json",
"districts": [
{
"district_number": 1,
"incumbents": [
{
"name": "Timmy French",
"party": "rep"
}
],
"vpap_index": "Strong Republican",
"margin": 0.3245,
"office_url": "/offices/state-senate-1/elections/",
"margin_2024": 0.2807,
"margin_2021": 0.3683,
"district_id": 5001,
"region": "Winchester/Valley"
},
{
"district_number": 2,
"incumbents": [
{
"name": "Mark Obenshain",
"party": "rep"
}
],
"vpap_index": "Strong Republican",
"margin": 0.3811,
"office_url": "/offices/state-senate-2/elections/",
"margin_2024": 0.3288,
"margin_2021": 0.4334,
"district_id": 4991,
"region": "Harrisonburg/Valley"
},
{
"district_number": 3,
"incumbents": [
{
"name": "Christopher Head",
"party": "rep"
}
],
"vpap_index": "Strong Republican",
"margin": 0.3295,
"office_url": "/offices/state-senate-3/elections/",
"margin_2024": 0.2892,
"margin_2021": 0.3697,
"district_id": 4992,
"region": "Southern Shenandoah Valley"
},
{
"district_number": 4,
"incumbents": [
{
"name": "Dave Suetterlein",
"party": "rep"
}
],
"vpap_index": "Leans Republican",
"margin": 0.0582,
"office_url": "/offices/state-senate-4/elections/",
"margin_2024": 0.0139,
"margin_2021": 0.1025,
"district_id": 4987,
"region": "Roanoke Valley"
},
{
"district_number": 5,
"incumbents": [
{
"name": "Travis Hackworth",
"party": "rep"
}
],
"vpap_index": "Strong Republican",
"margin": 0.404,
"office_url": "/offices/state-senate-5/elections/",
"margin_2024": 0.3761,
"margin_2021": 0.4318,
"district_id": 5014,
"region": "New River Valley"
},
{
"district_number": 6,
"incumbents": [
{
"name": "Todd Pillion",
"party": "rep"
}
],
"vpap_index": "Strong Republican",
"margin": 0.6297,
"office_url": "/offices/state-senate-6/elections/",
"margin_2024": 0.6107,
"margin_2021": 0.6487,
"district_id": 5024,
"region": "Southwest Va."
},
{
"district_number": 7,
"incumbents": [
{
"name": "Bill Stanley",
"party": "rep"
}
],
"vpap_index": "Strong Republican",
"margin": 0.4767,
"office_url": "/offices/state-senate-7/elections/",
"margin_2024": 0.4499,
"margin_2021": 0.5034,
"district_id": 4988,
"region": "Southwest Va."
},
{
"district_number": 8,
"incumbents": [
{
"name": "Mark Peake",
"party": "rep"
}
],
"vpap_index": "Strong Republican",
"margin": 0.4022,
"office_url": "/offices/state-senate-8/elections/",
"margin_2024": 0.3583,
"margin_2021": 0.4461,
"district_id": 5010,
"region": "Lynchburg/Bedford/Campbell"
},
{
"district_number": 9,
"incumbents": [
{
"name": "Tammy Mulchi",
"party": "rep"
}
],
"vpap_index": "Strong Republican",
"margin": 0.2633,
"office_url": "/offices/state-senate-9/elections/",
"margin_2024": 0.2165,
"margin_2021": 0.3101,
"district_id": 4989,
"region": "Southside Va."
},
{
"district_number": 10,
"incumbents": [],
"vpap_index": "Strong Republican",
"margin": 0.3146,
"office_url": "/offices/state-senate-10/elections/",
"margin_2024": 0.2691,
"margin_2021": 0.3601,
"district_id": 5006,
"region": "Central Va."
},
{
"district_number": 11,
"incumbents": [
{
"name": "Creigh Deeds",
"party": "dem"
}
],
"vpap_index": "Strong Democratic",
"margin": -0.2156,
"office_url": "/offices/state-senate-11/elections/",
"margin_2024": -0.2533,
"margin_2021": -0.1778,
"district_id": 5002,
"region": "Cville/Nelson/Amherst"
},
{
"district_number": 12,
"incumbents": [
{
"name": "Glen Sturtevant",
"party": "rep"
}
],
"vpap_index": "Leans Republican",
"margin": 0.0789,
"office_url": "/offices/state-senate-12/elections/",
"margin_2024": 0.0165,
"margin_2021": 0.1412,
"district_id": 5003,
"region": "Chesterfield/Colonial Heights"
},
{
"district_number": 13,
"incumbents": [
{
"name": "Lashrecse Aird",
"party": "dem"
}
],
"vpap_index": "Leans Democratic",
"margin": -0.1762,
"office_url": "/offices/state-senate-13/elections/",
"margin_2024": -0.215,
"margin_2021": -0.1374,
"district_id": 4998,
"region": "Henrico/Petersburg/Hopewell"
},
{
"district_number": 14,
"incumbents": [
{
"name": "Lamont Bagby",
"party": "dem"
}
],
"vpap_index": "Strong Democratic",
"margin": -0.5981,
"office_url": "/offices/state-senate-14/elections/",
"margin_2024": -0.6386,
"margin_2021": -0.5575,
"district_id": 4995,
"region": "Richmond/Henrico"
},
{
"district_number": 15,
"incumbents": [
{
"name": "Ghazala Hashmi",
"party": "dem"
}
],
"vpap_index": "Strong Democratic",
"margin": -0.2385,
"office_url": "/offices/state-senate-15/elections/",
"margin_2024": -0.2874,
"margin_2021": -0.1896,
"district_id": 5015,
"region": "Chesterfield/Richmond"
},
{
"district_number": 16,
"incumbents": [
{
"name": "Schuyler VanValkenburg",
"party": "dem"
}
],
"vpap_index": "Leans Democratic",
"margin": -0.1215,
"office_url": "/offices/state-senate-16/elections/",
"margin_2024": -0.1798,
"margin_2021": -0.0631,
"district_id": 4990,
"region": "Henrico County"
},
{
"district_number": 17,
"incumbents": [
{
"name": "Emily Jordan",
"party": "rep"
}
],
"vpap_index": "Competitive",
"margin": 0.0028,
"office_url": "/offices/state-senate-17/elections/",
"margin_2024": -0.0462,
"margin_2021": 0.0517,
"district_id": 5011,
"region": "Hampton Roads/Southside"
},
{
"district_number": 18,
"incumbents": [
{
"name": "Louise Lucas",
"party": "dem"
}
],
"vpap_index": "Strong Democratic",
"margin": -0.2246,
"office_url": "/offices/state-senate-18/elections/",
"margin_2024": -0.2603,
"margin_2021": -0.1889,
"district_id": 5017,
"region": "Chesapeake/Portsmouth"
},
{
"district_number": 19,
"incumbents": [
{
"name": "Christie New Craig",
"party": "rep"
}
],
"vpap_index": "Leans Republican",
"margin": 0.1784,
"office_url": "/offices/state-senate-19/elections/",
"margin_2024": 0.121,
"margin_2021": 0.2358,
"district_id": 5018,
"region": "Chesapeake/Virginia Beach"
},
{
"district_number": 20,
"incumbents": [
{
"name": "Bill DeSteph",
"party": "rep"
}
],
"vpap_index": "Leans Republican",
"margin": 0.09,
"office_url": "/offices/state-senate-20/elections/",
"margin_2024": 0.0303,
"margin_2021": 0.1496,
"district_id": 4996,
"region": "Eastern Shore/Va. Beach"
},
{
"district_number": 21,
"incumbents": [
{
"name": "Angelia Williams Graves",
"party": "dem"
}
],
"vpap_index": "Strong Democratic",
"margin": -0.4442,
"office_url": "/offices/state-senate-21/elections/",
"margin_2024": -0.4672,
"margin_2021": -0.4211,
"district_id": 4999,
"region": "Norfolk"
},
{
"district_number": 22,
"incumbents": [
{
"name": "Aaron Rouse",
"party": "dem"
}
],
"vpap_index": "Leans Democratic",
"margin": -0.1018,
"office_url": "/offices/state-senate-22/elections/",
"margin_2024": -0.1481,
"margin_2021": -0.0554,
"district_id": 4985,
"region": "Virginia Beach"
},
{
"district_number": 23,
"incumbents": [
{
"name": "Mamie Locke",
"party": "dem"
}
],
"vpap_index": "Strong Democratic",
"margin": -0.3663,
"office_url": "/offices/state-senate-23/elections/",
"margin_2024": -0.3911,
"margin_2021": -0.3414,
"district_id": 5019,
"region": "Hampton/Newport News"
},
{
"district_number": 24,
"incumbents": [
{
"name": "Danny Diggs",
"party": "rep"
}
],
"vpap_index": "Competitive",
"margin": -0.0232,
"office_url": "/offices/state-senate-24/elections/",
"margin_2024": -0.0808,
"margin_2021": 0.0345,
"district_id": 5007,
"region": "Peninsula"
},
{
"district_number": 25,
"incumbents": [
{
"name": "Richard Stuart",
"party": "rep"
}
],
"vpap_index": "Strong Republican",
"margin": 0.2002,
"office_url": "/offices/state-senate-25/elections/",
"margin_2024": 0.1533,
"margin_2021": 0.247,
"district_id": 5020,
"region": "Northern Neck/Caroline"
},
{
"district_number": 26,
"incumbents": [
{
"name": "Ryan McDougle",
"party": "rep"
}
],
"vpap_index": "Strong Republican",
"margin": 0.2404,
"office_url": "/offices/state-senate-26/elections/",
"margin_2024": 0.1918,
"margin_2021": 0.289,
"district_id": 5008,
"region": "Hanover/Middle Peninsula"
},
{
"district_number": 27,
"incumbents": [
{
"name": "Tara Durant",
"party": "rep"
}
],
"vpap_index": "Competitive",
"margin": 0.0277,
"office_url": "/offices/state-senate-27/elections/",
"margin_2024": -0.0297,
"margin_2021": 0.0851,
"district_id": 5000,
"region": "Fredericksburg Area"
},
{
"district_number": 28,
"incumbents": [
{
"name": "Bryce Reeves",
"party": "rep"
}
],
"vpap_index": "Strong Republican",
"margin": 0.2999,
"office_url": "/offices/state-senate-28/elections/",
"margin_2024": 0.2526,
"margin_2021": 0.3471,
"district_id": 5016,
"region": "Piedmont"
},
{
"district_number": 29,
"incumbents": [
{
"name": "Jeremy McPike",
"party": "dem"
}
],
"vpap_index": "Leans Democratic",
"margin": -0.1465,
"office_url": "/offices/state-senate-29/elections/",
"margin_2024": -0.1715,
"margin_2021": -0.1215,
"district_id": 5022,
"region": "Prince Wm./Stafford"
},
{
"district_number": 30,
"incumbents": [
{
"name": "Danica Roem",
"party": "dem"
}
],
"vpap_index": "Leans Democratic",
"margin": -0.0635,
"office_url": "/offices/state-senate-30/elections/",
"margin_2024": -0.0895,
"margin_2021": -0.0375,
"district_id": 5021,
"region": "Prince Wm./Manassas"
},
{
"district_number": 31,
"incumbents": [
{
"name": "Russet Perry",
"party": "dem"
}
],
"vpap_index": "Competitive",
"margin": -0.0412,
"office_url": "/offices/state-senate-31/elections/",
"margin_2024": -0.089,
"margin_2021": 0.0066,
"district_id": 4993,
"region": "Loudoun/Fauquier"
},
{
"district_number": 32,
"incumbents": [],
"vpap_index": "Strong Democratic",
"margin": -0.2131,
"office_url": "/offices/state-senate-32/elections/",
"margin_2024": -0.2167,
"margin_2021": -0.2094,
"district_id": 4994,
"region": "Loudoun County"
},
{
"district_number": 33,
"incumbents": [
{
"name": "Jennifer Carroll Foy",
"party": "dem"
}
],
"vpap_index": "Strong Democratic",
"margin": -0.2832,
"office_url": "/offices/state-senate-33/elections/",
"margin_2024": -0.3026,
"margin_2021": -0.2637,
"district_id": 5012,
"region": "Prince William/Fairfax"
},
{
"district_number": 34,
"incumbents": [
{
"name": "Scott Surovell",
"party": "dem"
}
],
"vpap_index": "Strong Democratic",
"margin": -0.3733,
"office_url": "/offices/state-senate-34/elections/",
"margin_2024": -0.394,
"margin_2021": -0.3525,
"district_id": 5004,
"region": "Fairfax County"
},
{
"district_number": 35,
"incumbents": [
{
"name": "Dave Marsden",
"party": "dem"
}
],
"vpap_index": "Strong Democratic",
"margin": -0.3234,
"office_url": "/offices/state-senate-35/elections/",
"margin_2024": -0.3341,
"margin_2021": -0.3127,
"district_id": 4997,
"region": "Springfield/Annandale"
},
{
"district_number": 36,
"incumbents": [
{
"name": "Stella Pekarsky",
"party": "dem"
}
],
"vpap_index": "Strong Democratic",
"margin": -0.2409,
"office_url": "/offices/state-senate-36/elections/",
"margin_2024": -0.2677,
"margin_2021": -0.214,
"district_id": 4986,
"region": "Fairfax County"
},
{
"district_number": 37,
"incumbents": [
{
"name": "Saddam Azlan Salim",
"party": "dem"
}
],
"vpap_index": "Strong Democratic",
"margin": -0.3878,
"office_url": "/offices/state-senate-37/elections/",
"margin_2024": -0.411,
"margin_2021": -0.3645,
"district_id": 5023,
"region": "Fairfax County/Falls Church"
},
{
"district_number": 38,
"incumbents": [
{
"name": "Jennifer Boysko",
"party": "dem"
}
],
"vpap_index": "Strong Democratic",
"margin": -0.356,
"office_url": "/offices/state-senate-38/elections/",
"margin_2024": -0.3923,
"margin_2021": -0.3197,
"district_id": 5013,
"region": "McLean/Great Falls/Reston"
},
{
"district_number": 39,
"incumbents": [
{
"name": "Adam Ebbin",
"party": "dem"
}
],
"vpap_index": "Strong Democratic",
"margin": -0.5338,
"office_url": "/offices/state-senate-39/elections/",
"margin_2024": -0.5579,
"margin_2021": -0.5096,
"district_id": 5005,
"region": "Alexandria/Arlington"
},
{
"district_number": 40,
"incumbents": [
{
"name": "Barbara Favola",
"party": "dem"
}
],
"vpap_index": "Strong Democratic",
"margin": -0.5657,
"office_url": "/offices/state-senate-40/elections/",
"margin_2024": -0.5895,
"margin_2021": -0.5418,
"district_id": 5009,
"region": "Arlington County"
}
]
}
}