Skip to content

List danger spots

Returns every approved spot on the public map, ordered by severity (highest first), then newest. Spots that are pending review or were rejected by moderators are never returned.

The list is small enough to fetch in full; filter on the client for anything the query parameters don't cover. The public map refreshes it every two minutes.

Rate limit: 120 requests per minute per visitor (shared with /api/stats and /api/me).

GET
https://deathspot.org/api/spots

Query parameters

  • categoryoptionalmurderormob_actionorboda_gangorrobberyorstabbingorkidnapping+1 more

    Only return spots in this category.

  • sinceoptionalinteger

    Only return spots reported within this many days.

    minimum: 1
    Example: 30

Returns

200

The approved spots.

JSON
  • spotsarray ofobjectrequired
    18 properties
    • idintegerrequired
      Example: 1
    • titlestringrequired
      maxLength: 80
      Example: "Mukwano Road (near CID HQ)"
    • descriptionstringrequired

      What people should know about the place. It may be empty.

      maxLength: 600
    • latnumberrequired
      format: double, maximum: 4.3, minimum: -1.6
      Example: 0.30827
    • lngnumberrequired
      format: double, maximum: 35.1, minimum: 29.5
      Example: 32.58721
    • areastringrequired

      Neighbourhood, division or landmark. It may be empty.

      maxLength: 80
      Example: "Kibuli, Makindye"
    • categorymurderormob_actionorboda_gangorrobberyorstabbingorkidnapping+1 morerequired

      What happens at the spot: murder (killing), mob_action, boda_gang, robbery (robbery or snatching), stabbing (stabbing or hacking), kidnapping, other.

    • severityintegerrequired

      1 = feels unsafe, 2 = harassment or threats, 3 = robbery or snatching, 4 = violent attack, 5 = someone was killed.

      maximum: 5, minimum: 1
      Example: 5
    • time_of_daydayornightoranyrequired

      When the spot is dangerous.

    • incident_datestring | nullrequired
      format: date
      Example: "2026-09-23"
    • source_urlstring | nullrequired

      A news, police or court source, if the reporter gave one.

      format: uri
    • created_atstringrequired
      format: date-time
    • last_confirmed_atstring | nullrequired

      When someone last voted "still dangerous".

      format: date-time
    • confirmationsintegerrequired

      Number of "still dangerous" votes.

      minimum: 0
    • denialsintegerrequired

      Number of "not anymore" votes.

      minimum: 0
    • statusunverifiedorconfirmedordisputedrequired

      The community's verdict from votes. confirmed needs at least 3 more confirmations than denials, and disputed means denials outnumber confirmations by more than 2.

    • moderator_verifiedbooleanrequired

      true when a moderator has checked the spot against a reliable source. Shown as "Verified by moderators".

    • seededbooleanrequired

      true for spots loaded from the project's sourced seed data rather than reported through the app.

429

The caller exceeded a rate limit. Wait Retry-After seconds before retrying.

JSON
  • errorstringrequired

    A human-readable message you can show to users.

500

Unexpected server error, usually because the database is unreachable.

Navigation

Type to search…

↑↓ navigate↵ selectEsc close