Build with municipal.systems

Explore, query, analyze, and submit data for governments around the world using our robust API.

Get Started

Response Format

 

Singular Responses

Singular responses are a single item, like Crime #123 or User #567.

Example

{
  "id": "jers-nj",
  "displayName": "Jersey City",
  "name": "Jersey City, NJ",
  "image": "https://www.njsbdc.com/wp-content/uploads/2014/08/iStock_000020759626_Full.jpg",
  "createdAt": "2016-09-13T19:43:39.620Z",
  "updatedAt": "2016-09-13T19:43:39.620Z",
  "boundaryId": "USA-3436000"
}

Collection Responses

Collection responses are a set of multiple items. These responses have two guaranteed attributes: meta and results.

meta

The meta attribute is an object that contains metadata about the results data. This can include pagination information, api limits, query information, data types, display hints, and other useful information about the data. This object will always contain results and total counts to help with pagination.

results

The results attribute is an array of objects representing the data you requested from the API.

Example

{
  "results":[
    {
      "id":"jers-nj",
      "displayName":"Jersey City",
      "name":"Jersey City, NJ",
      "image":"https://www.njsbdc.com/wp-content/uploads/2014/08/iStock_000020759626_Full.jpg",
      "createdAt":"2016-09-13T19:43:39.620Z",
      "updatedAt":"2016-09-13T19:43:39.620Z",
      "boundaryId":"USA-3436000"
    },
    {
      "id":"nyc-ny",
      "displayName":"New York",
      "name":"New York, NY",
      "image":"https://images.unsplash.com/uploads/1412594480669535c9ef9/9d85c477",
      "createdAt":"2016-09-13T19:43:39.620Z",
      "updatedAt":"2016-09-13T19:43:39.620Z",
      "boundaryId":"USA-3651000"
    },
    {
      "id":"chi-il",
      "displayName":"Chicago",
      "name":"Chicago, IL",
      "image":"https://images.unsplash.com/photo-1444795072735-afab18f87005",
      "createdAt":"2016-09-13T19:43:39.620Z",
      "updatedAt":"2016-09-13T19:43:39.620Z",
      "boundaryId":"USA-1714000"
    },
    {
      "id":"sf-ca",
      "displayName":"San Francisco",
      "name":"San Francisco, CA",
      "image":"https://images.unsplash.com/photo-1428341751458-3c844056bc0f",
      "createdAt":"2016-09-13T19:43:39.620Z",
      "updatedAt":"2016-09-13T19:43:39.620Z",
      "boundaryId":"USA-0667000"
    }
  ],
  "meta":{
    "results":4,
    "total":4
  }
}

Data Format

 

Coordinate System

All coordinates are assumed to be WSG84. Geographic objects are represented as GeoJSON.

We typically use Points, MultiPolygons, and LineStrings to represent location data.

Reminder: GeoJSON positions are [ longitude, latitude, elevation ] (you can learn more about that here).

Example

{
  "type": "Point",
  "coordinates": [
    125.6,
    10.1
  ]
}

Time Format

All timestamps are represented as ISO-8601 strings.

The ISO-8601 format is YYYY-MM-DDTHH:mm:ss.sssZ, so September 14th, 2016 at 6:05:30PM is represented as 2016-09-14T22:05:30.161Z

Measurements

All measurements are stored using the metric system for maximum accuracy and accessibility. If your data or display is using non-metric measurements, you'll need to convert.

Missing Fields

Empty fields are included as null instead of being omitted from the response. While this may increase bandwidth slightly, it provides more context and information about the data to the consumer.

Pricing

 
Requests Per Month
Pricing

Up to 10K

Free with API Key

More than 10K

Paid

Contact for more info!

Boundary Properties

 
Field
Type
Description

id

String

Unique ID

name

String

Name of the boundary (state name, city name, zip code #, etc.)

type

String

Type of boundary (country, state, county, city, zip, neighborhood, etc.)

official

Boolean

Is this boundary an official government representation?

area

GeoJSON MultiPolygon

Shape of the boundary

createdAt

Date

Date and time when the boundary was added to our system

updatedAt

Date

Date and time when the boundary was last modified in our system

Search Boundaries

 
gethttps://municipal.systems/v1/boundaries
import request from 'superagent'

request
  .get('https://municipal.systems/v1/boundaries')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "results": [
    {
      "id": "USA-7839700",
      "name": "Frederiksted Southeast",
      "type": "place",
      "official": true,
      "area": {
        "type": "MultiPolygon",
        "coordinates": [
          // really long coordinates array here!
        ]
      },
      "createdAt": "2016-08-23T17:52:17.755Z",
      "updatedAt": "2016-08-23T17:52:17.755Z"
    },
    {
      "id": "USA-7865530",
      "name": "Red Hook",
      "type": "place",
      "official": true,
      "area": {
        "type": "MultiPolygon",
        "coordinates": [
          // really long coordinates array here!
        ]
      },
      "createdAt": "2016-08-23T17:52:17.755Z",
      "updatedAt": "2016-08-23T17:52:17.755Z"
    },
    {
      "id": "USA-7837900",
      "name": "Frederiksted",
      "type": "place",
      "official": true,
      "area": {
        "type": "MultiPolygon",
        "coordinates": [
          // really long coordinates array here!
        ]
      },
      "createdAt": "2016-08-23T17:52:17.755Z",
      "updatedAt": "2016-08-23T17:52:17.755Z"
    },
    {
      "id": "USA-7878300",
      "name": "Tutu",
      "type": "place",
      "official": true,
      "area": {
        "type": "MultiPolygon",
        "coordinates": [
          // really long coordinates array here!
        ]
      },
      "createdAt": "2016-08-23T17:52:17.755Z",
      "updatedAt": "2016-08-23T17:52:17.755Z"
    },
    {
      "id": "USA-7818100",
      "name": "Charlotte Amalie East",
      "type": "place",
      "official": true,
      "area": {
        "type": "MultiPolygon",
        "coordinates": [
          // really long coordinates array here!
        ]
      },
      "createdAt": "2016-08-23T17:52:17.745Z",
      "updatedAt": "2016-08-23T17:52:17.745Z"
    }
  ],
  "meta": {
    "results": 5,
    "total": 29910
  }
}
 

Boundary Lookup

 
gethttps://municipal.systems/v1/boundaries/boundaryId
import request from 'superagent'

request
  .get('https://municipal.systems/v1/boundaries/USA-7865530')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "id": "USA-7865530",
  "name": "Red Hook",
  "type": "place",
  "official": true,
  "area": {
    "type": "MultiPolygon",
    "coordinates": [
      // big list of coordinates here!
    ]
  },
  "createdAt": "2016-08-23T17:52:17.755Z",
  "updatedAt": "2016-08-23T17:52:17.755Z"
}

Path Params

boundaryId
string
required

Unique ID for the boundary

 

Municipality Properties

 
Field
Type
Description

id

String

Unique ID

name

String

Full legal name for the municipality

displayName

String

Short display name for the municipality

theme

Object

Custom theme metadata for the municipality (logo, image, colors, etc.)

boundaryId

String

Reference to the Boundary for this city, representing it's geographic bounds

createdAt

Date

Date and time when the municipality was added to our system

updatedAt

Date

Date and time when the municipality was last modified in our system

Search Municipalities

 
gethttps://municipal.systems/v1/municipalities
import request from 'superagent'

request
  .get('https://municipal.systems/v1/municipalities')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "results": [
    {
      "id": "jers-nj",
      "displayName": "Jersey City",
      "name": "Jersey City, NJ",
      "image": "https://example.com/photo.png",
      "createdAt": "2016-08-23T19:26:25.713Z",
      "updatedAt": "2016-08-23T19:26:25.713Z",
      "boundaryId": "USA-3436000"
    },
    {
      "id": "sf-ca",
      "displayName": "San Francisco",
      "name": "San Francisco, CA",
      "image": "https://example.com/photo.png",
      "createdAt": "2016-08-23T19:26:25.713Z",
      "updatedAt": "2016-08-23T19:26:25.713Z",
      "boundaryId": "USA-0667000"
    },
    {
      "id": "nyc-ny",
      "displayName": "New York",
      "name": "New York, NY",
      "image": "https://example.com/photo.png",
      "createdAt": "2016-08-23T19:26:25.713Z",
      "updatedAt": "2016-08-23T19:26:25.713Z",
      "boundaryId": "USA-3651000"
    },
    {
      "id": "chi-il",
      "displayName": "Chicago",
      "name": "Chicago, IL",
      "image": "https://example.com/photo.png",
      "createdAt": "2016-08-23T19:26:25.713Z",
      "updatedAt": "2016-08-23T19:26:25.713Z",
      "boundaryId": "USA-1714000"
    }
  ],
  "meta": {
    "results": 4,
    "total": 4
  }
}

Query Params

search
string

Filter by case insensitive search

before
date

Filter results to only those that happened before the given date time.

after
date

Filter results to only those that happened after the given date time.

within
object

Only show results where the geolocation is within the given bounding box

 
orderings
array

Order the results. Direction can be asc or desc.

filters
object

Filter the results. Key is the field name, value is a comparator.

 
limit
int32

Limit the number of results

offset
int32

Adjust the offset of the query

 

Municipality Lookup

 
gethttps://municipal.systems/v1/municipalities/municipalityId
import request from 'superagent'

request
  .get('https://municipal.systems/v1/municipalities/jers-nj')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "id": "jers-nj",
  "displayName": "Jersey City",
  "name": "Jersey City, NJ",
  "image": "http://example.com/image.png",
  "createdAt": "2016-08-23T19:26:25.713Z",
  "updatedAt": "2016-08-23T19:26:25.713Z",
  "boundaryId": "USA-3436000"
}

Path Params

municipalityId
string
required

Unique ID for the municipality

 

Search Providers

 
gethttps://municipal.systems/v1/municipalities/municipalityId/providers
import request from 'superagent'

request
  .get('https://municipal.systems/v1/municipalities/jers-nj/providers?enabled=true')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "results": [
    {
      "id": "8bb3fe61-3f7a-480e-8817-efe73a1bcb00",
      "name": "JC Mural Project",
      "dataType": "mural",
      "username": "contra",
      "datums": 0,
      "enabled": true,
      "notes": "Imported from the Jersey City Open Data Portal, data originates from the Jersey City Mural Arts Program.",
      "municipality_provider": {
        "createdAt": "2017-02-01T07:43:13.000Z",
        "updatedAt": "2017-02-01T07:43:13.000Z",
        "municipalityId": "jers-nj",
        "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb00"
      }
    },
    {
      "id": "8bb3fe61-3f7a-480e-8817-efe73a1bcb04",
      "name": "NYC Taxi",
      "dataType": "trip",
      "username": "contra",
      "datums": 0,
      "enabled": true,
      "notes": "Imported from the NYC Taxi Commission.",
      "municipality_provider": {
        "createdAt": "2017-02-01T07:43:55.000Z",
        "updatedAt": "2017-02-01T07:43:55.000Z",
        "municipalityId": "jers-nj",
        "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb04"
      }
    },
    {
      "id": "8bb3fe61-3f7a-480e-8817-efe73a1bcb02",
      "name": "JC Police Dispatch",
      "dataType": "crime",
      "username": "contra",
      "datums": 0,
      "enabled": true,
      "notes": "Imported from the Jersey City Open Data Portal, data originates from 911 call centers.",
      "municipality_provider": {
        "createdAt": "2017-02-01T07:43:52.000Z",
        "updatedAt": "2017-02-01T07:43:52.000Z",
        "municipalityId": "jers-nj",
        "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb02"
      }
    },
    {
      "id": "8bb3fe61-3f7a-480e-8817-efe73a1bcb03",
      "name": "JC Property",
      "dataType": "government_property",
      "username": "contra",
      "datums": 0,
      "enabled": true,
      "notes": "Imported from the Jersey City Open Data Portal.",
      "municipality_provider": {
        "createdAt": "2017-02-01T07:43:12.000Z",
        "updatedAt": "2017-02-01T07:43:12.000Z",
        "municipalityId": "jers-nj",
        "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb03"
      }
    },
    {
      "id": "8bb3fe61-3f7a-480e-8817-efe73a1bcb05",
      "name": "JC Permits",
      "dataType": "building_permit",
      "username": "contra",
      "datums": 0,
      "enabled": true,
      "notes": "Imported from SDL API, data covers Jersey City.",
      "municipality_provider": {
        "createdAt": "2017-02-01T07:43:12.000Z",
        "updatedAt": "2017-02-01T07:43:12.000Z",
        "municipalityId": "jers-nj",
        "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb05"
      }
    },
    {
      "id": "8bb3fe61-3f7a-480e-8817-efe73a1bcb06",
      "name": "JC Parks",
      "dataType": "park",
      "username": "contra",
      "datums": 0,
      "enabled": true,
      "notes": "Imported from the Jersey City Open Data Portal.",
      "municipality_provider": {
        "createdAt": "2017-02-01T07:43:16.000Z",
        "updatedAt": "2017-02-01T07:43:16.000Z",
        "municipalityId": "jers-nj",
        "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb06"
      }
    },
    {
      "id": "8bb3fe61-3f7a-480e-8817-efe73a1bcb07",
      "name": "SeeClickFix",
      "dataType": "issue",
      "username": "contra",
      "datums": 0,
      "enabled": true,
      "notes": "Imported from SeeClickFix API, covers the entire USA.",
      "municipality_provider": {
        "createdAt": "2017-02-01T07:43:15.000Z",
        "updatedAt": "2017-02-01T07:43:15.000Z",
        "municipalityId": "jers-nj",
        "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb07"
      }
    },
    {
      "id": "8bb3fe61-3f7a-480e-8817-efe73a1bcb11",
      "name": "JC Bike Lanes",
      "dataType": "bike_lane",
      "username": "contra",
      "datums": 0,
      "enabled": true,
      "notes": "Imported from the Jersey City Open Data Portal.",
      "municipality_provider": {
        "createdAt": "2017-02-01T07:43:11.000Z",
        "updatedAt": "2017-02-01T07:43:11.000Z",
        "municipalityId": "jers-nj",
        "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb11"
      }
    },
    {
      "id": "8bb3fe61-3f7a-480e-8817-efe73a1bcb14",
      "name": "JC Zones",
      "dataType": "zone",
      "username": "contra",
      "datums": 0,
      "enabled": true,
      "notes": "Imported from the Jersey City Open Data Portal, data originates from the Department of Planning.",
      "municipality_provider": {
        "createdAt": "2017-02-16T03:56:09.212Z",
        "updatedAt": "2017-02-16T03:56:09.212Z",
        "municipalityId": "jers-nj",
        "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb14"
      }
    },
    {
      "id": "8bb3fe61-3f7a-480e-8817-efe73a1bcb01",
      "name": "JC CitiBike",
      "dataType": "trip",
      "username": "contra",
      "datums": 0,
      "enabled": true,
      "notes": "Imported from the Jersey City Open Data Portal, data originates from CitiBike.",
      "municipality_provider": {
        "createdAt": "2017-02-05T23:05:35.000Z",
        "updatedAt": "2017-02-05T23:05:35.000Z",
        "municipalityId": "jers-nj",
        "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb01"
      }
    },
    {
      "id": "8bb3fe61-3f7a-480e-8817-efe73a1bcb09",
      "name": "JC Closures",
      "dataType": "street_closure",
      "username": "contra",
      "datums": 0,
      "enabled": true,
      "notes": "Imported from the Jersey City Open Data Portal.",
      "municipality_provider": {
        "createdAt": "2017-02-01T07:43:17.000Z",
        "updatedAt": "2017-02-01T07:43:17.000Z",
        "municipalityId": "jers-nj",
        "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb09"
      }
    },
    {
      "id": "8bb3fe61-3f7a-480e-8817-efe73a1bcb15",
      "name": "JC Parcels",
      "dataType": "parcel",
      "username": "contra",
      "datums": 0,
      "enabled": true,
      "notes": "Imported from the Jersey City Open Data Portal, data originates from the Department of Planning.",
      "municipality_provider": {
        "createdAt": "2017-02-01T07:43:53.000Z",
        "updatedAt": "2017-02-01T07:43:53.000Z",
        "municipalityId": "jers-nj",
        "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb15"
      }
    },
    {
      "id": "8bb3fe61-3f7a-480e-8817-efe73a1bcb18",
      "name": "Waze Traffic Jams",
      "dataType": "traffic_jam",
      "username": "contra",
      "datums": 0,
      "enabled": true,
      "notes": "Imported from the Waze API.",
      "municipality_provider": {
        "createdAt": "2017-02-16T03:56:16.466Z",
        "updatedAt": "2017-02-16T03:56:16.466Z",
        "municipalityId": "jers-nj",
        "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb18"
      }
    },
    {
      "id": "8bb3fe61-3f7a-480e-8817-efe73a1bcb21",
      "name": "Atlanta Work Orders",
      "dataType": "issue",
      "username": "contra",
      "datums": 0,
      "enabled": true,
      "notes": "Imported from the Atlanta Department of Planning",
      "municipality_provider": {
        "createdAt": "2017-02-16T17:09:15.910Z",
        "updatedAt": "2017-02-16T17:09:15.910Z",
        "municipalityId": "jers-nj",
        "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb21"
      }
    },
    {
      "id": "8bb3fe61-3f7a-480e-8817-efe73a1bcb23",
      "name": "Jersey City Business Data",
      "dataType": "business",
      "username": "contra",
      "datums": 0,
      "enabled": true,
      "notes": "Imported from the Jersey City Business Records",
      "municipality_provider": {
        "createdAt": "2017-02-16T03:50:50.626Z",
        "updatedAt": "2017-02-16T03:50:50.626Z",
        "municipalityId": "jers-nj",
        "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb23"
      }
    },
    {
      "id": "8bb3fe61-3f7a-480e-8817-efe73a1bcb20",
      "name": "CitiBike Stations",
      "dataType": "transit_station",
      "username": "contra",
      "datums": 0,
      "enabled": true,
      "notes": "Imported from CitiBike API.",
      "municipality_provider": {
        "createdAt": "2017-02-16T03:50:54.235Z",
        "updatedAt": "2017-02-16T03:50:54.235Z",
        "municipalityId": "jers-nj",
        "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb20"
      }
    }
  ],
  "meta": {
    "results": 16,
    "total": 16
  }
}

Path Params

municipalityId
string
required

Unique ID for the municipality

Query Params

enabled
boolean

Show enabled sources. true will show only enabled, false will show only disabled.

count
boolean

Return accurate datums count - may be slower.

 

Provider Lookup

 
gethttps://municipal.systems/v1/providers/providerId
import request from 'superagent'

request
  .get('https://municipal.systems/v1/providers/8bb3fe61-3f7a-480e-8817-efe73a1bcb00')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "id": "8bb3fe61-3f7a-480e-8817-efe73a1bcb00",
  "userId": "812ecb4d-6c55-48c6-943b-eb5b9af15eb5",
  "createdAt": "2017-02-01T07:40:13.000Z",
  "updatedAt": "2017-02-01T07:40:13.000Z",
  "name": "JC Mural Project",
  "notes": "Imported from the Jersey City Open Data Portal, data originates from the Jersey City Mural Arts Program.",
  "dataType": "mural",
  "verified": true,
  "municipalities": [
    {
      "id": "jers-nj",
      "createdAt": "2017-02-01T07:40:13.000Z",
      "updatedAt": "2017-02-17T20:20:17.000Z",
      "displayName": "Jersey City",
      "name": "Jersey City, NJ",
      "meta": null,
      "theme": {
        "image": "https://i.scaley.io/1360x600-png-b5/i.imgur.com/W3gTsug.jpg"
      },
      "boundaryId": "USA-3436000",
      "municipality_provider": {
        "createdAt": "2017-02-01T07:43:13.000Z",
        "updatedAt": "2017-02-01T07:43:13.000Z",
        "municipalityId": "jers-nj",
        "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb00"
      }
    }
  ]
}

Path Params

providerId
string
required

Unique ID for the provider

 

Crime Properties

 
Field
Type
Required
Description

id

String

No (generated)

Unique identifier generated by municipal.systems

createdAt

Date

No (generated)

Date and time when the record was created by municipal.systems

updatedAt

Date

No (generated)

Date and time when the record was last updated by municipal.systems

sourceId

Unique String

Yes

Unique identifier for the data from the source

receivedAt

Date

Yes

Date and time when the crime was first reported

dispatchedAt

Date

No

Date and time when the unit was dispatched

arrivedAt

Date

No

Date and time when the unit arrived at the location

units

Array of Strings

No

Unique identifiers for the units dispatched to the crime scene

type

String

No

Type of crime ("violent", "property", "traffic", etc.)

description

String

No

Description of the crime ("vehicle accident", "homicide", "robbery", etc.)

images

Array of URLs

No

List of images associated with the crime

location

GeoJSON Point

Yes

Location where the crime occurred

meta

Object

No

Any non-standard fields

Validation

  • All required fields must be present
  • Locations can't be 0, 0
  • Date sequence must be in order (receivedAt -> dispatchedAt -> arrivedAt)

Search Crimes

 
gethttps://municipal.systems/v1/municipalities/municipalityId/crimes
import request from 'superagent'

