(synching this with the current locked version of the spec to propose some clarifications to the docs) |
|||
| Line 16: | Line 16: | ||
UTF-8 is required everywhere. | 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 | + | 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 root element must be preceded with the XML declaration including the 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. |
| − | + | ||
==Definitions== | ==Definitions== | ||
| Line 34: | Line 33: | ||
*'''HTTP Method: '''GET | *'''HTTP Method: '''GET | ||
*'''Requires API Key: '''No | *'''Requires API Key: '''No | ||
| − | *'''Arguments: ''' | + | |
| + | *'''Required Arguments: ''' | ||
** jurisdiction_id (for SF = sfgov.org) | ** jurisdiction_id (for SF = sfgov.org) | ||
| + | |||
*'''Response:''' | *'''Response:''' | ||
** service_name | ** service_name | ||
| Line 46: | Line 47: | ||
* '''Possible Errors''' (with HTTP status codes) | * '''Possible Errors''' (with HTTP status codes) | ||
| − | ** | + | ** 412 - jurisdiction_id was not provided (specify in error response) |
| + | ** 404 - jurisdiction_id provided was not found (specify in error response) | ||
| + | ** 400 - General service error (Anything that fails during service list processing. The client will need to notify us) | ||
'''Example response:''' | '''Example response:''' | ||
<pre class="brush:xml"> | <pre class="brush:xml"> | ||
| + | <?xml version="1.0" encoding="utf-8"?> | ||
<services> | <services> | ||
<service> | <service> | ||
| − | <service_code >001</service_code > | + | <service_code>001</service_code> |
<metadata>true</metadata> | <metadata>true</metadata> | ||
<type>realtime</type> | <type>realtime</type> | ||
<keywords>lorem, ipsum, dolor</keywords> | <keywords>lorem, ipsum, dolor</keywords> | ||
<group>sanitation</group> | <group>sanitation</group> | ||
| − | < | + | <service_name>Cans left out 24x7</service_name> |
<description>Garbage or recycling cans that have been left out for more than 24 hours after collection. Violators will be cited.</description> | <description>Garbage or recycling cans that have been left out for more than 24 hours after collection. Violators will be cited.</description> | ||
</service> | </service> | ||
<service> | <service> | ||
| − | <service_code >002</service_code > | + | <service_code>002</service_code> |
<metadata>true</metadata> | <metadata>true</metadata> | ||
<type>realtime</type> | <type>realtime</type> | ||
<keywords>lorem, ipsum, dolor</keywords> | <keywords>lorem, ipsum, dolor</keywords> | ||
<group>street</group> | <group>street</group> | ||
| − | < | + | <service_name>Construction plate shifted</service_name> |
<description>Metal construction plate covering the street or sidewalk has been moved.</description> | <description>Metal construction plate covering the street or sidewalk has been moved.</description> | ||
</service> | </service> | ||
<service> | <service> | ||
| − | <service_code >003</service_code > | + | <service_code>003</service_code> |
<metadata>true</metadata> | <metadata>true</metadata> | ||
<type>realtime</type> | <type>realtime</type> | ||
<keywords>lorem, ipsum, dolor</keywords> | <keywords>lorem, ipsum, dolor</keywords> | ||
<group>street</group> | <group>street</group> | ||
| − | < | + | <service_name>Curb or curb ramp defect</service_name> |
<description>Sidewalk curb or ramp has problems such as cracking, missing pieces, holes, and/or chipped curb.</description> | <description>Sidewalk curb or ramp has problems such as cracking, missing pieces, holes, and/or chipped curb.</description> | ||
</service> | </service> | ||
<service> | <service> | ||
| − | <service_code >004</service_code > | + | <service_code>004</service_code> |
<metadata>true</metadata> | <metadata>true</metadata> | ||
<type>realtime</type> | <type>realtime</type> | ||
<keywords>lorem, ipsum, dolor</keywords> | <keywords>lorem, ipsum, dolor</keywords> | ||
<group>sanitation</group> | <group>sanitation</group> | ||
| − | < | + | <service_name>Damaged city can</service_name> |
<description>Damage to a city garbage receptacle such as missing parts (lid, door, liner) or other physical damage.</description> | <description>Damage to a city garbage receptacle such as missing parts (lid, door, liner) or other physical damage.</description> | ||
</service> | </service> | ||
<service> | <service> | ||
| − | <service_code >005</service_code > | + | <service_code>005</service_code> |
<metadata>true</metadata> | <metadata>true</metadata> | ||
<type>realtime</type> | <type>realtime</type> | ||
<keywords>lorem, ipsum, dolor</keywords> | <keywords>lorem, ipsum, dolor</keywords> | ||
<group>sewer</group> | <group>sewer</group> | ||
| − | < | + | <service_name>Damaged side sewer vent cover</service_name> |
<description>Damage to a side sewer vent cover with problems such as cracking, bending, rusting, or denting.</description> | <description>Damage to a side sewer vent cover with problems such as cracking, bending, rusting, or denting.</description> | ||
</service> | </service> | ||
<service> | <service> | ||
| − | <service_code >006</service_code > | + | <service_code>006</service_code> |
<metadata>true</metadata> | <metadata>true</metadata> | ||
<type>realtime</type> | <type>realtime</type> | ||
<keywords>lorem, ipsum, dolor</keywords> | <keywords>lorem, ipsum, dolor</keywords> | ||
<group>tree</group> | <group>tree</group> | ||
| − | < | + | <service_name>Damaged tree</service_name> |
<description>Damage to a city maintained tree. To check whether a tree is city maintained: http://bit.ly/6hsDk1.</description> | <description>Damage to a city maintained tree. To check whether a tree is city maintained: http://bit.ly/6hsDk1.</description> | ||
</service> | </service> | ||
<service> | <service> | ||
| − | <service_code >007</service_code > | + | <service_code>007</service_code> |
<metadata>true</metadata> | <metadata>true</metadata> | ||
<type>realtime</type> | <type>realtime</type> | ||
<keywords>lorem, ipsum, dolor</keywords> | <keywords>lorem, ipsum, dolor</keywords> | ||
<group>graffiti</group> | <group>graffiti</group> | ||
| − | < | + | <service_name>Graffiti on bike rack - not offensive</service_name> |
<description>Graffiti on a bike rack that does not contain racial slurs, profanity, or gang related language.</description> | <description>Graffiti on a bike rack that does not contain racial slurs, profanity, or gang related language.</description> | ||
</service> | </service> | ||
<service> | <service> | ||
| − | <service_code >008</service_code > | + | <service_code>008</service_code> |
<metadata>true</metadata> | <metadata>true</metadata> | ||
<type>realtime</type> | <type>realtime</type> | ||
<keywords>lorem, ipsum, dolor</keywords> | <keywords>lorem, ipsum, dolor</keywords> | ||
<group>graffiti</group> | <group>graffiti</group> | ||
| − | < | + | <service_name>Graffiti on news rack - not offensive</service_name> |
<description>Graffiti on a news rack that does not contain racial slurs, profanity, or gang related language .</description> | <description>Graffiti on a news rack that does not contain racial slurs, profanity, or gang related language .</description> | ||
</service> | </service> | ||
<service> | <service> | ||
| − | <service_code >009</service_code > | + | <service_code>009</service_code> |
<metadata>true</metadata> | <metadata>true</metadata> | ||
<type>realtime</type> | <type>realtime</type> | ||
<keywords>lorem, ipsum, dolor</keywords> | <keywords>lorem, ipsum, dolor</keywords> | ||
<group>graffiti</group> | <group>graffiti</group> | ||
| − | < | + | <service_name>Graffiti on parking meter - not offensive</service_name> |
<description>Graffiti on a parking meter that does not contain racial slurs, profanity, or gang related language .</description> | <description>Graffiti on a parking meter that does not contain racial slurs, profanity, or gang related language .</description> | ||
</service> | </service> | ||
<service> | <service> | ||
| − | <service_code >010</service_code > | + | <service_code>010</service_code> |
<metadata>true</metadata> | <metadata>true</metadata> | ||
<type>realtime</type> | <type>realtime</type> | ||
<keywords>lorem, ipsum, dolor</keywords> | <keywords>lorem, ipsum, dolor</keywords> | ||
<group>graffiti</group> | <group>graffiti</group> | ||
| − | < | + | <service_name>Graffiti on pay phone - not offensive</service_name> |
<description>Graffiti on a pay phone that does not contain racial slurs, profanity, or gang related language. .</description> | <description>Graffiti on a pay phone that does not contain racial slurs, profanity, or gang related language. .</description> | ||
</service> | </service> | ||
<service> | <service> | ||
| − | <service_code >011</service_code > | + | <service_code>011</service_code> |
<metadata>true</metadata> | <metadata>true</metadata> | ||
<type>realtime</type> | <type>realtime</type> | ||
<keywords>lorem, ipsum, dolor</keywords> | <keywords>lorem, ipsum, dolor</keywords> | ||
<group>graffiti</group> | <group>graffiti</group> | ||
| − | < | + | <service_name>Graffiti on private property - not offensive</service_name> |
<description>Graffiti on a privately owned building or structure that does not contain racial slurs, profanity, or gang related language .</description> | <description>Graffiti on a privately owned building or structure that does not contain racial slurs, profanity, or gang related language .</description> | ||
</service> | </service> | ||
<service> | <service> | ||
| − | <service_code >012</service_code > | + | <service_code>012</service_code> |
<metadata>true</metadata> | <metadata>true</metadata> | ||
<type>realtime</type> | <type>realtime</type> | ||
<keywords>lorem, ipsum, dolor</keywords> | <keywords>lorem, ipsum, dolor</keywords> | ||
<group>graffiti</group> | <group>graffiti</group> | ||
| − | < | + | <service_name>Graffiti on private property - offensive</service_name> |
<description>Graffiti on a privately owned building or structure that contains racial slurs, profanity, or gang related language .</description> | <description>Graffiti on a privately owned building or structure that contains racial slurs, profanity, or gang related language .</description> | ||
</service> | </service> | ||
<service> | <service> | ||
| − | <service_code >013</service_code > | + | <service_code>013</service_code> |
<metadata>true</metadata> | <metadata>true</metadata> | ||
<type>realtime</type> | <type>realtime</type> | ||
<keywords>lorem, ipsum, dolor</keywords> | <keywords>lorem, ipsum, dolor</keywords> | ||
<group>graffiti</group> | <group>graffiti</group> | ||
| − | < | + | <service_name>Graffiti on public property - offensive</service_name> |
<description>Graffiti on public property (building, pole, sidewalk, hydrant, etc) with racial slurs, profanity, or gang related language .</description> | <description>Graffiti on public property (building, pole, sidewalk, hydrant, etc) with racial slurs, profanity, or gang related language .</description> | ||
</service> | </service> | ||
<service> | <service> | ||
| − | <service_code >014</service_code > | + | <service_code>014</service_code> |
<metadata>true</metadata> | <metadata>true</metadata> | ||
<type>realtime</type> | <type>realtime</type> | ||
<keywords>lorem, ipsum, dolor</keywords> | <keywords>lorem, ipsum, dolor</keywords> | ||
<group>graffiti</group> | <group>graffiti</group> | ||
| − | < | + | <service_name>Graffiti on public property- not offensive</service_name> |
<description>Graffiti on public property (building, pole, sidewalk, hydrant, etc) without racial slurs, profanity, or gang related language .</description> | <description>Graffiti on public property (building, pole, sidewalk, hydrant, etc) without racial slurs, profanity, or gang related language .</description> | ||
</service> | </service> | ||
<service> | <service> | ||
| − | <service_code >015</service_code > | + | <service_code>015</service_code> |
<metadata>true</metadata> | <metadata>true</metadata> | ||
<type>realtime</type> | <type>realtime</type> | ||
<keywords>lorem, ipsum, dolor</keywords> | <keywords>lorem, ipsum, dolor</keywords> | ||
<group>sanitation</group> | <group>sanitation</group> | ||
| − | < | + | <service_name>Illegal dumping</service_name> |
<description>Identify someone that has dumped or is dumping furniture or garbage onto the street or sidewalk. Violators will be cited .</description> | <description>Identify someone that has dumped or is dumping furniture or garbage onto the street or sidewalk. Violators will be cited .</description> | ||
</service> | </service> | ||
<service> | <service> | ||
| − | <service_code >016</service_code > | + | <service_code>016</service_code> |
<metadata>true</metadata> | <metadata>true</metadata> | ||
<type>realtime</type> | <type>realtime</type> | ||
<keywords>lorem, ipsum, dolor</keywords> | <keywords>lorem, ipsum, dolor</keywords> | ||
<group>landscaping</group> | <group>landscaping</group> | ||
| − | < | + | <service_name>Landscaping request</service_name> |
<description>Request maintenance on public property (except on park property) such as lawn mowing, bush or strip trimming and removal .</description> | <description>Request maintenance on public property (except on park property) such as lawn mowing, bush or strip trimming and removal .</description> | ||
</service> | </service> | ||
<service> | <service> | ||
| − | <service_code >017</service_code > | + | <service_code>017</service_code> |
<metadata>true</metadata> | <metadata>true</metadata> | ||
<type>realtime</type> | <type>realtime</type> | ||
<keywords>lorem, ipsum, dolor</keywords> | <keywords>lorem, ipsum, dolor</keywords> | ||
<group>street</group> | <group>street</group> | ||
| − | < | + | <service_name>Missed route - mechanical sweeping</service_name> |
<description>Street cleaning sweeper did not show up as scheduled according to the street cleaning signs .</description> | <description>Street cleaning sweeper did not show up as scheduled according to the street cleaning signs .</description> | ||
</service> | </service> | ||
<service> | <service> | ||
| − | <service_code >018</service_code > | + | <service_code>018</service_code> |
<metadata>true</metadata> | <metadata>true</metadata> | ||
<type>realtime</type> | <type>realtime</type> | ||
<keywords>lorem, ipsum, dolor</keywords> | <keywords>lorem, ipsum, dolor</keywords> | ||
<group>sewer</group> | <group>sewer</group> | ||
| − | < | + | <service_name>Missing side sewer vent cover</service_name> |
<description>The 4 side sewer vent cover (http://bit.ly/57BlOv) is missing from the sidewalk .</description> | <description>The 4 side sewer vent cover (http://bit.ly/57BlOv) is missing from the sidewalk .</description> | ||
</service> | </service> | ||
<service> | <service> | ||
| − | <service_code >019</service_code > | + | <service_code>019</service_code> |
<metadata>true</metadata> | <metadata>true</metadata> | ||
<type>realtime</type> | <type>realtime</type> | ||
<keywords>lorem, ipsum, dolor</keywords> | <keywords>lorem, ipsum, dolor</keywords> | ||
<group>sanitation</group> | <group>sanitation</group> | ||
| − | < | + | <service_name>Overflowing city receptacle or dumpster</service_name> |
<description>City receptacle is overflowing and/or has garbage on and around the container .</description> | <description>City receptacle is overflowing and/or has garbage on and around the container .</description> | ||
</service> | </service> | ||
<service> | <service> | ||
| − | <service_code >020</service_code > | + | <service_code>020</service_code> |
<metadata>true</metadata> | <metadata>true</metadata> | ||
<type>realtime</type> | <type>realtime</type> | ||
<keywords>lorem, ipsum, dolor</keywords> | <keywords>lorem, ipsum, dolor</keywords> | ||
<group>tree</group> | <group>tree</group> | ||
| − | < | + | <service_name>Overgrown tree</service_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> | <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> | ||
<service> | <service> | ||
| − | <service_code >021</service_code > | + | <service_code>021</service_code> |
<metadata>true</metadata> | <metadata>true</metadata> | ||
<type>realtime</type> | <type>realtime</type> | ||
<keywords>lorem, ipsum, dolor</keywords> | <keywords>lorem, ipsum, dolor</keywords> | ||
<group>street</group> | <group>street</group> | ||
| − | < | + | <service_name>Pothole in Street</service_name> |
<description>Defect on the street such as broken, cracked, and sinking asphalt or concrete .</description> | <description>Defect on the street such as broken, cracked, and sinking asphalt or concrete .</description> | ||
</service> | </service> | ||
<service> | <service> | ||
| − | <service_code >022</service_code > | + | <service_code>022</service_code> |
<metadata>true</metadata> | <metadata>true</metadata> | ||
<type>realtime</type> | <type>realtime</type> | ||
<keywords>lorem, ipsum, dolor</keywords> | <keywords>lorem, ipsum, dolor</keywords> | ||
<group>sewer</group> | <group>sewer</group> | ||
| − | < | + | <service_name>Sewage coming out of catch basin</service_name> |
<description>Sewage or dirty water coming out of a catchbasin (located at the corner of intersections) .</description> | <description>Sewage or dirty water coming out of a catchbasin (located at the corner of intersections) .</description> | ||
</service> | </service> | ||
<service> | <service> | ||
| − | <service_code >023</service_code > | + | <service_code>023</service_code> |
<metadata>true</metadata> | <metadata>true</metadata> | ||
<type>realtime</type> | <type>realtime</type> | ||
<keywords>lorem, ipsum, dolor</keywords> | <keywords>lorem, ipsum, dolor</keywords> | ||
<group>sewer</group> | <group>sewer</group> | ||
| − | < | + | <service_name>Water coming from side sewer</service_name> |
<description>Sewage or odor coming out of a 4 side sewer (http://bit.ly/57BlOv) located on the sidewalk .</description> | <description>Sewage or odor coming out of a 4 side sewer (http://bit.ly/57BlOv) located on the sidewalk .</description> | ||
</service> | </service> | ||
<service> | <service> | ||
| − | <service_code >024</service_code > | + | <service_code>024</service_code> |
<metadata>true</metadata> | <metadata>true</metadata> | ||
<type>realtime</type> | <type>realtime</type> | ||
<keywords>lorem, ipsum, dolor</keywords> | <keywords>lorem, ipsum, dolor</keywords> | ||
<group>sidewalk</group> | <group>sidewalk</group> | ||
| − | < | + | <service_name>Sidewalk cleaning</service_name> |
<description>Have garbage or human waste removed from the sidewalk and/or request services such as steam cleaning of sidewalks .</description> | <description>Have garbage or human waste removed from the sidewalk and/or request services such as steam cleaning of sidewalks .</description> | ||
</service> | </service> | ||
<service> | <service> | ||
| − | <service_code >025</service_code > | + | <service_code>025</service_code> |
<metadata>true</metadata> | <metadata>true</metadata> | ||
<type>realtime</type> | <type>realtime</type> | ||
<keywords>lorem, ipsum, dolor</keywords> | <keywords>lorem, ipsum, dolor</keywords> | ||
<group>sidewalk</group> | <group>sidewalk</group> | ||
| − | < | + | <service_name>Sidewalk defect</service_name> |
<description>Defect on the sidewalk such as broken, cracked, and/or sinking concrete .</description> | <description>Defect on the sidewalk such as broken, cracked, and/or sinking concrete .</description> | ||
</service> | </service> | ||
<service> | <service> | ||
| − | <service_code >026</service_code > | + | <service_code>026</service_code> |
<metadata>true</metadata> | <metadata>true</metadata> | ||
<type>realtime</type> | <type>realtime</type> | ||
<keywords>lorem, ipsum, dolor</keywords> | <keywords>lorem, ipsum, dolor</keywords> | ||
<group>street</group> | <group>street</group> | ||
| − | < | + | <service_name>Street cleaning</service_name> |
<description>Request to have garbage or human waste removed from the street .</description> | <description>Request to have garbage or human waste removed from the street .</description> | ||
</service> | </service> | ||
<service> | <service> | ||
| − | <service_code >027</service_code > | + | <service_code>027</service_code> |
<metadata>true</metadata> | <metadata>true</metadata> | ||
<type>realtime</type> | <type>realtime</type> | ||
<keywords>lorem, ipsum, dolor</keywords> | <keywords>lorem, ipsum, dolor</keywords> | ||
<group>stree</group> | <group>stree</group> | ||
| − | < | + | <service_name>Tree damaging property</service_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> | <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> | ||
<service> | <service> | ||
| − | <service_code >028</service_code > | + | <service_code>028</service_code> |
<metadata>true</metadata> | <metadata>true</metadata> | ||
<type>realtime</type> | <type>realtime</type> | ||
<keywords>lorem, ipsum, dolor</keywords> | <keywords>lorem, ipsum, dolor</keywords> | ||
<group>water main</group> | <group>water main</group> | ||
| − | < | + | <service_name>Water main break</service_name> |
<description>Street is flooding due to water coming from within the asphalt or from a catchbasin .</description> | <description>Street is flooding due to water coming from within the asphalt or from a catchbasin .</description> | ||
</service> | </service> | ||
<service> | <service> | ||
| − | <service_code >029</service_code > | + | <service_code>029</service_code> |
<metadata>true</metadata> | <metadata>true</metadata> | ||
<type>realtime</type> | <type>realtime</type> | ||
<keywords>lorem, ipsum, dolor</keywords> | <keywords>lorem, ipsum, dolor</keywords> | ||
<group>graffiti</group> | <group>graffiti</group> | ||
| − | < | + | <service_name>Graffiti on street sign</service_name> |
<description>Graffiti on a street sign such as a stop sign, street name, and/or other parking and traffic signs .</description> | <description>Graffiti on a street sign such as a stop sign, street name, and/or other parking and traffic signs .</description> | ||
</service> | </service> | ||
<service> | <service> | ||
| − | <service_code >030</service_code > | + | <service_code>030</service_code> |
<metadata>true</metadata> | <metadata>true</metadata> | ||
<type>realtime</type> | <type>realtime</type> | ||
<keywords>lorem, ipsum, dolor</keywords> | <keywords>lorem, ipsum, dolor</keywords> | ||
<group>sewer</group> | <group>sewer</group> | ||
| − | < | + | <service_name>Odor coming from Side Sewer</service_name> |
<description>Odor coming out of a 4 side sewer (http://bit.ly/57BlOv) located on the sidewalk. .</description> | <description>Odor coming out of a 4 side sewer (http://bit.ly/57BlOv) located on the sidewalk. .</description> | ||
</service> | </service> | ||
<service> | <service> | ||
| − | <service_code >031</service_code > | + | <service_code>031</service_code> |
<metadata>true</metadata> | <metadata>true</metadata> | ||
<type>realtime</type> | <type>realtime</type> | ||
<keywords>lorem, ipsum, dolor</keywords> | <keywords>lorem, ipsum, dolor</keywords> | ||
<group>sewer</group> | <group>sewer</group> | ||
| − | < | + | <service_name>Sewage coming out of manhole cover</service_name> |
<description>Sewage or dirty water coming out of a manhole cover (typically located in the a street or alley) .</description> | <description>Sewage or dirty water coming out of a manhole cover (typically located in the a street or alley) .</description> | ||
</service> | </service> | ||
<service> | <service> | ||
| − | <service_code >032</service_code > | + | <service_code>032</service_code> |
<metadata>true</metadata> | <metadata>true</metadata> | ||
<type>realtime</type> | <type>realtime</type> | ||
<keywords>lorem, ipsum, dolor</keywords> | <keywords>lorem, ipsum, dolor</keywords> | ||
<group>sewer</group> | <group>sewer</group> | ||
| − | < | + | <service_name>Sewage coming out of sewer vent</service_name> |
<description>Sewage or dirty water coming out of a sewer vent (located on the sidewalk) .</description> | <description>Sewage or dirty water coming out of a sewer vent (located on the sidewalk) .</description> | ||
</service> | </service> | ||
<service> | <service> | ||
| − | <service_code >033</service_code > | + | <service_code>033</service_code> |
<metadata>true</metadata> | <metadata>true</metadata> | ||
<type>realtime</type> | <type>realtime</type> | ||
<keywords>lorem, ipsum, dolor</keywords> | <keywords>lorem, ipsum, dolor</keywords> | ||
<group>street</group> | <group>street</group> | ||
| − | < | + | <service_name>Pothole in bike lane</service_name> |
<description>Defect in the bike lane such as broken, cracked, and sinking asphalt or concrete.</description> | <description>Defect in the bike lane such as broken, cracked, and sinking asphalt or concrete.</description> | ||
</service> | </service> | ||
| Line 361: | Line 365: | ||
*'''Requires API Key:''' No | *'''Requires API Key:''' No | ||
| − | * Arguments: | + | * Required Arguments: |
** service_code | ** service_code | ||
** jurisdiction_id (for SF = sfgov.org) | ** jurisdiction_id (for SF = sfgov.org) | ||
| Line 375: | Line 379: | ||
**service_code | **service_code | ||
**values (provides list of values for singlevaluelist and multivaluelist) - may be empty | **values (provides list of values for singlevaluelist and multivaluelist) - may be empty | ||
| + | |||
| + | * '''Possible Errors''' (with HTTP status codes) | ||
| + | ** 412 - service_code or jurisdiction_id was not provided (specify in error response) | ||
| + | ** 404 - service_code or jurisdiction_id provided were not found (specify in error response) | ||
| + | ** 400 - General service error (Anything that fails during service list processing. The client will need to notify us) | ||
'''Example response:''' | '''Example response:''' | ||
<pre class="brush:xml"> | <pre class="brush:xml"> | ||
| + | <?xml version="1.0" encoding="utf-8"?> | ||
<service_definition> | <service_definition> | ||
| − | <service_code>DMV66</service_code> | + | <service_code>DMV66</service_code> |
| − | + | ||
<attribute> | <attribute> | ||
<variable>true</variable> | <variable>true</variable> | ||
| Line 400: | Line 409: | ||
</value> | </value> | ||
</values> | </values> | ||
| − | <attribute> | + | </attribute> |
</service_definition> | </service_definition> | ||
</pre> | </pre> | ||
| Line 407: | Line 416: | ||
*'''Purpose:''' Create service requests | *'''Purpose:''' Create service requests | ||
*'''URL:''' https://open311.sfgov.org/dev/v2/requests.[format] | *'''URL:''' https://open311.sfgov.org/dev/v2/requests.[format] | ||
| − | *'''Sample URL:'''https://open311.sfgov.org/dev/v2/requests.xml | + | *'''Sample URL:'''https://open311.sfgov.org/dev/v2/requests.xml |
| − | *'''Formats:''' xml | + | *'''Format sent:''' Content-Type: application/x-www-form-urlencoded |
| + | *'''Formats returned:''' xml | ||
*'''HTTP Method:''' POST | *'''HTTP Method:''' POST | ||
*'''Requires API Key:''' Yes | *'''Requires API Key:''' Yes | ||
| + | |||
*'''Required Arguments:''' | *'''Required Arguments:''' | ||
| − | |||
** jurisdiction_id | ** jurisdiction_id | ||
** service_code (obtained from method service_list) | ** service_code (obtained from method service_list) | ||
| − | + | ||
*'''Optional Arguments:''' | *'''Optional Arguments:''' | ||
** lat [http://en.wikipedia.org/wiki/World_Geodetic_System (WGS84)] (required - either lat/lon or address string, both are preferred) | ** lat [http://en.wikipedia.org/wiki/World_Geodetic_System (WGS84)] (required - either lat/lon or address string, both are preferred) | ||
| Line 437: | Line 447: | ||
* '''Possible Errors''' (with HTTP status codes) | * '''Possible Errors''' (with HTTP status codes) | ||
| − | ** | + | ** 404 - service_code or jurisdiction_id was not found (specified in error response) |
| − | ** | + | ** 412 - service_code or jurisdiction_id was not provided (specified in error response) |
| − | ** | + | ** 400 - General Service Error (Any failure during create request processing, eg CRM is down. Client will need to notify us) |
| + | '''Example request:''' | ||
| + | <pre class="brush:xml"> | ||
| + | POST /dev/v2/requests.xml | ||
| + | Host: open311.sfgov.org | ||
| + | Content-Type: application/x-www-form-urlencoded; charset=utf-8 | ||
| + | api_key=xyz&jurisdiction_id=sfgov.org&service_code=001&lat=37.76524078&long=-122.4212043&address_string=1234+5th+street&email=smit333%40sfgov.edu&device_id=tt222111&account_id=123456&first_name=john&last_name=smith&phone=111111111&description=A+large+sinkhole+is+destroying+the+street&media_url=http%3A%2F%2Ffarm3.static.flickr.com%2F2002%2F2212426634_5ed477a060.jpg | ||
| + | </pre> | ||
'''Example response:''' | '''Example response:''' | ||
| − | |||
<pre class="brush:xml"> | <pre class="brush:xml"> | ||
| − | + | <?xml version="1.0" encoding="utf-8"?> | |
<service_requests> | <service_requests> | ||
| − | |||
<request> | <request> | ||
<service_request_id>293944</service_request_id> | <service_request_id>293944</service_request_id> | ||
| − | |||
<service_notice> | <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 | 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> | </service_notice> | ||
| − | |||
<account_id/> | <account_id/> | ||
| − | |||
</request> | </request> | ||
| − | + | </service_requests> | |
| − | <service_requests> | + | |
| − | + | ||
</pre> | </pre> | ||
===GET token with request_id=== | ===GET token with request_id=== | ||
| − | *'''Purpose:''' get the request_id from a temporary token | + | *'''Purpose:''' get the request_id from a temporary token. This is unnecessary if the response from creating a service request does not contain a token. |
*'''URL:''' https://open311.sfgov.org/dev/v2/tokens/123456.[format] | *'''URL:''' https://open311.sfgov.org/dev/v2/tokens/123456.[format] | ||
*'''Sample URL:''' https://open311.sfgov.org/dev/v2/tokens/123456.xml?jurisdiction_id=sfgov.org | *'''Sample URL:''' https://open311.sfgov.org/dev/v2/tokens/123456.xml?jurisdiction_id=sfgov.org | ||
| Line 479: | Line 489: | ||
** service_request_id | ** service_request_id | ||
** token | ** token | ||
| + | |||
| + | * '''Possible Errors''' (with HTTP status codes) | ||
| + | ** 404 - jurisdiction_id or token not found (specified in error response) | ||
| + | ** 412 - jurisdiction_id or token was not provided (specified in error response) | ||
| + | ** 400 - General Service error (Any failure during service query processing. Client will have to notify us) | ||
'''Example response:''' | '''Example response:''' | ||
<pre class="brush:xml"> | <pre class="brush:xml"> | ||
| − | + | <?xml version="1.0" encoding="utf-8"?> | |
<service_requests> | <service_requests> | ||
| − | |||
<request> | <request> | ||
<service_request_id>638344</service_request_id> | <service_request_id>638344</service_request_id> | ||
<token>12345</token> | <token>12345</token> | ||
</request> | </request> | ||
| − | |||
</service_requests> | </service_requests> | ||
| − | |||
</pre> | </pre> | ||
| Line 511: | Line 523: | ||
** start_date & end_date (defaults to most recent 90 days; should not span more than 90 days) (w3 format) | ** start_date & end_date (defaults to most recent 90 days; should not span more than 90 days) (w3 format) | ||
** status (defaults to all statuses; can be declared multiple times, comma delimited; status types are: open, closed) | ** status (defaults to all statuses; can be declared multiple times, comma delimited; status types are: open, closed) | ||
| − | |||
*'''Response:''' | *'''Response:''' | ||
| Line 534: | Line 545: | ||
*'''Response Volume''' | *'''Response Volume''' | ||
** Default query limit is a span of 90 days or first 1000 requests returned, whichever is smallest. | ** Default query limit is a span of 90 days or first 1000 requests returned, whichever is smallest. | ||
| − | |||
* '''Possible Errors''' (with HTTP status codes) | * '''Possible Errors''' (with HTTP status codes) | ||
| − | ** | + | ** 404 - jurisdiction_id not found (specified in error response) |
| − | ** | + | ** 412 - jurisdiction_id was not provided (specified in error response) |
| + | ** 400 - General Service error (Any failure during service query processing. Client will have to notify us) | ||
'''Example response:''' | '''Example response:''' | ||
| − | |||
<pre class="brush:xml"> | <pre class="brush:xml"> | ||
| − | + | <?xml version="1.0" encoding="utf-8"?> | |
<service_requests> | <service_requests> | ||
| − | |||
<request> | <request> | ||
<service_request_id>638344</service_request_id> | <service_request_id>638344</service_request_id> | ||
<status>closed</status> | <status>closed</status> | ||
<status_notes>Duplicate request.</status_notes> | <status_notes>Duplicate request.</status_notes> | ||
| − | < | + | <service_name>Sidewalk and Curb Issues</service_name> |
| − | < | + | <service_code>006</service_code> |
<description></description> | <description></description> | ||
<agency_responsible></agency_responsible> | <agency_responsible></agency_responsible> | ||
| Line 571: | Line 580: | ||
</pre> | </pre> | ||
| − | === | + | ===Errors=== |
'''Response:''' | '''Response:''' | ||
| Line 577: | Line 586: | ||
* error (description of error) | * error (description of error) | ||
| − | * '''General''' | + | * '''General Errors''' |
| − | ** | + | ** 401 - Missing or Invalid API Key (specify in error message) |
| − | + | ** 400 - The URL request is invalid or open311 service is not running or reachable. Client should notify us after checking URL | |
| − | ** | + | |
'''Example:''' | '''Example:''' | ||
| Line 586: | Line 594: | ||
HTTP/1.1 401 Unauthorized | HTTP/1.1 401 Unauthorized | ||
| + | <?xml version="1.0" encoding="utf-8"?> | ||
<error>Invalid api_key received -- can't proceed with create_request.</error> | <error>Invalid api_key received -- can't proceed with create_request.</error> | ||
</pre> | </pre> | ||
For the stable v2 spec, see GeoReport v2
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 root element must be preceded with the XML declaration including the 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> <service_code>001</service_code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>sanitation</group> <service_name>Cans left out 24x7</service_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> <service_code>002</service_code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>street</group> <service_name>Construction plate shifted</service_name> <description>Metal construction plate covering the street or sidewalk has been moved.</description> </service> <service> <service_code>003</service_code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>street</group> <service_name>Curb or curb ramp defect</service_name> <description>Sidewalk curb or ramp has problems such as cracking, missing pieces, holes, and/or chipped curb.</description> </service> <service> <service_code>004</service_code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>sanitation</group> <service_name>Damaged city can</service_name> <description>Damage to a city garbage receptacle such as missing parts (lid, door, liner) or other physical damage.</description> </service> <service> <service_code>005</service_code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>sewer</group> <service_name>Damaged side sewer vent cover</service_name> <description>Damage to a side sewer vent cover with problems such as cracking, bending, rusting, or denting.</description> </service> <service> <service_code>006</service_code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>tree</group> <service_name>Damaged tree</service_name> <description>Damage to a city maintained tree. To check whether a tree is city maintained: http://bit.ly/6hsDk1.</description> </service> <service> <service_code>007</service_code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>graffiti</group> <service_name>Graffiti on bike rack - not offensive</service_name> <description>Graffiti on a bike rack that does not contain racial slurs, profanity, or gang related language.</description> </service> <service> <service_code>008</service_code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>graffiti</group> <service_name>Graffiti on news rack - not offensive</service_name> <description>Graffiti on a news rack that does not contain racial slurs, profanity, or gang related language .</description> </service> <service> <service_code>009</service_code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>graffiti</group> <service_name>Graffiti on parking meter - not offensive</service_name> <description>Graffiti on a parking meter that does not contain racial slurs, profanity, or gang related language .</description> </service> <service> <service_code>010</service_code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>graffiti</group> <service_name>Graffiti on pay phone - not offensive</service_name> <description>Graffiti on a pay phone that does not contain racial slurs, profanity, or gang related language. .</description> </service> <service> <service_code>011</service_code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>graffiti</group> <service_name>Graffiti on private property - not offensive</service_name> <description>Graffiti on a privately owned building or structure that does not contain racial slurs, profanity, or gang related language .</description> </service> <service> <service_code>012</service_code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>graffiti</group> <service_name>Graffiti on private property - offensive</service_name> <description>Graffiti on a privately owned building or structure that contains racial slurs, profanity, or gang related language .</description> </service> <service> <service_code>013</service_code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>graffiti</group> <service_name>Graffiti on public property - offensive</service_name> <description>Graffiti on public property (building, pole, sidewalk, hydrant, etc) with racial slurs, profanity, or gang related language .</description> </service> <service> <service_code>014</service_code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>graffiti</group> <service_name>Graffiti on public property- not offensive</service_name> <description>Graffiti on public property (building, pole, sidewalk, hydrant, etc) without racial slurs, profanity, or gang related language .</description> </service> <service> <service_code>015</service_code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>sanitation</group> <service_name>Illegal dumping</service_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> <service_code>016</service_code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>landscaping</group> <service_name>Landscaping request</service_name> <description>Request maintenance on public property (except on park property) such as lawn mowing, bush or strip trimming and removal .</description> </service> <service> <service_code>017</service_code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>street</group> <service_name>Missed route - mechanical sweeping</service_name> <description>Street cleaning sweeper did not show up as scheduled according to the street cleaning signs .</description> </service> <service> <service_code>018</service_code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>sewer</group> <service_name>Missing side sewer vent cover</service_name> <description>The 4 side sewer vent cover (http://bit.ly/57BlOv) is missing from the sidewalk .</description> </service> <service> <service_code>019</service_code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>sanitation</group> <service_name>Overflowing city receptacle or dumpster</service_name> <description>City receptacle is overflowing and/or has garbage on and around the container .</description> </service> <service> <service_code>020</service_code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>tree</group> <service_name>Overgrown tree</service_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> <service_code>021</service_code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>street</group> <service_name>Pothole in Street</service_name> <description>Defect on the street such as broken, cracked, and sinking asphalt or concrete .</description> </service> <service> <service_code>022</service_code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>sewer</group> <service_name>Sewage coming out of catch basin</service_name> <description>Sewage or dirty water coming out of a catchbasin (located at the corner of intersections) .</description> </service> <service> <service_code>023</service_code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>sewer</group> <service_name>Water coming from side sewer</service_name> <description>Sewage or odor coming out of a 4 side sewer (http://bit.ly/57BlOv) located on the sidewalk .</description> </service> <service> <service_code>024</service_code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>sidewalk</group> <service_name>Sidewalk cleaning</service_name> <description>Have garbage or human waste removed from the sidewalk and/or request services such as steam cleaning of sidewalks .</description> </service> <service> <service_code>025</service_code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>sidewalk</group> <service_name>Sidewalk defect</service_name> <description>Defect on the sidewalk such as broken, cracked, and/or sinking concrete .</description> </service> <service> <service_code>026</service_code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>street</group> <service_name>Street cleaning</service_name> <description>Request to have garbage or human waste removed from the street .</description> </service> <service> <service_code>027</service_code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>stree</group> <service_name>Tree damaging property</service_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> <service_code>028</service_code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>water main</group> <service_name>Water main break</service_name> <description>Street is flooding due to water coming from within the asphalt or from a catchbasin .</description> </service> <service> <service_code>029</service_code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>graffiti</group> <service_name>Graffiti on street sign</service_name> <description>Graffiti on a street sign such as a stop sign, street name, and/or other parking and traffic signs .</description> </service> <service> <service_code>030</service_code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>sewer</group> <service_name>Odor coming from Side Sewer</service_name> <description>Odor coming out of a 4 side sewer (http://bit.ly/57BlOv) located on the sidewalk. .</description> </service> <service> <service_code>031</service_code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>sewer</group> <service_name>Sewage coming out of manhole cover</service_name> <description>Sewage or dirty water coming out of a manhole cover (typically located in the a street or alley) .</description> </service> <service> <service_code>032</service_code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>sewer</group> <service_name>Sewage coming out of sewer vent</service_name> <description>Sewage or dirty water coming out of a sewer vent (located on the sidewalk) .</description> </service> <service> <service_code>033</service_code> <metadata>true</metadata> <type>realtime</type> <keywords>lorem, ipsum, dolor</keywords> <group>street</group> <service_name>Pothole in bike lane</service_name> <description>Defect in the bike lane such as broken, cracked, and sinking asphalt or concrete.</description> </service> </services>
Example response:
<?xml version="1.0" encoding="utf-8"?> <service_definition> <service_code>DMV66</service_code> <attribute> <variable>true</variable> <code>WHISHETN</code> <datatype>singlevaluelist</datatype> <required>true</required> <datatype_description></datatype_description> <order>1</order> <description>What is the ticket/tag/DL number?</description> <values> <value> <key>123</key> <name>Ford</name> </value> <value> <key>124</key> <name>Chrysler</name> </value> </values> </attribute> </service_definition>
Example request:
POST /dev/v2/requests.xml Host: open311.sfgov.org Content-Type: application/x-www-form-urlencoded; charset=utf-8 api_key=xyz&jurisdiction_id=sfgov.org&service_code=001&lat=37.76524078&long=-122.4212043&address_string=1234+5th+street&email=smit333%40sfgov.edu&device_id=tt222111&account_id=123456&first_name=john&last_name=smith&phone=111111111&description=A+large+sinkhole+is+destroying+the+street&media_url=http%3A%2F%2Ffarm3.static.flickr.com%2F2002%2F2212426634_5ed477a060.jpg
Example response:
<?xml version="1.0" encoding="utf-8"?> <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:
<?xml version="1.0" encoding="utf-8"?> <service_requests> <request> <service_request_id>638344</service_request_id> <token>12345</token> </request> </service_requests>
Example response:
<?xml version="1.0" encoding="utf-8"?> <service_requests> <request> <service_request_id>638344</service_request_id> <status>closed</status> <status_notes>Duplicate request.</status_notes> <service_name>Sidewalk and Curb Issues</service_name> <service_code>006</service_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> <lat>37.762221815</lat> <long>-122.4651145</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 <?xml version="1.0" encoding="utf-8"?> <error>Invalid api_key received -- can't proceed with create_request.</error>