CityAlert.live Community API

User-submitted reports, votes and dashboards

Operations 6

GET /api/reports Community-submitted incident reports #
POST /api/reports Submit a community incident report #
POST /api/reports/{id}/vote Vote on a community report (confirm / resolve / flag) #
GET /api/dashboards Fetch a shared dashboard config by id #
POST /api/dashboards Create a shareable dashboard #
PUT /api/dashboards Update a dashboard (requires its token) #

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-community-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-community-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Cityalert Live Community 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 community 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: Community
  description: User-submitted reports, votes and dashboards
paths:
  /api/reports:
    get:
      tags:
      - Community
      operationId: listReports
      summary: Community-submitted incident reports
      responses:
        '200':
          description: Community reports
          content:
            application/json:
              schema:
                type: object
                properties:
                  reports:
                    type: array
                    items:
                      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)
    post:
      tags:
      - Community
      operationId: createReport
      summary: Submit a community incident report
      description: Rate-limited to 5 reports/hour per IP. New reports start as 'pending' and are confirmed by community votes before appearing as active.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - title
              - lat
              - lon
              properties:
                title:
                  type: string
                  maxLength: 200
                lat:
                  type: number
                  minimum: -90
                  maximum: 90
                lon:
                  type: number
                  minimum: -180
                  maximum: 180
                category:
                  type: string
                  enum:
                  - crime
                  - fire
                  - disaster
                  - weather
                  - unrest
                  - health
                  - infra
                  - alert
                  - report
                  default: report
                severity:
                  type: string
                  enum:
                  - low
                  - medium
                  - high
                  - critical
                  default: medium
                description:
                  type: string
                  maxLength: 2000
      responses:
        '201':
          description: Report created (status 'pending')
          content:
            application/json:
              schema:
                type: object
                properties:
                  report:
                    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: Validation error
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        '403':
          description: Blocked
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        '429':
          description: Rate limited
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
    servers:
    - url: https://cityalert.live
  /api/reports/{id}/vote:
    post:
      tags:
      - Community
      operationId: voteReport
      summary: Vote on a community report (confirm / resolve / flag)
      description: 'Community verification: 3 confirms activates a report, 2 resolves marks it resolved, 3 flags hides it. Rate-limited to 30 votes/hour per IP.'
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - kind
              properties:
                kind:
                  type: string
                  enum:
                  - confirm
                  - resolve
                  - flag
      responses:
        '200':
          description: Vote recorded
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Invalid kind or report state
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        '403':
          description: Blocked
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        '429':
          description: Rate limited
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
    servers:
    - url: https://cityalert.live
  /api/dashboards:
    get:
      tags:
      - Community
      operationId: getDashboard
      summary: Fetch a shared dashboard config by id
      parameters:
      - name: id
        in: query
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Dashboard config
          content:
            application/json:
              schema:
                type: object
        '404':
          description: Not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
    post:
      tags:
      - Community
      operationId: createDashboard
      summary: Create a shareable dashboard
      description: Returns {id, token}; the token is the write credential — share the URL, keep the token private.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - config
              properties:
                name:
                  type: string
                  maxLength: 100
                config:
                  type: object
      responses:
        '200':
          description: Created dashboard
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  token:
                    type: string
        '400':
          description: Invalid config
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
    put:
      tags:
      - Community
      operationId: updateDashboard
      summary: Update a dashboard (requires its token)
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - id
              - token
              - config
              properties:
                id:
                  type: string
                token:
                  type: string
                name:
                  type: string
                  maxLength: 100
                config:
                  type: object
      responses:
        '200':
          description: Updated
          content:
            application/json:
              schema:
                type: object
        '400':
          description: Missing fields
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
        '403':
          description: Bad token
          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