request
  .get('https://municipal.systems/v1/municipalities/jers-nj/crimes')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "results": [
    {
      "id": "fdcde021a27c16f549dbd63da2ceb717",
      "sourceId": "15-147198",
      "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb02",
      "createdAt": "2017-02-01T18:24:01.000Z",
      "updatedAt": "2017-02-01T18:24:01.000Z",
      "images": null,
      "receivedAt": "2015-07-18T19:03:00.000Z",
      "dispatchedAt": "2015-07-18T19:05:00.000Z",
      "arrivedAt": "2015-07-18T19:38:00.000Z",
      "units": [
        "S203"
      ],
      "type": null,
      "description": "driveway parking violation",
      "location": {
        "type": "Point",
        "coordinates": [
          -74.08859253,
          40.69771576
        ]
      },
      "meta": null
    },
    {
      "id": "3c896631deb7695d8f7a9049672871a0",
      "sourceId": "15-147194",
      "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb02",
      "createdAt": "2017-02-01T18:24:01.000Z",
      "updatedAt": "2017-02-01T18:24:01.000Z",
      "images": null,
      "receivedAt": "2015-07-18T18:55:00.000Z",
      "dispatchedAt": "2015-07-18T18:58:00.000Z",
      "arrivedAt": "2015-07-18T19:14:00.000Z",
      "units": [
        "W603"
      ],
      "type": null,
      "description": "neighbor dispute",
      "location": {
        "type": "Point",
        "coordinates": [
          -74.0719986,
          40.71149445
        ]
      },
      "meta": null
    },
    {
      "id": "34cffbfebd99db8d70a870d50586ab2b",
      "sourceId": "15-147191",
      "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb02",
      "createdAt": "2017-02-01T18:24:01.000Z",
      "updatedAt": "2017-02-01T18:24:01.000Z",
      "images": null,
      "receivedAt": "2015-07-18T18:48:00.000Z",
      "dispatchedAt": "2015-07-18T18:51:00.000Z",
      "arrivedAt": "2015-07-18T18:58:00.000Z",
      "units": [
        "S603",
        "S203",
        "SMLK1B",
        "SMLK1A"
      ],
      "type": null,
      "description": "ambulance request for",
      "location": {
        "type": "Point",
        "coordinates": [
          -74.0806427,
          40.70632553
        ]
      },
      "meta": null
    },
    {
      "id": "de8076bf6dbb7ef96b1d36228260ca02",
      "sourceId": "15-147186",
      "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb02",
      "createdAt": "2017-02-01T18:24:01.000Z",
      "updatedAt": "2017-02-01T18:24:01.000Z",
      "images": null,
      "receivedAt": "2015-07-18T18:43:00.000Z",
      "dispatchedAt": "2015-07-18T18:44:00.000Z",
      "arrivedAt": "2015-07-18T18:57:00.000Z",
      "units": [
        "ENWPT"
      ],
      "type": null,
      "description": "merchant/customer dispute",
      "location": {
        "type": "Point",
        "coordinates": [
          -74.03891754,
          40.72523499
        ]
      },
      "meta": null
    },
    {
      "id": "b1885f4ca26046207fdd64ca74b3f4fd",
      "sourceId": "15-147183",
      "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb02",
      "createdAt": "2017-02-01T18:24:01.000Z",
      "updatedAt": "2017-02-01T18:24:01.000Z",
      "images": null,
      "receivedAt": "2015-07-18T18:40:00.000Z",
      "dispatchedAt": "2015-07-18T18:42:00.000Z",
      "arrivedAt": "2015-07-18T18:59:00.000Z",
      "units": [
        "W603",
        "W103",
        "W503"
      ],
      "type": null,
      "description": "suspicious person/condition",
      "location": {
        "type": "Point",
        "coordinates": [
          -74.07381439,
          40.72039413
        ]
      },
      "meta": null
    }
  ],
  "meta": {
    "results": 5,
    "total": 53489
  }
}

Path Params

municipalityId
string
required

Unique ID for the municipality

Query Params

search
string

Filter by case insensitive search

before
date

Filter results to only those that happened before the given date time.

after
date

Filter results to only those that happened after the given date time.

within
object

Only show results where the geolocation is within the given bounding box

 
orderings
array of objects

Order the results. Direction can be asc or desc.

field
direction
filters
object

Filter the results. Key is the field name, value is a comparator.

 
limit
int32

Limit the number of results

offset
int32

Adjust the offset of the query

 

Crime Lookup

 
gethttps://municipal.systems/v1/municipalities/municipalityId/crimes/crimeId
import request from 'superagent'

request
  .get('https://municipal.systems/v1/municipalities/jers-nj/crimes/12345-6789-ID')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "id": "12345-6789-ID",
  "createdAt": "2016-07-15T20:12:26.254Z",
  "updatedAt": "2016-07-15T20:12:26.254Z",

  "sourceId": "15-183455",
  "receivedAt": "2014-01-01T05:03:00.000Z",
  "dispatchedAt": "2014-01-01T05:05:00.000Z",
  "arrivedAt": "2014-01-01T05:10:00.000Z",
	"images": [
    "https://example.com/image.jpeg
  ],
  "type": "violent",
  "description": "GUNSHOTS FIRED HEARD",
  "units": [
    "W201"
  ],
  "location": {
    "type": "Point",
    "coordinates": [
      -74.07084656,
      40.72986984
    ]
  }
}

Path Params

municipalityId
string
required

Unique ID for the municipality

crimeId
string
required

Unique ID for the crime

 

Create a Crime

 

Query Auth

 Authentication is required for this endpoint.
posthttps://municipal.systems/v1/data/crimes
import request from 'superagent'

const data = {
  sourceId: "15-183455",

  receivedAt: "2014-01-01T05:03:00.000Z",
  dispatchedAt: "2014-01-01T05:05:00.000Z",
  arrivedAt: "2014-01-01T05:10:00.000Z",
	
  type: "violent",
  description: "GUNSHOTS FIRED HEARD",
  units: [ "W201" ],
  images: [ "https://example.com/image.jpeg" ],
  location: {
    type: "Point",
    coordinates: [
      -74.07084656,
      40.72986984
    ]
  }
}

request
  .post('https://municipal.systems/v1/data/crimes')
  .query({ key: 'YOUR_PROVIDER_API_KEY' })
  .send(data)
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "success": true
}
{
}

Body Params

sourceId
string
required

Unique identifier for the data from the source

receivedAt
date
required

Date and time when the crime was first reported

dispatchedAt
date
required

Date and time when the unit was dispatched

arrivedAt
date
required

Date and time when the unit arrived at the location

units
array of strings

Unique identifiers for the units dispatched to the crime scene

type
string

Type of crime ("violent", "property", "traffic", etc.)

description
string

Description of the crime ("vehicle accident", "homicide", "robbery", etc.)

images
array of strings

Array of image URLs for the crime

location
object
required

Location where the crime occurred

 
meta
object

Any non-standard fields

 
 

This endpoint requires a valid API Key for a data source. Don't have one? Follow this guide to get one!

Export Crimes

 
gethttps://municipal.systems/v1/municipalities/municipalityId/crimes/export?format=format&limit=10
import request from 'superagent'

request
  .get('https://municipal.systems/v1/municipalities/jers-nj/crimes/export?format=geojson')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "type": "FeatureCollection",
  "features": [{
    "type": "Feature",
    "properties": {
      "id": "70a6fa425293c1cc0339a18a733e3a00",
      "sourceId": "14-191632",
      "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb02",
      "createdAt": "2017-02-24T20:50:07.000Z",
      "updatedAt": "2017-02-24T20:50:07.000Z",
      "images": null,
      "receivedAt": "2014-08-31T18:27:00.000Z",
      "dispatchedAt": "2014-08-31T18:29:00.000Z",
      "arrivedAt": "2014-08-31T19:49:00.000Z",
      "units": ["S702", "CNARSGT"],
      "type": "disorderly conduct",
      "description": " time elapsed not applicable,  injury not applicable",
      "meta": null
    },
    "geometry": {
      "type": "Point",
      "coordinates": [-74.08964539, 40.69905853]
    }
  }, {
    "type": "Feature",
    "properties": {
      "id": "c1003a2a4208807190510e9fe2802181",
      "sourceId": "14-191628",
      "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb02",
      "createdAt": "2017-02-24T20:50:07.000Z",
      "updatedAt": "2017-02-24T20:50:07.000Z",
      "images": null,
      "receivedAt": "2014-08-31T18:11:00.000Z",
      "dispatchedAt": "2014-08-31T18:13:00.000Z",
      "arrivedAt": "2014-08-31T19:23:00.000Z",
      "units": ["W202"],
      "type": "burglary residential prop",
      "description": " time elapsed not applicable,  injury not applicable",
      "meta": null
    },
    "geometry": {
      "type": "Point",
      "coordinates": [-74.06852722, 40.72553635]
    }
  }]
}

Path Params

municipalityId
string
required

Unique ID for the municipality

Query Params

format
string

The output format to export ("json", "csv", "geojson")

download
boolean

Force downloading instead of streaming data

limit
string

Limit the results (unlimited by default)

 

Trip Properties

 
Field
Type
Required
Description

id

String

No (generated)

Unique identifier generated by municipal.systems

createdAt

Date

No (generated)

Date and time when the record was created by municipal.systems

updatedAt

Date

No (generated)

Date and time when the record was last updated by municipal.systems

sourceId

Unique String

Yes

Unique identifier for the data from the source

startedAt

Date

Yes

Date and time when the trip was started

endedAt

Date

No

Date and time when the trip was completed

operator

String

Yes

Identifier for the operator of the service ("yellow cab", "citibike", "uber", etc.)

type

String

Yes

Type of trip ("bicyle", "car", "train", "subway", "light rail", or "bus")

vehicleId

String

No

Unique identifier for the vehicle used to complete the trip

distance

Number

No (generated)

Distance in kilometers

cost

Number

No

Cost in USD

passengers

Number

Yes

Number of passengers

startLocation

GeoJSON Point

Yes

Location where the pickup occured

startStationId

String

No

Unique ID for a Transit Station the trip originated from

endLocation

GeoJSON Point

No

Location where the dropoff occured

endStationId

String

No

Unique ID for a Transit Station the trip ended

path

GeoJSON LineString

No

Full path of the trip

images

Array of URLs

No

List of images associated with the trip

meta

Object

No

Any non-standard fields

Validation

  • All required fields must be present
  • Locations can't be 0, 0
  • Date sequence must be in order (started -> endedAt)

Full Path

If you provide the full trip path using the path attribute, the startLocation and endLocation fields will be calculated automatically.

Search Trips

 
gethttps://municipal.systems/v1/municipalities/municipalityId/trips
import request from 'superagent'

request
  .get('https://municipal.systems/v1/municipalities/jers-nj/trips')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "results": [
    {
      "id": "00512688e517352c4166d876dca21c63",
      "sourceId": "a44965b3fd776182f6c4ebee2e3a1908ff133fadcf4fbfa1602a9cd2729869d1de2dc113b3863c03948065be4478da4068ea1cee528b603e081969235ff553fd",
      "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb01",
      "createdAt": "2017-02-01T12:50:54.000Z",
      "updatedAt": "2017-02-01T12:50:54.000Z",
      "startedAt": "2016-07-26T16:25:00.000Z",
      "endedAt": "2016-07-26T16:29:00.000Z",
      "type": "bicycle",
      "operator": "citibike",
      "vehicleId": "24446",
      "distance": "581.7406571117285",
      "cost": null,
      "passengers": 1,
      "startLocation": {
        "type": "Point",
        "coordinates": [
          -74.044725,
          40.752559
        ]
      },
      "endLocation": {
        "type": "Point",
        "coordinates": [
          -74.0403131,
          40.7485362
        ]
      },
      "path": {
        "type": "LineString",
        "coordinates": [
          [
            -74.044823,
            40.752597
          ],
          [
            -74.04492,
            40.752458
          ],
          [
            -74.044321,
            40.752229
          ],
          [
            -74.043508,
            40.751919
          ],
          [
            -74.042648,
            40.751591
          ],
          [
            -74.041802,
            40.751268
          ],
          [
            -74.04092,
            40.750932
          ],
          [
            -74.040053,
            40.750601
          ],
          [
            -74.041099,
            40.748987
          ],
          [
            -74.040274,
            40.74868
          ],
          [
            -74.040353,
            40.74855
          ]
        ]
      },
      "meta": {
        "endStation": {
          "id": 3198,
          "name": "heights elevator"
        },
        "meterDisance": 0.8,
        "startStation": {
          "id": 3197,
          "name": "north st"
        }
      }
    },
    {
      "id": "64015c47b16caf6fb6177b1f078e1f5d",
      "sourceId": "c08fadf99681c712f421060b56d532ee30b9c2a3e70d8b5d49010b45e133a0ce6648f4f85c3cbf0b0e092021e7f5ca06fb443098ebd41b618c905501e2b44c03",
      "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb01",
      "createdAt": "2017-02-01T12:50:54.000Z",
      "updatedAt": "2017-02-01T12:50:54.000Z",
      "startedAt": "2016-07-26T16:21:00.000Z",
      "endedAt": "2016-07-26T16:23:00.000Z",
      "type": "bicycle",
      "operator": "citibike",
      "vehicleId": "24533",
      "distance": "219.07394621881082",
      "cost": null,
      "passengers": 1,
      "startLocation": {
        "type": "Point",
        "coordinates": [
          -74.0321082,
          40.7287448
        ]
      },
      "endLocation": {
        "type": "Point",
        "coordinates": [
          -74.0337589,
          40.7272235
        ]
      },
      "path": {
        "type": "LineString",
        "coordinates": [
          [
            -74.032094,
            40.728796
          ],
          [
            -74.032072,
            40.728793
          ],
          [
            -74.031985,
            40.728784
          ],
          [
            -74.031861,
            40.728773
          ],
          [
            -74.031869,
            40.72872
          ],
          [
            -74.031897,
            40.728532
          ],
          [
            -74.03194,
            40.728236
          ],
          [
            -74.032097,
            40.727087
          ],
          [
            -74.032139,
            40.72686
          ],
          [
            -74.032864,
            40.72692
          ],
          [
            -74.032926,
            40.726561
          ],
          [
            -74.034477,
            40.7267
          ],
          [
            -74.034519,
            40.726707
          ],
          [
            -74.034559,
            40.726718
          ],
          [
            -74.034599,
            40.726732
          ],
          [
            -74.03467,
            40.72676
          ],
          [
            -74.034552,
            40.726951
          ],
          [
            -74.034496,
            40.727049
          ],
          [
            -74.03447,
            40.727098
          ],
          [
            -74.034445,
            40.727151
          ],
          [
            -74.034424,
            40.727206
          ],
          [
            -74.034406,
            40.727261
          ],
          [
            -74.034392,
            40.727312
          ]
        ]
      },
      "meta": {
        "endStation": {
          "id": 3202,
          "name": "newport path"
        },
        "meterDisance": 0.4,
        "startStation": {
          "id": 3199,
          "name": "newport pkwy"
        }
      }
    },
    {
      "id": "c2aa1adec169e10e035a0393a10b9b17",
      "sourceId": "d31a80ceedd8f825f0551895d60899b30e7a9bee7c69a65d5235fcb5d8f3c2dec742f43c83373136ffad63a6c5e8a886674eff237722d71cee870b035551da58",
      "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb01",
      "createdAt": "2017-02-01T12:50:54.000Z",
      "updatedAt": "2017-02-01T12:50:54.000Z",
      "startedAt": "2016-07-26T16:20:00.000Z",
      "endedAt": "2016-07-26T16:25:00.000Z",
      "type": "bicycle",
      "operator": "citibike",
      "vehicleId": "24722",
      "distance": "984.6582691929663",
      "cost": null,
      "passengers": 1,
      "startLocation": {
        "type": "Point",
        "coordinates": [
          -74.03805095,
          40.7211236
        ]
      },
      "endLocation": {
        "type": "Point",
        "coordinates": [
          -74.0321082,
          40.7287448
        ]
      },
      "path": {
        "type": "LineString",
        "coordinates": [
          [
            -74.038023,
            40.721227
          ],
          [
            -74.036544,
            40.721015
          ],
          [
            -74.036526,
            40.721098
          ],
          [
            -74.036518,
            40.721137
          ],
          [
            -74.036405,
            40.721843
          ],
          [
            -74.036234,
            40.722126
          ],
          [
            -74.036082,
            40.72299
          ],
          [
            -74.035985,
            40.723608
          ],
          [
            -74.035866,
            40.724079
          ],
          [
            -74.035729,
            40.724373
          ],
          [
            -74.035677,
            40.724483
          ],
          [
            -74.035635,
            40.724585
          ],
          [
            -74.035601,
            40.724682
          ],
          [
            -74.03554,
            40.724867
          ],
          [
            -74.035513,
            40.724949
          ],
          [
            -74.035447,
            40.725305
          ],
          [
            -74.035406,
            40.725494
          ],
          [
            -74.035384,
            40.725548
          ],
          [
            -74.035342,
            40.725655
          ],
          [
            -74.035288,
            40.725795
          ],
          [
            -74.03467,
            40.72676
          ],
          [
            -74.034552,
            40.726951
          ],
          [
            -74.034496,
            40.727049
          ],
          [
            -74.03447,
            40.727098
          ],
          [
            -74.034445,
            40.727151
          ],
          [
            -74.034424,
            40.727206
          ],
          [
            -74.034406,
            40.727261
          ],
          [
            -74.034392,
            40.727313
          ],
          [
            -74.034381,
            40.727368
          ],
          [
            -74.034371,
            40.727428
          ],
          [
            -74.034364,
            40.727483
          ],
          [
            -74.03436,
            40.727533
          ],
          [
            -74.034358,
            40.727585
          ],
          [
            -74.034357,
            40.727643
          ],
          [
            -74.03436,
            40.7277
          ],
          [
            -74.034365,
            40.727757
          ],
          [
            -74.034374,
            40.727811
          ],
          [
            -74.03439,
            40.727898
          ],
          [
            -74.034475,
            40.728306
          ],
          [
            -74.034553,
            40.728655
          ],
          [
            -74.034574,
            40.728758
          ],
          [
            -74.034584,
            40.728839
          ],
          [
            -74.034589,
            40.728914
          ],
          [
            -74.034589,
            40.728985
          ],
          [
            -74.034582,
            40.729064
          ],
          [
            -74.034571,
            40.729138
          ],
          [
            -74.034553,
            40.729238
          ],
          [
            -74.033541,
            40.729152
          ],
          [
            -74.033401,
            40.729139
          ],
          [
            -74.033309,
            40.729127
          ],
          [
            -74.033217,
            40.729113
          ],
          [
            -74.033102,
            40.729092
          ],
          [
            -74.033034,
            40.729077
          ],
          [
            -74.032968,
            40.72906
          ],
          [
            -74.032902,
            40.729042
          ],
          [
            -74.032839,
            40.729024
          ],
          [
            -74.032774,
            40.729004
          ],
          [
            -74.032709,
            40.728979
          ],
          [
            -74.032566,
            40.728923
          ],
          [
            -74.032438,
            40.728875
          ],
          [
            -74.032377,
            40.728854
          ],
          [
            -74.032314,
            40.728837
          ],
          [
            -74.032241,
            40.728821
          ],
          [
            -74.032163,
            40.728806
          ],
          [
            -74.032094,
            40.728796
          ]
        ]
      },
      "meta": {
        "endStation": {
          "id": 3199,
          "name": "newport pkwy"
        },
        "meterDisance": 1,
        "startStation": {
          "id": 3187,
          "name": "warren st"
        }
      }
    },
    {
      "id": "6d806c16b2945516180c927257bd6642",
      "sourceId": "3a53d7be8b8f0afb47958f744870c02a055165093409c6324fce5c1373a1fcf719e2e9aabb539e1449c8d495b8f2fe3be79ecb1a5d0cf4227266c183d074632d",
      "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb01",
      "createdAt": "2017-02-01T12:50:53.000Z",
      "updatedAt": "2017-02-01T12:50:53.000Z",
      "startedAt": "2016-07-26T16:18:00.000Z",
      "endedAt": "2016-07-26T16:25:00.000Z",
      "type": "bicycle",
      "operator": "citibike",
      "vehicleId": "24450",
      "distance": "810.9359609444232",
      "cost": null,
      "passengers": 1,
      "startLocation": {
        "type": "Point",
        "coordinates": [
          -74.0638906,
          40.7309459
        ]
      },
      "endLocation": {
        "type": "Point",
        "coordinates": [
          -74.0641943,
          40.7236589
        ]
      },
      "path": {
        "type": "LineString",
        "coordinates": [
          [
            -74.063908,
            40.730866
          ],
          [
            -74.062862,
            40.730726
          ],
          [
            -74.062814,
            40.730736
          ],
          [
            -74.062595,
            40.731183
          ],
          [
            -74.062564,
            40.731311
          ],
          [
            -74.06259,
            40.731326
          ],
          [
            -74.062569,
            40.731366
          ],
          [
            -74.062631,
            40.731431
          ],
          [
            -74.06268,
            40.731453
          ],
          [
            -74.063096,
            40.731623
          ],
          [
            -74.06302,
            40.732062
          ],
          [
            -74.062998,
            40.732157
          ],
          [
            -74.063175,
            40.732183
          ],
          [
            -74.063075,
            40.732693
          ],
          [
            -74.062896,
            40.732872
          ],
          [
            -74.063097,
            40.732946
          ],
          [
            -74.063384,
            40.732609
          ],
          [
            -74.063647,
            40.732302
          ],
          [
            -74.063664,
            40.732282
          ],
          [
            -74.063824,
            40.732095
          ],
          [
            -74.063952,
            40.731946
          ],
          [
            -74.064124,
            40.731711
          ],
          [
            -74.064234,
            40.731556
          ],
          [
            -74.064207,
            40.731416
          ],
          [
            -74.064297,
            40.730945
          ],
          [
            -74.064312,
            40.730866
          ],
          [
            -74.064413,
            40.730751
          ],
          [
            -74.064917,
            40.73031
          ],
          [
            -74.064966,
            40.730267
          ],
          [
            -74.065019,
            40.730218
          ],
          [
            -74.06594,
            40.729368
          ],
          [
            -74.064857,
            40.728603
          ],
          [
            -74.063579,
            40.727727
          ],
          [
            -74.06201,
            40.726628
          ],
          [
            -74.062523,
            40.725957
          ],
          [
            -74.062996,
            40.72533
          ],
          [
            -74.06346,
            40.724724
          ],
          [
            -74.064193,
            40.723768
          ],
          [
            -74.064256,
            40.723685
          ]
        ]
      },
      "meta": {
        "endStation": {
          "id": 3225,
          "name": "baldwin at montgomery"
        },
        "meterDisance": 1.4,
        "startStation": {
          "id": 3195,
          "name": "sip ave"
        }
      }
    },
    {
      "id": "b8a44d7c474e0bcad13982e6a854c5bd",
      "sourceId": "4acb1f951d233f7a0c974bea44aea88fc02e259951a83bdb61a674b1ba73292027f5ee1d32ba961fe3df46fb5f2248e48f66a48a20185b7d88320ffb2f2a9e94",
      "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb01",
      "createdAt": "2017-02-01T12:50:53.000Z",
      "updatedAt": "2017-02-01T12:50:53.000Z",
      "startedAt": "2016-07-26T16:15:00.000Z",
      "endedAt": "2016-07-26T16:22:00.000Z",
      "type": "bicycle",
      "operator": "citibike",
      "vehicleId": "24474",
      "distance": "1147.968065306901",
      "cost": null,
      "passengers": 1,
      "startLocation": {
        "type": "Point",
        "coordinates": [
          -74.0337589,
          40.7272235
        ]
      },
      "endLocation": {
        "type": "Point",
        "coordinates": [
          -74.0424515,
          40.7192789
        ]
      },
      "path": {
        "type": "LineString",
        "coordinates": [
          [
            -74.034392,
            40.727312
          ],
          [
            -74.034406,
            40.727261
          ],
          [
            -74.034424,
            40.727206
          ],
          [
            -74.034445,
            40.727151
          ],
          [
            -74.03447,
            40.727098
          ],
          [
            -74.034496,
            40.727049
          ],
          [
            -74.034552,
            40.726951
          ],
          [
            -74.03467,
            40.72676
          ],
          [
            -74.034962,
            40.72677
          ],
          [
            -74.035198,
            40.726403
          ],
          [
            -74.035333,
            40.726175
          ],
          [
            -74.035379,
            40.726095
          ],
          [
            -74.035423,
            40.726016
          ],
          [
            -74.035462,
            40.725929
          ],
          [
            -74.035495,
            40.72585
          ],
          [
            -74.035537,
            40.725764
          ],
          [
            -74.035561,
            40.725692
          ],
          [
            -74.035593,
            40.725596
          ],
          [
            -74.035618,
            40.725507
          ],
          [
            -74.035638,
            40.725427
          ],
          [
            -74.035662,
            40.725324
          ],
          [
            -74.035738,
            40.724955
          ],
          [
            -74.035766,
            40.724848
          ],
          [
            -74.035791,
            40.724764
          ],
          [
            -74.035818,
            40.724677
          ],
          [
            -74.035876,
            40.724514
          ],
          [
            -74.035923,
            40.724404
          ],
          [
            -74.036059,
            40.724083
          ],
          [
            -74.036184,
            40.723627
          ],
          [
            -74.036279,
            40.723004
          ],
          [
            -74.036413,
            40.722133
          ],
          [
            -74.036405,
            40.721843
          ],
          [
            -74.037194,
            40.721913
          ],
          [
            -74.037247,
            40.721917
          ],
          [
            -74.038073,
            40.721991
          ],
          [
            -74.038218,
            40.721255
          ],
          [
            -74.038357,
            40.720559
          ],
          [
            -74.038376,
            40.72045
          ],
          [
            -74.038494,
            40.719852
          ],
          [
            -74.039547,
            40.719948
          ],
          [
            -74.041192,
            40.720098
          ],
          [
            -74.041234,
            40.719803
          ],
          [
            -74.041352,
            40.719005
          ],
          [
            -74.04182,
            40.719153
          ],
          [
            -74.042417,
            40.719339
          ]
        ]
      },
      "meta": {
        "endStation": {
          "id": 3186,
          "name": "grove st path"
        },
        "meterDisance": 1.4,
        "startStation": {
          "id": 3202,
          "name": "newport path"
        }
      }
    }
  ],
  "meta": {
    "results": 5,
    "total": 509727
  }
}

