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
- Events in your organisation's own regions.
- Events in campaign regions (for example an S44 or interstate deployment) your
organisation has joined. Access continues after your organisation leaves the campaign.
These events have
via_campaign set to true.
- Planned hazard reduction burns, marked
lifecycle: planned, so you can
prepare before the day.
- Closed events are marked
is_closed: true as soon as they close, and drop
out of the feed 14 days after closed_at.
- IMT and work entries are not events and never appear.
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 |
|