CityAlert.live History API

Historical aggregates and year archives

Operations 3

GET /api/archive Historical incident archive (paid) #
GET /api/trends Historical aggregates — crime YoY, quakes by region, GDACS by year #
GET /api/crime-year Full-year incident GeoJSON + neighbourhood ranking #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/cityalert-live:cityalert-live-history-api"
All apis
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.

Get an API 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 Specification

cityalert-live-history-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Cityalert Live History 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 history 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: History
  description: Historical aggregates and year archives
paths:
  /api/archive:
    get:
      tags:
      - History
      operationId: queryArchive
      summary: Historical incident archive (paid)
      description: Every incident every feed has ever returned, queryable backwards in time — the monetizable surface. Requires `x-api-key` on a Developer or Pro plan; per-plan daily limits apply (Developer 5,000/day, Pro 50,000/day).
      security:
      - apiKey: []
      parameters:
      - name: source
        in: query
        description: Feed key, e.g. 'usgs', 'vpd', 'zwaailicht'
        schema:
          type: string
      - name: region
        in: query
        description: Focus-region key (see GET /api/regions)
        schema:
          type: string
      - name: category
        in: query
        schema:
          type: string
          enum:
          - crime
          - fire
          - disaster
          - weather
          - unrest
          - health
          - infra
          - alert
          - report
      - name: bbox
        in: query
        description: Bounding box as minLon,minLat,maxLon,maxLat
        schema:
          type: string
          pattern: ^-?\d+(\.\d+)?(,-?\d+(\.\d+)?){3}$
      - name: from
        in: query
        description: ISO 8601 lower bound on the incident's occurred time
        schema:
          type: string
          format: date-time
      - name: to
        in: query
        description: ISO 8601 upper bound on the incident's occurred time
        schema:
          type: string
          format: date-time
      - name: limit
        in: query
        schema:
          type: integer
          minimum: 1
          maximum: 5000
          default: 500
      responses:
        '200':
          description: Archive rows, newest first
          content:
            application/json:
              schema:
                type: object
                properties:
                  incidents:
                    type: array
                    items:
                      type: object
                      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)
                        occurred:
                          type: string
                          format: date-time
                          description: When the incident occurred (ISO 8601)
                        first_seen:
                          type: string
                          format: date-time
                        last_seen:
                          type: string
                          format: date-time
                        times_seen:
                          type: integer
                  count:
                    type: integer
                  from:
                    type:
                    - string
                    - 'null'
                    format: date-time
                  to:
                    type:
                    - string
                    - 'null'
                    format: date-time
        '400':
          description: Invalid bbox or date range
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        '401':
          description: Missing or invalid x-api-key
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        '403':
          description: Key plan too low (Developer/Pro required)
          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
  /api/trends:
    get:
      tags:
      - History
      operationId: getTrends
      summary: Historical aggregates — crime YoY, quakes by region, GDACS by year
      responses:
        '200':
          description: Aggregate trend payload
          content:
            application/json:
              schema:
                type: object
                properties:
                  generatedAt:
                    type: string
                    format: date-time
                  crime:
                    type:
                    - object
                    - 'null'
                  history:
                    type: object
                  quakes:
                    type: array
                    items:
                      type: object
                  gdacs:
                    type: array
                    items:
                      type: object
                  reports:
                    type: object
                  snapshot:
                    type: object
                  errors:
                    type: array
                    items:
                      type: string
    servers:
    - url: https://cityalert.live
  /api/crime-year:
    get:
      tags:
      - History
      operationId: getCrimeYear
      summary: Full-year incident GeoJSON + neighbourhood ranking
      description: Returns a full year of incident-level data for regions with history (Vancouver VPD back to 2003; other cities via police portals or the media-scrape log).
      parameters:
      - name: year
        in: query
        required: true
        schema:
          type: integer
          minimum: 2003
      - name: region
        in: query
        schema:
          type: string
          default: vancouver
      responses:
        '200':
          description: Year archive
          content:
            application/json:
              schema:
                type: object
                properties:
                  year:
                    type: integer
                  region:
                    type: string
                  label:
                    type: string
                  caveat:
                    type: string
                  byNeighbourhood:
                    type: array
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                        count:
                          type: integer
                        lat:
                          type: number
                        lon:
                          type: number
                  geojson:
                    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)
        '400':
          description: Invalid year or region without history
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        '404':
          description: No data for that year
          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