Path Params

municipalityId
string
required

Unique ID for the municipality

Query Params

search
string

Filter by case insensitive search

before
date

Filter results to only those that happened before the given date time.

after
date

Filter results to only those that happened after the given date time.

within
object

Only show results where the geolocation is within the given bounding box

 
orderings
array of objects

Order the results. Direction can be asc or desc.

field
direction
filters
object

Filter the results. Key is the field name, value is a comparator.

 
limit
int32

Limit the number of results

offset
int32

Adjust the offset of the query

 

Trip Lookup

 
gethttps://municipal.systems/v1/municipalities/municipalityId/trips/tripId
import request from 'superagent'

request
  .get('https://municipal.systems/v1/municipalities/jers-nj/trips/00512688e517352c4166d876dca21c63')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "id": "00512688e517352c4166d876dca21c63",
  "sourceId": "a44965b3fd776182f6c4ebee2e3a1908ff133fadcf4fbfa1602a9cd2729869d1de2dc113b3863c03948065be4478da4068ea1cee528b603e081969235ff553fd",
  "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb01",
  "createdAt": "2017-02-01T12:50:54.000Z",
  "updatedAt": "2017-02-01T12:50:54.000Z",
  "images": null,
  "startedAt": "2016-07-26T16:25:00.000Z",
  "endedAt": "2016-07-26T16:29:00.000Z",
  "type": "bicycle",
  "startStationId": null,
  "endStationId": null,
  "operator": "citibike",
  "vehicleId": "24446",
  "distance": "581.7406571117285",
  "cost": null,
  "passengers": 1,
  "startLocation": {
    "type": "Point",
    "coordinates": [
      -74.044725,
      40.752559
    ]
  },
  "endLocation": {
    "type": "Point",
    "coordinates": [
      -74.0403131,
      40.7485362
    ]
  },
  "path": {
    "type": "LineString",
    "coordinates": [
      [
        -74.044823,
        40.752597
      ],
      [
        -74.04492,
        40.752458
      ],
      [
        -74.044321,
        40.752229
      ],
      [
        -74.043508,
        40.751919
      ],
      [
        -74.042648,
        40.751591
      ],
      [
        -74.041802,
        40.751268
      ],
      [
        -74.04092,
        40.750932
      ],
      [
        -74.040053,
        40.750601
      ],
      [
        -74.041099,
        40.748987
      ],
      [
        -74.040274,
        40.74868
      ],
      [
        -74.040353,
        40.74855
      ]
    ]
  },
  "meta": {
    "endStation": {
      "id": 3198,
      "name": "heights elevator"
    },
    "meterDisance": 0.8,
    "startStation": {
      "id": 3197,
      "name": "north st"
    }
  }
}

Path Params

municipalityId
string
required

Unique ID for the municipality

tripId
string
required

Unique ID for the trip

 

Create a Trip

 

Query Auth

 Authentication is required for this endpoint.
posthttps://municipal.systems/v1/data/trips
import request from 'superagent'

const data = {
  sourceId: 'b6cfe107c60fb5bd6557a8e5b299b355f170e462',
  startedAt: '2016-07-26T20:25:00.000Z',
  endedAt: '2016-07-26T20:29:00.000Z',
  type: 'bicycle',
  operator: 'citibike',
  vehicleId: '24446',
  distance: 1,
  passengers: 1,
  startLocation: {
    type: 'Point',
    coordinates: [
      -74.044725,
      40.752559
    ]
  },
  endLocation: {
    type: 'Point',
    coordinates: [
      -74.0403131,
      40.7485362
    ]
  },
  meta: {
    endStation: {
      id: 3198,
      name: 'Heights Elevator'
    },
    startStation: {
      id: 3197,
      name: 'North St'
    }
  }
}

request
  .post('https://municipal.systems/v1/data/trips')
  .query({ key: 'YOUR_PROVIDER_API_KEY' })
  .send(data)
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "success": true
}
{
}

Body Params

sourceId
string
required

Unique identifier for the data from the source

startedAt
date
required

Date and time when the trip was started

endedAt
date
required

Date and time when the trip was completed

operator
string
required

Identifier for the operator of the service ("yellow cab", "citibike", "uber", etc.)

type
string
required

Type of vehicle ("bicycle", "car", or "bus")

vehicleId
string

Unique identifier for the vehicle used to complete the trip

distance
int32
required

Distance in kilometers

cost
int32

Cost in USD

passengers
int32
required

Number of passengers

startLocation
object
required

Location where the pickup occurred

 
endLocation
object
required

Location where the dropoff occured

 
path
object

Full path of the trip

 
meta
object

Any non-standard fields

 
 

This endpoint requires a valid API Key for a data source. Don't have one? Follow this guide to get one!

Export Trips

 
gethttps://municipal.systems/v1/municipalities/municipalityId/trips/export?format=format&limit=10
import request from 'superagent'

request
  .get('https://municipal.systems/v1/municipalities/jers-nj/trips/export?format=geojson')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "type": "FeatureCollection",
  "features": [{
    "type": "Feature",
    "properties": {
      "id": "70a6fa425293c1cc0339a18a733e3a00",
      "sourceId": "14-191632",
      "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb02",
      "createdAt": "2017-02-24T20:50:07.000Z",
      "updatedAt": "2017-02-24T20:50:07.000Z",
      "images": null,
      "receivedAt": "2014-08-31T18:27:00.000Z",
      "dispatchedAt": "2014-08-31T18:29:00.000Z",
      "arrivedAt": "2014-08-31T19:49:00.000Z",
      "units": ["S702", "CNARSGT"],
      "type": "disorderly conduct",
      "description": " time elapsed not applicable,  injury not applicable",
      "meta": null
    },
    "geometry": {
      "type": "Point",
      "coordinates": [-74.08964539, 40.69905853]
    }
  }, {
    "type": "Feature",
    "properties": {
      "id": "c1003a2a4208807190510e9fe2802181",
      "sourceId": "14-191628",
      "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb02",
      "createdAt": "2017-02-24T20:50:07.000Z",
      "updatedAt": "2017-02-24T20:50:07.000Z",
      "images": null,
      "receivedAt": "2014-08-31T18:11:00.000Z",
      "dispatchedAt": "2014-08-31T18:13:00.000Z",
      "arrivedAt": "2014-08-31T19:23:00.000Z",
      "units": ["W202"],
      "type": "burglary residential prop",
      "description": " time elapsed not applicable,  injury not applicable",
      "meta": null
    },
    "geometry": {
      "type": "Point",
      "coordinates": [-74.06852722, 40.72553635]
    }
  }]
}

Path Params

municipalityId
string
required

Unique ID for the municipality

Query Params

format
string

The output format to export ("json", "csv", "geojson")

download
boolean

Force downloading instead of streaming data

limit
string

Limit the results (unlimited by default)

 

Issue Properties

 
Field
Type
Required
Description

id

String

No (generated)

Unique identifier generated by municipal.systems

createdAt

Date

No (generated)

Date and time when the record was created by municipal.systems

updatedAt

Date

No (generated)

Date and time when the record was last updated by municipal.systems

sourceId

Unique String

Yes

Unique identifier for the data from the source

receivedAt

Date

Yes

Date and time when the issue was received

recognizedAt

Date

No

Date and time when the issue was seen by somebody

closedAt

Date

No

Date and time when the issue was closed

type

String

Yes

Type of issue ("sidewalk damaged", "tree fallen", "pothole", etc.)

status

String

Yes

Current status of the issue ("open", "recognized", "closed", or "archived")

description

String

No

Description of the issue

reporter

String

No

Person who reported the issue

assignee

String

No

Person assigned to the issue

images

Array of URLs

No

List of images associated with the issue

location

GeoJSON Point

Yes

Location where the dropoff occured

meta

Object

No

Any non-standard fields

Validation

  • All required fields must be present
  • Locations can't be 0, 0
  • Date sequence must be in order (receivedAt -> acknowledgedAt -> closedAt)

Search Issues

 
gethttps://municipal.systems/v1/municipalities/municipalityId/issues
import request from 'superagent'

request
  .get('https://municipal.systems/v1/municipalities/jers-nj/issues')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "results": [
    {
      "id": "e27a6c7d8260eab63807afd7e72762c6",
      "sourceId": "3216724",
      "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb07",
      "createdAt": "2017-02-17T20:26:56.000Z",
      "updatedAt": "2017-02-17T20:26:56.000Z",
      "images": [
        "https://seeclickfix.com/files/issue_images/0069/2194/1487360659191.jpg"
      ],
      "receivedAt": "2017-02-17T19:51:11.000Z",
      "recognizedAt": null,
      "closedAt": null,
      "type": "Parks and Playgrounds",
      "status": "open",
      "description": null,
      "reporter": null,
      "assignee": "Alphonso Lynch (1324622)",
      "location": {
        "type": "Point",
        "coordinates": [
          -74.0826874,
          40.7253935071486
        ]
      },
      "meta": {
        "url": "https://seeclickfix.com/issues/3216724",
        "questions": [
          {
            "answer": "Other",
            "question": "Please select an issue below:"
          },
          {
            "answer": "Lincoln Park West \r\n",
            "question": "Name of Park"
          },
          {
            "answer": "The playground is locked!!! At 2:47 pm the gate is locked with a big Padlock!!!",
            "question": "Please provide a description of the help you need:"
          }
        ],
        "assigneeId": 1324622,
        "reporterId": 0,
        "assigneeName": "Alphonso Lynch",
        "reporterName": "An anonymous SeeClickFix user",
        "assigneeImage": "https://seeclickfix.com/assets/no-avatar-100-5e06fcc664c6376bbf654cbd67df857ff81918c5f5c6a2345226093147382de9.png",
        "reporterImage": "https://seeclickfix.com/anonymous-avatar-150x150.png"
      }
    },
    {
      "id": "3c2aa26cd59d14947a5df45dd3e36da9",
      "sourceId": "3216633",
      "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb07",
      "createdAt": "2017-02-17T20:26:57.000Z",
      "updatedAt": "2017-02-17T20:26:57.000Z",
      "images": [
        "https://seeclickfix.com/files/issue_images/0069/2169/SCF__20170217_140152644566907.jpg"
      ],
      "receivedAt": "2017-02-17T19:16:10.000Z",
      "recognizedAt": null,
      "closedAt": null,
      "type": "Trash: Litter/debris/bulk waste",
      "status": "open",
      "description": "Unsightly chunk of asphalt on sidewalk",
      "reporter": "Joel (1368280)",
      "assignee": "cpisano (1335587)",
      "location": {
        "type": "Point",
        "coordinates": [
          -74.061636,
          40.7305198
        ]
      },
      "meta": {
        "url": "https://seeclickfix.com/issues/3216633",
        "questions": [
          {
            "answer": "No",
            "question": "Is this a vacant lot?"
          },
          {
            "answer": "No Answer Given",
            "question": "Additional Information:"
          }
        ],
        "assigneeId": 1335587,
        "reporterId": 1368280,
        "assigneeName": "cpisano",
        "reporterName": "Joel",
        "assigneeImage": "https://crm.seeclickfix.com/assets/no-avatar-100-5e06fcc664c6376bbf654cbd67df857ff81918c5f5c6a2345226093147382de9.png",
        "reporterImage": "https://seeclickfix.com/assets/no-avatar-100-5e06fcc664c6376bbf654cbd67df857ff81918c5f5c6a2345226093147382de9.png"
      }
    },
    {
      "id": "c9dc87bdb6026cf945eaf3151d5740ac",
      "sourceId": "3216585",
      "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb07",
      "createdAt": "2017-02-17T20:26:57.000Z",
      "updatedAt": "2017-02-17T20:26:57.000Z",
      "images": null,
      "receivedAt": "2017-02-17T18:57:26.000Z",
      "recognizedAt": null,
      "closedAt": null,
      "type": "Construction",
      "status": "open",
      "description": "work being done on roof etc. stuff falling on sidewalk. dumpster present no permits visible.",
      "reporter": "Heightsman (1346322)",
      "assignee": "Construction Code Official (1303562)",
      "location": {
        "type": "Point",
        "coordinates": [
          -74.0471788,
          40.7469729
        ]
      },
      "meta": {
        "url": "https://seeclickfix.com/issues/3216585",
        "questions": [
          {
            "answer": "Working without permits",
            "question": "What is the issue?"
          }
        ],
        "assigneeId": 1303562,
        "reporterId": 1346322,
        "assigneeName": "Construction Code Official",
        "reporterName": "Heightsman",
        "assigneeImage": "https://crm.seeclickfix.com/assets/no-avatar-100-5e06fcc664c6376bbf654cbd67df857ff81918c5f5c6a2345226093147382de9.png",
        "reporterImage": "https://seeclickfix.com/assets/no-avatar-100-5e06fcc664c6376bbf654cbd67df857ff81918c5f5c6a2345226093147382de9.png"
      }
    },
    {
      "id": "1a520fb3b4c08c4df49d552d478af57e",
      "sourceId": "3216567",
      "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb07",
      "createdAt": "2017-02-17T20:26:57.000Z",
      "updatedAt": "2017-02-17T20:26:57.000Z",
      "images": null,
      "receivedAt": "2017-02-17T18:52:02.000Z",
      "recognizedAt": null,
      "closedAt": null,
      "type": "Parking issues",
      "status": "open",
      "description": "Due to the snow storm on Thursday, February 9, 2017 there were cars parked without permits for a couple of days.  Cars from New York, Pennsylvania, Connecticut and New Jersey parked on the streets.",
      "reporter": null,
      "assignee": "Division of Parking - Candace (1393218)",
      "location": {
        "type": "Point",
        "coordinates": [
          -74.0435198,
          40.7267688
        ]
      },
      "meta": {
        "url": "https://seeclickfix.com/issues/3216567",
        "questions": [
          {
            "answer": "Abandoned Vehicle",
            "question": "What is the issue?"
          },
          {
            "answer": "No parking permits.",
            "question": "If a parking issue, what is the problem?"
          }
        ],
        "assigneeId": 1393218,
        "reporterId": 0,
        "assigneeName": "Division of Parking - Candace",
        "reporterName": "An anonymous SeeClickFix user",
        "assigneeImage": "https://crm.seeclickfix.com/assets/no-avatar-100-5e06fcc664c6376bbf654cbd67df857ff81918c5f5c6a2345226093147382de9.png",
        "reporterImage": "https://seeclickfix.com/anonymous-avatar-150x150.png"
      }
    },
    {
      "id": "3fb4ae066c0d5fb998626e594d814224",
      "sourceId": "3216504",
      "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb07",
      "createdAt": "2017-02-17T20:26:57.000Z",
      "updatedAt": "2017-02-17T20:26:57.000Z",
      "images": [
        "https://seeclickfix.com/files/issue_images/0069/2138/1487355594604.jpg"
      ],
      "receivedAt": "2017-02-17T18:20:28.000Z",
      "recognizedAt": null,
      "closedAt": null,
      "type": "Streets: Sidewalks - In need of Repair",
      "status": "open",
      "description": "Broken sidewalk",
      "reporter": null,
      "assignee": "Housing Code Enforcement- Iris (1346654)",
      "location": {
        "type": "Point",
        "coordinates": [
          -74.0448519059152,
          40.7193207485223
        ]
      },
      "meta": {
        "url": "https://seeclickfix.com/issues/3216504",
        "questions": [
          {
            "answer": "No Answer Given",
            "question": "Please describe the sidewalk issue using the box below. "
          }
        ],
        "assigneeId": 1346654,
        "reporterId": 0,
        "assigneeName": "Housing Code Enforcement- Iris",
        "reporterName": "An anonymous SeeClickFix user",
        "assigneeImage": "https://crm.seeclickfix.com/assets/no-avatar-100-5e06fcc664c6376bbf654cbd67df857ff81918c5f5c6a2345226093147382de9.png",
        "reporterImage": "https://seeclickfix.com/anonymous-avatar-150x150.png"
      }
    }
  ],
  "meta": {
    "results": 5,
    "total": 3562
  }
}

Path Params

municipalityId
string
required

Unique ID for the municipality

Query Params

search
string

Filter by case insensitive search

before
date

Filter results to only those that happened before the given date time.

after
date

Filter results to only those that happened after the given date time.

within
object

Only show results where the geolocation is within the given bounding box

 
orderings
array of objects

Order the results. Direction can be asc or desc.

field
direction
filters
object

Filter the results. Key is the field name, value is a comparator.

 
limit
int32

Limit the number of results

offset
int32

Adjust the offset of the query

 

Issue Lookup

 
gethttps://municipal.systems/v1/municipalities/municipalityId/issues/issueId
import request from 'superagent'

request
  .get('https://municipal.systems/v1/municipalities/jers-nj/issues/e27a6c7d8260eab63807afd7e72762c6')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "id": "e27a6c7d8260eab63807afd7e72762c6",
  "sourceId": "3216724",
  "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb07",
  "createdAt": "2017-02-17T20:26:56.000Z",
  "updatedAt": "2017-02-17T20:26:56.000Z",
  "images": [
    "https://seeclickfix.com/files/issue_images/0069/2194/1487360659191.jpg"
  ],
  "receivedAt": "2017-02-17T19:51:11.000Z",
  "recognizedAt": null,
  "closedAt": null,
  "type": "Parks and Playgrounds",
  "status": "open",
  "description": null,
  "reporter": null,
  "assignee": "Alphonso Lynch (1324622)",
  "location": {
    "type": "Point",
    "coordinates": [
      -74.0826874,
      40.7253935071486
    ]
  },
  "meta": {
    "url": "https://seeclickfix.com/issues/3216724",
    "questions": [
      {
        "answer": "Other",
        "question": "Please select an issue below:"
      },
      {
        "answer": "Lincoln Park West \r\n",
        "question": "Name of Park"
      },
      {
        "answer": "The playground is locked!!! At 2:47 pm the gate is locked with a big Padlock!!!",
        "question": "Please provide a description of the help you need:"
      }
    ],
    "assigneeId": 1324622,
    "reporterId": 0,
    "assigneeName": "Alphonso Lynch",
    "reporterName": "An anonymous SeeClickFix user",
    "assigneeImage": "https://seeclickfix.com/assets/no-avatar-100-5e06fcc664c6376bbf654cbd67df857ff81918c5f5c6a2345226093147382de9.png",
    "reporterImage": "https://seeclickfix.com/anonymous-avatar-150x150.png"
  }
}

Path Params

municipalityId
string
required

Unique ID for the municipality

issueId
string
required

Unique ID for the issue

 

Create an Issue

 

Query Auth

 Authentication is required for this endpoint.
posthttps://municipal.systems/v1/data/issues
import request from 'superagent'

const data = {
  sourceId: 'b6cfe107c60fb5bd6557a8e5b299b355f170e462',
  receivedAt: '2016-07-26T20:25:00.000Z',
  closedAt: '2016-07-26T20:29:00.000Z',
  type: 'Streets: Pothole/sinkhole/uneven pavement',
  status: 'closed',
  description: 'Large pothole in middle of street',
  assignee: 'James Doe (184512)',
  images: [ 'https://imagesrc.png' ],
  location: {
    type: 'Point',
    coordinates: [
      -74.044725,
      40.752559
    ]
  },
  
  meta: {
    endStation: {
      id: 3198,
      name: 'Heights Elevator'
    },
    startStation: {
      id: 3197,
      name: 'North St'
    }
  }
}

request
  .post('https://municipal.systems/v1/data/issues')
  .query({ key: 'YOUR_PROVIDER_API_KEY' })
  .send(data)
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "success": true
}
{
}

Body Params

sourceId
string
required

Unique identifier for the data from the source

receivedAt
date
required

Date and time when the issue was first reported

recognizedAt
date
required

Date and time when the issue was recognized and processed

closedAt
date
required

Date and time when issue was closed

type
string
required

Type of issue ("Water/Sewer", "Trash", "Service request", etc.)

status
string
required

Status of the issue ("open", "closed", "recognized", "archived")

description
string

Description of the issue

reporter
string

Name or ID of the issue reporter

assignee
string

Municipal ID or department name assigned to the issue

location
object
required

Location where the issue was reported

 
meta
object

Any non-standard fields

 
images
array of strings

Images of the issue

 

This endpoint requires a valid API Key for a data source. Don't have one? Follow this guide to get one!

Export Issues

 
gethttps://municipal.systems/v1/municipalities/municipalityId/issues/export?format=format&limit=10
import request from 'superagent'

request
  .get('https://municipal.systems/v1/municipalities/jers-nj/issues/export?format=geojson')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "type": "FeatureCollection",
  "features": [{
    "type": "Feature",
    "properties": {
      "id": "70a6fa425293c1cc0339a18a733e3a00",
      "sourceId": "14-191632",
      "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb02",
      "createdAt": "2017-02-24T20:50:07.000Z",
      "updatedAt": "2017-02-24T20:50:07.000Z",
      "images": null,
      "receivedAt": "2014-08-31T18:27:00.000Z",
      "dispatchedAt": "2014-08-31T18:29:00.000Z",
      "arrivedAt": "2014-08-31T19:49:00.000Z",
      "units": ["S702", "CNARSGT"],
      "type": "disorderly conduct",
      "description": " time elapsed not applicable,  injury not applicable",
      "meta": null
    },
    "geometry": {
      "type": "Point",
      "coordinates": [-74.08964539, 40.69905853]
    }
  }, {
    "type": "Feature",
    "properties": {
      "id": "c1003a2a4208807190510e9fe2802181",
      "sourceId": "14-191628",
      "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb02",
      "createdAt": "2017-02-24T20:50:07.000Z",
      "updatedAt": "2017-02-24T20:50:07.000Z",
      "images": null,
      "receivedAt": "2014-08-31T18:11:00.000Z",
      "dispatchedAt": "2014-08-31T18:13:00.000Z",
      "arrivedAt": "2014-08-31T19:23:00.000Z",
      "units": ["W202"],
      "type": "burglary residential prop",
      "description": " time elapsed not applicable,  injury not applicable",
      "meta": null
    },
    "geometry": {
      "type": "Point",
      "coordinates": [-74.06852722, 40.72553635]
    }
  }]
}

