# P2C Portal Investigation — Complete Report

## Summary

The Kernersville Police Department uses a CentralSquare "Police to Citizen" (P2C) public portal at `kernersvillenc.policetocitizen.com`. It is an Angular SPA with 20 listed public modules including Event Search and CAD Calls. However, **the incident data backend is not publicly accessible**.

## What Was Tried

### Direct API Calls (all returned HTML, not JSON)
| Endpoint | Result |
|----------|--------|
| `/api/Incidents?$top=5` | ❌ HTML page |
| `/api/CADCalls?$top=5` | ❌ HTML page |
| `/api/RecentArrests?$top=5` | ❌ HTML page |
| `/api/DailyBulletin?$top=5` | ❌ HTML page |
| `/api/Incidents/Search?searchText=Charles%20Conner` | ❌ HTML page |
| `/odata/Incidents?$top=5` | ❌ HTML page |
| `/api/Incidents/Count?dateFrom=2026-04-14&dateTo=2026-04-15` | ❌ HTML page |

### Angular SPA (Playwright headless browser)
| Page | Result |
|------|--------|
| Home | ✅ Loaded (config data available) |
| Event Search `https://.../eventSearch` | ❌ **"Unable to complete the request"** |
| CAD Calls `https://.../cadCalls` | ❌ **HTTP 404 - Page not found** |
| Recent Arrests | ❌ Route not navigable |
| Daily Bulletin | ❌ Route not navigable |

### Config Endpoints (WORKING - JSON returned)
| Endpoint | Data |
|----------|------|
| `/api/Agency/InitialSettings` | ✅ Agency config, settings |
| `/api/Agency/503` | ✅ Agency info + staging instance 504 |
| `/api/Module/503` | ✅ Only 2 active modules: EventSearch, FAQ |
| `/api/ClientSettings/503/EventSearch.Settings` | ✅ Search config (ShowIncident=true, ShowArrest=true) |
| `/api/ClientSettings/503/FeatureFlag.Settings` | ✅ `"cadIntegration":false` |
| `/api/ClientSettings/503/SideNav.Settings` | ✅ 20 modules listed (including CADCalls) |
| `/api/ClientSettings/503/TopNav.Settings` | ✅ 20 modules listed |

### Key Finding: `cadIntegration: false`
The FeatureFlag settings confirm the P2C portal is **not integrated with the live CAD system**. The CAD Calls module is listed in the SideNav/TopNav config but the route returns 404 and the feature flag confirms integration is disabled. This means CAD dispatch data was never published to this portal.

### Event Search: Backend Database Disconnected
The Event Search returns "Unable to complete the request" because the incident database backend is either:
1. Not connected to this P2C instance
2. Has no published data
3. The underlying API (CentralSquare's Onesolution RMS) is not exposing data

The `EventSearch.Settings` shows `ShowIncident: true` and `ShowArrest: true` but the actual data queries fail silently.

### Wayback Machine
- Last capture of `p2c.toknc.com`: **Nov 18, 2025** (before incident)
- No captures of `kernersvillenc.policetocitizen.com` since the switch to the new domain
- No cached API responses available

### Alternative Portals Tried
| Source | Result |
|--------|--------|
| Broadcastify (KPD scanner) | No Forsyth County/KPD feed available |
| RAIDS Online | 404 for this area |
| CrimeMapping | No data for Kernersville |
| PulsePoint | No Forsyth County jurisdiction |
| Forsyth County 911 | Login required |
| City of WS Emergency Comms | Login required |
| FCC Radio Licenses | 403 blocked |
| NC DPS 911 Board | 404 |

## Why a VPN Won't Help

The P2C data endpoints return HTML instead of JSON **for everyone, from everywhere**. This is not an IP block — it's a system configuration where the incident database is not publishing data to the public API. The `cadIntegration: false` flag confirms CAD data specifically was never integrated.

## What Still Exists

### Config Data Captured (publicly accessible via API)
- 20 module list
- Theme/settings
- Agency info
- Event Search config
- Feature flags
- All saved in `api-reference.md` and `P2C-config.md`

### Ring Doorbell (already saved)
- 17 warrant execution clips
- 4 pre-warrant EMS clips  
- 9 frame JPGs
- The EMS arrival at 7:44 PM is captured on Ring (1944.mp4, 1948.mp4, 1950.mp4, 1957.mp4)

### What Cannot Be Obtained Without Formal Request
1. **CAD dispatch logs** — require formal records request to KPD
2. **911 call audio** — Forsyth County Emergency Communications (requires request)
3. **Bodycam footage** — stopped being available after 30-day policy window
4. **P2C incident data** — backend database not publicly queryable

### Formal Records Request (after June 2027 / post-expungement)
```
Kernersville Police Department — Records Division
134 East Mountain St, Kernersville, NC 27284
kpdrecords@toknc.com
```

Request these items referencing incident control #2026001582:
1. All CAD dispatch records for April 14-15, 2026
2. Incident/offense report for 2026001582
3. All 911 calls originating from 417 Charles Conner Dr, April 14, 2026
4. Body-worn camera footage from April 15 and April 21, 2026
