For newsrooms
Every police story has a block. SooLedger gives a news site the block’s record to put beside the story: a card with the last 90 days, the eight-week trend and how many businesses are reporting there, a link to the full page, and a one-line way for a reader’s business to add what happened to them. The same widgets carry the city funnel, the council tracker and a weekly column. Server-rendered HTML, no script, no cookies, cached ten minutes, framed only from the sites on the allowlist.
How to use them
- Take a snippet below, or build the address:
https://soo.communityledger.ca/embed/block?street=Queen Street East&number=234resolves a street and civic number through the city index (the address is not kept; only the hundred-block is shown),/embed/block/<blockId>takes the id from a block page, and a street alone lists its blocks. - Parameters:
window=30d|90d|365d,theme=light|dark,format=page|fragment(jsonon the weekly column), andutm_source=<your site>, which every link out of the widget carries withutm_medium=embed, so your traffic to the record shows up under your name. - Framing is allowed only from the news sites on the allowlist (today: sootoday.com and villagemedia.ca sites) and from this site. To be added, email hello@communityledger.ca with the origin. The fragment form has no such limit: fetch it on your server and print it into the page.
- Attribution is part of the widget and stays: “Source: SooLedger by Community Ledger” with the link to the methodology, and the capture-rate caveat. Do not remove or cover them; you may restyle the rest.
Block card
One hundred-block: the window funnel, an eight-week sparkline, the coverage indicator (how many businesses and partners report there), and the two links: report an incident, see the full record.
<iframe src="https://soo.communityledger.ca/embed/block/ssm%3Abay-st%3A200?utm_source=yoursite" title="Block card — SooLedger" width="100%" height="300" style="border:0;max-width:100%" loading="lazy" referrerpolicy="strict-origin-when-cross-origin"></iframe>GET https://soo.communityledger.ca/embed/block/ssm%3Abay-st%3A200?utm_source=yoursite&format=fragment
→ one <div class="sl-embed"> with its own styles; cache it for ten minutesCity funnel
Sault Ste. Marie over the window: incidents, arrests, charges and outcomes so far, a twelve-week strip and the change against the window before.
<iframe src="https://soo.communityledger.ca/embed/city?window=90d&utm_source=yoursite" title="City funnel — SooLedger" width="100%" height="270" style="border:0;max-width:100%" loading="lazy" referrerpolicy="strict-origin-when-cross-origin"></iframe>GET https://soo.communityledger.ca/embed/city?window=90d&utm_source=yoursite&format=fragment
→ one <div class="sl-embed"> with its own styles; cache it for ten minutesCouncil tracker
The latest three council items the disorder gate published, each with the agenda or minutes it was read from and whether a promised follow-up is overdue.
<iframe src="https://soo.communityledger.ca/embed/council?utm_source=yoursite" title="Council tracker — SooLedger" width="100%" height="360" style="border:0;max-width:100%" loading="lazy" referrerpolicy="strict-origin-when-cross-origin"></iframe>GET https://soo.communityledger.ca/embed/council?utm_source=yoursite&format=fragment
→ one <div class="sl-embed"> with its own styles; cache it for ten minutesThis week on the record
The weekly column: a headline, three short paragraphs of numbers (totals against the week before, by area, by type) and a table of the busiest blocks with their coverage. Article-ready as a fragment; a JSON shape for a CMS with ?format=json.
<iframe src="https://soo.communityledger.ca/embed/weekly?utm_source=yoursite" title="This week on the record — SooLedger" width="100%" height="520" style="border:0;max-width:100%" loading="lazy" referrerpolicy="strict-origin-when-cross-origin"></iframe>GET https://soo.communityledger.ca/embed/weekly?utm_source=yoursite&format=fragment
→ one <div class="sl-embed"> with its own styles; cache it for ten minutesThe weekly column as data
GET https://soo.communityledger.ca/embed/weekly?format=json&utm_source=yoursite answers with headline, paragraphs (three strings), totals, prior, zones, types, topBlocks (id, display, area, incidents, arrests, contributors bucket, url), councilItems, links, attribution, caveat and html (the same column as a headline and a body fragment). Every number is the public, k-suppressed one the site shows: contributors appear as 0 / 1 / 2 / 3+, never as who.
Monthly rollups are also available as CSV at /v1/cities/ssm/rollups.csv; the whole public API is documented at /v1/openapi.json. See data and licensing.
Privacy inside the frame
A widget sets no cookie, loads no script and no analytics, and sends nothing about the reader anywhere. The only thing recorded is a count of loads per referring site per day, so the operator can see where the record is read. The content is the same block-level public record as the rest of the site: no names, no addresses, no faces, no business names.