Path Params

municipalityId
string
required

Unique ID for the municipality

Query Params

format
string

The output format to export ("json", "csv", "geojson")

download
boolean

Force downloading instead of streaming data

limit
string

Limit the results (unlimited by default)

 

Building Permit Properties

 
Field
Type
Required
Description

id

String

No (generated)

Unique identifier generated by municipal.systems

createdAt

Date

No (generated)

Date and time when the record was created by municipal.systems

updatedAt

Date

No (generated)

Date and time when the record was last updated by municipal.systems

sourceId

Unique String

Yes

Unique identifier for the data from the source

receivedAt

Date

Yes

Date and time when the permit was received

issuedAt

Date

No

Date and time when the permit was seen by somebody

closedAt

Date

No

Date and time when the permit request was closed

type

String

No

Type of permit ("addition", "modification", etc.)

status

String

No

Current status of the permit ("under reivew", "approved", or "rejected")

description

String

No

Description of the permit

cost

Number

No

Estimated total cost of the modifications

location

GeoJSON Point

Yes

Location that the permit refers to

meta

Object

No

Any non-standard fields

Validation

  • All required fields must be present
  • Locations can't be 0, 0
  • Date sequence must be in order (receivedAt -> acknowledgedAt -> closedAt)

Search Building Permits

 
gethttps://municipal.systems/v1/municipalities/municipalityId/building_permits
import request from 'superagent'

request
  .get('https://municipal.systems/v1/municipalities/jers-nj/building_permits')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "results": [
    {
      "id": "4785c232796f9dc60304b125339c0d94",
      "sourceId": "1582592",
      "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb05",
      "createdAt": "2017-02-21T20:07:41.000Z",
      "updatedAt": "2017-02-21T20:07:41.000Z",
      "images": null,
      "receivedAt": "2017-02-21T17:31:30.000Z",
      "issuedAt": null,
      "closedAt": null,
      "type": "alteration",
      "status": "under review",
      "description": "building",
      "cost": 42000,
      "location": {
        "type": "Point",
        "coordinates": [
          -74.066589,
          40.71625
        ]
      },
      "area": null,
      "meta": {
        "codes": "B",
        "trackingId": "129447"
      }
    }
  ],
  "meta": {
    "results": 1,
    "total": 7939
  }
}

Path Params

municipalityId
string
required

Unique ID for the municipality

Query Params

search
string

Filter by case insensitive search

before
date

Filter results to only those that happened before the given date time.

after
date

Filter results to only those that happened after the given date time.

within
object

Only show results where the geolocation is within the given bounding box

 
orderings
array of objects

Order the results. Direction can be asc or desc.

field
direction
filters
object

Filter the results. Key is the field name, value is a comparator.

 
limit
int32

Limit the number of results

offset
int32

Adjust the offset of the query

 

Building Permit Lookup

 
gethttps://municipal.systems/v1/municipalities/municipalityId/building_permits/permitId
import request from 'superagent'

request
  .get('https://municipal.systems/v1/municipalities/jers-nj/building_permits/4785c232796f9dc60304b125339c0d94')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "id": "4785c232796f9dc60304b125339c0d94",
  "sourceId": "1582592",
  "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb05",
  "createdAt": "2017-02-21T20:07:41.000Z",
  "updatedAt": "2017-02-21T20:07:41.000Z",
  "images": null,
  "receivedAt": "2017-02-21T17:31:30.000Z",
  "issuedAt": null,
  "closedAt": null,
  "type": "alteration",
  "status": "under review",
  "description": "building",
  "cost": 42000,
  "location": {
    "type": "Point",
    "coordinates": [
      -74.066589,
      40.71625
    ]
  },
  "area": null,
  "meta": {
    "codes": "B",
    "trackingId": "129447"
  }
}

Path Params

municipalityId
string
required

Unique ID for the municipality

permitId
string
required

Unique ID for the permit

 

Create a Building Permit

 

Query Auth

 Authentication is required for this endpoint.
posthttps://municipal.systems/v1/data/building_permits
import request from 'superagent'

const data = {
  sourceId: '1582768',
  receivedAt: 2017-02-21T20:55:17.000Z,
  issuedAt: null,
  closedAt: null,
  status: 'open',
  type: 'alteration',
  description: 'building',
  cost: 6800,
  meta: {
    codes: 'B',
    trackingId: '129467'
  },
  location: {
    type: 'Point',
    coordinates: [-74.081194, 40.717257]
  }
}

request
  .post('https://municipal.systems/v1/data/building_permits')
  .query({ key: 'YOUR_PROVIDER_API_KEY' })
  .send(data)
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "success": true
}
{
}

Body Params

sourceId
string
required

Unique identifier for the data from the source

receivedAt
date
required

Date and time when the permit was first submitted

closedAt
date

Date and time when permit was closed

issuedAt
date

Date and time when permit was issued

type
string

Type of permit ("alteration", "addition", "driveway", etc.)

status
string

Status of the permit ("under review", "approved", "rejected")

description
string

Description of the permit

cost
int32

Estimated total cost of the modifications

location
object
required

Location where the issue was reported

 
meta
object

Any non-standard fields

 
images
array of strings

Images related to the permit

 

This endpoint requires a valid API Key for a data source. Don't have one? Follow this guide to get one!

Export Building Permits

 
gethttps://municipal.systems/v1/municipalities/municipalityId/building_permits/export?format=format&limit=10
import request from 'superagent'

request
  .get('https://municipal.systems/v1/municipalities/jers-nj/building_permits/export?format=geojson')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "type": "FeatureCollection",
  "features": [{
    "type": "Feature",
    "properties": {
      "id": "70a6fa425293c1cc0339a18a733e3a00",
      "sourceId": "14-191632",
      "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb02",
      "createdAt": "2017-02-24T20:50:07.000Z",
      "updatedAt": "2017-02-24T20:50:07.000Z",
      "images": null,
      "receivedAt": "2014-08-31T18:27:00.000Z",
      "dispatchedAt": "2014-08-31T18:29:00.000Z",
      "arrivedAt": "2014-08-31T19:49:00.000Z",
      "units": ["S702", "CNARSGT"],
      "type": "disorderly conduct",
      "description": " time elapsed not applicable,  injury not applicable",
      "meta": null
    },
    "geometry": {
      "type": "Point",
      "coordinates": [-74.08964539, 40.69905853]
    }
  }, {
    "type": "Feature",
    "properties": {
      "id": "c1003a2a4208807190510e9fe2802181",
      "sourceId": "14-191628",
      "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb02",
      "createdAt": "2017-02-24T20:50:07.000Z",
      "updatedAt": "2017-02-24T20:50:07.000Z",
      "images": null,
      "receivedAt": "2014-08-31T18:11:00.000Z",
      "dispatchedAt": "2014-08-31T18:13:00.000Z",
      "arrivedAt": "2014-08-31T19:23:00.000Z",
      "units": ["W202"],
      "type": "burglary residential prop",
      "description": " time elapsed not applicable,  injury not applicable",
      "meta": null
    },
    "geometry": {
      "type": "Point",
      "coordinates": [-74.06852722, 40.72553635]
    }
  }]
}

Path Params

municipalityId
string
required

Unique ID for the municipality

Query Params

format
string

The output format to export ("json", "csv", "geojson")

download
boolean

Force downloading instead of streaming data

limit
string

Limit the results (unlimited by default)

 

Business Properties

 
Field
Type
Required
Description

id

String

No (generated)

Unique identifier generated by municipal.systems

createdAt

Date

No (generated)

Date and time when the record was created by municipal.systems

updatedAt

Date

No (generated)

Date and time when the record was last updated by municipal.systems

sourceId

Unique String

Yes

Unique identifier for the data from the source

startedAt

Date

Yes

Date and time when the business was started

endedAt

Date

No

Date and time when the business shut down

type

String

No

Type of business ("restaurant", "bakery", etc.)

name

String

No

Current status of the issue ("open", "recognized", "closed", or "archived")

phone

String Phone Number

No

Phone number of the business

email

String

No

Email of the business

url

URL

No

URL website of the business

images

Array of URLs

No

List of images associated with the business

location

GeoJSON Point

Yes

Location where the dropoff occured

meta

Object

No

Any non-standard fields

Validation

  • All required fields must be present
  • Locations can't be 0, 0
  • Date sequence must be in order (receivedAt -> acknowledgedAt -> closedAt)

Search Businesses

 
gethttps://municipal.systems/v1/municipalities/municipalityId/businesses
import request from 'superagent'

request
  .get('https://municipal.systems/v1/municipalities/jers-nj/businesses')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "results": [{
    "id": "6cf718f1c6f0e74703c71bb0b4d5ebee",
    "sourceId": "eea628c3a88c1e9259e3ca20ff5cd90a7050e02f8b195d49e2657f07a93b1ae76b25c1ec2db11e0990542ea4348eccea47b40bb4f79906b8e3608f977fe54d63",
    "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb23",
    "createdAt": "2017-02-21T20:09:19.000Z",
    "updatedAt": "2017-02-21T20:09:19.000Z",
    "images": null,
    "startedAt": "2016-12-21T20:09:19.000Z",
    "endedAt": null,
    "name": "Atlas Public House",
    "type": "Bar / Restaurant",
    "phone": "2014690044",
    "email": null,
    "url": null,
    "location": {
      "type": "Point",
      "coordinates": [-74.043221, 40.720372]
    },
    "meta": {
      "twitter": "/",
      "facebook": "https://www.facebook.com/Atlas-Public-House-163692473799989/",
      "instagram": "https://www.instagram.com/atlas_jc/",
      "established": 2016
    }
  }, {
    "id": "dc6f0a62c2f7c3c2c590aabdc3ddc4db",
    "sourceId": "080b507c672840553064484010097beb6cd8fc3c228a5620b5cb63d58405e351f7fd0b08558ea115617500abe38359a418bcc207e6d82767257de6adc7ba29ee",
    "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb23",
    "createdAt": "2017-02-21T20:09:19.000Z",
    "updatedAt": "2017-02-21T20:09:19.000Z",
    "images": null,
    "startedAt": "2016-07-21T20:09:19.000Z",
    "endedAt": null,
    "name": "Hudson-Essex Allergy",
    "type": "Services",
    "phone": null,
    "email": null,
    "url": "http://www.heallergies.com/",
    "location": {
      "type": "Point",
      "coordinates": [-74.035561, 40.713217]
    },
    "meta": {
      "twitter": "https://twitter.com/HudEssexAllergy",
      "facebook": "https://www.facebook.com/hudsonessexallergy/",
      "instagram": "https://www.instagram.com/hudessexallergy/",
      "established": 2016
    }
  }, {
    "id": "70c69daeb43dea32fc80930e546063b7",
    "sourceId": "e575852c130167b44bac2351725e5a60f6e3dc3733285a8c2912fb3f872ec3105e6bf0ebf59d985ef5071a9c458389649455a97556ff16f5280777e41de9c984",
    "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb23",
    "createdAt": "2017-02-21T20:09:17.000Z",
    "updatedAt": "2017-02-21T20:09:17.000Z",
    "images": null,
    "startedAt": "2016-09-21T20:09:17.000Z",
    "endedAt": null,
    "name": "Wurstbar",
    "type": "Bar / Restaurant",
    "phone": "2014798396",
    "email": null,
    "url": "http://www.wurstbarjc.com/",
    "location": {
      "type": "Point",
      "coordinates": [-74.046577, 40.720347]
    },
    "meta": {
      "twitter": "https://twitter.com/wurstbarjc",
      "facebook": "https://www.facebook.com/wurstbarjc/",
      "instagram": "https://www.instagram.com/wurstbarjc/",
      "established": 2016
    }
  }, {
    "id": "53c3a78a22c1b5af9ff3d02a1f81e847",
    "sourceId": "715a81561960602df5f872c6f446f268843f6f0a2f6dd7c35f323c053938360b00c7a64873e9192c4329377bcc425f118d1142b8a87b5aec6e4c8b6314dafaf5",
    "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb23",
    "createdAt": "2017-02-21T20:09:16.000Z",
    "updatedAt": "2017-02-21T20:09:16.000Z",
    "images": null,
    "startedAt": "2016-08-21T20:09:16.000Z",
    "endedAt": null,
    "name": "World Business Lender",
    "type": "Professional Services",
    "phone": "8004329359",
    "email": null,
    "url": "https://www.wbl.com/",
    "location": {
      "type": "Point",
      "coordinates": [-74.0351, 40.716]
    },
    "meta": {
      "twitter": "https://twitter.com/WBL_US",
      "facebook": "https://www.facebook.com/worldbusinesslenders",
      "instagram": "/",
      "established": 2016
    }
  }, {
    "id": "0037caebe91c7678d5beaf2f659bb697",
    "sourceId": "379e027a350b06f67f541f1df7b481d37688ad6c9043cc171ffbe60404bf026a08de0344795247958b718e4732ded98e7db01e741ce9fbe083d068075f1d0025",
    "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb23",
    "createdAt": "2017-02-21T20:09:15.000Z",
    "updatedAt": "2017-02-21T20:09:15.000Z",
    "images": null,
    "startedAt": "2016-11-21T20:09:15.000Z",
    "endedAt": null,
    "name": "The Hutton",
    "type": "Bar / Restaurant",
    "phone": "2018395382",
    "email": null,
    "url": null,
    "location": {
      "type": "Point",
      "coordinates": [-74.056064, 40.746974]
    },
    "meta": {
      "facebook": "https://www.facebook.com/thehutton/",
      "instagram": "https://www.instagram.com/thehuttonjc/",
      "established": 2016
    }
  }],
  "meta": {
    "results": 5,
    "total": 55
  }
}

Path Params

municipalityId
string
required

Unique ID for the municipality

Query Params

search
string

Filter by case insensitive search

before
date

Filter results to only those that happened before the given date time.

after
date

Filter results to only those that happened after the given date time.

within
object

Only show results where the geolocation is within the given bounding box

 
orderings
array of objects

Order the results. Direction can be asc or desc.

field
direction
filters
object

Filter the results. Key is the field name, value is a comparator.

 
limit
int32

Limit the number of results

offset
int32

Adjust the offset of the query

 

Business Lookup

 
gethttps://municipal.systems/v1/municipalities/municipalityId/businesses/businessId
import request from 'superagent'

request
  .get('https://municipal.systems/v1/municipalities/jers-nj/businesses/6cf718f1c6f0e74703c71bb0b4d5ebefe')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "id": "6cf718f1c6f0e74703c71bb0b4d5ebee",
  "sourceId": "eea628c3a88c1e9259e3ca20ff5cd90a7050e02f8b195d49e2657f07a93b1ae76b25c1ec2db11e0990542ea4348eccea47b40bb4f79906b8e3608f977fe54d63",
  "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb23",
  "createdAt": "2017-02-21T20:09:19.000Z",
  "updatedAt": "2017-02-21T20:09:19.000Z",
  "images": null,
  "startedAt": "2016-12-21T20:09:19.000Z",
  "endedAt": null,
  "name": "Atlas Public House",
  "type": "Bar / Restaurant",
  "phone": "2014690044",
  "email": null,
  "url": null,
  "location": {
    "type": "Point",
    "coordinates": [-74.043221, 40.720372]
  },
  "meta": {
    "twitter": "/",
    "facebook": "https://www.facebook.com/Atlas-Public-House-163692473799989/",
    "instagram": "https://www.instagram.com/atlas_jc/",
    "established": 2016
  }
}

Path Params

municipalityId
string
required

Unique ID for the municipality

businessId
string
required

Unique ID for the business

 

Create a Business

 

Query Auth

 Authentication is required for this endpoint.
posthttps://municipal.systems/v1/data/businesses
import request from 'superagent'

const data = {
  sourceId: 'b6cfe107c60fb5bd6557a8e5b299b355f170e462',
  receivedAt: '2016-07-26T20:25:00.000Z',
  closedAt: '2016-07-26T20:29:00.000Z',
  type: 'cafe',
  name: 'Sightglass',
  images: [ 'https://imagesrc.png' ],
  location: {
    type: 'Point',
    coordinates: [
      -74.044725,
      40.752559
    ]
  }
}

request
  .post('https://municipal.systems/v1/data/businesses')
  .query({ key: 'YOUR_PROVIDER_API_KEY' })
  .send(data)
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "success": true
}
{
}

Body Params

sourceId
string
required

Unique identifier for the data from the source

startedAt
date

Date and time when the business was created

endedAt
date

Date and time when the business shut down

type
string

Type of business ("restaurant", "cafe", "bakery", etc.)

location
object
required

Location of the business

 
phone
string

Phone number of the business

url
string

Website URL of the business

email
string

Email of the business

meta
object

Any non-standard fields

 
images
array of strings

Images of the business

name
string

Name of the business

 

This endpoint requires a valid API Key for a data source. Don't have one? Follow this guide to get one!

Export Businesses

 
gethttps://municipal.systems/v1/municipalities/municipalityId/businesses/export?format=format&limit=10
import request from 'superagent'

request
  .get('https://municipal.systems/v1/municipalities/jers-nj/businesses/export?format=geojson')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "type": "FeatureCollection",
  "features": [{
    "type": "Feature",
    "properties": {
      "id": "70a6fa425293c1cc0339a18a733e3a00",
      "sourceId": "14-191632",
      "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb02",
      "createdAt": "2017-02-24T20:50:07.000Z",
      "updatedAt": "2017-02-24T20:50:07.000Z",
      "images": null,
      "receivedAt": "2014-08-31T18:27:00.000Z",
      "dispatchedAt": "2014-08-31T18:29:00.000Z",
      "arrivedAt": "2014-08-31T19:49:00.000Z",
      "units": ["S702", "CNARSGT"],
      "type": "disorderly conduct",
      "description": " time elapsed not applicable,  injury not applicable",
      "meta": null
    },
    "geometry": {
      "type": "Point",
      "coordinates": [-74.08964539, 40.69905853]
    }
  }, {
    "type": "Feature",
    "properties": {
      "id": "c1003a2a4208807190510e9fe2802181",
      "sourceId": "14-191628",
      "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb02",
      "createdAt": "2017-02-24T20:50:07.000Z",
      "updatedAt": "2017-02-24T20:50:07.000Z",
      "images": null,
      "receivedAt": "2014-08-31T18:11:00.000Z",
      "dispatchedAt": "2014-08-31T18:13:00.000Z",
      "arrivedAt": "2014-08-31T19:23:00.000Z",
      "units": ["W202"],
      "type": "burglary residential prop",
      "description": " time elapsed not applicable,  injury not applicable",
      "meta": null
    },
    "geometry": {
      "type": "Point",
      "coordinates": [-74.06852722, 40.72553635]
    }
  }]
}

Path Params

municipalityId
string
required

Unique ID for the municipality

Query Params

format
string

The output format to export ("json", "csv", "geojson")

download
boolean

Force downloading instead of streaming data

limit
string

Limit the results (unlimited by default)

 

Street Closure Properties

 
Field
Type
Required
Description

id

String

No (generated)

Unique identifier generated by municipal.systems

createdAt

Date

No (generated)

Date and time when the record was created by municipal.systems

updatedAt

Date

No (generated)

Date and time when the record was last updated by municipal.systems

sourceId

Unique String

Yes

Unique identifier for the data from the source

startedAt

Date

Yes

Date and time when the closure started

endedAt

Date

Yes

Date and time when the closure ended

type

String

Yes

Type of closure ("partial" or "full")

description

String

No

Description of the closure

effects

Array of Strings

No

Side affects of closure, ("road", "parking", "sidewalk", etc.)

images

Array of URLs

No

List of images associated with the closure

direction

String

No

Direction of closure ("north", "south", "east", "west", "both")

startLocation

GeoJSON Point

Yes

Starting point of the closure

endLocation

GeoJSON Point

Yes

Ending point of the closure

path

GeoJSON Path

Yes

Driving path of the closure

meta

Object

No

Any non-standard fields

Validation

  • All required fields must be present
  • Locations can't be 0, 0
  • Date sequence must be in order (receivedAt -> acknowledgedAt -> closedAt)

Search Street Closures

 
gethttps://municipal.systems/v1/municipalities/municipalityId/street_closures
import request from 'superagent'

request
  .get('https://municipal.systems/v1/municipalities/jers-nj/street_issues')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "results": [
    {
      "id": "e27a6c7d8260eab63807afd7e72762c6",
      "sourceId": "3216724",
      "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb07",
      "startedAt": "2017-02-17T20:26:56.000Z",
      "updatedAt": "2017-02-17T20:26:56.000Z",
      "endedAt": "2017-02-17T19:51:11.000Z",
      "type": "road",
      "description": "Travel Lane Reduction",
      "path": {
        "type": "LineString",
        "coordinates": [
          [
            -74.0826874,
            40.7253935071486
          ],
          [
            -74.0926874,
            40.7653935071486
          ]
        ]
      },
      "meta": {}
    }
  ],
  "meta": {
    "results": 5,
    "total": 3562
  }
}

Path Params

municipalityId
string
required

Unique ID for the municipality

Query Params

search
string

Filter by case insensitive search

before
date

Filter results to only those that happened before the given date time.

after
date

Filter results to only those that happened after the given date time.

within
object

Only show results where the geolocation is within the given bounding box

 
orderings
array of objects

Order the results. Direction can be asc or desc.

field
direction
filters
object

Filter the results. Key is the field name, value is a comparator.

 
limit
int32

Limit the number of results

offset
int32

Adjust the offset of the query

 

Street Closure Lookup

 
gethttps://municipal.systems/v1/municipalities/municipalityId/street_closures/closureId
import request from 'superagent'

request
  .get('https://municipal.systems/v1/municipalities/jers-nj/street_closures/e27a6c7d8260eab63807afd7e72762c6')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "id": "e27a6c7d8260eab63807afd7e72762c6",
  "sourceId": "3216724",
  "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb07",
  "startedAt": "2017-02-17T20:26:56.000Z",
  "updatedAt": "2017-02-17T20:26:56.000Z",
  "endedAt": "2017-02-17T19:51:11.000Z",
  "type": "road",
  "description": "Travel Lane Reduction",
  "path": {
    "type": "LineString",
    "coordinates": [
      [
        -74.0826874,
        40.7253935071486
      ],
      [
        -74.0926874,
        40.7653935071486
      ]
    ]
  },
  "meta": {}
}

