Skip to content

Citygram Dataset Best Practices

Jim Van Fleet edited this page Aug 18, 2015 · 2 revisions

Dataset Best Practices

So you'd like to get your data distributed via Citygram. That's great news! Here's some more detailed information about the sort of datasets that Citygram can manage.

Minimum Requirements

From our Getting Started page:

The geojson we created is Citygram-compliant with the following fields: An 'id' field at the top-level of the feature that is unique to the event. This exists to prevent duplication. A 'title' property that merges fields to create a message to send out as the notification.

So, the minimum requirements are easily stated. You must publish valid GeoJSON with each Feature element id and title attributes. Citygram can operate with as little as this.

For Best Results

Citygram is designed to deliver timely notifications relevant to specific locations. If your dataset changes rarely (e.g. roads, data intended to be published only once, etc.) it might not be a great fit for Citygram. Citygram is able to react to "the pace of Government" with perhaps weeks or months worth of data becoming available at once. But a commitment to updating the data regularly will be most pleasing to your citizens and our users.

311 requests, police information, planned and accidental road closures, business and land licensure information are all great candidates for data sets.

FAQ

Do you have any preference for record ordering?

Citygram the technology has no preference, but this is likely to lead to the least probability of omitting data on behalf of the producer. Citygram will process whatever it is served.

Do you have any limit / offset type of parameters that you use in your requests to paginate data? Or do you just want it all in one response.

Limits are common, offsets are less so. You can browse the examples for common practices. Citygram expects those providing the service to understand the dataset best. For example, if Seattle experiences more than 100 911 fire calls in 10 minutes, Citygram may not distribute those. Citygram operators currently make no claims regarding quality of service, so we'll accept services that are offered on their face.

How far back into the past should our data go?

For its initial load, in particular, it's helpful for Citygram to have at least two weeks of back data, as that data is shown to prospective subscribers so that they might judge how active their subscription will be ahead of time. This can be done by either providing all the data and depending on Citygram to dedupe, or by providing a smaller dataset, and having Citygram process the data without making the dataset available to the public to subscribe. Let your operator know which of these approaches suit you best as you prepare to go-live.

If you are able to arrange for a "Next-Page" header to be provided in your response, Citygram will follow that header up to ten times.

Do you want different endpoints for different data types or do you just want everything together?

We believe allowing citizens to choose which data streams to receive is the optimal experience. For this reason, the datasets should specialize in a single type of event. We are happy to bring many datasets online, whenever they are available, and over any sort of timeline.