open-civics 0.2.3 → 0.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/data/sc/federal.json +10 -10
  2. package/data/sc/local/county-abbeville.json +9 -9
  3. package/data/sc/local/county-aiken.json +12 -12
  4. package/data/sc/local/county-allendale.json +8 -8
  5. package/data/sc/local/county-anderson.json +10 -10
  6. package/data/sc/local/county-bamberg.json +10 -10
  7. package/data/sc/local/county-barnwell.json +10 -10
  8. package/data/sc/local/county-beaufort.json +14 -14
  9. package/data/sc/local/county-calhoun.json +8 -8
  10. package/data/sc/local/county-charleston.json +14 -14
  11. package/data/sc/local/county-cherokee.json +10 -10
  12. package/data/sc/local/county-chester.json +10 -10
  13. package/data/sc/local/county-chesterfield.json +12 -12
  14. package/data/sc/local/county-clarendon.json +23 -7
  15. package/data/sc/local/county-colleton.json +8 -8
  16. package/data/sc/local/county-darlington.json +11 -11
  17. package/data/sc/local/county-dillon.json +10 -10
  18. package/data/sc/local/county-dorchester.json +10 -10
  19. package/data/sc/local/county-edgefield.json +8 -8
  20. package/data/sc/local/county-fairfield.json +10 -10
  21. package/data/sc/local/county-florence.json +12 -12
  22. package/data/sc/local/county-georgetown.json +10 -10
  23. package/data/sc/local/county-greenville.json +15 -15
  24. package/data/sc/local/county-greenwood.json +10 -10
  25. package/data/sc/local/county-hampton.json +8 -8
  26. package/data/sc/local/county-lancaster.json +10 -10
  27. package/data/sc/local/county-laurens.json +10 -10
  28. package/data/sc/local/county-lee.json +11 -11
  29. package/data/sc/local/county-lexington.json +12 -12
  30. package/data/sc/local/county-marion.json +10 -10
  31. package/data/sc/local/county-marlboro.json +11 -11
  32. package/data/sc/local/county-mccormick.json +8 -8
  33. package/data/sc/local/county-newberry.json +10 -10
  34. package/data/sc/local/county-oconee.json +8 -8
  35. package/data/sc/local/county-orangeburg.json +7 -7
  36. package/data/sc/local/county-pickens.json +10 -10
  37. package/data/sc/local/county-richland.json +14 -14
  38. package/data/sc/local/county-saluda.json +8 -8
  39. package/data/sc/local/county-spartanburg.json +10 -10
  40. package/data/sc/local/county-sumter.json +10 -10
  41. package/data/sc/local/county-union.json +9 -9
  42. package/data/sc/local/county-williamsburg.json +10 -10
  43. package/data/sc/local/county-york.json +10 -10
  44. package/data/sc/local/place-abbeville.json +11 -11
  45. package/data/sc/local/place-aiken.json +10 -10
  46. package/data/sc/local/place-anderson.json +12 -12
  47. package/data/sc/local/place-bamberg.json +9 -9
  48. package/data/sc/local/place-barnwell.json +10 -10
  49. package/data/sc/local/place-beaufort.json +8 -8
  50. package/data/sc/local/place-bennettsville.json +10 -10
  51. package/data/sc/local/place-bishopville.json +10 -10
  52. package/data/sc/local/place-camden.json +8 -8
  53. package/data/sc/local/place-charleston.json +13 -13
  54. package/data/sc/local/place-chester.json +18 -18
  55. package/data/sc/local/place-chesterfield.json +10 -10
  56. package/data/sc/local/place-columbia.json +10 -10
  57. package/data/sc/local/place-conway.json +10 -10
  58. package/data/sc/local/place-darlington.json +10 -10
  59. package/data/sc/local/place-dillon.json +10 -10
  60. package/data/sc/local/place-edgefield.json +10 -10
  61. package/data/sc/local/place-florence.json +10 -10
  62. package/data/sc/local/place-gaffney.json +10 -10
  63. package/data/sc/local/place-georgetown.json +10 -10
  64. package/data/sc/local/place-goose-creek.json +10 -10
  65. package/data/sc/local/place-greenville.json +10 -10
  66. package/data/sc/local/place-greenwood.json +10 -10
  67. package/data/sc/local/place-hampton.json +8 -8
  68. package/data/sc/local/place-hilton-head.json +10 -10
  69. package/data/sc/local/place-kingstree.json +10 -10
  70. package/data/sc/local/place-lancaster.json +12 -12
  71. package/data/sc/local/place-lexington.json +10 -10
  72. package/data/sc/local/place-manning.json +10 -10
  73. package/data/sc/local/place-marion.json +10 -10
  74. package/data/sc/local/place-mccormick.json +10 -10
  75. package/data/sc/local/place-mount-pleasant.json +12 -12
  76. package/data/sc/local/place-myrtle-beach.json +16 -16
  77. package/data/sc/local/place-newberry.json +10 -10
  78. package/data/sc/local/place-north-charleston.json +14 -14
  79. package/data/sc/local/place-orangeburg.json +10 -10
  80. package/data/sc/local/place-ridgeland.json +14 -30
  81. package/data/sc/local/place-rock-hill.json +13 -13
  82. package/data/sc/local/place-saluda.json +8 -8
  83. package/data/sc/local/place-spartanburg.json +10 -10
  84. package/data/sc/local/place-st-george.json +12 -28
  85. package/data/sc/local/place-st-matthews.json +10 -10
  86. package/data/sc/local/place-summerville.json +10 -10
  87. package/data/sc/local/place-sumter.json +10 -10
  88. package/data/sc/local/place-union.json +10 -10
  89. package/data/sc/local/place-walhalla.json +10 -10
  90. package/data/sc/local/place-walterboro.json +10 -10
  91. package/data/sc/local/place-winnsboro.json +8 -8
  92. package/data/sc/state.json +1377 -1379
  93. package/package.json +1 -1