Path Params

municipalityId
string
required

Unique ID for the municipality

closureId
string
required

Unique ID for the street closure

 

Create a Street Closure

 

Query Auth

 Authentication is required for this endpoint.
posthttps://municipal.systems/v1/data/street_closures
import request from 'superagent'

const data = {
  sourceId: 'b6cfe107c60fb5bd6557a8e5b299b355f170e462',
  startedAt: '2016-07-26T20:25:00.000Z',
  endedAt: '2016-07-26T20:29:00.000Z',
  type: 'partial',
  description: 'Travel Lane Reduction',
  path: {
    type: 'LineString',
    coordinates: [
      [
        -74.044725,
        40.752559
      ],
      [
        -74.044725,
        40.752559
      ]
    ]
  }
}

request
  .post('https://municipal.systems/v1/data/street_closures')
  .query({ key: 'YOUR_PROVIDER_API_KEY' })
  .send(data)
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "success": true
}
{
}

Body Params

sourceId
string
required

Unique identifier for the data from the source

startedAt
date
required

Date and time when the closure was started

endedAt
date
required

Date and time when closure ended

type
string

Type of closure ("partial", "full")

description
string

Description of the closure

effects
string

Side effects of the closure ("road", "parking", "sidewalk")

path
object
required

Location path of the closure

 
meta
object

Any non-standard fields

 
direction
string

Direction affected by the closure ("north", "south", "east", "west", "both")

 

This endpoint requires a valid API Key for a data source. Don't have one? Follow this guide to get one!

Export Street Closures

 
gethttps://municipal.systems/v1/municipalities/municipalityId/street_closures/export?format=format&limit=10
import request from 'superagent'

request
  .get('https://municipal.systems/v1/municipalities/jers-nj/street_closures/export?format=geojson')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "type": "FeatureCollection",
  "features": [{
    "type": "Feature",
    "properties": {
      "id": "70a6fa425293c1cc0339a18a733e3a00",
      "sourceId": "14-191632",
      "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb02",
      "createdAt": "2017-02-24T20:50:07.000Z",
      "updatedAt": "2017-02-24T20:50:07.000Z",
      "images": null,
      "receivedAt": "2014-08-31T18:27:00.000Z",
      "dispatchedAt": "2014-08-31T18:29:00.000Z",
      "arrivedAt": "2014-08-31T19:49:00.000Z",
      "units": ["S702", "CNARSGT"],
      "type": "disorderly conduct",
      "description": " time elapsed not applicable,  injury not applicable",
      "meta": null
    },
    "geometry": {
      "type": "Point",
      "coordinates": [-74.08964539, 40.69905853]
    }
  }, {
    "type": "Feature",
    "properties": {
      "id": "c1003a2a4208807190510e9fe2802181",
      "sourceId": "14-191628",
      "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb02",
      "createdAt": "2017-02-24T20:50:07.000Z",
      "updatedAt": "2017-02-24T20:50:07.000Z",
      "images": null,
      "receivedAt": "2014-08-31T18:11:00.000Z",
      "dispatchedAt": "2014-08-31T18:13:00.000Z",
      "arrivedAt": "2014-08-31T19:23:00.000Z",
      "units": ["W202"],
      "type": "burglary residential prop",
      "description": " time elapsed not applicable,  injury not applicable",
      "meta": null
    },
    "geometry": {
      "type": "Point",
      "coordinates": [-74.06852722, 40.72553635]
    }
  }]
}

Path Params

municipalityId
string
required

Unique ID for the municipality

Query Params

format
string

The output format to export ("json", "csv", "geojson")

download
boolean

Force downloading instead of streaming data

limit
string

Limit the results (unlimited by default)

 

Bike Lane Properties

 
Field
Type
Required
Description

id

String

No (generated)

Unique identifier generated by municipal.systems

createdAt

Date

No (generated)

Date and time when the record was created by municipal.systems

updatedAt

Date

No (generated)

Date and time when the record was last updated by municipal.systems

sourceId

Unique String

Yes

Unique identifier for the data from the source

name

String

No

Name of bike lane route

path

GeoJSON LineString path

Yes

Location path of the bike lane

startLocation

GeoJSON Point

No (generated)

Start location of the bike lane

endLocation

GeoJSON Point

No (generated)

End location of the bike lane

meta

Object

No

Any non-standard fields

Validation

  • All required fields must be present
  • Locations can't be 0, 0
  • Date sequence must be in order (receivedAt -> acknowledgedAt -> closedAt)

Search Bike Lanes

 
gethttps://municipal.systems/v1/municipalities/municipalityId/bike_lanes
import request from 'superagent'

request
  .get('https://municipal.systems/v1/municipalities/jers-nj/bike_lanes')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "results": [{
    "id": "a2a7e2c0de76ecd93cf90f42554b00e9",
    "sourceId": "3",
    "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb11",
    "createdAt": "2017-02-01T07:43:11.000Z",
    "updatedAt": "2017-02-01T07:43:11.000Z",
    "images": null,
    "name": "Woodlawn Avenue",
    "direction": "both",
    "startLocation": {
      "type": "Point",
      "coordinates": [-74.088647, 40.704771]
    },
    "endLocation": {
      "type": "Point",
      "coordinates": [-74.083043, 40.701002]
    },
    "path": {
      "type": "LineString",
      "coordinates": [
        [-74.088647, 40.704771],
        [-74.088147, 40.704438],
        [-74.087622, 40.704087],
        [-74.087312, 40.703881],
        [-74.087296, 40.70387],
        [-74.085947, 40.702959],
        [-74.085945, 40.702958],
        [-74.084589, 40.702088],
        [-74.084585, 40.702085],
        [-74.083965, 40.701623],
        [-74.083043, 40.701002]
      ]
    },
    "meta": null
  }, {
    "id": "36bab3673f775d7ab393b6957e189c15",
    "sourceId": "59",
    "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb11",
    "createdAt": "2017-02-01T07:43:11.000Z",
    "updatedAt": "2017-02-01T07:43:11.000Z",
    "images": null,
    "name": "York Street",
    "direction": "both",
    "startLocation": {
      "type": "Point",
      "coordinates": [-74.055103, 40.720155]
    },
    "endLocation": {
      "type": "Point",
      "coordinates": [-74.048148, 40.717988]
    },
    "path": {
      "type": "LineString",
      "coordinates": [
        [-74.055103, 40.720155],
        [-74.054244, 40.719898],
        [-74.052726, 40.719443],
        [-74.051677, 40.719116],
        [-74.051171, 40.718955],
        [-74.049671, 40.718475],
        [-74.048148, 40.717989],
        [-74.048148, 40.717988]
      ]
    },
    "meta": null
  }],
  "meta": {
    "results": 2,
    "total": 62
  }
}

Path Params

municipalityId
string
required

Unique ID for the municipality

Query Params

search
string

Filter by case insensitive search

before
date

Filter results to only those that happened before the given date time.

after
date

Filter results to only those that happened after the given date time.

within
object

Only show results where the geolocation is within the given bounding box

 
orderings
array of objects

Order the results. Direction can be asc or desc.

field
direction
filters
object

Filter the results. Key is the field name, value is a comparator.

 
limit
int32

Limit the number of results

offset
int32

Adjust the offset of the query

 

Bike Lane Lookup

 
gethttps://municipal.systems/v1/municipalities/municipalityId/bike_lanes/laneId
import request from 'superagent'

request
  .get('https://municipal.systems/v1/municipalities/jers-nj/bike_lanes/a2a7e2c0de76ecd93cf90f42554b00e9')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "id": "a2a7e2c0de76ecd93cf90f42554b00e9",
  "sourceId": "3",
  "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb11",
  "createdAt": "2017-02-01T07:43:11.000Z",
  "updatedAt": "2017-02-01T07:43:11.000Z",
  "images": null,
  "name": "Woodlawn Avenue",
  "direction": "both",
  "startLocation": {
    "type": "Point",
    "coordinates": [-74.088647, 40.704771]
  },
  "endLocation": {
    "type": "Point",
    "coordinates": [-74.083043, 40.701002]
  },
  "path": {
    "type": "LineString",
    "coordinates": [
      [-74.088647, 40.704771],
      [-74.088147, 40.704438],
      [-74.087622, 40.704087],
      [-74.087312, 40.703881],
      [-74.087296, 40.70387],
      [-74.085947, 40.702959],
      [-74.085945, 40.702958],
      [-74.084589, 40.702088],
      [-74.084585, 40.702085],
      [-74.083965, 40.701623],
      [-74.083043, 40.701002]
    ]
  },
  "meta": null
}

Path Params

municipalityId
string
required

Unique ID for the municipality

laneId
string
required

Unique ID for the bike lane

 

Create a Bike Lane

 

Query Auth

 Authentication is required for this endpoint.
posthttps://municipal.systems/v1/data/bike_lanes
import request from 'superagent'

const data = {
  sourceId: '48',
  name: 'Jersey Avenue',
  direction: 'both',
  path: {
    coordinates: [
      [
        [-74.049008, 40.716367],
        [-74.049349, 40.715746],
        [-74.04956, 40.715348],
        [-74.049649, 40.715187],
        [-74.049739, 40.715035],
        [-74.050457, 40.713723],
        [-74.050503, 40.71364],
        [-74.050691, 40.713288],
        [-74.050758, 40.713168],
        [-74.050854, 40.712999],
        [-74.051186, 40.712405],
        [-74.051319, 40.712398],
        [-74.051319, 40.712397]
      ]
    ],
    type: 'LineString'
  }
}

request
  .post('https://municipal.systems/v1/data/bike_lanes')
  .query({ key: 'YOUR_PROVIDER_API_KEY' })
  .send(data)
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "success": true
}
{
}

Body Params

sourceId
string
required

Unique identifier for the data from the source

name
string

Name of the bike lane (path)

direction
string

Direction of the bike lane ("north", "south", "east", "west")

path
object
required

Location path of the closure

 
meta
object

Any non-standard fields

 
 

This endpoint requires a valid API Key for a data source. Don't have one? Follow this guide to get one!

Export Bike Lanes

 
gethttps://municipal.systems/v1/municipalities/municipalityId/bike_lanes/export?format=format&limit=10
import request from 'superagent'

request
  .get('https://municipal.systems/v1/municipalities/jers-nj/bike_lanes/export?format=geojson')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "type": "FeatureCollection",
  "features": [{
    "type": "Feature",
    "properties": {
      "id": "70a6fa425293c1cc0339a18a733e3a00",
      "sourceId": "14-191632",
      "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb02",
      "createdAt": "2017-02-24T20:50:07.000Z",
      "updatedAt": "2017-02-24T20:50:07.000Z",
      "images": null,
      "receivedAt": "2014-08-31T18:27:00.000Z",
      "dispatchedAt": "2014-08-31T18:29:00.000Z",
      "arrivedAt": "2014-08-31T19:49:00.000Z",
      "units": ["S702", "CNARSGT"],
      "type": "disorderly conduct",
      "description": " time elapsed not applicable,  injury not applicable",
      "meta": null
    },
    "geometry": {
      "type": "Point",
      "coordinates": [-74.08964539, 40.69905853]
    }
  }, {
    "type": "Feature",
    "properties": {
      "id": "c1003a2a4208807190510e9fe2802181",
      "sourceId": "14-191628",
      "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb02",
      "createdAt": "2017-02-24T20:50:07.000Z",
      "updatedAt": "2017-02-24T20:50:07.000Z",
      "images": null,
      "receivedAt": "2014-08-31T18:11:00.000Z",
      "dispatchedAt": "2014-08-31T18:13:00.000Z",
      "arrivedAt": "2014-08-31T19:23:00.000Z",
      "units": ["W202"],
      "type": "burglary residential prop",
      "description": " time elapsed not applicable,  injury not applicable",
      "meta": null
    },
    "geometry": {
      "type": "Point",
      "coordinates": [-74.06852722, 40.72553635]
    }
  }]
}

Path Params

municipalityId
string
required

Unique ID for the municipality

Query Params

format
string

The output format to export ("json", "csv", "geojson")

download
boolean

Force downloading instead of streaming data

limit
string

Limit the results (unlimited by default)

 

Traffic Jam Properties

 
Field
Type
Required
Description

id

String

No (generated)

Unique identifier generated by municipal.systems

createdAt

Date

No (generated)

Date and time when the record was created by municipal.systems

updatedAt

Date

No (generated)

Date and time when the record was last updated by municipal.systems

sourceId

Unique String

Yes

Unique identifier for the data from the source

startedAt

Date

Yes

Date and time when the jam was started

endedAt

Date

No

Date and time when the jam ended

severity

Number

No

Number ranging between 0 and 1 of the severity

distance

Number

No

Distance covered by the jam

speed

String

No

Average speed of the traffic through the jam in kilometers

startLocation

GeoJSON Point

Yes

Start location of the jam

endLocation

GeoJSON Point

Yes

End location of the jam

path

GeoJSON LineString

Yes (generated)

GeoJSON path of the jam

images

Array of URLs

No

List of images associated with the jam

meta

Object

No

Any non-standard fields

Validation

  • All required fields must be present
  • Locations can't be 0, 0
  • Date sequence must be in order (receivedAt -> acknowledgedAt -> closedAt)

Search Traffic Jams

 
gethttps://municipal.systems/v1/municipalities/municipalityId/traffic_jams
import request from 'superagent'

request
  .get('https://municipal.systems/v1/municipalities/jers-nj/traffic_jams')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "results": [{
    "id": "35de2060d6e9fe44ebed89d3539798c6",
    "sourceId": "38275699",
    "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb18",
    "createdAt": "2017-02-21T20:13:10.000Z",
    "updatedAt": "2017-02-21T20:13:10.000Z",
    "images": null,
    "startedAt": "2017-02-15T10:20:16.490Z",
    "endedAt": "2017-02-21T20:05:00.000Z",
    "severity": "1",
    "distance": "54.64854180109401",
    "speed": "0",
    "startLocation": {
      "type": "Point",
      "coordinates": [-74.08477, 40.73651]
    },
    "endLocation": {
      "type": "Point",
      "coordinates": [-74.085404, 40.736407]
    },
    "path": {
      "type": "LineString",
      "coordinates": [
        [-74.08477, 40.73651],
        [-74.084848, 40.736499],
        [-74.085404, 40.736407]
      ]
    },
    "meta": {
      "delay": -1,
      "street": "to Pulaski Skwy S (No Trucks)",
      "endStreet": "Pulaski Skwy S"
    }
  }],
  "meta": {
    "results": 1,
    "total": 10
  }
}

Path Params

municipalityId
string
required

Unique ID for the municipality

Query Params

search
string

Filter by case insensitive search

before
date

Filter results to only those that happened before the given date time.

after
date

Filter results to only those that happened after the given date time.

within
object

Only show results where the geolocation is within the given bounding box

 
orderings
array of objects

Order the results. Direction can be asc or desc.

field
direction
filters
object

Filter the results. Key is the field name, value is a comparator.

 
limit
int32

Limit the number of results

offset
int32

Adjust the offset of the query

 

Traffic Jam Lookup

 
gethttps://municipal.systems/v1/municipalities/municipalityId/issues/jamId
import request from 'superagent'

request
  .get('https://municipal.systems/v1/municipalities/jers-nj/traffic_jams/e27a6c7d8260eab63807afd7e72762c6')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "id": "35de2060d6e9fe44ebed89d3539798c6",
  "sourceId": "38275699",
  "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb18",
  "createdAt": "2017-02-21T20:13:10.000Z",
  "updatedAt": "2017-02-21T20:13:10.000Z",
  "images": null,
  "startedAt": "2017-02-15T10:20:16.490Z",
  "endedAt": "2017-02-21T20:05:00.000Z",
  "severity": "1",
  "distance": "54.64854180109401",
  "speed": "0",
  "startLocation": {
    "type": "Point",
    "coordinates": [-74.08477, 40.73651]
  },
  "endLocation": {
    "type": "Point",
    "coordinates": [-74.085404, 40.736407]
  },
  "path": {
    "type": "LineString",
    "coordinates": [
      [-74.08477, 40.73651],
      [-74.084848, 40.736499],
      [-74.085404, 40.736407]
    ]
  },
  "meta": {
    "delay": -1,
    "street": "to Pulaski Skwy S (No Trucks)",
    "endStreet": "Pulaski Skwy S"
  }
}

Path Params

municipalityId
string
required

Unique ID for the municipality

jamId
string
required

Unique ID for the issue

 

Create a Traffic Jam

 

Query Auth

 Authentication is required for this endpoint.
posthttps://municipal.systems/v1/data/traffic_jams
import request from 'superagent'

const data = { 
  sourceId: '253759095',
  startedAt: 1487722102517,
  endedAt: '2017-02-22 00:12:00:000',
  speed: 4.9084992,
  severity: 0.6000000000000001,
  path: 
   { 
     coordinates: 
      [
        [-84.390206,33.747816],
        [-84.390213,33.74782],
        [-84.391534,33.748546],
        [-84.392701,33.749204]
      ],
     type: 'LineString' 
  },
  meta: { 
    startStreet: undefined,
    endStreet: 'Lynfield Dr SW',
    street: 'Annelaine Dr SW',
    delay: 125 
  } 
}


request
  .post('https://municipal.systems/v1/data/traffic_jams')
  .query({ key: 'YOUR_PROVIDER_API_KEY' })
  .send(data)
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "success": true
}
{
}

Body Params

sourceId
string
required

Unique identifier for the data from the source

startedAt
date
required

Date and time when the jam started

endedAt
date
required

Date and time when the jam ended

severity
string

Severity of traffic jam (scale from 0 - 1)

distance
string

Distance of the traffic jam

speed
string

Speed of traffic through the jam in kilometers

assignee
string

Municipal ID or department name assigned to the issue

startLocation
object
required

Start Location where of the jam

 
endLocation
object
required

End Location of the jam

 
path
object
required

GeoJSON path of the jam

 
meta
object

Any non-standard fields

 
 

This endpoint requires a valid API Key for a data source. Don't have one? Follow this guide to get one!

Export Traffic Jams

 
gethttps://municipal.systems/v1/municipalities/municipalityId/traffic_jams/export?format=format&limit=10
import request from 'superagent'

request
  .get('https://municipal.systems/v1/municipalities/jers-nj/traffic_james/export?format=geojson')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "type": "FeatureCollection",
  "features": [{
    "type": "Feature",
    "properties": {
      "id": "70a6fa425293c1cc0339a18a733e3a00",
      "sourceId": "14-191632",
      "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb02",
      "createdAt": "2017-02-24T20:50:07.000Z",
      "updatedAt": "2017-02-24T20:50:07.000Z",
      "images": null,
      "receivedAt": "2014-08-31T18:27:00.000Z",
      "dispatchedAt": "2014-08-31T18:29:00.000Z",
      "arrivedAt": "2014-08-31T19:49:00.000Z",
      "units": ["S702", "CNARSGT"],
      "type": "disorderly conduct",
      "description": " time elapsed not applicable,  injury not applicable",
      "meta": null
    },
    "geometry": {
      "type": "Point",
      "coordinates": [-74.08964539, 40.69905853]
    }
  }, {
    "type": "Feature",
    "properties": {
      "id": "c1003a2a4208807190510e9fe2802181",
      "sourceId": "14-191628",
      "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb02",
      "createdAt": "2017-02-24T20:50:07.000Z",
      "updatedAt": "2017-02-24T20:50:07.000Z",
      "images": null,
      "receivedAt": "2014-08-31T18:11:00.000Z",
      "dispatchedAt": "2014-08-31T18:13:00.000Z",
      "arrivedAt": "2014-08-31T19:23:00.000Z",
      "units": ["W202"],
      "type": "burglary residential prop",
      "description": " time elapsed not applicable,  injury not applicable",
      "meta": null
    },
    "geometry": {
      "type": "Point",
      "coordinates": [-74.06852722, 40.72553635]
    }
  }]
}

Path Params

municipalityId
string
required

Unique ID for the municipality

Query Params

format
string

The output format to export ("json", "csv", "geojson")

download
boolean

Force downloading instead of streaming data

limit
string

Limit the results (unlimited by default)

 

Traffic Incident Properties

 
Field
Type
Required
Description

id

String

No (generated)

Unique identifier generated by municipal.systems

createdAt

Date

No (generated)

Date and time when the record was created by municipal.systems

updatedAt

Date

No (generated)

Date and time when the record was last updated by municipal.systems

sourceId

Unique String

Yes

Unique identifier for the data from the source

startedAt

Date

Yes

Date and time when the incident started

endedAt

Date

No

Date and time when the incident ended

type

String

Yes

Type of incident ("car accident", "road hazard", etc.)

description

String

No

Description of the incident

location

GeoJSON Point

Yes

Location where the incident occurred

meta

Object

No

Any non-standard fields

Validation

  • All required fields must be present
  • Locations can't be 0, 0
  • Date sequence must be in order (receivedAt -> acknowledgedAt -> closedAt)

Search Traffic Incidents

 
gethttps://municipal.systems/v1/municipalities/municipalityId/traffic_incidents
import request from 'superagent'

request
  .get('https://municipal.systems/v1/municipalities/jers-nj/traffic_incidents')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "results": [{
    "id": "6d61fe120452f11e99fd32cb44a17788",
    "sourceId": "cd6a5300-f171-3130-ac96-23623d696795",
    "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb26",
    "createdAt": "2017-02-22T00:36:04.000Z",
    "updatedAt": "2017-02-22T00:36:03.000Z",
    "images": null,
    "startedAt": "2017-02-22T00:16:04.518Z",
    "endedAt": null,
    "description": "ACCIDENT_MINOR",
    "type": "ACCIDENT",
    "location": {
      "type": "Point",
      "coordinates": [-84.42987, 33.841495]
    },
    "meta": {
      "street": "I-75 N",
      "roadType": 3,
      "confidence": 5,
      "reliability": 10,
      "reportRating": 3
    }
  }, {
    "id": "b8b8bb0f87a510579627a365c9341ace",
    "sourceId": "5b9ff289-b681-3766-83ac-ed681b526495",
    "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb26",
    "createdAt": "2017-02-22T00:36:03.000Z",
    "updatedAt": "2017-02-22T00:36:03.000Z",
    "images": null,
    "startedAt": "2017-02-22T00:14:46.994Z",
    "endedAt": null,
    "description": "ACCIDENT_MAJOR",
    "type": "ACCIDENT",
    "location": {
      "type": "Point",
      "coordinates": [-84.42971, 33.844333]
    },
    "meta": {
      "street": "I-75 N",
      "roadType": 3,
      "confidence": 5,
      "reliability": 10,
      "reportRating": 0
    }
  }, {
    "id": "72855ac964e639357ffd88d4229e9eaf",
    "sourceId": "5380d42d-421f-3878-9f2b-b16ec0236761",
    "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb26",
    "createdAt": "2017-02-22T00:36:03.000Z",
    "updatedAt": "2017-02-22T00:36:03.000Z",
    "images": null,
    "startedAt": "2017-02-21T23:47:45.711Z",
    "endedAt": null,
    "description": "ACCIDENT_MINOR",
    "type": "ACCIDENT",
    "location": {
      "type": "Point",
      "coordinates": [-84.390524, 33.769105]
    },
    "meta": {
      "street": "I-75 S",
      "roadType": 3,
      "confidence": 5,
      "reliability": 10,
      "reportRating": 2
    }
  }, {
    "id": "a8fa9987068894fbbaad2df39570c83d",
    "sourceId": "1486727d-d237-3651-bf1f-4bcbb0af1c8e",
    "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb26",
    "createdAt": "2017-02-22T00:36:03.000Z",
    "updatedAt": "2017-02-22T00:36:03.000Z",
    "images": null,
    "startedAt": "2017-02-21T23:40:55.970Z",
    "endedAt": null,
    "description": "ACCIDENT_MINOR",
    "type": "ACCIDENT",
    "location": {
      "type": "Point",
      "coordinates": [-84.431227, 33.851533]
    },
    "meta": {
      "street": "I-75 S",
      "roadType": 3,
      "confidence": 5,
      "reliability": 10,
      "reportRating": 1
    }
  }],
  "meta": {
    "results": 4,
    "total": 15
  }
}

