Events feed



Options:

refer to docs for full details

GET /api/v1/events returns every event your organisation can see in ResponderHQ, with its status, its pin and the pins of its divisions and sectors. It is built for mapping and GIS systems: poll it on whatever schedule suits you and update your own layers from it. It is read-only.

Access needs the ResponderHQ.Events.Read.All application permission, consented by your organisation's Microsoft Entra administrator. It is separate from the permissions used by the other endpoints on this site.

Which events are returned

How to use it

Every response is the full current set, not a list of changes. Compare it with what you hold, keyed on the event id: a new id is a new event, a changed field is an update, and an id that disappears after being marked closed is finished and can be retired. Times are UTC. Coordinates are WGS84 decimal degrees, and are null until someone drops a pin in ResponderHQ.

Query parameters

item type description comments
format string json (default) or geojson Anything else returns 400

Response fields

item type description comments
generated_at string When this snapshot was produced UTC, ISO-8601 with Z
closed_retention_days integer How many days a closed event stays in the feed after closed_at Currently 14
truncated boolean True if the response hit the size cap and some events are missing Should never happen. Contact ResponderHQ if it does.
events array of event Every event your organisation can see Ordered by id
Event
item type description comments
id integer Event id Stable. Use it as your key when comparing snapshots.
barcode string or null ResponderHQ event barcode, e.g. f1234 The id people see in ResponderHQ
name string Event name Can change while the event is live
type string or null Event type as your organisation records it, e.g. wildfire or planned burn Free text
category string incident or hrb (hazard reduction burn) Never null
lifecycle string active, or planned for a burn not yet activated Planned burns are included so you can prepare ahead
status object Current status (see below)
is_closed boolean True once the event has been closed in ResponderHQ Marked straight away; the event drops out of the feed 14 days after closed_at
owner_org_id integer or null Id of the organisation that owns the event's region
region object Region the event belongs to (see below)
via_campaign boolean True when your organisation sees this event only because it joined the campaign the event belongs to False for events in your own regions
created_at string or null When the event was created UTC
activated_at string or null When a planned burn was activated UTC. Null for other events.
closed_at string or null When the event was closed UTC. Null while live.
location object Event pin (see below) Fields are null until a pin is dropped
divisions array of division Divisions of the event, each with its sectors Ordered by id. Empty when the event has none.
sectors array of sector Sectors that report straight to the event rather than to a division Ordered by id
status
item type description comments
id integer or null ResponderHQ status id
name string or null Status name, e.g. Going, Controlled, Patrol, Out Closed events carry the closed status
map_colour string or null Colour ResponderHQ uses for this status on its own map Hex, e.g. #d9534f
region
item type description comments
id integer Region id
name string Region name
is_campaign boolean True when the region is a campaign shared between organisations e.g. an S44 or interstate deployment
location (event, division and sector pins)
item type description comments
lat number or null Latitude WGS84 decimal degrees
lng number or null Longitude WGS84 decimal degrees
locality string or null Place name recorded with the pin
Division (items in divisions)
item type description comments
id integer Division id Stable
name string Division name
location object Division pin Same fields as the event location
sectors array of sector Sectors in this division Ordered by id
Sector (items in sectors and divisions[].sectors)
item type description comments
id integer Sector id Stable
name string Sector name
location object Sector pin Same fields as the event location

Example (JSON)

{
  "generated_at": "2026-10-30T02:15:00Z",
  "closed_retention_days": 14,
  "truncated": false,
  "events": [
    {
      "id": 1144,
      "barcode": "f1234",
      "name": "Wombat Creek",
      "type": "wildfire",
      "category": "incident",
      "lifecycle": "active",
      "status": {"id": 2, "name": "Going", "map_colour": "#d9534f"},
      "is_closed": false,
      "owner_org_id": 3,
      "region": {"id": 27, "name": "Example Region", "is_campaign": false},
      "via_campaign": false,
      "created_at": "2026-10-29T22:01:13Z",
      "activated_at": null,
      "closed_at": null,
      "location": {"lat": -35.71, "lng": 150.17, "locality": "Example Locality"},
      "divisions": [
        {
          "id": 9012,
          "name": "Division A",
          "location": {"lat": -35.70, "lng": 150.15, "locality": null},
          "sectors": [
            {"id": 9015, "name": "Sector 1", "location": {"lat": null, "lng": null, "locality": null}}
          ]
        }
      ],
      "sectors": [
        {"id": 9020, "name": "Sector North", "location": {"lat": -35.69, "lng": 150.18, "locality": null}}
      ]
    }
  ]
}

GeoJSON

?format=geojson returns the same data as a standard GeoJSON FeatureCollection (RFC 7946, content type application/geo+json) that GIS tools can load directly as a layer. There is one Point feature per pin: the event, each division and each sector. Coordinates are [longitude, latitude]. A pin with no coordinates has "geometry": null, so it still appears in your attribute table. Feature ids are event-<id>, division-<id> and sector-<id>. Each division and sector feature repeats its event's fields, so every row stands on its own.

Feature properties
item type description comments
feature_kind string event, division or sector Style your layer on this
event_id integer Id of the event this pin belongs to Same on every feature of one event
event_barcode string Event barcode
event_name string Event name
name string This pin's own name The event, division or sector name
type, category, lifecycle string As in the JSON event
status string or null Status name
status_id integer or null Status id
map_colour string or null Status colour
is_closed, closed_at As in the JSON event
created_at, activated_at As in the JSON event
owner_org_id integer or null As in the JSON event
region_id integer Region id
region_name string Region name
via_campaign boolean As in the JSON event
locality string or null Place name recorded with this pin
parent_id string or null Feature id of the parent pin Null on the event; event-<id> on its divisions and direct sectors; division-<id> on a division's sectors

Example (GeoJSON)

{
  "type": "FeatureCollection",
  "properties": {"generated_at": "2026-10-30T02:15:00Z", "closed_retention_days": 14, "truncated": false},
  "features": [
    {
      "type": "Feature",
      "id": "event-1144",
      "geometry": {"type": "Point", "coordinates": [150.17, -35.71]},
      "properties": {
        "feature_kind": "event", "event_id": 1144, "event_barcode": "f1234",
        "event_name": "Wombat Creek", "name": "Wombat Creek",
        "type": "wildfire", "category": "incident", "lifecycle": "active",
        "status": "Going", "status_id": 2, "map_colour": "#d9534f",
        "is_closed": false, "closed_at": null,
        "created_at": "2026-10-29T22:01:13Z", "activated_at": null,
        "owner_org_id": 3, "region_id": 27, "region_name": "Example Region",
        "via_campaign": false, "locality": "Example Locality", "parent_id": null
      }
    },
    {
      "type": "Feature",
      "id": "sector-9015",
      "geometry": null,
      "properties": {
        "feature_kind": "sector", "event_id": 1144, "event_name": "Wombat Creek",
        "name": "Sector 1", "parent_id": "division-9012", "...": "other event fields as above"
      }
    }
  ]
}

Errors

item type description comments
401 Missing or invalid token
403 The token lacks ResponderHQ.Events.Read.All, or your organisation is not registered
400 format is not json or geojson