@@ -4,10 +4,10 @@
4
4
  "level": "local",
5
5
  "jurisdiction": "place:mount-pleasant",
6
6
  "label": "Mount Pleasant Town Council",
7
- "lastUpdated": "2026-06-09",
7
+ "lastUpdated": "2026-06-22",
8
8
  "adapter": "civicplus",
9
- "dataHash": "b9dccd28d6e996c1",
10
- "dataLastChanged": "2026-06-09"
9
+ "dataHash": "df03ea9b74e03fff",
10
+ "dataLastChanged": "2026-06-22"
11
11
  },
12
12
  "members": [
13
13
  {
@@ -16,7 +16,7 @@
16
16
  "email": "lcanney@tompsc.com",
17
17
  "phone": "(843) 884-8517",
18
18
  "source": "civicplus",
19
- "lastUpdated": "2026-06-09",
19
+ "lastUpdated": "2026-06-22",
20
20
  "vacant": false,
21
21
  "office": "mayor",
22
22
  "leadership": null,
@@ -32,7 +32,7 @@
32
32
  "email": "",
33
33
  "phone": "",
34
34
  "source": "civicplus",
35
- "lastUpdated": "2026-06-09",
35
+ "lastUpdated": "2026-06-22",
36
36
  "vacant": false,
37
37
  "office": "council-member",
38
38
  "leadership": null,
@@ -48,7 +48,7 @@
48
48
  "email": "councilclk@tompsc.com",
49
49
  "phone": "(843) 209-5607",
50
50
  "source": "civicplus",
51
- "lastUpdated": "2026-06-09",
51
+ "lastUpdated": "2026-06-22",
52
52
  "vacant": false,
53
53
  "office": "council-member",
54
54
  "leadership": null,
@@ -64,7 +64,7 @@
64
64
  "email": "councilclk@tompsc.com",
65
65
  "phone": "(843) 494-8261",
66
66
  "source": "civicplus",
67
- "lastUpdated": "2026-06-09",
67
+ "lastUpdated": "2026-06-22",
68
68
  "vacant": false,
69
69
  "office": "council-member",
70
70
  "leadership": null,
@@ -80,7 +80,7 @@
80
80
  "email": "councilclk@tompsc.com",
81
81
  "phone": "(843) 806-6564",
82
82
  "source": "civicplus",
83
- "lastUpdated": "2026-06-09",
83
+ "lastUpdated": "2026-06-22",
84
84
  "vacant": false,
85
85
  "office": "council-member",
86
86
  "leadership": null,
@@ -96,7 +96,7 @@
96
96
  "email": "",
97
97
  "phone": "",
98
98
  "source": "civicplus",
99
- "lastUpdated": "2026-06-09",
99
+ "lastUpdated": "2026-06-22",
100
100
  "vacant": false,
101
101
  "office": "council-member",
102
102
  "leadership": null,
@@ -112,7 +112,7 @@
112
112
  "email": "councilclk@tompsc.com",
113
113
  "phone": "(843) 315-4294",
114
114
  "source": "civicplus",
115
- "lastUpdated": "2026-06-09",
115
+ "lastUpdated": "2026-06-22",
116
116
  "vacant": false,
117
117
  "office": "council-member",
118
118
  "leadership": null,
@@ -128,7 +128,7 @@
128
128
  "email": "councilclk@tompsc.com",
129
129
  "phone": "(843) 884-8517",
130
130
  "source": "civicplus",
131
- "lastUpdated": "2026-06-09",
131
+ "lastUpdated": "2026-06-22",
132
132
  "vacant": false,
133
133
  "office": "council-member",
134
134
  "leadership": null,
@@ -144,7 +144,7 @@
144
144
  "email": "councilclk@tompsc.com",
145
145
  "phone": "(843) 209-0399",
146
146
  "source": "civicplus",
147
- "lastUpdated": "2026-06-09",
147
+ "lastUpdated": "2026-06-22",
148
148
  "vacant": false,
149
149
  "office": "council-member",
150
150
  "leadership": null,
@@ -4,10 +4,10 @@
4
4
  "level": "local",
5
5
  "jurisdiction": "place:myrtle-beach",
6
6
  "label": "Myrtle Beach City Council",
7
- "lastUpdated": "2026-06-09",
7
+ "lastUpdated": "2026-06-22",
8
8
  "adapter": "revize",
9
- "dataHash": "ab5e6f3a8e34ccfd",
10
- "dataLastChanged": "2026-06-09"
9
+ "dataHash": "0a8526b12832ccb1",
10
+ "dataLastChanged": "2026-06-22"
11
11
  },
12
12
  "members": [
13
13
  {
@@ -16,7 +16,7 @@
16
16
  "email": "mkruea@cityofmyrtlebeach.com",
17
17
  "phone": "",
18
18
  "source": "revize",
19
- "lastUpdated": "2026-06-09",
19
+ "lastUpdated": "2026-06-22",
20
20
  "vacant": false,
21
21
  "office": "mayor",
22
22
  "leadership": null,
@@ -32,7 +32,7 @@
32
32
  "email": "dconner@cityofmyrtlebeach.com",
33
33
  "phone": "",
34
34
  "source": "revize",
35
- "lastUpdated": "2026-06-09",
35
+ "lastUpdated": "2026-06-22",
36
36
  "vacant": false,
37
37
  "office": "council-member",
38
38
  "leadership": "mayor-pro-tem",
@@ -48,7 +48,7 @@
48
48
  "email": "bmcclure@cityofmyrtlebeach.com",
49
49
  "phone": "",
50
50
  "source": "revize",
51
- "lastUpdated": "2026-06-09",
51
+ "lastUpdated": "2026-06-22",
52
52
  "vacant": false,
53
53
  "office": "council-member",
54
54
  "leadership": null,
@@ -64,7 +64,7 @@
64
64
  "email": "mlowder@cityofmyrtlebeach.com",
65
65
  "phone": "",
66
66
  "source": "revize",
67
- "lastUpdated": "2026-06-09",
67
+ "lastUpdated": "2026-06-22",
68
68
  "vacant": false,
69
69
  "office": "council-member",
70
70
  "leadership": null,
@@ -75,12 +75,12 @@
75
75
  "partisan": false
76
76
  },
77
77
  {
78
- "name": "Dr. Philip N. Render, DMD",
78
+ "name": "Jackie Hatley",
79
79
  "title": "Council Member",
80
- "email": "prender@cityofmyrtlebeach.com",
80
+ "email": "jvereen@cityofmyrtlebeach.com",
81
81
  "phone": "",
82
82
  "source": "revize",
83
- "lastUpdated": "2026-06-09",
83
+ "lastUpdated": "2026-06-22",
84
84
  "vacant": false,
85
85
  "office": "council-member",
86
86
  "leadership": null,
@@ -91,12 +91,12 @@
91
91
  "partisan": false
92
92
  },
93
93
  {
94
- "name": "Jackie Hatley",
94
+ "name": "Michael \"Mike\" Chestnut",
95
95
  "title": "Council Member",
96
- "email": "jvereen@cityofmyrtlebeach.com",
96
+ "email": "mchestnut@cityofmyrtlebeach.com",
97
97
  "phone": "",
98
98
  "source": "revize",
99
- "lastUpdated": "2026-06-09",
99
+ "lastUpdated": "2026-06-22",
100
100
  "vacant": false,
101
101
  "office": "council-member",
102
102
  "leadership": null,
@@ -107,12 +107,12 @@
107
107
  "partisan": false
108
108
  },
109
109
  {
110
- "name": "Michael \"Mike\" Chestnut",
110
+ "name": "Philip N. Render, DMD",
111
111
  "title": "Council Member",
112
- "email": "mchestnut@cityofmyrtlebeach.com",
112
+ "email": "prender@cityofmyrtlebeach.com",
113
113
  "phone": "",
114
114
  "source": "revize",
115
- "lastUpdated": "2026-06-09",
115
+ "lastUpdated": "2026-06-22",
116
116
  "vacant": false,
117
117
  "office": "council-member",
118
118
  "leadership": null,
@@ -4,10 +4,10 @@
4
4
  "level": "local",
5
5
  "jurisdiction": "place:newberry",
6
6
  "label": "Newberry City Council",
7
- "lastUpdated": "2026-06-09",
7
+ "lastUpdated": "2026-06-22",
8
8
  "adapter": "generic_mailto",
9
- "dataHash": "63fb783998262af3",
10
- "dataLastChanged": "2026-06-09"
9
+ "dataHash": "3c595a5eacd16f57",
10
+ "dataLastChanged": "2026-06-22"
11
11
  },
12
12
  "members": [
13
13
  {
@@ -16,7 +16,7 @@
16
16
  "email": "FSenn@CityofNewberry.com",
17
17
  "phone": "(803) 321-1000",
18
18
  "source": "genericmailto",
19
- "lastUpdated": "2026-06-09",
19
+ "lastUpdated": "2026-06-22",
20
20
  "vacant": false,
21
21
  "office": "mayor",
22
22
  "leadership": null,
@@ -32,7 +32,7 @@
32
32
  "email": "LGlasgow@CityofNewberry.com",
33
33
  "phone": "(803) 321-1000",
34
34
  "source": "genericmailto",
35
- "lastUpdated": "2026-06-09",
35
+ "lastUpdated": "2026-06-22",
36
36
  "vacant": false,
37
37
  "office": "council-member",
38
38
  "seatClass": "numbered",
@@ -48,7 +48,7 @@
48
48
  "email": "RCSmith@CityofNewberry.com",
49
49
  "phone": "(803) 321-1000",
50
50
  "source": "genericmailto",
51
- "lastUpdated": "2026-06-09",
51
+ "lastUpdated": "2026-06-22",
52
52
  "vacant": false,
53
53
  "office": "council-member",
54
54
  "seatClass": "numbered",
@@ -64,7 +64,7 @@
64
64
  "email": "CKinard@CityofNewberry.com",
65
65
  "phone": "(803) 321-1000",
66
66
  "source": "genericmailto",
67
- "lastUpdated": "2026-06-09",
67
+ "lastUpdated": "2026-06-22",
68
68
  "vacant": false,
69
69
  "office": "council-member",
70
70
  "seatClass": "numbered",
@@ -80,7 +80,7 @@
80
80
  "email": "DForce@CityofNewberry.com",
81
81
  "phone": "(803) 321-1000",
82
82
  "source": "genericmailto",
83
- "lastUpdated": "2026-06-09",
83
+ "lastUpdated": "2026-06-22",
84
84
  "vacant": false,
85
85
  "office": "council-member",
86
86
  "seatClass": "numbered",
@@ -96,7 +96,7 @@
96
96
  "email": "JHolmes@CityofNewberry.com",
97
97
  "phone": "(803) 321-1000",
98
98
  "source": "genericmailto",
99
- "lastUpdated": "2026-06-09",
99
+ "lastUpdated": "2026-06-22",
100
100
  "vacant": false,
101
101
  "office": "council-member",
102
102
  "seatClass": "numbered",
@@ -112,7 +112,7 @@
112
112
  "email": "DDubose@CityofNewberry.com",
113
113
  "phone": "(803) 321-1000",
114
114
  "source": "genericmailto",
115
- "lastUpdated": "2026-06-09",
115
+ "lastUpdated": "2026-06-22",
116
116
  "vacant": false,
117
117
  "office": "council-member",
118
118
  "seatClass": "numbered",
@@ -4,10 +4,10 @@
4
4
  "level": "local",
5
5
  "jurisdiction": "place:north-charleston",
6
6
  "label": "North Charleston City Council",
7
- "lastUpdated": "2026-06-09",
7
+ "lastUpdated": "2026-06-22",
8
8
  "adapter": "generic_mailto",
9
- "dataHash": "0c7a6af3a23a7e6a",
10
- "dataLastChanged": "2026-06-09"
9
+ "dataHash": "76619c978b4b5679",
10
+ "dataLastChanged": "2026-06-22"
11
11
  },
12
12
  "members": [
13
13
  {
@@ -16,7 +16,7 @@
16
16
  "email": "",
17
17
  "phone": "(843) 740-2504",
18
18
  "source": "genericmailto",
19
- "lastUpdated": "2026-06-09",
19
+ "lastUpdated": "2026-06-22",
20
20
  "vacant": false,
21
21
  "office": "mayor",
22
22
  "leadership": null,
@@ -32,7 +32,7 @@
32
32
  "email": "gperry@northcharleston.org",
33
33
  "phone": "(843) 557-5351",
34
34
  "source": "genericmailto",
35
- "lastUpdated": "2026-06-09",
35
+ "lastUpdated": "2026-06-22",
36
36
  "vacant": false,
37
37
  "office": "council-member",
38
38
  "seatClass": "numbered",
@@ -48,7 +48,7 @@
48
48
  "email": "rjerome@northcharleston.org",
49
49
  "phone": "(843) 813-4404",
50
50
  "source": "genericmailto",
51
- "lastUpdated": "2026-06-09",
51
+ "lastUpdated": "2026-06-22",
52
52
  "vacant": false,
53
53
  "office": "council-member",
54
54
  "seatClass": "numbered",
@@ -64,7 +64,7 @@
64
64
  "email": "sganawaypasley@northcharleston.org",
65
65
  "phone": "(843) 270-1961",
66
66
  "source": "genericmailto",
67
- "lastUpdated": "2026-06-09",
67
+ "lastUpdated": "2026-06-22",
68
68
  "vacant": false,
69
69
  "office": "council-member",
70
70
  "seatClass": "numbered",
@@ -80,7 +80,7 @@
80
80
  "email": "cpalmerroberts@northcharleston.org",
81
81
  "phone": "(843) 819-9170",
82
82
  "source": "genericmailto",
83
- "lastUpdated": "2026-06-09",
83
+ "lastUpdated": "2026-06-22",
84
84
  "vacant": false,
85
85
  "office": "council-member",
86
86
  "seatClass": "numbered",
@@ -96,7 +96,7 @@
96
96
  "email": "cemde@northcharleston.org",
97
97
  "phone": "(843) 751-6214",
98
98
  "source": "genericmailto",
99
- "lastUpdated": "2026-06-09",
99
+ "lastUpdated": "2026-06-22",
100
100
  "vacant": false,
101
101
  "office": "council-member",
102
102
  "seatClass": "numbered",
@@ -112,7 +112,7 @@
112
112
  "email": "nbrown@northcharleston.org",
113
113
  "phone": "(843) 790-4098",
114
114
  "source": "genericmailto",
115
- "lastUpdated": "2026-06-09",
115
+ "lastUpdated": "2026-06-22",
116
116
  "vacant": false,
117
117
  "office": "council-member",
118
118
  "seatClass": "numbered",
@@ -128,7 +128,7 @@
128
128
  "email": "mibrown@northcharleston.org",
129
129
  "phone": "(843) 367-3714",
130
130
  "source": "genericmailto",
131
- "lastUpdated": "2026-06-09",
131
+ "lastUpdated": "2026-06-22",
132
132
  "vacant": false,
133
133
  "office": "council-member",
134
134
  "seatClass": "numbered",
@@ -144,7 +144,7 @@
144
144
  "email": "bhudson@northcharleston.org",
145
145
  "phone": "(803) 292-6044",
146
146
  "source": "genericmailto",
147
- "lastUpdated": "2026-06-09",
147
+ "lastUpdated": "2026-06-22",
148
148
  "vacant": false,
149
149
  "office": "council-member",
150
150
  "seatClass": "numbered",
@@ -160,7 +160,7 @@
160
160
  "email": "kskipper@northcharleston.org",
161
161
  "phone": "(843) 200-7520",
162
162
  "source": "genericmailto",
163
- "lastUpdated": "2026-06-09",
163
+ "lastUpdated": "2026-06-22",
164
164
  "vacant": false,
165
165
  "office": "council-member",
166
166
  "seatClass": "numbered",
@@ -176,7 +176,7 @@
176
176
  "email": "bmichaelchr@aol.com",
177
177
  "phone": "(843) 747-3531",
178
178
  "source": "genericmailto",
179
- "lastUpdated": "2026-06-09",
179
+ "lastUpdated": "2026-06-22",
180
180
  "vacant": false,
181
181
  "office": "council-member",
182
182
  "seatClass": "numbered",
@@ -4,10 +4,10 @@
4
4
  "level": "local",
5
5
  "jurisdiction": "place:orangeburg",
6
6
  "label": "Orangeburg City Council",
7
- "lastUpdated": "2026-06-09",
7
+ "lastUpdated": "2026-06-22",
8
8
  "adapter": "orangeburg_city",
9
- "dataHash": "9e46f1fa1c4b01e0",
10
- "dataLastChanged": "2026-06-09"
9
+ "dataHash": "024f82c2100912a1",
10
+ "dataLastChanged": "2026-06-22"
11
11
  },
12
12
  "members": [
13
13
  {
@@ -16,7 +16,7 @@
16
16
  "email": "michael.butler@orangeburg.sc.us",
17
17
  "phone": "(803) 533-6000",
18
18
  "source": "orangeburgcity",
19
- "lastUpdated": "2026-06-09",
19
+ "lastUpdated": "2026-06-22",
20
20
  "vacant": false,
21
21
  "office": "mayor",
22
22
  "leadership": null,
@@ -32,7 +32,7 @@
32
32
  "email": "jordan.hawkins@orangeburg.sc.us",
33
33
  "phone": "(803) 937-1593",
34
34
  "source": "orangeburgcity",
35
- "lastUpdated": "2026-06-09",
35
+ "lastUpdated": "2026-06-22",
36
36
  "vacant": false,
37
37
  "office": "council-member",
38
38
  "seatClass": "numbered",
@@ -48,7 +48,7 @@
48
48
  "email": "kalu.kalu@orangeburg.sc.us",
49
49
  "phone": "(803) 347-4842",
50
50
  "source": "orangeburgcity",
51
- "lastUpdated": "2026-06-09",
51
+ "lastUpdated": "2026-06-22",
52
52
  "vacant": false,
53
53
  "office": "council-member",
54
54
  "seatClass": "numbered",
@@ -64,7 +64,7 @@
64
64
  "email": "jerry.hannah@orangeburg.sc.us",
65
65
  "phone": "(803) 534-2869",
66
66
  "source": "orangeburgcity",
67
- "lastUpdated": "2026-06-09",
67
+ "lastUpdated": "2026-06-22",
68
68
  "vacant": false,
69
69
  "office": "council-member",
70
70
  "seatClass": "numbered",
@@ -80,7 +80,7 @@
80
80
  "email": "annette.grevious@orangeburg.sc.us",
81
81
  "phone": "(706) 231-1002",
82
82
  "source": "orangeburgcity",
83
- "lastUpdated": "2026-06-09",
83
+ "lastUpdated": "2026-06-22",
84
84
  "vacant": false,
85
85
  "office": "council-member",
86
86
  "seatClass": "numbered",
@@ -96,7 +96,7 @@
96
96
  "email": "liz.keitt@orangeburg.sc.us",
97
97
  "phone": "(803) 534-8967",
98
98
  "source": "orangeburgcity",
99
- "lastUpdated": "2026-06-09",
99
+ "lastUpdated": "2026-06-22",
100
100
  "vacant": false,
101
101
  "office": "council-member",
102
102
  "seatClass": "numbered",
@@ -112,7 +112,7 @@
112
112
  "email": "sandra.knotts@orangeburg.sc.us",
113
113
  "phone": "(803) 534-2160",
114
114
  "source": "orangeburgcity",
115
- "lastUpdated": "2026-06-09",
115
+ "lastUpdated": "2026-06-22",
116
116
  "vacant": false,
117
117
  "office": "council-member",
118
118
  "seatClass": "numbered",
@@ -4,23 +4,23 @@
4
4
  "level": "local",
5
5
  "jurisdiction": "place:ridgeland",
6
6
  "label": "Ridgeland Town Council",
7
- "lastUpdated": "2026-06-09",
7
+ "lastUpdated": "2026-06-22",
8
8
  "adapter": "generic_mailto",
9
- "dataHash": "e3cc08f9e0878a8b",
10
- "dataLastChanged": "2026-06-09"
9
+ "dataHash": "e4ef40bc490d7fb5",
10
+ "dataLastChanged": "2026-06-22"
11
11
  },
12
12
  "members": [
13
13
  {
14
- "name": "Town of Ridgeland",
15
- "title": "Mayor",
16
- "email": "jnmalphrus@ridgelandsc.gov",
17
- "phone": "(843) 726-7500",
14
+ "name": "Mayor Pro Tem",
15
+ "title": "Mayor Pro Tem",
16
+ "email": "lmalphrus@ridgelandsc.gov",
17
+ "phone": "",
18
18
  "source": "genericmailto",
19
- "lastUpdated": "2026-06-09",
19
+ "lastUpdated": "2026-06-22",
20
20
  "vacant": false,
21
- "office": "mayor",
22
- "leadership": null,
23
- "seatClass": "at-large",
21
+ "office": "council-member",
22
+ "leadership": "mayor-pro-tem",
23
+ "seatClass": "unknown",
24
24
  "seatLabel": null,
25
25
  "seatId": null,
26
26
  "seatSource": "parsed-title",
@@ -32,7 +32,7 @@
32
32
  "email": "bfishburne@ridgelandsc.gov",
33
33
  "phone": "",
34
34
  "source": "genericmailto",
35
- "lastUpdated": "2026-06-09",
35
+ "lastUpdated": "2026-06-22",
36
36
  "vacant": false,
37
37
  "office": "council-member",
38
38
  "leadership": null,
@@ -48,7 +48,7 @@
48
48
  "email": "lgramling@ridgelandsc.gov",
49
49
  "phone": "",
50
50
  "source": "genericmailto",
51
- "lastUpdated": "2026-06-09",
51
+ "lastUpdated": "2026-06-22",
52
52
  "vacant": false,
53
53
  "office": "council-member",
54
54
  "leadership": null,
@@ -64,23 +64,7 @@
64
64
  "email": "ltenerowicz@ridgelandsc.gov",
65
65
  "phone": "",
66
66
  "source": "genericmailto",
67
- "lastUpdated": "2026-06-09",
68
- "vacant": false,
69
- "office": "council-member",
70
- "leadership": null,
71
- "seatClass": "unknown",
72
- "seatLabel": null,
73
- "seatId": null,
74
- "seatSource": "parsed-title",
75
- "partisan": false
76
- },
77
- {
78
- "name": "Libby Malphrus",
79
- "title": "Council Member",
80
- "email": "lmalphrus@ridgelandsc.gov",
81
- "phone": "",
82
- "source": "genericmailto",
83
- "lastUpdated": "2026-06-09",
67
+ "lastUpdated": "2026-06-22",
84
68
  "vacant": false,
85
69
  "office": "council-member",
86
70
  "leadership": null,
@@ -4,10 +4,10 @@
4
4
  "level": "local",
5
5
  "jurisdiction": "place:rock-hill",
6
6
  "label": "Rock Hill City Council",
7
- "lastUpdated": "2026-06-09",
7
+ "lastUpdated": "2026-06-22",
8
8
  "adapter": "rock_hill",
9
- "dataHash": "0ffc9e4d19883417",
10
- "dataLastChanged": "2026-06-09"
9
+ "dataHash": "576d6aa782cac7df",
10
+ "dataLastChanged": "2026-06-22"
11
11
  },
12
12
  "members": [
13
13
  {
@@ -16,7 +16,7 @@
16
16
  "email": "John.Gettys@cityofrockhill.com",
17
17
  "phone": "(803) 329-7011",
18
18
  "source": "rockhill",
19
- "lastUpdated": "2026-06-09",
19
+ "lastUpdated": "2026-06-22",
20
20
  "vacant": false,
21
21
  "office": "mayor",
22
22
  "leadership": null,
@@ -32,7 +32,7 @@
32
32
  "email": "Derrick.Lindsay@cityofrockhill.com",
33
33
  "phone": "",
34
34
  "source": "rockhill",
35
- "lastUpdated": "2026-06-09",
35
+ "lastUpdated": "2026-06-22",
36
36
  "vacant": false,
37
37
  "office": "council-member",
38
38
  "leadership": "mayor-pro-tem",
@@ -43,13 +43,13 @@
43
43
  "partisan": false
44
44
  },
45
45
  {
46
- "name": "Vacant",
46
+ "name": "Anne Harty",
47
47
  "title": "Council Member, Ward 2",
48
- "email": "",
48
+ "email": "Anne.Harty@cityofrockhill.com",
49
49
  "phone": "",
50
50
  "source": "rockhill",
51
- "lastUpdated": "2026-06-09",
52
- "vacant": true,
51
+ "lastUpdated": "2026-06-22",
52
+ "vacant": false,
53
53
  "office": "council-member",
54
54
  "seatClass": "numbered",
55
55
  "seatLabel": "ward",
@@ -64,7 +64,7 @@
64
64
  "email": "Kevin.Sutton@cityofrockhill.com",
65
65
  "phone": "(803) 328-1428",
66
66
  "source": "rockhill",
67
- "lastUpdated": "2026-06-09",
67
+ "lastUpdated": "2026-06-22",
68
68
  "vacant": false,
69
69
  "office": "council-member",
70
70
  "seatClass": "numbered",
@@ -80,7 +80,7 @@
80
80
  "email": "John.Black@cityofrockhill.com",
81
81
  "phone": "(803) 517-9969",
82
82
  "source": "rockhill",
83
- "lastUpdated": "2026-06-09",
83
+ "lastUpdated": "2026-06-22",
84
84
  "vacant": false,
85
85
  "office": "council-member",
86
86
  "seatClass": "numbered",
@@ -96,7 +96,7 @@
96
96
  "email": "Nikita.Jackson@cityofrockhill.com",
97
97
  "phone": "(839) 214-7517",
98
98
  "source": "rockhill",
99
- "lastUpdated": "2026-06-09",
99
+ "lastUpdated": "2026-06-22",
100
100
  "vacant": false,
101
101
  "office": "council-member",
102
102
  "seatClass": "numbered",
@@ -112,7 +112,7 @@
112
112
  "email": "Sarah.Vining@cityofrockhill.com",
113
113
  "phone": "(803) 329-7012",
114
114
  "source": "rockhill",
115
- "lastUpdated": "2026-06-09",
115
+ "lastUpdated": "2026-06-22",
116
116
  "vacant": false,
117
117
  "office": "council-member",
118
118
  "seatClass": "numbered",
@@ -4,10 +4,10 @@
4
4
  "level": "local",
5
5
  "jurisdiction": "place:saluda",
6
6
  "label": "Saluda Town Council",
7
- "lastUpdated": "2026-06-09",
7
+ "lastUpdated": "2026-06-22",
8
8
  "adapter": "masc",
9
- "dataHash": "2831a3cfe9c7cd9a",
10
- "dataLastChanged": "2026-06-09"
9
+ "dataHash": "afa27e85303b43b1",
10
+ "dataLastChanged": "2026-06-22"
11
11
  },
12
12
  "members": [
13
13
  {
@@ -16,7 +16,7 @@
16
16
  "email": "",
17
17
  "phone": "",
18
18
  "source": "masc",
19
- "lastUpdated": "2026-06-09",
19
+ "lastUpdated": "2026-06-22",
20
20
  "vacant": false,
21
21
  "office": "mayor",
22
22
  "leadership": null,
@@ -32,7 +32,7 @@
32
32
  "email": "",
33
33
  "phone": "",
34
34
  "source": "masc",
35
- "lastUpdated": "2026-06-09",
35
+ "lastUpdated": "2026-06-22",
36
36
  "vacant": false,
37
37
  "office": "council-member",
38
38
  "leadership": null,
@@ -48,7 +48,7 @@
48
48
  "email": "",
49
49
  "phone": "",
50
50
  "source": "masc",
51
- "lastUpdated": "2026-06-09",
51
+ "lastUpdated": "2026-06-22",
52
52
  "vacant": false,
53
53
  "office": "council-member",
54
54
  "leadership": null,
@@ -64,7 +64,7 @@
64
64
  "email": "",
65
65
  "phone": "",
66
66
  "source": "masc",
67
- "lastUpdated": "2026-06-09",
67
+ "lastUpdated": "2026-06-22",
68
68
  "vacant": false,
69
69
  "office": "council-member",
70
70
  "leadership": null,
@@ -80,7 +80,7 @@
80
80
  "email": "",
81
81
  "phone": "",
82
82
  "source": "masc",
83
- "lastUpdated": "2026-06-09",
83
+ "lastUpdated": "2026-06-22",
84
84
  "vacant": false,
85
85
  "office": "council-member",
86
86
  "leadership": null,