Path Params

municipalityId
string
required

Unique ID for the municipality

Query Params

search
string

Filter by case insensitive search

before
date

Filter results to only those that happened before the given date time.

after
date

Filter results to only those that happened after the given date time.

within
object

Only show results where the geolocation is within the given bounding box

 
orderings
array of objects

Order the results. Direction can be asc or desc.

field
direction
filters
object

Filter the results. Key is the field name, value is a comparator.

 
limit
int32

Limit the number of results

offset
int32

Adjust the offset of the query

 

Traffic Incident Lookup

 
gethttps://municipal.systems/v1/municipalities/municipalityId/traffic_incidents/incidentId
import request from 'superagent'

request
  .get('https://municipal.systems/v1/municipalities/jers-nj/traffic_incidents/e27a6c7d8260eab63807afd7e72762c6')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "id": "6d61fe120452f11e99fd32cb44a17788",
  "sourceId": "cd6a5300-f171-3130-ac96-23623d696795",
  "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb26",
  "createdAt": "2017-02-22T00:36:04.000Z",
  "updatedAt": "2017-02-22T00:36:03.000Z",
  "images": null,
  "startedAt": "2017-02-22T00:16:04.518Z",
  "endedAt": null,
  "description": "ACCIDENT_MINOR",
  "type": "ACCIDENT",
  "location": {
    "type": "Point",
    "coordinates": [-84.42987, 33.841495]
  },
  "meta": {
    "street": "I-75 N",
    "roadType": 3,
    "confidence": 5,
    "reliability": 10,
    "reportRating": 3
  }
}

Path Params

municipalityId
string
required

Unique ID for the municipality

incidentId
string
required

Unique ID for the incident

 

Create a Traffic Incident

 

Query Auth

 Authentication is required for this endpoint.
posthttps://municipal.systems/v1/data/traffic_incidents
import request from 'superagent'

const data = {
  sourceId: 'b6cfe107c60fb5bd6557a8e5b299b355f170e462',
  receivedAt: '2016-07-26T20:25:00.000Z',
  closedAt: '2016-07-26T20:29:00.000Z',
  type: 'Streets: Pothole/sinkhole/uneven pavement',
  status: 'closed',
  description: 'Large pothole in middle of street',
  assignee: 'James Doe (184512)',
  images: [ 'https://imagesrc.png' ],
  location: {
    type: 'Point',
    coordinates: [
      -74.044725,
      40.752559
    ]
  },
  
  meta: {
    endStation: {
      id: 3198,
      name: 'Heights Elevator'
    },
    startStation: {
      id: 3197,
      name: 'North St'
    }
  }
}

request
  .post('https://municipal.systems/v1/data/issues')
  .query({ key: 'YOUR_PROVIDER_API_KEY' })
  .send(data)
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "success": true
}
{
}

Body Params

sourceId
string
required

Unique identifier for the data from the source

receivedAt
date
required

Date and time when the issue was first reported

recognizedAt
date
required

Date and time when the trip was recognized and processed

closedAt
date
required

Date and time when issue was closed

type
string
required

Type of issue ("Water/Sewer", "Trash", "Service request", etc.)

status
string
required

Status of the issue ("open", "closed", "recognized", "archived")

description
string

Description of the issue

reporter
string

Name or ID of the issue reporter

assignee
string

Municipal ID or department name assigned to the issue

location
object
required

Location where the issue was reported

 
meta
object

Any non-standard fields

 
images
array of strings

Images of the issue

 

This endpoint requires a valid API Key for a data source. Don't have one? Follow this guide to get one!

Export Traffic Incidents

 
gethttps://municipal.systems/v1/municipalities/municipalityId/traffic_incidents/export?format=format&limit=10
import request from 'superagent'

request
  .get('https://municipal.systems/v1/municipalities/jers-nj/traffic_incidents/export?format=geojson')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "type": "FeatureCollection",
  "features": [{
    "type": "Feature",
    "properties": {
      "id": "70a6fa425293c1cc0339a18a733e3a00",
      "sourceId": "14-191632",
      "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb02",
      "createdAt": "2017-02-24T20:50:07.000Z",
      "updatedAt": "2017-02-24T20:50:07.000Z",
      "images": null,
      "receivedAt": "2014-08-31T18:27:00.000Z",
      "dispatchedAt": "2014-08-31T18:29:00.000Z",
      "arrivedAt": "2014-08-31T19:49:00.000Z",
      "units": ["S702", "CNARSGT"],
      "type": "disorderly conduct",
      "description": " time elapsed not applicable,  injury not applicable",
      "meta": null
    },
    "geometry": {
      "type": "Point",
      "coordinates": [-74.08964539, 40.69905853]
    }
  }, {
    "type": "Feature",
    "properties": {
      "id": "c1003a2a4208807190510e9fe2802181",
      "sourceId": "14-191628",
      "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb02",
      "createdAt": "2017-02-24T20:50:07.000Z",
      "updatedAt": "2017-02-24T20:50:07.000Z",
      "images": null,
      "receivedAt": "2014-08-31T18:11:00.000Z",
      "dispatchedAt": "2014-08-31T18:13:00.000Z",
      "arrivedAt": "2014-08-31T19:23:00.000Z",
      "units": ["W202"],
      "type": "burglary residential prop",
      "description": " time elapsed not applicable,  injury not applicable",
      "meta": null
    },
    "geometry": {
      "type": "Point",
      "coordinates": [-74.06852722, 40.72553635]
    }
  }]
}

Path Params

municipalityId
string
required

Unique ID for the municipality

Query Params

format
string

The output format to export ("json", "csv", "geojson")

download
boolean

Force downloading instead of streaming data

limit
string

Limit the results (unlimited by default)

 

Traffic Camera Properties

 
Field
Type
Required
Description

id

String

No (generated)

Unique identifier generated by municipal.systems

createdAt

Date

No (generated)

Date and time when the record was created by municipal.systems

updatedAt

Date

No (generated)

Date and time when the record was last updated by municipal.systems

sourceId

Unique String

Yes

Unique identifier for the data from the source

name

String

No

Name of camera

description

String

No

Description of the issue

operator

String

No

Operating company or organization

stream

String

No

URL of live video stream

direction

String

No

Direction camera is facing ("north", "south", "east", "west")

images

Array of URLs

No

The images from the camera feed

location

GeoJSON Point

Yes

Location of the camera

meta

Object

No

Any non-standard fields

Validation

  • All required fields must be present
  • Locations can't be 0, 0
  • Date sequence must be in order (receivedAt -> acknowledgedAt -> closedAt)

Search Traffic Cameras

 
gethttps://municipal.systems/v1/municipalities/municipalityId/traffic_cameras
import request from 'superagent'

request
  .get('https://municipal.systems/v1/municipalities/jers-nj/traffic_cameras')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "results": [{
    "id": "24d99a4cf819bbb026d657ca582fb5fb",
    "sourceId": "CAM_03_NAve_East",
    "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb25",
    "createdAt": "2017-02-22T15:58:46.000Z",
    "updatedAt": "2017-02-22T15:58:46.000Z",
    "images": ["https://intellistore.blob.core.windows.net/rtt-images/CAM_03_NAve_East.jpg"],
    "name": "CAM_03_NAve_East",
    "description": null,
    "stream": null,
    "direction": "east",
    "operator": "ATL",
    "location": {
      "type": "Point",
      "coordinates": [-84.388751, 33.771243]
    },
    "meta": null
  }, {
    "id": "a7a048eb4035ac41218eac1752d6048a",
    "sourceId": "CAM_02_NAve_West",
    "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb25",
    "createdAt": "2017-02-22T15:58:46.000Z",
    "updatedAt": "2017-02-22T15:58:46.000Z",
    "images": ["https://intellistore.blob.core.windows.net/rtt-images/CAM_02_NAve_West.jpg"],
    "name": "CAM_02_NAve_West",
    "description": null,
    "stream": null,
    "direction": "west",
    "operator": "ATL",
    "location": {
      "type": "Point",
      "coordinates": [-84.388966, 33.771239]
    },
    "meta": null
  }, {
    "id": "42561e5425cd121268dc6ec8849d9954",
    "sourceId": "CAM_01_SSt_South",
    "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb25",
    "createdAt": "2017-02-22T15:58:46.000Z",
    "updatedAt": "2017-02-22T15:58:46.000Z",
    "images": ["https://intellistore.blob.core.windows.net/rtt-images/CAM_01_SSt_South.jpg"],
    "name": "CAM_01_SSt_South",
    "description": null,
    "stream": null,
    "direction": "south",
    "operator": "ATL",
    "location": {
      "type": "Point",
      "coordinates": [-84.388826, 33.771133]
    },
    "meta": null
  }],
  "meta": {
    "results": 3,
    "total": 3
  }
}

Path Params

municipalityId
string
required

Unique ID for the municipality

Query Params

search
string

Filter by case insensitive search

before
date

Filter results to only those that happened before the given date time.

after
date

Filter results to only those that happened after the given date time.

within
object

Only show results where the geolocation is within the given bounding box

 
orderings
array of objects

Order the results. Direction can be asc or desc.

field
direction
filters
object

Filter the results. Key is the field name, value is a comparator.

 
limit
int32

Limit the number of results

offset
int32

Adjust the offset of the query

 

Traffic Camera Lookup

 
gethttps://municipal.systems/v1/municipalities/municipalityId/traffic_cameras/cameraId
import request from 'superagent'

request
  .get('https://municipal.systems/v1/municipalities/jers-nj/traffic_cameras/00512688e517352c4166d876dca21c63')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "id": "24d99a4cf819bbb026d657ca582fb5fb",
  "sourceId": "CAM_03_NAve_East",
  "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb25",
  "createdAt": "2017-02-22T15:58:46.000Z",
  "updatedAt": "2017-02-22T15:58:46.000Z",
  "images": ["https://intellistore.blob.core.windows.net/rtt-images/CAM_03_NAve_East.jpg"],
  "name": "CAM_03_NAve_East",
  "description": null,
  "stream": null,
  "direction": "east",
  "operator": "ATL",
  "location": {
    "type": "Point",
    "coordinates": [-84.388751, 33.771243]
  },
  "meta": null
}

Path Params

municipalityId
string
required

Unique ID for the municipality

cameraId
string
required

Unique ID for the camera

 

Create a Traffic Camera

 

Query Auth

 Authentication is required for this endpoint.
posthttps://municipal.systems/v1/data/traffic_cameras
import request from 'superagent'

const data = {
  sourceId: 'b6cfe107c60fb5bd6557a8e5b299b355f170e462',
  name: 'metro-tech-011',
  operator: 'metro-tech',
  images: [ 'http://imagesrc.png' ],
  direction: 'north',
  location: {
    type: 'Point',
    coordinates: [
      -74.0403131,
      40.7485362
    ]
  },
  meta: {}
}

request
  .post('https://municipal.systems/v1/data/traffic_cameras')
  .query({ key: 'YOUR_PROVIDER_API_KEY' })
  .send(data)
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "success": true
}
{
}

Body Params

sourceId
string
required

Unique identifier for the data from the source

operator
string

Company or organization running the service

name
string

Name of camera ("CAM_01_SSt_South")

description
string

Description of camera

stream
string

URL of camera live stream

direction
string

Direction camera is facing ("north", "south", "east", "west")

images
array of strings

Image source url

location
object
required

Location of camera

 
meta
object

Any non-standard fields

 
 

This endpoint requires a valid API Key for a data source. Don't have one? Follow this guide to get one!

Export Traffic Cameras

 
gethttps://municipal.systems/v1/municipalities/municipalityId/traffic_cameras/export?format=format&limit=10
import request from 'superagent'

request
  .get('https://municipal.systems/v1/municipalities/jers-nj/traffic_cameras/export?format=geojson')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "type": "FeatureCollection",
  "features": [{
    "type": "Feature",
    "properties": {
      "id": "70a6fa425293c1cc0339a18a733e3a00",
      "sourceId": "14-191632",
      "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb02",
      "createdAt": "2017-02-24T20:50:07.000Z",
      "updatedAt": "2017-02-24T20:50:07.000Z",
      "images": null,
      "receivedAt": "2014-08-31T18:27:00.000Z",
      "dispatchedAt": "2014-08-31T18:29:00.000Z",
      "arrivedAt": "2014-08-31T19:49:00.000Z",
      "units": ["S702", "CNARSGT"],
      "type": "disorderly conduct",
      "description": " time elapsed not applicable,  injury not applicable",
      "meta": null
    },
    "geometry": {
      "type": "Point",
      "coordinates": [-74.08964539, 40.69905853]
    }
  }, {
    "type": "Feature",
    "properties": {
      "id": "c1003a2a4208807190510e9fe2802181",
      "sourceId": "14-191628",
      "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb02",
      "createdAt": "2017-02-24T20:50:07.000Z",
      "updatedAt": "2017-02-24T20:50:07.000Z",
      "images": null,
      "receivedAt": "2014-08-31T18:11:00.000Z",
      "dispatchedAt": "2014-08-31T18:13:00.000Z",
      "arrivedAt": "2014-08-31T19:23:00.000Z",
      "units": ["W202"],
      "type": "burglary residential prop",
      "description": " time elapsed not applicable,  injury not applicable",
      "meta": null
    },
    "geometry": {
      "type": "Point",
      "coordinates": [-74.06852722, 40.72553635]
    }
  }]
}

Path Params

municipalityId
string
required

Unique ID for the municipality

Query Params

format
string

The output format to export ("json", "csv", "geojson")

download
boolean

Force downloading instead of streaming data

limit
string

Limit the results (unlimited by default)

 

Transit Station Properties

 
Field
Type
Required
Description

id

String

No (generated)

Unique identifier generated by municipal.systems

createdAt

Date

No (generated)

Date and time when the record was created by municipal.systems

updatedAt

Date

No (generated)

Date and time when the record was last updated by municipal.systems

sourceId

Unique String

Yes

Unique identifier for the data from the source

type

String

Yes

Type of station ('bicycle', 'car', 'bus', 'train', 'subway', 'light rail')

name

String

No

Name of station

description

String

No

Description of the station

operator

String

Yes

Operating company or organization

location

GeoJSON Point

Yes

Location of the station

meta

Object

No

Any non-standard fields

Validation

  • All required fields must be present
  • Locations can't be 0, 0
  • Date sequence must be in order (receivedAt -> acknowledgedAt -> closedAt)

Search Transit Stations

 
gethttps://municipal.systems/v1/municipalities/municipalityId/transit_stations
import request from 'superagent'

request
  .get('https://municipal.systems/v1/municipalities/jers-nj/transit_cameras')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "results": [{
    "id": "768ff5c865c3db844e5a3c2c7de5113c",
    "sourceId": "hub_2178",
    "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb19",
    "createdAt": "2017-02-22T16:16:45.000Z",
    "updatedAt": "2017-02-22T16:16:45.000Z",
    "images": null,
    "type": "bicycle",
    "operator": "relaybikeshare",
    "name": "AUC Virtual Hub",
    "description": null,
    "location": {
      "type": "Point",
      "coordinates": [-84.41405028104782, 33.74565494301966]
    },
    "meta": {
      "rentalMethods": ["KEY", "APPLEPAY", "ANDROIDPAY", "TRANSITCARD", "ACCOUNTNUMBER", "PHONE"]
    }
  }, {
    "id": "abf48a86d3179213d8c6c33b95d1dbd8",
    "sourceId": "hub_1477",
    "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb19",
    "createdAt": "2017-02-22T16:16:45.000Z",
    "updatedAt": "2017-02-22T16:16:45.000Z",
    "images": null,
    "type": "bicycle",
    "operator": "relaybikeshare",
    "name": "BROAD & MITCHELL",
    "description": null,
    "location": {
      "type": "Point",
      "coordinates": [-84.39338453114033, 33.75160347465388]
    },
    "meta": {
      "rentalMethods": ["KEY", "APPLEPAY", "ANDROIDPAY", "TRANSITCARD", "ACCOUNTNUMBER", "PHONE"]
    }
  }, {
    "id": "1dfa4ebb9330a5f6bd9431e7822ef545",
    "sourceId": "hub_2115",
    "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb19",
    "createdAt": "2017-02-22T16:16:45.000Z",
    "updatedAt": "2017-02-22T16:16:45.000Z",
    "images": null,
    "type": "bicycle",
    "operator": "relaybikeshare",
    "name": "CENTENNIAL OLYMPIC PARK",
    "description": null,
    "location": {
      "type": "Point",
      "coordinates": [-84.39453452825546, 33.760331215618]
    },
    "meta": {
      "rentalMethods": ["KEY", "APPLEPAY", "ANDROIDPAY", "TRANSITCARD", "ACCOUNTNUMBER", "PHONE"]
    }
  }, {
    "id": "066291795fdbdee98469f1c0de79b2e1",
    "sourceId": "hub_1478",
    "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb19",
    "createdAt": "2017-02-22T16:16:45.000Z",
    "updatedAt": "2017-02-22T16:16:45.000Z",
    "images": null,
    "type": "bicycle",
    "operator": "relaybikeshare",
    "name": "CITY HALL",
    "description": null,
    "location": {
      "type": "Point",
      "coordinates": [-84.39089745283127, 33.74842937828157]
    },
    "meta": {
      "rentalMethods": ["KEY", "APPLEPAY", "ANDROIDPAY", "TRANSITCARD", "ACCOUNTNUMBER", "PHONE"]
    }
  }, {
    "id": "770e6e3d9a8b3a733e591400fc05f11c",
    "sourceId": "hub_2124",
    "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb19",
    "createdAt": "2017-02-22T16:16:45.000Z",
    "updatedAt": "2017-02-22T16:16:45.000Z",
    "images": null,
    "type": "bicycle",
    "operator": "relaybikeshare",
    "name": "CIVIC CENTER MARTA",
    "description": null,
    "location": {
      "type": "Point",
      "coordinates": [-84.38775390386581, 33.76482435962964]
    },
    "meta": {
      "rentalMethods": ["KEY", "APPLEPAY", "ANDROIDPAY", "TRANSITCARD", "ACCOUNTNUMBER", "PHONE"]
    }
  }],
  "meta": {
    "results": 5,
    "total": 27
  }
}

Path Params

municipalityId
string
required

Unique ID for the municipality

Query Params

search
string

Filter by case insensitive search

before
date

Filter results to only those that happened before the given date time.

after
date

Filter results to only those that happened after the given date time.

within
object

Only show results where the geolocation is within the given bounding box

 
orderings
array of objects

Order the results. Direction can be asc or desc.

field
direction
filters
object

Filter the results. Key is the field name, value is a comparator.

 
limit
int32

Limit the number of results

offset
int32

Adjust the offset of the query

 

Transit Station Lookup

 
gethttps://municipal.systems/v1/municipalities/municipalityId/transit_stations/stationId
import request from 'superagent'

request
  .get('https://municipal.systems/v1/municipalities/jers-nj/transit_stations/00512688e517352c4166d876dca21c63')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  sourceId: 'hub_1476',
  name: 'NELSON ST BRIDGE',
  type: 'bicycle',
  operator: 'relaybikeshare',
  location: {
    type: 'Point',
    coordinates: [-84.39781688153744, 33.75221452907895]
  },
  meta: {
    rentalMethods: ['KEY',
      'APPLEPAY',
      'ANDROIDPAY',
      'TRANSITCARD',
      'ACCOUNTNUMBER',
      'PHONE'
    ]
  }
}

Path Params

municipalityId
string
required

Unique ID for the municipality

stationId
string
required

Unique ID for the station

 

Create a Transit Station

 

Query Auth

 Authentication is required for this endpoint.
posthttps://municipal.systems/v1/data/traffic_cameras
import request from 'superagent'

const data = {
  sourceId: 'hub_1476',
  name: 'NELSON ST BRIDGE',
  type: 'bicycle',
  operator: 'relaybikeshare',
  location: {
    type: 'Point',
    coordinates: [-84.39781688153744, 33.75221452907895]
  },
  meta: {
    rentalMethods: ['KEY',
      'APPLEPAY',
      'ANDROIDPAY',
      'TRANSITCARD',
      'ACCOUNTNUMBER',
      'PHONE'
    ]
  }
}


request
  .post('https://municipal.systems/v1/data/transit_stations')
  .query({ key: 'YOUR_PROVIDER_API_KEY' })
  .send(data)
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "success": true
}
{
}

Body Params

sourceId
string
required

Unique identifier for the data from the source

operator
string
required

Identifier for the operator of the service ("metrotech", etc.)

name
string

Name of station

description
string

Description of camera

type
string
required

Type of station ('bicycle', 'car', 'bus', 'train', 'subway', 'light rail')

location
object
required

Location of camera

 
meta
object

Any non-standard fields

 
 

This endpoint requires a valid API Key for a data source. Don't have one? Follow this guide to get one!

Export Transit Stations

 
gethttps://municipal.systems/v1/municipalities/municipalityId/transit_stations/export?format=format&limit=10
import request from 'superagent'

