The GeoReport API allows developers to build applications to report non-emergency issues such as graffiti, potholes, and street cleaning directly to government organizations like cities.
All date/time fields must be formatted in a common subset of ISO 8601 as per the w3 note. Timezone information (either Z meaning UTC, or an HH:MM offset from UTC) must be included.
Examples:
UTF-8 is required everywhere.
All text returned by the service, whether in XML, JSON, or any other text-based content-type, MUST be encoded as UTF-8. Appropriate HTTP headers must be set, and the XML root element must contain the appropriate encoding="UTF-8" attribute. All text received by the service from the client will be assumed to be UTF-8 and must be decoded accordingly.
As a means to allow this API to be used by multiple cities we've included a "jurisdiction_id" which will be the unique identifier for cities. It has been suggested that we use the city's url as the "jurisdiction_id". We have incorporated that suggestion into our design and the jurisdiction_id for San Francisco = sfgov.org
Example response:
<?xml version="1.0" encoding="utf-8"?> <services> <service> <code>001</code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>sanitation</group> <name>Cans left out 24x7</name> <description>Garbage or recycling cans that have been left out for more than 24 hours after collection. Violators will be cited.</description> </service> <service> <code>002</code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>street</group> <name>Construction plate shifted</name> <description>Metal construction plate covering the street or sidewalk has been moved.</description> </service> <service> <code>003</code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>street</group> <name>Curb or curb ramp defect</name> <description>Sidewalk curb or ramp has problems such as cracking, missing pieces, holes, and/or chipped curb.</description> </service> <service> <code>004</code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>sanitation</group> <name>Damaged city can</name> <description>Damage to a city garbage receptacle such as missing parts (lid, door, liner) or other physical damage.</description> </service> <service> <code>005</code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>sewer</group> <name>Damaged side sewer vent cover</name> <description>Damage to a side sewer vent cover with problems such as cracking, bending, rusting, or denting.</description> </service> <service> <code>006</code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>tree</group> <name>Damaged tree</name> <description>Damage to a city maintained tree. To check whether a tree is city maintained: http://bit.ly/6hsDk1.</description> </service> <service> <code>007</code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>graffiti</group> <name>Graffiti on bike rack - not offensive</name> <description>Graffiti on a bike rack that does not contain racial slurs, profanity, or gang related language.</description> </service> <service> <code>008</code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>graffiti</group> <name>Graffiti on news rack - not offensive</name> <description>Graffiti on a news rack that does not contain racial slurs, profanity, or gang related language .</description> </service> <service> <code>009</code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>graffiti</group> <name>Graffiti on parking meter - not offensive</name> <description>Graffiti on a parking meter that does not contain racial slurs, profanity, or gang related language .</description> </service> <service> <code>010</code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>graffiti</group> <name>Graffiti on pay phone - not offensive</name> <description>Graffiti on a pay phone that does not contain racial slurs, profanity, or gang related language. .</description> </service> <service> <code>011</code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>graffiti</group> <name>Graffiti on private property - not offensive</name> <description>Graffiti on a privately owned building or structure that does not contain racial slurs, profanity, or gang related language .</description> </service> <service> <code>012</code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>graffiti</group> <name>Graffiti on private property - offensive</name> <description>Graffiti on a privately owned building or structure that contains racial slurs, profanity, or gang related language .</description> </service> <service> <code>013</code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>graffiti</group> <name>Graffiti on public property - offensive</name> <description>Graffiti on public property (building, pole, sidewalk, hydrant, etc) with racial slurs, profanity, or gang related language .</description> </service> <service> <code>014</code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>graffiti</group> <name>Graffiti on public property- not offensive</name> <description>Graffiti on public property (building, pole, sidewalk, hydrant, etc) without racial slurs, profanity, or gang related language .</description> </service> <service> <code>015</code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>sanitation</group> <name>Illegal dumping</name> <description>Identify someone that has dumped or is dumping furniture or garbage onto the street or sidewalk. Violators will be cited .</description> </service> <service> <code>016</code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>landscaping</group> <name>Landscaping request</name> <description>Request maintenance on public property (except on park property) such as lawn mowing, bush or strip trimming and removal .</description> </service> <service> <code>017</code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>street</group> <name>Missed route - mechanical sweeping</name> <description>Street cleaning sweeper did not show up as scheduled according to the street cleaning signs .</description> </service> <service> <code>018</code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>sewer</group> <name>Missing side sewer vent cover</name> <description>The 4 side sewer vent cover (http://bit.ly/57BlOv) is missing from the sidewalk .</description> </service> <service> <code>019</code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>sanitation</group> <name>Overflowing city receptacle or dumpster</name> <description>City receptacle is overflowing and/or has garbage on and around the container .</description> </service> <service> <code>020</code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>tree</group> <name>Overgrown tree</name> <description>Request that a city maintained tree (except on park property) be trimmed. To check whether a tree is city maintained: http://bit.ly/6hsDk1 .</description> </service> <service> <code>021</code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>street</group> <name>Pothole in Street</name> <description>Defect on the street such as broken, cracked, and sinking asphalt or concrete .</description> </service> <service> <code>022</code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>sewer</group> <name>Sewage coming out of catch basin</name> <description>Sewage or dirty water coming out of a catchbasin (located at the corner of intersections) .</description> </service> <service> <code>023</code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>sewer</group> <name>Water coming from side sewer</name> <description>Sewage or odor coming out of a 4 side sewer (http://bit.ly/57BlOv) located on the sidewalk .</description> </service> <service> <code>024</code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>sidewalk</group> <name>Sidewalk cleaning</name> <description>Have garbage or human waste removed from the sidewalk and/or request services such as steam cleaning of sidewalks .</description> </service> <service> <code>025</code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>sidewalk</group> <name>Sidewalk defect</name> <description>Defect on the sidewalk such as broken, cracked, and/or sinking concrete .</description> </service> <service> <code>026</code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>street</group> <name>Street cleaning</name> <description>Request to have garbage or human waste removed from the street .</description> </service> <service> <code>027</code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>stree</group> <name>Tree damaging property</name> <description>Tree is damaging property (except for parks) or housing structure. City will address problem if it is a city maintained tree otherwise the property owner is notified to correct the issue .</description> </service> <service> <code>028</code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>water main</group> <name>Water main break</name> <description>Street is flooding due to water coming from within the asphalt or from a catchbasin .</description> </service> <service> <code>029</code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>graffiti</group> <name>Graffiti on street sign</name> <description>Graffiti on a street sign such as a stop sign, street name, and/or other parking and traffic signs .</description> </service> <service> <code>030</code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>sewer</group> <name>Odor coming from Side Sewer</name> <description>Odor coming out of a 4 side sewer (http://bit.ly/57BlOv) located on the sidewalk. .</description> </service> <service> <code>031</code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>sewer</group> <name>Sewage coming out of manhole cover</name> <description>Sewage or dirty water coming out of a manhole cover (typically located in the a street or alley) .</description> </service> <service> <code>032</code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>sewer</group> <name>Sewage coming out of sewer vent</name> <description>Sewage or dirty water coming out of a sewer vent (located on the sidewalk) .</description> </service> <service> <code>033</code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>street</group> <name>Pothole in bike lane</name> <description>Defect in the bike lane such as broken, cracked, and sinking asphalt or concrete.</description> </service> </services>
Example response:
<service_definition> <attribute> <variable>true</variable> <code>WHISHETN</code> <datatype>select_single</datatype> <required>true</required> <datatype_description></datatype_description> <order>1</order> <description>What is the ticket/tag/DL number?</description> <values> <value key="123" name="label" /> <value key="123" name="label" /> </values> <attribute> <service_code>DMV66</service_code> </service_definition>
Example response:
<service_requests> <request> <service_request_id>293944</service_request_id> <service_notice> The City will inspect and require the responsible party to correct within 24 hours and/or issue a Correction Notice or Notice of Violation of the Public Works Code </service_notice> <account_id/> </request> <service_requests>
Example response:
<service_requests> <request> <service_request_id>638344</service_request_id> <token>12345</token> </request> </service_requests>
Example response:
<service_requests> <request> <service_request_id>638344</service_request_id> <status>closed</status> <status_notes>Duplicate request.</status_notes> <name>Sidewalk and Curb Issues</name> <code>006</code> <description></description> <agency_responsible></agency_responsible> <service_notice></service_notice> <requested_datetime>2010-04-14T06:37:38-08:00</requested_datetime> <updated_datetime>2010-04-14T06:37:38-08:00</updated_datetime> <expected_datetime>2010-04-15T06:37:38-08:00</expected_datetime> <address>8TH AVE and JUDAH ST</address> <address_id>545483</address_id> <zipcode>94122</zipcode> <geo:lat xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#">37.762221815</geo:lat> <geo:long xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#">-122.4651145</geo:long> <georss:point xmlns:georss="http://www.georss.org/georss">37.762221815 -122.4651145</georss:point> </request> </service_requests>
Response:
Example:
HTTP/1.1 401 Unauthorized <error>Invalid api_key received -- can't proceed with create_request.</error>