Civicord · UK · Browse / Bexleyheath and Crayford

Bexleyheath and Crayford · E14001089 · Greater London · England · 69,948 electorate

Bexleyheath and Crayford

Mostly responding — The rounded HTTP response rate at the audit was at least 66%. This does not establish that campaign content survived. 2 of 2 sites responding (100%) · 0 unreachable · 0 redirected

What happened here

  1. What was recorded

    The April 2025 scrape recorded 2 candidate websites for Bexleyheath and Crayford.

    • Daniel Francis — Labour Party — https://www.danielfrancis.uk
    • Mark Brooks — Conservative and Unionist Party — https://mark-brooks.co.uk
  2. What the audit found

    On 7 September 2026 those URLs were requested again — 2 answered. An HTTP success means the server answered. It does not establish that the campaign page survived.

    • Daniel Francis — https://www.danielfrancis.uk — Answered (HTTP 200).
    • Mark Brooks — https://mark-brooks.co.uk — Answered (HTTP 200).
  3. What happened to the words

    A homepage fetch was compared with the April site text for 2 of the 2 candidates here. A sentence missing from that fetch is not matched to a replacement.

    • Daniel Francis — 261 sentences from the April text were not found on the homepage fetch of https://www.danielfrancis.uk. Example from the April text: “Home » Education Group welcomes new Bexley MP to its schools and college Education Group welcomes new Bexley MP to its schools and college Share on Social…”
    • Mark Brooks — The homepage comparison recorded no missing sentence (0 still present) at https://mark-brooks.co.uk.

No replacement sentence is matched. A line that only appears on the later homepage is listed on its own.

Bexleyheath and Crayford — 2 of 2 sites responding (100%) · 0 unreachable · 0 redirectedHalftone: more / larger paper dots = lower response rate.

Candidates in this seat

Respondingmark-brooks.co.uk

Mark Brooks · Conservative and Unionist Party

  • HTTP 200
  • Candidate-name signal: surname matched in the response body (heuristic only)
Open filtered ledger — 2 sites ↗See what you followBrowse all 2,375 ↗UK overview ←

This link encodes the seat view · Press ⌘K to jump anywhere. This seat's hex is equal-weight (Automatic Knowledge v5, OGL) · How we checked →

Agent viewInspect the data and verify the record$0.002 / seat

Humans read this page for free. Agents pay per jurisdiction — this exact record is one metered call. Everything below is live; nothing here is mocked.

1 Free, same-origin

/api/constituencies/bexleyheath-and-crayford.json

Plain static JSON, CORS *, no key, 5-minute cache.

2 Metered via x402

https://civicord-aieyq.bazgateway.com/api/constituencies/bexleyheath-and-crayford

One jurisdiction = one charge. Expect 402, not an error.

3 MCP tool

Same call, as an agent would invoke it over MCP.

getConstituency(slug="bexleyheath-and-crayford")
-> { name: "Bexleyheath and Crayford", stats: { sites, live, livePct, ... }, candidates: [ ... ] }

4 The Graph (live)

On-chain p44473.civicord.eth via/api/graph (Studio proxy) — person id, not seat slug.

{
  candidate(id: "44473") {
    id ensName status url personName textRecordCount
    registeredAt registeredAtBlock owner
  }
  _meta { block { number } hasIndexingErrors }
}

Live queries run on demand; a failure is shown honestly, never replaced with a cached response. Verify independently: ENS ·resolver ·Subgraph Studio ·/api/graph ·openapi.yaml ·source

↑↓ move · ↵ open · Esc close