request
  .get('https://municipal.systems/v1/municipalities/jers-nj/transit_stations/export?format=geojson')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "type": "FeatureCollection",
  "features": [{
    "type": "Feature",
    "properties": {
      "id": "70a6fa425293c1cc0339a18a733e3a00",
      "sourceId": "14-191632",
      "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb02",
      "createdAt": "2017-02-24T20:50:07.000Z",
      "updatedAt": "2017-02-24T20:50:07.000Z",
      "images": null,
      "receivedAt": "2014-08-31T18:27:00.000Z",
      "dispatchedAt": "2014-08-31T18:29:00.000Z",
      "arrivedAt": "2014-08-31T19:49:00.000Z",
      "units": ["S702", "CNARSGT"],
      "type": "disorderly conduct",
      "description": " time elapsed not applicable,  injury not applicable",
      "meta": null
    },
    "geometry": {
      "type": "Point",
      "coordinates": [-74.08964539, 40.69905853]
    }
  }, {
    "type": "Feature",
    "properties": {
      "id": "c1003a2a4208807190510e9fe2802181",
      "sourceId": "14-191628",
      "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb02",
      "createdAt": "2017-02-24T20:50:07.000Z",
      "updatedAt": "2017-02-24T20:50:07.000Z",
      "images": null,
      "receivedAt": "2014-08-31T18:11:00.000Z",
      "dispatchedAt": "2014-08-31T18:13:00.000Z",
      "arrivedAt": "2014-08-31T19:23:00.000Z",
      "units": ["W202"],
      "type": "burglary residential prop",
      "description": " time elapsed not applicable,  injury not applicable",
      "meta": null
    },
    "geometry": {
      "type": "Point",
      "coordinates": [-74.06852722, 40.72553635]
    }
  }]
}

Path Params

municipalityId
string
required

Unique ID for the municipality

Query Params

format
string

The output format to export ("json", "csv", "geojson")

download
boolean

Force downloading instead of streaming data

limit
string

Limit the results (unlimited by default)

 

Light Properties

 
Field
Type
Required
Description

id

String

No (generated)

Unique identifier generated by municipal.systems

createdAt

Date

No (generated)

Date and time when the record was created by municipal.systems

updatedAt

Date

No (generated)

Date and time when the record was last updated by municipal.systems

sourceId

Unique String

Yes

Unique identifier for the data from the source

issues

Array of Strings

No

Issues with the light

name

String

No

Name of light

description

String

No

Description of the light

accessories

Array of Strings

No

Any accessories or devices attached to a light

control

String

No

Type of light control, ("photocell", "timer")

location

GeoJSON Point

Yes

Location of the light

meta

Object

No

Any non-standard fields

Validation

  • All required fields must be present
  • Locations can't be 0, 0
  • Date sequence must be in order (receivedAt -> acknowledgedAt -> closedAt)

Search Lights

 
gethttps://municipal.systems/v1/municipalities/municipalityId/lights
import request from 'superagent'

request
  .get('https://municipal.systems/v1/municipalities/jers-nj/lights')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "results": [{
    "id": "b9ea10b44965311578b5f21d6c4344d7",
    "sourceId": "0e2800c8-0d27-4c77-bb45-4fecbcba0ccf",
    "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb24",
    "createdAt": "2017-02-22T16:38:42.000Z",
    "updatedAt": "2017-02-22T16:38:42.000Z",
    "images": ["https://services1.arcgis.com/QwlBo7rok8anXWDT/arcgis/rest/services/Streetlight_Audit_v0_9/FeatureServer/0/5/attachments/1", "https://services1.arcgis.com/QwlBo7rok8anXWDT/arcgis/rest/services/Streetlight_Audit_v0_9/FeatureServer/0/5/attachments/2"],
    "issues": [null],
    "name": "Cobrahead",
    "description": "400 Watt",
    "accessories": ["Handhold, mast arm, ped heads"],
    "control": "Lighting Controller",
    "location": {
      "type": "Point",
      "coordinates": [-84.3885107556141, 33.7501668633372]
    },
    "meta": {
      "width": 12,
      "height": null,
      "source": "HPS",
      "tapered": "Yes",
      "manufacturer": null,
      "locationCategory": "Commercial"
    }
  }, {
    "id": "e2de487c5373aea9036a44ac0753c1b9",
    "sourceId": "398b7461-d36d-4c23-a186-589f0444be9b",
    "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb24",
    "createdAt": "2017-02-22T16:38:46.000Z",
    "updatedAt": "2017-02-22T16:38:46.000Z",
    "images": ["https://services1.arcgis.com/QwlBo7rok8anXWDT/arcgis/rest/services/Streetlight_Audit_v0_9/FeatureServer/0/8/attachments/9", "https://services1.arcgis.com/QwlBo7rok8anXWDT/arcgis/rest/services/Streetlight_Audit_v0_9/FeatureServer/0/8/attachments/10", "https://services1.arcgis.com/QwlBo7rok8anXWDT/arcgis/rest/services/Streetlight_Audit_v0_9/FeatureServer/0/8/attachments/11", "https://services1.arcgis.com/QwlBo7rok8anXWDT/arcgis/rest/services/Streetlight_Audit_v0_9/FeatureServer/0/8/attachments/12"],
    "issues": [null],
    "name": "Cobrahead",
    "description": "400 Watt",
    "accessories": [null],
    "control": "Lighting Controller",
    "location": {
      "type": "Point",
      "coordinates": [-84.3876651326523, 33.7497154417958]
    },
    "meta": {
      "width": 8,
      "height": null,
      "source": "HPS",
      "tapered": "Yes",
      "manufacturer": null,
      "locationCategory": "Commercial"
    }
  }, {
    "id": "4f20a462d8eb5e80eab79010a8bec194",
    "sourceId": "4c2765dd-3300-4d3f-9a59-4bbd07f58f0e",
    "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb24",
    "createdAt": "2017-02-22T16:38:43.000Z",
    "updatedAt": "2017-02-22T16:38:43.000Z",
    "images": ["https://services1.arcgis.com/QwlBo7rok8anXWDT/arcgis/rest/services/Streetlight_Audit_v0_9/FeatureServer/0/6/attachments/3", "https://services1.arcgis.com/QwlBo7rok8anXWDT/arcgis/rest/services/Streetlight_Audit_v0_9/FeatureServer/0/6/attachments/4", "https://services1.arcgis.com/QwlBo7rok8anXWDT/arcgis/rest/services/Streetlight_Audit_v0_9/FeatureServer/0/6/attachments/5"],
    "issues": [null],
    "name": "Cobrahead",
    "description": "400 Watt",
    "accessories": ["Handhold, ped heads, missing access panel"],
    "control": "Lighting Controller",
    "location": {
      "type": "Point",
      "coordinates": [-84.388316846005, 33.750060274062]
    },
    "meta": {
      "width": 12,
      "height": null,
      "source": "HPS",
      "tapered": "Yes",
      "manufacturer": null,
      "locationCategory": "Commercial"
    }
  }, {
    "id": "1140c12c69917ee91426ea3ba08d0888",
    "sourceId": "8173751a-d9ef-45b3-9c45-c104834123f1",
    "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb24",
    "createdAt": "2017-02-22T16:38:45.000Z",
    "updatedAt": "2017-02-22T16:38:45.000Z",
    "images": ["https://services1.arcgis.com/QwlBo7rok8anXWDT/arcgis/rest/services/Streetlight_Audit_v0_9/FeatureServer/0/7/attachments/6", "https://services1.arcgis.com/QwlBo7rok8anXWDT/arcgis/rest/services/Streetlight_Audit_v0_9/FeatureServer/0/7/attachments/7", "https://services1.arcgis.com/QwlBo7rok8anXWDT/arcgis/rest/services/Streetlight_Audit_v0_9/FeatureServer/0/7/attachments/8"],
    "issues": [null],
    "name": "Cobrahead",
    "description": "400 Watt",
    "accessories": ["Mounted sign"],
    "control": "Lighting Controller",
    "location": {
      "type": "Point",
      "coordinates": [-84.3878918796748, 33.7498279345564]
    },
    "meta": {
      "width": 8,
      "height": null,
      "source": "HPS",
      "tapered": "Yes",
      "manufacturer": null,
      "locationCategory": "Commercial"
    }
  }, {
    "id": "163ac1ac86ff2c0e435cda3ab4b2d627",
    "sourceId": "af9911d5-3a56-4fea-a82d-8fb93a744b47",
    "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb24",
    "createdAt": "2017-02-22T16:38:49.000Z",
    "updatedAt": "2017-02-22T16:38:49.000Z",
    "images": ["https://services1.arcgis.com/QwlBo7rok8anXWDT/arcgis/rest/services/Streetlight_Audit_v0_9/FeatureServer/0/11/attachments/21", "https://services1.arcgis.com/QwlBo7rok8anXWDT/arcgis/rest/services/Streetlight_Audit_v0_9/FeatureServer/0/11/attachments/22", "https://services1.arcgis.com/QwlBo7rok8anXWDT/arcgis/rest/services/Streetlight_Audit_v0_9/FeatureServer/0/11/attachments/23"],
    "issues": [null],
    "name": "Cobrahead",
    "description": "400 Watt",
    "accessories": ["Electrical Span"],
    "control": "Lighting Controller",
    "location": {
      "type": "Point",
      "coordinates": [-84.3870413855855, 33.7493094376296]
    },
    "meta": {
      "width": 8,
      "height": null,
      "source": "HPS",
      "tapered": "Yes",
      "manufacturer": null,
      "locationCategory": "Commercial"
    }
  }],
  "meta": {
    "results": 5,
    "total": 7
  }
}

Path Params

municipalityId
string
required

Unique ID for the municipality

Query Params

search
string

Filter by case insensitive search

before
date

Filter results to only those that happened before the given date time.

after
date

Filter results to only those that happened after the given date time.

within
object

Only show results where the geolocation is within the given bounding box

 
orderings
array of objects

Order the results. Direction can be asc or desc.

field
direction
filters
object

Filter the results. Key is the field name, value is a comparator.

 
limit
int32

Limit the number of results

offset
int32

Adjust the offset of the query

 

Light Lookup

 
gethttps://municipal.systems/v1/municipalities/municipalityId/lights/lightId
import request from 'superagent'

request
  .get('https://municipal.systems/v1/municipalities/jers-nj/lights/00512688e517352c4166d876dca21c63')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "id": "b9ea10b44965311578b5f21d6c4344d7",
  "sourceId": "0e2800c8-0d27-4c77-bb45-4fecbcba0ccf",
  "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb24",
  "createdAt": "2017-02-22T16:38:42.000Z",
  "updatedAt": "2017-02-22T16:38:42.000Z",
  "images": ["https://services1.arcgis.com/QwlBo7rok8anXWDT/arcgis/rest/services/Streetlight_Audit_v0_9/FeatureServer/0/5/attachments/1", "https://services1.arcgis.com/QwlBo7rok8anXWDT/arcgis/rest/services/Streetlight_Audit_v0_9/FeatureServer/0/5/attachments/2"],
  "issues": [null],
  "name": "Cobrahead",
  "description": "400 Watt",
  "accessories": ["Handhold, mast arm, ped heads"],
  "control": "Lighting Controller",
  "location": {
    "type": "Point",
    "coordinates": [-84.3885107556141, 33.7501668633372]
  },
  "meta": {
    "width": 12,
    "height": null,
    "source": "HPS",
    "tapered": "Yes",
    "manufacturer": null,
    "locationCategory": "Commercial"
  }
}

Path Params

municipalityId
string
required

Unique ID for the municipality

lightId
string
required

Unique ID for the light

 

Create a Light

 

Query Auth

 Authentication is required for this endpoint.
posthttps://municipal.systems/v1/data/lights
import request from 'superagent'

const data = {
  sourceId: '0e2800c8-0d27-4c77-bb45-4fecbcba0ccf',
  location: {
    type: 'Point',
    coordinates: [-84.3885107556141, 33.7501668633372]
  },
  issues: [undefined],
  control: 'Lighting Controller',
  name: 'Cobrahead',
  accessories: ['Handhold, mast arm, ped heads'],
  description: '400 Watt',
  images: ['https://services1.arcgis.com/QwlBo7rok8anXWDT/arcgis/rest/services/Streetlight_Audit_v0_9/FeatureServer/0/5/attachments/1',
    'https://services1.arcgis.com/QwlBo7rok8anXWDT/arcgis/rest/services/Streetlight_Audit_v0_9/FeatureServer/0/5/attachments/2'
  ],
  meta: {
    source: 'HPS',
    manufacturer: null,
    height: null,
    width: 12,
    tapered: 'Yes',
    locationCategory: 'Commercial'
  }
}


request
  .post('https://municipal.systems/v1/data/lights')
  .query({ key: 'YOUR_PROVIDER_API_KEY' })
  .send(data)
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "success": true
}
{
}

Body Params

sourceId
string
required

Unique identifier for the data from the source

issues
array of strings

Any issues with the light

name
string

Name of light

description
string

Description of light

accessories
array of strings

Accessories on light ("sign", "banner")

control
string

Control type for light ("photocell", "timer", etc.)

location
object
required

Location of light

 
meta
object

Any non-standard fields

 
 

This endpoint requires a valid API Key for a data source. Don't have one? Follow this guide to get one!

Export Lights

 
gethttps://municipal.systems/v1/municipalities/municipalityId/lights/export?format=format&limit=10
import request from 'superagent'

request
  .get('https://municipal.systems/v1/municipalities/jers-nj/lights/export?format=geojson')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "type": "FeatureCollection",
  "features": [{
    "type": "Feature",
    "properties": {
      "id": "70a6fa425293c1cc0339a18a733e3a00",
      "sourceId": "14-191632",
      "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb02",
      "createdAt": "2017-02-24T20:50:07.000Z",
      "updatedAt": "2017-02-24T20:50:07.000Z",
      "images": null,
      "receivedAt": "2014-08-31T18:27:00.000Z",
      "dispatchedAt": "2014-08-31T18:29:00.000Z",
      "arrivedAt": "2014-08-31T19:49:00.000Z",
      "units": ["S702", "CNARSGT"],
      "type": "disorderly conduct",
      "description": " time elapsed not applicable,  injury not applicable",
      "meta": null
    },
    "geometry": {
      "type": "Point",
      "coordinates": [-74.08964539, 40.69905853]
    }
  }, {
    "type": "Feature",
    "properties": {
      "id": "c1003a2a4208807190510e9fe2802181",
      "sourceId": "14-191628",
      "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb02",
      "createdAt": "2017-02-24T20:50:07.000Z",
      "updatedAt": "2017-02-24T20:50:07.000Z",
      "images": null,
      "receivedAt": "2014-08-31T18:11:00.000Z",
      "dispatchedAt": "2014-08-31T18:13:00.000Z",
      "arrivedAt": "2014-08-31T19:23:00.000Z",
      "units": ["W202"],
      "type": "burglary residential prop",
      "description": " time elapsed not applicable,  injury not applicable",
      "meta": null
    },
    "geometry": {
      "type": "Point",
      "coordinates": [-74.06852722, 40.72553635]
    }
  }]
}

Path Params

municipalityId
string
required

Unique ID for the municipality

Query Params

format
string

The output format to export ("json", "csv", "geojson")

download
boolean

Force downloading instead of streaming data

limit
string

Limit the results (unlimited by default)

 

Mural Properties

 
Field
Type
Required
Description

id

String

No (generated)

Unique identifier generated by municipal.systems

createdAt

Date

No (generated)

Date and time when the record was created by municipal.systems

updatedAt

Date

No (generated)

Date and time when the record was last updated by municipal.systems

startedAt

Date

No

Date and time when the mural was started

completedAt

Date

No

Date and time when the mural was completed

sourceId

Unique String

Yes

Unique identifier for the data from the source

artists

Array of Strings

No

Artists who painted the mural

name

String

Yes

Name of mural

description

String

No

Description of the mural

location

GeoJSON Point

Yes

Location of the light

meta

Object

No

Any non-standard fields

Validation

  • All required fields must be present
  • Locations can't be 0, 0
  • Date sequence must be in order (receivedAt -> acknowledgedAt -> closedAt)

Search Murals

 
gethttps://municipal.systems/v1/municipalities/municipalityId/murals
import request from 'superagent'

request
  .get('https://municipal.systems/v1/municipalities/jers-nj/murals')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "results": [{
    "id": "475dcae0509d9bbe13d4ce519c6edf2c",
    "sourceId": "2",
    "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb00",
    "createdAt": "2017-02-22T16:49:50.000Z",
    "updatedAt": "2017-02-22T16:49:50.000Z",
    "images": ["https://www.dropbox.com/s/t1t6nuznihgbmqf/JC_Murals_BlackSheep_PixelPoncho-01.jpg?dl=0"],
    "startedAt": null,
    "completedAt": null,
    "artists": ["pixel pancho"],
    "name": "black sheep",
    "description": null,
    "location": {
      "type": "Point",
      "coordinates": [-74.045098, 40.719947]
    },
    "meta": null
  }, {
    "id": "9e4cc794a15a790268cef23241dc9425",
    "sourceId": "3",
    "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb00",
    "createdAt": "2017-02-22T16:49:50.000Z",
    "updatedAt": "2017-02-22T16:49:50.000Z",
    "images": ["https://www.dropbox.com/s/fx0n4gbiq7deq5b/JC_Murals_Chameleons_PawnEmilio-03.jpg?dl=0"],
    "startedAt": null,
    "completedAt": null,
    "artists": ["pawn and emillio florentine"],
    "name": "chameleons",
    "description": null,
    "location": {
      "type": "Point",
      "coordinates": [-74.081785, 40.698919]
    },
    "meta": null
  }, {
    "id": "28253fb2749b3fdabf4686ab189cf8bb",
    "sourceId": "4",
    "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb00",
    "createdAt": "2017-02-22T16:49:51.000Z",
    "updatedAt": "2017-02-22T16:49:51.000Z",
    "images": ["https://www.dropbox.com/s/y0kql1l60v1r1hv/JC_Murals_CircleofLife_DaveL-05.jpg?dl=0"],
    "startedAt": null,
    "completedAt": null,
    "artists": ["davel"],
    "name": "circle of life",
    "description": null,
    "location": {
      "type": "Point",
      "coordinates": [-74.066814, 40.714955]
    },
    "meta": null
  }, {
    "id": "9944059e74928bd58c7b20e038adf6e2",
    "sourceId": "5",
    "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb00",
    "createdAt": "2017-02-22T16:49:51.000Z",
    "updatedAt": "2017-02-22T16:49:51.000Z",
    "images": ["https://www.dropbox.com/s/80l3yqcsh2u5c2s/JC_Murals_Pollination_Zed-01.jpg?dl=0"],
    "startedAt": null,
    "completedAt": null,
    "artists": ["zed1"],
    "name": "cross pollination",
    "description": null,
    "location": {
      "type": "Point",
      "coordinates": [-74.100559, 40.693765]
    },
    "meta": null
  }, {
    "id": "d00e704ab5cef4171ececc6402f3e055",
    "sourceId": "1",
    "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb00",
    "createdAt": "2017-02-22T16:49:50.000Z",
    "updatedAt": "2017-02-22T16:49:50.000Z",
    "images": ["https://www.dropbox.com/s/a3ni5d2q10ktvao/JC_Murals_AbstractWallDesign_Mustart-01.jpg?dl=0"],
    "startedAt": null,
    "completedAt": null,
    "artists": ["mustart"],
    "name": "100 stairs",
    "description": null,
    "location": {
      "type": "Point",
      "coordinates": [-74.077642, 40.728157]
    },
    "meta": null
  }],
  "meta": {
    "results": 5,
    "total": 73
  }
}

Path Params

municipalityId
string
required

Unique ID for the municipality

Query Params

search
string

Filter by case insensitive search

before
date

Filter results to only those that happened before the given date time.

after
date

Filter results to only those that happened after the given date time.

within
object

Only show results where the geolocation is within the given bounding box

 
orderings
array of objects

Order the results. Direction can be asc or desc.

field
direction
filters
object

Filter the results. Key is the field name, value is a comparator.

 
limit
int32

Limit the number of results

offset
int32

Adjust the offset of the query

 

Mural Lookup

 
gethttps://municipal.systems/v1/municipalities/municipalityId/murals/muralId
import request from 'superagent'

request
  .get('https://municipal.systems/v1/municipalities/jers-nj/murals/00512688e517352c4166d876dca21c63')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "id": "475dcae0509d9bbe13d4ce519c6edf2c",
  "sourceId": "2",
  "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb00",
  "createdAt": "2017-02-22T16:49:50.000Z",
  "updatedAt": "2017-02-22T16:49:50.000Z",
  "images": ["https://www.dropbox.com/s/t1t6nuznihgbmqf/JC_Murals_BlackSheep_PixelPoncho-01.jpg?dl=0"],
  "startedAt": null,
  "completedAt": null,
  "artists": ["pixel pancho"],
  "name": "black sheep",
  "description": null,
  "location": {
    "type": "Point",
    "coordinates": [-74.045098, 40.719947]
  },
  "meta": null
}

Path Params

municipalityId
string
required

Unique ID for the municipality

muralId
string
required

Unique ID for the mural

 

Create a Mural

 

Query Auth

 Authentication is required for this endpoint.
posthttps://municipal.systems/v1/data/murals
import request from 'superagent'

const data = {
  sourceId: '1753',
  name: '100 stairs',
  artists: ['mustart'],
  images: ['https://www.dropbox.com/s/a3ni5d2q10ktvao/JC_Murals_AbstractWallDesign_Mustart-01.jpg?dl=0'],
  location: {
    type: 'Point',
    coordinates: [-74.077642, 40.728157]
  }
}


request
  .post('https://municipal.systems/v1/data/murals')
  .query({ key: 'YOUR_PROVIDER_API_KEY' })
  .send(data)
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "success": true
}
{
}

Body Params

sourceId
string
required

Unique identifier for the data from the source

startedAt
date

Date and time mural was started

completedAt
date

Date and time mural was completed

name
string
required

Name of mural

description
string

Description of mural

artists
array of strings

Artists who worked on the mural

location
object
required

Location of mural

 
meta
object

Any non-standard fields

 
 

This endpoint requires a valid API Key for a data source. Don't have one? Follow this guide to get one!

Export Murals

 
gethttps://municipal.systems/v1/municipalities/municipalityId/murals/export?format=format&limit=10
import request from 'superagent'

request
  .get('https://municipal.systems/v1/municipalities/jers-nj/murals/export?format=geojson')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "type": "FeatureCollection",
  "features": [{
    "type": "Feature",
    "properties": {
      "id": "70a6fa425293c1cc0339a18a733e3a00",
      "sourceId": "14-191632",
      "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb02",
      "createdAt": "2017-02-24T20:50:07.000Z",
      "updatedAt": "2017-02-24T20:50:07.000Z",
      "images": null,
      "receivedAt": "2014-08-31T18:27:00.000Z",
      "dispatchedAt": "2014-08-31T18:29:00.000Z",
      "arrivedAt": "2014-08-31T19:49:00.000Z",
      "units": ["S702", "CNARSGT"],
      "type": "disorderly conduct",
      "description": " time elapsed not applicable,  injury not applicable",
      "meta": null
    },
    "geometry": {
      "type": "Point",
      "coordinates": [-74.08964539, 40.69905853]
    }
  }, {
    "type": "Feature",
    "properties": {
      "id": "c1003a2a4208807190510e9fe2802181",
      "sourceId": "14-191628",
      "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb02",
      "createdAt": "2017-02-24T20:50:07.000Z",
      "updatedAt": "2017-02-24T20:50:07.000Z",
      "images": null,
      "receivedAt": "2014-08-31T18:11:00.000Z",
      "dispatchedAt": "2014-08-31T18:13:00.000Z",
      "arrivedAt": "2014-08-31T19:23:00.000Z",
      "units": ["W202"],
      "type": "burglary residential prop",
      "description": " time elapsed not applicable,  injury not applicable",
      "meta": null
    },
    "geometry": {
      "type": "Point",
      "coordinates": [-74.06852722, 40.72553635]
    }
  }]
}

