FixMyStreet support for Open311
FixMyStreet supports Open311 both as a client (sending reports made on the site to an external service via the Open311 protocol), and partly as a server (returning reports made on the site when queried via the Open311 protocol).
- What is Open311?
-
In a nutshell, it’s a free, international technology, known as an open standard, that allows civic reporting services and systems to ‘talk to’ each other.
Open311 isn't as widely known as it deserves to be, so we wrote a short series of blog posts to explain the basics.
- Why does it matter?
-
If you oversee problem reports at a council, you will of course be concerned about future-proofing your communication channels in an easy and economical way – Open311 gives you that assurance.
- Integrating with FixMyStreet using Open311
-
Open311 enables any authority to receive reports from FixMyStreet.com and the app directly into a backend system instead of via email. It will also allow you to close/update reports on FixMyStreet.com or the app when work is completed.
- Any questions?
-
We're always happy to talk. Just drop us a line.
Open311 API for the mySociety FixMyStreet server
At the moment only searching for and looking at reports work.
This API implementation is work in progress and not yet stabilized. It will change without warnings in the future.
At most 1000 requests are returned in each query. The returned requests are ordered by requested_datetime, so to get all requests, do several searches with rolling start_date and end_date.
The following Open311 v2 attributes are returned for each request: service_request_id, description, lat, long, media_url, status, requested_datetime, updated_datetime, service_code and service_name.
In addition, the following attributes that are not part of the Open311 v2 specification are returned: agency_sent_datetime, title (also returned as part of description), interface_used, comment_count, requestor_name (only present if requestor allowed the name to be shown on this site).
The Open311 v2 attribute agency_responsible is used to list the administrations that received the problem report, which is not quite the way the attribute is defined in the Open311 v2 specification.
With request searches, it is also possible to search for agency_responsible to limit the requests to those sent to a single administration. The search term is the administration ID provided by MaPit.
Examples:
- discovery information: XML or JSON
/open311/v2/discovery.format?jurisdiction_id=fixmystreet - list of services provided: XML or JSON
/open311/v2/services.format?jurisdiction_id=fixmystreet - list of services provided for WGS84 coordinate latitude 60 longitude 11: XML or JSON
/open311/v2/services.format?jurisdiction_id=fixmystreet&lat=60&long=11 - Request number 1: XML or JSON
/open311/v2/requests/1.format?jurisdiction_id=fixmystreet - All requests with the category 'Other': XML or JSON
/open311/v2/requests.format?jurisdiction_id=fixmystreet&service_code=Other - All closed requests: XML or JSON
/open311/v2/requests.format?jurisdiction_id=fixmystreet&status=closed - All open requests reported before 2011-03-10 to Trondheim (id 1601): XML or JSON
/open311/v2/requests.format?jurisdiction_id=fixmystreet&status=open&agency_responsible=1601&end_date=2011-03-10 - All open requests in Asker (id 220) and Bærum (id 219): XML or JSON
/open311/v2/requests.format?jurisdiction_id=fixmystreet&status=open&agency_responsible=219|220
Searching
The following search parameters can be used:
- service_request_id
- Search for numeric ID of specific request. Using this is identical to asking for a individual request using the /requests/number.format URL.
- service_code
- Search for the given category / service type string.
- status
- Search for open or closed (fixed) requests.
- start_date
- Only return requests with requested_datetime set after or at the date and time specified. The format is YYYY-MM-DDTHH:MM:SS+TZ:TZ.
- end_date
- Only return requests with requested_datetime set before the date and time specified. Same format as start_date.
- agency_responsible
- ID of government body receiving the request. Several IDs can be specified with | as a separator.
- interface_used
- Name / identifier of interface used.
- has_photo
- Search for entries with or without photos. Use value 'true' to only get requests created with images, and 'false' to get those created without images.
- max_requests
- Max number of requests to return from the search. If it is larger than the site specific max_requests value specified in the discovery call, the value provided is ignored.
The search result might look like this:
<requests> <request> <agency_responsible> <recipient>Statens vegvesen region øst</recipient> <recipient>Oslo</recipient> </agency_responsible> <agency_sent_datetime>2011-04-23T10:28:55+02:00</agency_sent_datetime> <description>Mangler brustein: Det støver veldig på tørre dager. Her burde det vært brustein.</description> <detail>Det støver veldig på tørre dager. Her burde det vært brustein.</detail> <interface_used>Web interface</interface_used> <lat>59.916848</lat> <long>10.728148</long> <requested_datetime>2011-04-23T09:32:36+02:00</requested_datetime> <requestor_name>Petter Reinholdtsen</requestor_name> <service_code>Annet</service_code> <service_name>Annet</service_name> <service_request_id>1</service_request_id> <status>open</status> <title>Mangler brustein</title> <updated_datetime>2011-04-23T10:28:55+02:00</updated_datetime> </request> </requests>