CityAlert.live Incidents API
Normalized live incident stream
Normalized live incident stream
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/cityalert-live:cityalert-live-incidents-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Cityalert Live Incidents API
version: 1.0.0
contact:
url: https://cityalert.live/contact
license:
name: CC BY 4.0
url: https://creativecommons.org/licenses/by/4.0/
description: 'Operations tagged incidents across 2 of this provider''s published API definitions: cityalert-live-openapi.json, cityalert-live-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://cityalert.live
tags:
- name: Incidents
description: Normalized live incident stream
paths:
/api/incidents:
get:
tags:
- Incidents
operationId: listIncidents
summary: Live incidents as a merged GeoJSON FeatureCollection
description: Returns the merged, deduplicated incident stream across all feeds. Default response is GeoJSON; `format=json` returns a plain incident array. `meta.feedSummary` reports aggregate source health; `meta.feeds` per-source status requires an x-api-key.
parameters:
- name: region
in: query
description: Focus-region key (see GET /api/regions)
schema:
type: string
enum:
- burnaby
- delta
- richmondbc
- newwest
- northshore
- mapleridge
- mission
- saanich
- westshore
- cowichan
- nanaimo
- parksville
- portalberni
- comoxvalley
- campbellriver
- powellriver
- sunshinecoast
- tofino
- northisland
- kelowna
- kamloops
- chilliwack
- squamish
- kootenays
- cariboo
- princegeorge
- peaceregion
- northwestbc
- windsor
- hamilton
- londonon
- kingston
- barrie
- peterborough
- quinte
- thunderbay
- sudbury
- northbay
- sault
- timmins
- sarnia
- chatham
- cornwall
- owensound
- muskoka
- durham
- halton
- gatineau
- sherbrooke
- troisrivieres
- saguenay
- drummondville
- rimouski
- gaspe
- abitibi
- cotenord
- longueuil
- laval
- levis
- moncton
- saintjohn
- fredericton
- capebreton
- truro
- newglasgow
- charlottetown
- stjohns
- brandon
- steinbach
- portage
- winkler
- lethbridge
- medicinehat
- airdrie
- stalbert
- banff
- cochrane
- lakeland
- lloydminster
- peaceriver
- whitecourt
- moosejaw
- princealbert
- battlefords
- yorkton
- swiftcurrent
- estevan
- weyburn
- melfort
- yellowknife
- whitehorse
- iqaluit
- vancouver
- vernon
- cabo
- manila
- seattle
- sf
- la
- chicago
- austin
- buffalo
- syracuse
- albanyny
- yonkers
- binghamton
- utica
- newark
- jerseycity
- paterson
- trenton
- atlanticcity
- camdennj
- longisland
- pittsburgh
- harrisburg
- allentown
- eriepa
- scranton
- lancasterpa
- hagerstown
- roanoke
- nova
- norfolk
- charlestonwv
- morgantown
- huntingtonwv
- wilmingtonde
- frederickmd
- southernmd
- delmarva
- fredericksburg
- charlottesville
- harrisonburg
- lynchburg
- danvilleva
- bristolva
- boston
- hartford
- newhaven
- providence
- manchesternh
- concordnh
- burlington
- uppervalley
- portlandme
- bangor
- ellsworthme
- springfieldma
- louisville
- lexington
- dayton
- toledo
- grandrapids
- lansing
- annarbor
- flint
- southbend
- fortwayne
- evansville
- bloomingtonin
- lafayettein
- nwcook
- aurorail
- foxvalley
- rockford
- peoria
- springfieldil
- champaign
- milwaukee
- madison
- greenbay
- kenosha
- racine
- eauclaire
- waukesha
- janesville
- appleton
- lacrosse
- duluth
- fargo
- bismarck
- grandforks
- siouxfalls
- rapidcity
- desmoines
- cedarrapids
- ames
- lincolnne
- quadcities
- iowacity
- siouxcity
- springfieldmo
- columbiamo
- wichita
- topeka
- durhamnc
- greensboro
- winstonsalem
- fayettevillenc
- asheville
- wilmingtonnc
- columbiasc
- charlestonsc
- greenvillesc
- spartanburg
- myrtlebeach
- savannah
- augusta
- columbusga
- macon
- athensga
- birminghamal
- montgomery
- mobile
- huntsville
- tuscaloosa
- florenceal
- dothan
- auburnal
- anniston
- knoxville
- chattanooga
- murfreesboro
- jacksonms
- gulfport
- littlerock
- fayettevillear
- shreveport
- lakecharles
- lafayettela
- tulsa
- miami
- orlando
- stpete
- jacksonville
- tallahassee
- naples
- pensacola
- treasurecoast
- citrusco
- sarasota
- keywest
- spacecoast
- laredo
- sanangelo
- texarkana
- kilgore
- elpaso
- corpuschristi
- lubbock
- amarillo
- rgv
- waco
- midlandtx
- tyler
- beaumont
- killeen
- sanmarcos
- bryancs
- galveston
- woodlands
- boulder
- auroraco
- fortcollins
- cosprings
- casper
- cheyenne
- jacksonwy
- chandler
- gilbert
- scottsdale
- verdevalley
- flagstaff
- yuma
- santafe
- lascruces
- riorancho
- roswell
- farmington
- reno
- carsoncity
- nampa
- coeurdalene
- idahofalls
- twinfalls
- billings
- missoula
- bozeman
- greatfalls
- helena
- kalispell
- nyc
- neworleans
- cincinnati
- kansascity
- batonrouge
- detroit
- charlotte
- tampa
- rochester
- indianapolis
- minneapolis
- boise
- tucson
- tempe
- henderson
- atlanta
- lasvegas
- dallas
- houston
- denver
- vancouverwa
- portland
- baltimore
- nashville
- memphis
- philadelphia
- sandiego
- columbus
- cleveland
- okc
- sacramento
- slc
- dc
- georgetown
- riverside
- irvine
- fremont
- redwoodcity
- delraybeach
- gainesville
- palmcoast
- worcester
- provo
- richmond
- albuquerque
- franklintn
- longview
- lawrenceks
- bridgeport
- sanantonio
- fortworth
- phoenix
- stlouis
- omaha
- oakland
- toronto
- raleigh
- halifax
- montreal
- ottawa
- york
- peel
- edmonton
- regina
- victoria
- abbotsford
- winnipeg
- calgary
- quebeccity
- niagara
- waterloo
- guelph
- southsimcoe
- stratford
- brantford
- newbrunswick
- novascotia
- pei
- newfoundland
- quebec
- saskatoon
- surrey
- portcoquitlam
- coquitlam
- langleybc
- reddeer
- grandeprairie
- fortmcmurray
- tacoma
- everett
- bellevue
- yakima
- spokane
- bellingham
- bend
- salem
- eugene
- medford
- gresham
- corvallis
- albany
- lincolncoast
- redding
- stockton
- berkeley
- concord
- santarosa
- santacruz
- eureka
- longbeach
- ventura
- palmsprings
- santamaria
- santabarbara
- slo
- anchorage
- matsu
- fairbanks
- juneau
- honolulu
- oahu
- bigisland
- maui
- kauai
- saopaulo
- rio
- salvador
- buenosaires
- bogota
- lima
- santiago
- medellin
- cdmx
- guadalajara
- monterrey
- tijuana
- cancun
- sydney
- melbourne
- brisbane
- perth
- auckland
- wellington
- tokyo
- istanbul
- jakarta
- israel
- cairo
- nairobi
- capetown
- dubai
- riyadh
- abudhabi
- jeddah
- doha
- kuwaitcity
- manama
- muscat
- beirut
- amman
- ankara
- tehran
- baghdad
- sanaa
- damascus
- lagos
- hongkong
- singapore
- bangkok
- cebu
- hochiminh
- hanoi
- penang
- johorbahru
- kuching
- kotakinabalu
- seoul
- taipei
- davao
- chiangmai
- phuket
- danang
- haiphong
- phnompenh
- siemreap
- sihanoukville
- darwin
- adelaide
- kualalumpur
- manchester
- birmingham
- leeds
- liverpool
- bristol
- belfast
- cardiff
- newcastle
- sheffield
- nottingham
- leicester
- coventry
- southampton
- portsmouth
- plymouth
- hull
- oslo
- lisbon
- porto
- reykjavik
- berlin
- london
- stockholm
- amsterdam
- denhaag
- rotterdam
- utrecht
- eindhoven
- groningen
- munich
- prague
- ostrava
- plzen
- olomouc
- sumperk
- bruntal
- brno
- ceskebudejovice
- liberec
- hradeckralove
- pardubice
- ustinadlabem
- jihlava
- karlovyvary
- zlin
- paris
- madrid
- barcelona
- rome
- milan
- hamburg
- vienna
- warsaw
- dublin
- cork
- galway
- brussels
- copenhagen
- helsinki
- athens
- budapest
- malmo
- goteborg
- karlstad
- halmstad
- sundsvall
- umea
- falun
- orebro
- lulea
- ostersund
- jonkoping
- nykoping
- linkoping
- vasteras
- gavle
- uppsala
- vaxjo
- karlskrona
- kalmar
- visby
- bergen
- trondheim
- laspalmas
- houffalize
- stroud
- johannesburg
- delhi
- karachi
- dhaka
- kyiv
- moscow
- stpetersburg
- minsk
- almaty
- astana
- ulaanbaatar
- kathmandu
- beijing
- shanghai
- zhengzhou
- vientiane
- tripoli
- algiers
- tunis
- alberta
- saskatchewan
- manitoba
- yukon
- nwt
- nunavut
- oregon
- washingtonstate
- idaho
- vermont
- texas
- maryland
- kansas
- newmexico
- northcarolina
- connecticut
- germany
- newzealand
- queensland
- colombia
- ecuador
- guatemala
- dominicanrep
- uganda
- zambia
- austria
- switzerland
- denmark
- finland
- hungary
- italy
- cyprus
- tasmania
- papuanewguinea
- srilanka
- kazakhstan
- elsalvador
- newsouthwales
- victoriaau
- act
- ontario
- bc
- canada
- usa
- mexico
- brazil
- argentina
- chile
- peru
- france
- spain
- portugal
- uk
- ireland
- netherlands
- belgium
- poland
- czechia
- greece
- romania
- serbia
- norway
- sweden
- turkiye
- morocco
- egypt
- nigeria
- kenya
- southafrica
- saudiarabia
- uae
- qatar
- bahrain
- kuwait
- jordan
- lebanon
- oman
- syria
- iraq
- yemen
- iran
- pakistan
- india
- bangladesh
- japan
- southkorea
- taiwan
- australia
- indonesia
- philippines
- malaysia
- thailand
- vietnam
- cambodia
- ukraine
- russia
- china
- mongolia
- belarus
- nepal
- laos
- tunisia
- algeria
- libya
- iceland
- alabama
- alaska
- arizona
- arkansas
- california
- colorado
- delaware
- florida
- georgia
- hawaii
- illinois
- indiana
- iowa
- kentucky
- louisiana
- maine
- massachusetts
- michigan
- minnesota
- mississippi
- missouri
- montana
- nebraska
- nevada
- newhampshire
- newjersey
- newyork
- northdakota
- ohio
- oklahoma
- pennsylvania
- rhodeisland
- southcarolina
- southdakota
- tennessee
- utah
- virginia
- westvirginia
- wisconsin
- wyoming
- westernaustralia
- southaustralia
- northernterritory
- england
- scotland
- wales
- northernireland
- jalisco
- nuevoleon
- bajacalifornia
- bajacaliforniasur
- quintanaroo
- saopaulostate
- riodejaneirostate
- bavaria
- johor
- sarawak
- sabah
- abudhabiemirate
- buenosairesprov
- lagosstate
- sindh
- nctdelhi
- moscowoblast
- leningradoblast
- beijingmun
- shanghaimun
- name: category
in: query
schema:
type: string
enum:
- crime
- fire
- disaster
- weather
- unrest
- health
- infra
- alert
- report
- name: categories
in: query
description: Comma-separated multi-category filter (supersedes 'category' when both are sent)
schema:
type: string
- name: groups
in: query
description: Comma-separated normalized-subtype filter, e.g. 'collision,outage' (group keys are globally unique — no category prefix needed)
schema:
type: string
- name: minSeverity
in: query
description: Minimum severity, ordered low < medium < high < critical
schema:
type: string
enum:
- low
- medium
- high
- critical
- name: q
in: query
description: Case-insensitive substring search over type, title and neighbourhood (max 100 chars)
schema:
type: string
maxLength: 100
- name: source
in: query
description: Feed key, e.g. 'usgs', 'vpd', 'zwaailicht'
schema:
type: string
- name: bbox
in: query
description: Bounding box as minLon,minLat,maxLon,maxLat
schema:
type: string
pattern: ^-?\d+(\.\d+)?(,-?\d+(\.\d+)?){3}$
- name: days
in: query
description: Only incidents within the last N days (max 365)
schema:
type: integer
minimum: 1
maximum: 365
- name: id
in: query
description: Fetch a single incident by id
schema:
type: string
- name: limit
in: query
schema:
type: integer
minimum: 1
maximum: 10000
default: 10000
- name: format
in: query
description: '''json'' returns {incidents, meta}; default is GeoJSON'
schema:
type: string
enum:
- json
- geojson
- name: refresh
in: query
description: '''1'' forces a synchronous re-fetch of upstream feeds'
schema:
type: string
enum:
- '1'
responses:
'200':
description: GeoJSON FeatureCollection (or {incidents, meta} when format=json)
content:
application/json:
schema:
type: object
properties:
type:
type: string
enum:
- FeatureCollection
features:
type: array
items:
type: object
properties:
type:
type: string
enum:
- Feature
geometry:
type: object
properties:
type:
type: string
enum:
- Point
coordinates:
type: array
items:
type: number
minItems: 2
maxItems: 2
properties:
type: object
required:
- id
- source
- category
- type
- title
- lat
- lon
- time
- severity
properties:
id:
type: string
description: Stable incident identifier (source-prefixed)
source:
type: string
description: Feed key that produced the incident
category:
type: string
enum:
- crime
- fire
- disaster
- weather
- unrest
- health
- infra
- alert
- report
group:
type: string
enum:
- violent
- property
- vehicle-crime
- drug
- weapons
- sexual
- fraud
- disorder
- traffic
- police-ops
- crime-other
- wildfire
- structure-fire
- vehicle-fire
- alarm
- hazmat
- rescue
- fire-other
- earthquake
- flood
- storm
- tsunami
- volcano
- landslide
- disaster-other
- wind
- winter
- heat
- rain
- marine
- fog
- air-quality
- weather-other
- protest
- conflict
- unrest-other
- ems
- outbreak
- health-other
- collision
- outage
- road
- transit
- water
- infra-other
- evacuation
- amber
- shelter
- civil
- alert-other
- suspicious
- missing-person
- noise
- welfare
- hazard
- report-other
description: Normalized subtype within the category (e.g. 'collision', 'wildfire', 'missing-person') — assigned by the central classifier; every incident has one
type:
type: string
description: Source-specific incident type, e.g. 'earthquake' or 'Break and Enter'
title:
type: string
description:
type: string
lat:
type: number
lon:
type: number
time:
type: string
format: date-time
description: Reported time, ISO 8601
severity:
type: string
enum:
- low
- medium
- high
- critical
url:
type: string
format: uri
region:
type: string
description: Focus-region key when the point falls inside one
nhood:
type: string
description: Neighbourhood/area label when the feed provides one
status:
type: string
enum:
- pending
- active
- resolved
- hidden
description: Community-report verification state (manual reports only)
meta:
type: object
properties:
total:
type: integer
returned:
type: integer
fetchedAt:
type: string
format: date-time
feeds:
type: array
items:
type: object
properties:
source:
type: string
ok:
type: boolean
count:
type: integer
error:
type: string
stale:
type: boolean
facets:
type: object
description: Filter-panel counts over the spatial/temporal/category base set, computed before groups/minSeverity/q narrowing
properties:
categories:
type: object
additionalProperties:
type: integer
groups:
type: object
additionalProperties:
type: integer
severities:
type: object
additionalProperties:
type: integer
'400':
description: Invalid bbox
content:
application/json:
schema:
type: object
properties:
error:
type: string
'401':
description: days>7 requires an API key
content:
application/json:
schema:
type: object
properties:
error:
type: string
'403':
description: Key plan too low
content:
application/json:
schema:
type: object
properties:
error:
type: string
'429':
description: Daily plan limit reached
content:
application/json:
schema:
type: object
properties:
error:
type: string
servers:
- url: https://cityalert.live
components:
securitySchemes:
apiKey:
type: apiKey
in: header
name: x-api-key
description: Paid API key (ca_…) — see /developers for plan tiers
x-refined-from:
- cityalert-live-openapi.json
- cityalert-live-openapi.json