Path Params

municipalityId
string
required

Unique ID for the municipality

Query Params

format
string

The output format to export ("json", "csv", "geojson")

download
boolean

Force downloading instead of streaming data

limit
string

Limit the results (unlimited by default)

 

Government Property Properties

 
Field
Type
Required
Description

id

String

No (generated)

Unique identifier generated by municipal.systems

createdAt

Date

No (generated)

Date and time when the record was created by municipal.systems

updatedAt

Date

No (generated)

Date and time when the record was last updated by municipal.systems

sourceId

Unique String

Yes

Unique identifier for the data from the source

operators

Array of Strings

No

Operators who manage the property

name

String

Yes

Name of property

description

String

No

Description of the property

value

Number

No

Estimated value of property

area

GeoJSON MultiPolygon Area

No

Area of property

location

GeoJSON Point

Yes

Location of the property

meta

Object

No

Any non-standard fields

Validation

  • All required fields must be present
  • Locations can't be 0, 0
  • Date sequence must be in order (receivedAt -> acknowledgedAt -> closedAt)

Search Government Properties

 
gethttps://municipal.systems/v1/municipalities/municipalityId/government_properties
import request from 'superagent'

request
  .get('https://municipal.systems/v1/municipalities/jers-nj/government_properties')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "results": [{
    "id": "1ce138321a2c5c618f18f53f3841e5e0",
    "sourceId": "11601-1",
    "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb03",
    "createdAt": "2017-02-22T17:37:10.000Z",
    "updatedAt": "2017-02-22T17:37:10.000Z",
    "images": null,
    "operators": ["city of jersey city"],
    "name": null,
    "description": "1s-cb-h",
    "value": 322500,
    "location": {
      "type": "Point",
      "coordinates": [-74.041217, 40.725488]
    },
    "area": null,
    "meta": null
  }, {
    "id": "f284a2dda37e9e66155e64130b062487",
    "sourceId": "18901-2",
    "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb03",
    "createdAt": "2017-02-22T17:37:10.000Z",
    "updatedAt": "2017-02-22T17:37:09.000Z",
    "images": null,
    "operators": ["jersey city redevelopment agency"],
    "name": null,
    "description": "1s-cb-c-o-h",
    "value": 248000,
    "location": {
      "type": "Point",
      "coordinates": [-74.068151, 40.712756]
    },
    "area": null,
    "meta": null
  }, {
    "id": "d5c6c09ee6c4c3f15cdf50991ea282d4",
    "sourceId": "15801-32",
    "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb03",
    "createdAt": "2017-02-22T17:37:10.000Z",
    "updatedAt": "2017-02-22T17:37:10.000Z",
    "images": null,
    "operators": ["jersey city redevelopment agency"],
    "name": null,
    "description": "1s-cb&b-in-o",
    "value": 768400,
    "location": {
      "type": "Point",
      "coordinates": [-74.0776417, 40.7281575]
    },
    "area": null,
    "meta": null
  }, {
    "id": "8c2c636481fcd5466090e8538e4ab6a0",
    "sourceId": "15801-4",
    "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb03",
    "createdAt": "2017-02-22T17:37:10.000Z",
    "updatedAt": "2017-02-22T17:37:10.000Z",
    "images": null,
    "operators": ["city of jersey city"],
    "name": null,
    "description": "1s-cb-in-nh",
    "value": 2736100,
    "location": {
      "type": "Point",
      "coordinates": [-74.0776417, 40.7281575]
    },
    "area": null,
    "meta": null
  }, {
    "id": "1c3eec7126b348877ef07204b93ce7c3",
    "sourceId": "19803-11",
    "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb03",
    "createdAt": "2017-02-22T17:37:10.000Z",
    "updatedAt": "2017-02-22T17:37:10.000Z",
    "images": null,
    "operators": ["jersey city redevelopment agency"],
    "name": null,
    "description": "2.5s-f-d-1u-nh",
    "value": 55100,
    "location": {
      "type": "Point",
      "coordinates": [-74.069591, 40.710852]
    },
    "area": null,
    "meta": null
  }],
  "meta": {
    "results": 5,
    "total": 30
  }
}

Path Params

municipalityId
string
required

Unique ID for the municipality

Query Params

search
string

Filter by case insensitive search

before
date

Filter results to only those that happened before the given date time.

after
date

Filter results to only those that happened after the given date time.

within
object

Only show results where the geolocation is within the given bounding box

 
orderings
array of objects

Order the results. Direction can be asc or desc.

field
direction
filters
object

Filter the results. Key is the field name, value is a comparator.

 
limit
int32

Limit the number of results

offset
int32

Adjust the offset of the query

 

Government Property Lookup

 
gethttps://municipal.systems/v1/municipalities/municipalityId/governemnt_properties/propertyId
import request from 'superagent'

request
  .get('https://municipal.systems/v1/municipalities/jers-nj/governemnt_properties/00512688e517352c4166d876dca21c63')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "id": "1ce138321a2c5c618f18f53f3841e5e0",
  "sourceId": "11601-1",
  "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb03",
  "createdAt": "2017-02-22T17:37:10.000Z",
  "updatedAt": "2017-02-22T17:37:10.000Z",
  "images": null,
  "operators": ["city of jersey city"],
  "name": null,
  "description": "1s-cb-h",
  "value": 322500,
  "location": {
    "type": "Point",
    "coordinates": [-74.041217, 40.725488]
  },
  "area": null,
  "meta": null
}

Path Params

municipalityId
string
required

Unique ID for the municipality

propertyId
string
required

Unique ID for the property

 

Create a Government Property

 

Query Auth

 Authentication is required for this endpoint.
posthttps://municipal.systems/v1/data/government_properties
import request from 'superagent'

const data = {
  sourceId: '22502-2',
  description: '1s-b-g',
  value: 45400,
  operators: ['jersey city redevelopment agency'],
  location: {
    type: 'Point',
    coordinates: [-74.081573, 40.712415]
  }
}


request
  .post('https://municipal.systems/v1/data/government_properties')
  .query({ key: 'YOUR_PROVIDER_API_KEY' })
  .send(data)
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "success": true
}
{
}

Body Params

sourceId
string
required

Unique identifier for the data from the source

operators
array of strings

Operators who manage the property

name
string

Name of property

description
string

Description of property

value
int32

Estimated value of property

area
object

GeoJSON area of property

 
location
object
required

Location of mural

 
meta
object

Any non-standard fields

 
 

This endpoint requires a valid API Key for a data source. Don't have one? Follow this guide to get one!

Export Government Properties

 
gethttps://municipal.systems/v1/municipalities/municipalityId/government_properties/export?format=format&limit=10
import request from 'superagent'

request
  .get('https://municipal.systems/v1/municipalities/jers-nj/government_properties/export?format=geojson')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "type": "FeatureCollection",
  "features": [{
    "type": "Feature",
    "properties": {
      "id": "70a6fa425293c1cc0339a18a733e3a00",
      "sourceId": "14-191632",
      "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb02",
      "createdAt": "2017-02-24T20:50:07.000Z",
      "updatedAt": "2017-02-24T20:50:07.000Z",
      "images": null,
      "receivedAt": "2014-08-31T18:27:00.000Z",
      "dispatchedAt": "2014-08-31T18:29:00.000Z",
      "arrivedAt": "2014-08-31T19:49:00.000Z",
      "units": ["S702", "CNARSGT"],
      "type": "disorderly conduct",
      "description": " time elapsed not applicable,  injury not applicable",
      "meta": null
    },
    "geometry": {
      "type": "Point",
      "coordinates": [-74.08964539, 40.69905853]
    }
  }, {
    "type": "Feature",
    "properties": {
      "id": "c1003a2a4208807190510e9fe2802181",
      "sourceId": "14-191628",
      "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb02",
      "createdAt": "2017-02-24T20:50:07.000Z",
      "updatedAt": "2017-02-24T20:50:07.000Z",
      "images": null,
      "receivedAt": "2014-08-31T18:11:00.000Z",
      "dispatchedAt": "2014-08-31T18:13:00.000Z",
      "arrivedAt": "2014-08-31T19:23:00.000Z",
      "units": ["W202"],
      "type": "burglary residential prop",
      "description": " time elapsed not applicable,  injury not applicable",
      "meta": null
    },
    "geometry": {
      "type": "Point",
      "coordinates": [-74.06852722, 40.72553635]
    }
  }]
}

Path Params

municipalityId
string
required

Unique ID for the municipality

Query Params

format
string

The output format to export ("json", "csv", "geojson")

download
boolean

Force downloading instead of streaming data

limit
string

Limit the results (unlimited by default)

 

Park Properties

 
Field
Type
Required
Description

id

String

No (generated)

Unique identifier generated by municipal.systems

createdAt

Date

No (generated)

Date and time when the record was created by municipal.systems

updatedAt

Date

No (generated)

Date and time when the record was last updated by municipal.systems

sourceId

Unique String

Yes

Unique identifier for the data from the source

operators

Array of Strings

No

Operators who manage the park

name

String

No

Name of park

location

GeoJSON Point

Yes

Location where the dropoff occured

area

GeoJSON MultiPolygon

No

Area of park

meta

Object

No

Any non-standard fields

Validation

  • All required fields must be present
  • Locations can't be 0, 0
  • Date sequence must be in order (receivedAt -> acknowledgedAt -> closedAt)

Search Parks

 
gethttps://municipal.systems/v1/municipalities/municipalityId/parks
import request from 'superagent'

request
  .get('https://municipal.systems/v1/municipalities/jers-nj/parks')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "results": [{
    "id": "45fdc6ebbc64b38785c8df97d2bfa744",
    "sourceId": "city-arlington-park",
    "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb06",
    "createdAt": "2017-02-22T17:51:19.000Z",
    "updatedAt": "2017-02-22T17:51:19.000Z",
    "images": null,
    "operators": ["city"],
    "name": "Arlington Park",
    "location": {
      "type": "Point",
      "coordinates": [-74.07084361552356, 40.71429879642372]
    },
    "area": {
      "type": "MultiPolygon",
      "coordinates": [
        [
          [
            [-74.072048287184, 40.71442344942698],
            [-74.0696389438631, 40.715015236748485],
            [-74.0704917703121, 40.713582356098954],
            [-74.07091143624407, 40.71380778385999],
            [-74.0710712322046, 40.713897402301534],
            [-74.07123576425397, 40.71398564987983],
            [-74.07130946560517, 40.71402530964714],
            [-74.07145596626765, 40.714105314888556],
            [-74.072048287184, 40.71442344942698]
          ]
        ]
      ]
    },
    "meta": null
  }],
  "meta": {
    "results": 1,
    "total": 9
  }
}

Path Params

municipalityId
string
required

Unique ID for the municipality

Query Params

search
string

Filter by case insensitive search

before
date

Filter results to only those that happened before the given date time.

after
date

Filter results to only those that happened after the given date time.

within
object

Only show results where the geolocation is within the given bounding box

 
orderings
array of objects

Order the results. Direction can be asc or desc.

field
direction
filters
object

Filter the results. Key is the field name, value is a comparator.

 
limit
int32

Limit the number of results

offset
int32

Adjust the offset of the query

 

Park Lookup

 
gethttps://municipal.systems/v1/municipalities/municipalityId/parks/parkId
import request from 'superagent'

request
  .get('https://municipal.systems/v1/municipalities/jers-nj/parks/00512688e517352c4166d876dca21c63')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "id": "45fdc6ebbc64b38785c8df97d2bfa744",
  "sourceId": "city-arlington-park",
  "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb06",
  "createdAt": "2017-02-22T17:51:19.000Z",
  "updatedAt": "2017-02-22T17:51:19.000Z",
  "images": null,
  "operators": ["city"],
  "name": "Arlington Park",
  "location": {
    "type": "Point",
    "coordinates": [-74.07084361552356, 40.71429879642372]
  },
  "area": {
    "type": "MultiPolygon",
    "coordinates": [
      [
        [
          [-74.072048287184, 40.71442344942698],
          [-74.0696389438631, 40.715015236748485],
          [-74.0704917703121, 40.713582356098954],
          [-74.07091143624407, 40.71380778385999],
          [-74.0710712322046, 40.713897402301534],
          [-74.07123576425397, 40.71398564987983],
          [-74.07130946560517, 40.71402530964714],
          [-74.07145596626765, 40.714105314888556],
          [-74.072048287184, 40.71442344942698]
        ]
      ]
    ]
  },
  "meta": null
}

Path Params

municipalityId
string
required

Unique ID for the municipality

parkId
string
required

Unique ID for the park

 

Create a Park

 

Query Auth

 Authentication is required for this endpoint.
posthttps://municipal.systems/v1/data/parks
import request from 'superagent'

const data = {
  sourceId: 'city-van-vorst-park',
  name: 'Van Vorst Park',
  operators: ['city'],
  area: {
    type: 'MultiPolygon',
    coordinates: [
      [
        [
          [
            [-74.04768
              682598605, 40.71852200463944
            ],
            [-74.04635321495594, 40.71810227416828],
            [-74.04662904270666, 40.71759501544042],
            [-74.04796264540454, 40.718014
              742717244
            ],
            [-74.04768682598605, 40.71852200463944]
          ]
        ]
      ]
    ]
  }
}

request
  .post('https://municipal.systems/v1/data/parks')
  .query({ key: 'YOUR_PROVIDER_API_KEY' })
  .send(data)
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "success": true
}
{
}

Body Params

sourceId
string
required

Unique identifier for the data from the source

operators
array of strings

Identifier for the operator of the park

name
string

Name of the park

area
object

GeoJSON area of the park

 
location
object
required

Location of the park

 
meta
object

Any non-standard fields

 
 

This endpoint requires a valid API Key for a data source. Don't have one? Follow this guide to get one!

Export Parks

 
gethttps://municipal.systems/v1/municipalities/municipalityId/parks/export?format=format&limit=10
import request from 'superagent'

request
  .get('https://municipal.systems/v1/municipalities/jers-nj/parks/export?format=geojson')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "type": "FeatureCollection",
  "features": [{
    "type": "Feature",
    "properties": {
      "id": "70a6fa425293c1cc0339a18a733e3a00",
      "sourceId": "14-191632",
      "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb02",
      "createdAt": "2017-02-24T20:50:07.000Z",
      "updatedAt": "2017-02-24T20:50:07.000Z",
      "images": null,
      "receivedAt": "2014-08-31T18:27:00.000Z",
      "dispatchedAt": "2014-08-31T18:29:00.000Z",
      "arrivedAt": "2014-08-31T19:49:00.000Z",
      "units": ["S702", "CNARSGT"],
      "type": "disorderly conduct",
      "description": " time elapsed not applicable,  injury not applicable",
      "meta": null
    },
    "geometry": {
      "type": "Point",
      "coordinates": [-74.08964539, 40.69905853]
    }
  }, {
    "type": "Feature",
    "properties": {
      "id": "c1003a2a4208807190510e9fe2802181",
      "sourceId": "14-191628",
      "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb02",
      "createdAt": "2017-02-24T20:50:07.000Z",
      "updatedAt": "2017-02-24T20:50:07.000Z",
      "images": null,
      "receivedAt": "2014-08-31T18:11:00.000Z",
      "dispatchedAt": "2014-08-31T18:13:00.000Z",
      "arrivedAt": "2014-08-31T19:23:00.000Z",
      "units": ["W202"],
      "type": "burglary residential prop",
      "description": " time elapsed not applicable,  injury not applicable",
      "meta": null
    },
    "geometry": {
      "type": "Point",
      "coordinates": [-74.06852722, 40.72553635]
    }
  }]
}

Path Params

municipalityId
string
required

Unique ID for the municipality

Query Params

format
string

The output format to export ("json", "csv", "geojson")

download
boolean

Force downloading instead of streaming data

limit
string

Limit the results (unlimited by default)

 

Government Vehicle Properties

 
Field
Type
Required
Description

id

String

No (generated)

Unique identifier generated by municipal.systems

createdAt

Date

No (generated)

Date and time when the record was created by municipal.systems

updatedAt

Date

No (generated)

Date and time when the record was last updated by municipal.systems

startedAt

Date

Yes

endedAt

Date

No

sourceId

Unique String

Yes

Unique identifier for the data from the source

operators

Array of Strings

No

Operators

make

String

Yes

Make of vehicle

model

String

Yes

Model of vehicle

color

String

Yes

Color of vehicle

year

Date

Yes

Year of vehicle

fuel

String

Yes

Fuel type ("gas", "diesel", "electric")

transmission

String

Yes

Transmission type ("automatic", "manual")

value

Number

Yes

Value of vehicle

vin

String

Yes

VIN of vehicle

plate

String

Yes

Vehicle license plate

location

GeoJSON Point

Yes

Location of vehicle

meta

Object

No

Any non-standard fields

Validation

  • All required fields must be present
  • Locations can't be 0, 0
  • Date sequence must be in order (receivedAt -> acknowledgedAt -> closedAt)

Search Government Vehicles

 
gethttps://municipal.systems/v1/municipalities/municipalityId/government_vehicles
import request from 'superagent'

request
  .get('https://municipal.systems/v1/municipalities/jers-nj/government_vehicles')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "results": [{
  }],
  "meta": {
    "results": 1,
    "total": 9
  }
}

Path Params

municipalityId
string
required

Unique ID for the municipality

Query Params

search
string

Filter by case insensitive search

before
date

Filter results to only those that happened before the given date time.

after
date

Filter results to only those that happened after the given date time.

within
object

Only show results where the geolocation is within the given bounding box

 
orderings
array of objects

Order the results. Direction can be asc or desc.

field
direction
filters
object

Filter the results. Key is the field name, value is a comparator.

 
limit
int32

Limit the number of results

offset
int32

Adjust the offset of the query

 

Government Vehicle Lookup

 
gethttps://municipal.systems/v1/municipalities/municipalityId/government_vehicles/vehicleId
import request from 'superagent'

request
  .get('https://municipal.systems/v1/municipalities/jers-nj/government_vehicles/00512688e517352c4166d876dca21c63')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

municipalityId
string
required

Unique ID for the municipality

vehicleId
string
required

Unique ID for the vehicle

 

Create a Government Vehicle

 

Query Auth

 Authentication is required for this endpoint.
posthttps://municipal.systems/v1/data/government_vehicles
import request from 'superagent'

const data = {
  
}

request
  .post('https://municipal.systems/v1/data/government_vehicles')
  .query({ key: 'YOUR_PROVIDER_API_KEY' })
  .send(data)
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "success": true
}
{
}

Body Params

sourceId
string
required

Unique identifier for the data from the source

operators
array of strings
required

Identifier for the operators of the vehicle

startedAt
date
required

Date and time when vehicle was started

endedAt
date

Date and time when vehicle was taken out of service

make
string
required

Make of the Vehicle

model
string
required

Model of the vehicle

color
string
required

Color of the vehicle

year
string
required

Year of the vehicle

fuel
string
required

Fuel type

transmission
string
required

Transmission type

value
int32
required

Value of vehicle

vin
string
required

VIN of vehicle

plate
string
required

Vehicle license plate

location
object
required

Location of the park

 
meta
object

Any non-standard fields

 
 

This endpoint requires a valid API Key for a data source. Don't have one? Follow this guide to get one!

Export Vehicles

 
gethttps://municipal.systems/v1/municipalities/municipalityId/vehicles/export?format=format&limit=10
import request from 'superagent'

request
  .get('https://municipal.systems/v1/municipalities/jers-nj/vehicles/export?format=geojson')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated

{
  "type": "FeatureCollection",
  "features": [{
    "type": "Feature",
    "properties": {
      "id": "70a6fa425293c1cc0339a18a733e3a00",
      "sourceId": "14-191632",
      "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb02",
      "createdAt": "2017-02-24T20:50:07.000Z",
      "updatedAt": "2017-02-24T20:50:07.000Z",
      "images": null,
      "receivedAt": "2014-08-31T18:27:00.000Z",
      "dispatchedAt": "2014-08-31T18:29:00.000Z",
      "arrivedAt": "2014-08-31T19:49:00.000Z",
      "units": ["S702", "CNARSGT"],
      "type": "disorderly conduct",
      "description": " time elapsed not applicable,  injury not applicable",
      "meta": null
    },
    "geometry": {
      "type": "Point",
      "coordinates": [-74.08964539, 40.69905853]
    }
  }, {
    "type": "Feature",
    "properties": {
      "id": "c1003a2a4208807190510e9fe2802181",
      "sourceId": "14-191628",
      "providerId": "8bb3fe61-3f7a-480e-8817-efe73a1bcb02",
      "createdAt": "2017-02-24T20:50:07.000Z",
      "updatedAt": "2017-02-24T20:50:07.000Z",
      "images": null,
      "receivedAt": "2014-08-31T18:11:00.000Z",
      "dispatchedAt": "2014-08-31T18:13:00.000Z",
      "arrivedAt": "2014-08-31T19:23:00.000Z",
      "units": ["W202"],
      "type": "burglary residential prop",
      "description": " time elapsed not applicable,  injury not applicable",
      "meta": null
    },
    "geometry": {
      "type": "Point",
      "coordinates": [-74.06852722, 40.72553635]
    }
  }]
}

Path Params

municipalityId
string
required

Unique ID for the municipality

Query Params

format
string

The output format to export ("json", "csv", "geojson")

download
boolean

Force downloading instead of streaming data

limit
string

Limit the results (unlimited by default)

 

Event Properties

 
Field
Type
Required
Description

id

String

No (generated)

Unique identifier generated by municipal.systems

createdAt

Date

No (generated)

Date and time when the record was created by municipal.systems

updatedAt

Date

No (generated)

Date and time when the record was last updated by municipal.systems

startedAt

Date

No

Date and time when the event started

endedAt

Date

No

Date and time when the event ended

sourceId

Unique String

Yes

Unique identifier for the data from the source

appliedAt

Date

No

Date and time when the event application was sent

name

String

Yes

Name of event

description

String

No

Description of event

type

String

No

Type of event ("walk", "festival")

attendance

Number

No

Number of attendees

status

String

Yes

Status of event ("approved, "rejected")

location

GeoJSON Point

Yes

Location of event

meta

Object

No

Any non-standard fields

Validation

  • All required fields must be present
  • Locations can't be 0, 0
  • Date sequence must be in order (receivedAt -> acknowledgedAt -> closedAt)

Search Events

 
gethttps://municipal.systems/v1/municipalities/municipalityId/events
import request from 'superagent'

request
  .get('https://municipal.systems/v1/municipalities/jers-nj/events')
  .end((err, res) => {
    console.log(res.body)
  })
A binary file was returned

You couldn't be authenticated