<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://wiki-archive.open311.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki-archive.open311.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Absh1us</id>
		<title>Open311 - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki-archive.open311.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Absh1us"/>
		<link rel="alternate" type="text/html" href="https://wiki-archive.open311.org/Special:Contributions/Absh1us"/>
		<updated>2026-10-28T23:01:17Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.22.6</generator>

	<entry>
		<id>https://wiki-archive.open311.org/Open311.org_Draft_Spec</id>
		<title>Open311.org Draft Spec</title>
		<link rel="alternate" type="text/html" href="https://wiki-archive.open311.org/Open311.org_Draft_Spec"/>
				<updated>2010-08-26T13:16:15Z</updated>
		
		<summary type="html">&lt;p&gt;Absh1us: /* Case Studies */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Abstract ==&lt;br /&gt;
&lt;br /&gt;
The Open311 API provides a way to work with service requests between citizens, governments and non-governmental organizations.&lt;br /&gt;
&lt;br /&gt;
Open311 is decentralized. There is no central registry to which a providing system is required to register. There is also no central authority that lists the responsible Open311 providers for a particular location or set of concerns.&lt;br /&gt;
&lt;br /&gt;
Open311 is intended to be applicable every where for all languages. The spec has been initially written in English with English terms solely for the convenience of the authors. All attempts were made to provide for the API to work for all language locales.&lt;br /&gt;
&lt;br /&gt;
Open311 uses only standard HTTP requests and responses.&lt;br /&gt;
&lt;br /&gt;
The Open311 API is a RESTful service. All GET requests are idempotent, they have no side effect other then returning data in a response to the client.&lt;br /&gt;
&lt;br /&gt;
It is expected that multiple versions of the Open311 API will exist and interoperate concurrently. The spec is designed to allow service providers of different versions to be able to communicate together.&lt;br /&gt;
&lt;br /&gt;
== Case Studies == &lt;br /&gt;
&lt;br /&gt;
* [http://apps.sfgov.org/Open311API/ San Francisco API draft]&lt;br /&gt;
* [http://octolabs.pbworks.com/Open-311-API-v2-Documentation Washington DC API v2 draft]&lt;br /&gt;
* [http://docs.google.com/View?id=dc8k3dxw_45gcnhm4dp SeeClickFix API draft]&lt;br /&gt;
*[http://www.wa-liability-insurance.com/ Liability Insurance Washington]&lt;br /&gt;
&lt;br /&gt;
== Terminology ==&lt;br /&gt;
&lt;br /&gt;
===Provider or Service Provider===&lt;br /&gt;
The system on which the API calls are made. This is the system that is mapped to by the URIs that a client makes HTTP calls to.&lt;br /&gt;
&lt;br /&gt;
===Client===&lt;br /&gt;
The entity or system from which API calls are made. This could be a citizen's browser, a third party computer system or another service provider.&lt;br /&gt;
&lt;br /&gt;
===Issue===&lt;br /&gt;
A specific, geographically stationary, concern that has a concrete definable fix. Some common names include: service request, work order or ticket.&lt;br /&gt;
&lt;br /&gt;
===Citizen===&lt;br /&gt;
Any natural person.&lt;br /&gt;
&lt;br /&gt;
===Non-Governmental Organization===&lt;br /&gt;
An entity that is not a government.&lt;br /&gt;
&lt;br /&gt;
===Government===&lt;br /&gt;
The organization that manages a political unit of any size.&lt;br /&gt;
&lt;br /&gt;
===Latitude / Longitude===&lt;br /&gt;
All latitudes and longitude values MUST be WGS84 (World Geodetic System 1984) datum values expressed in decimal format. See http://en.wikipedia.org/wiki/WGS84&lt;br /&gt;
&lt;br /&gt;
    Example: 37.40320,-121.977521&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Schema==&lt;br /&gt;
&lt;br /&gt;
You can use syntax highlighting to help display a schema, eg JSON. See the [[Help:Editing]] for more information. Content pulled from working doc: http://etherpad.com/Gg1kfcXQR3&lt;br /&gt;
&lt;br /&gt;
'''Service Request'''&lt;br /&gt;
&amp;lt;pre class=&amp;quot;brush:jscript&amp;quot;&amp;gt;&lt;br /&gt;
-id (alpha-numeric)&lt;br /&gt;
-status (&amp;quot;submitted&amp;quot;, &amp;quot;incomplete&amp;quot;, &amp;quot;rejected&amp;quot;, &amp;quot;open&amp;quot;, &amp;quot;assigned&amp;quot;, &amp;quot;closed&amp;quot;,&amp;quot;more info&amp;quot;, &amp;quot;in progress&amp;quot;)&lt;br /&gt;
-location (location type)&lt;br /&gt;
-data feed URL (atom feed subscription)&lt;br /&gt;
-List of:&lt;br /&gt;
  -who (string)&lt;br /&gt;
  -activity date (date timestamp)&lt;br /&gt;
  -description (text blob)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Location'''&lt;br /&gt;
&amp;lt;pre class=&amp;quot;brush:jscript&amp;quot;&amp;gt;&lt;br /&gt;
-jurisdiction returns acceptable location schema (lat/lng, human readable address, internal ID)&lt;br /&gt;
-location {&lt;br /&gt;
        lat/lng: GS84 (or what ever is the standard)&lt;br /&gt;
        human readable location (String blob?)&lt;br /&gt;
        3rd party addressing scheme (defined in meta data returned by jurisdiction)&lt;br /&gt;
    } &lt;br /&gt;
 &amp;lt;/pre&amp;gt;   &lt;br /&gt;
&lt;br /&gt;
'''Linking service requests'''  ( serial/parallel ? )  &lt;br /&gt;
&amp;lt;pre class=&amp;quot;brush:jscript&amp;quot;&amp;gt;&lt;br /&gt;
-id { [id:status] }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Location Schema&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== System Architecture ==&lt;br /&gt;
Please note that this illustrates a proposal and does not represent the current API specs being implemented in Washington D.C. or San Francisco.&lt;br /&gt;
&lt;br /&gt;
# Service request (SR) data and location are entered from open311 app. App requests SR jurisdiction API URI from [[GeoWeb DNS]] (if not already cached). &lt;br /&gt;
# The jurisdiction API URI is returned (eg http://api.nyc.gov/311). If no URI is found, default to an adhoc SR service (an equivalent of FixMyStreet or SeeClickFix)&lt;br /&gt;
# A generic SR (core schema) is sent to the jurisdiction API&lt;br /&gt;
# If successful, check if the app and jurisdiction supports extensions for additional details. If so, additional details for the identified SR type are requested (sr_type.get)&lt;br /&gt;
# Additional details are sent to the jurisdiction by any app and any person (not necessarily the original reporter) at a later date.&lt;br /&gt;
&lt;br /&gt;
[[Image:311-flowchart.png]]&lt;/div&gt;</summary>
		<author><name>Absh1us</name></author>	</entry>

	<entry>
		<id>https://wiki-archive.open311.org/Toronto</id>
		<title>Toronto</title>
		<link rel="alternate" type="text/html" href="https://wiki-archive.open311.org/Toronto"/>
				<updated>2010-08-26T13:15:41Z</updated>
		
		<summary type="html">&lt;p&gt;Absh1us: /* Operations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===General Description===&lt;br /&gt;
The Toronto 311 Contact Centre launched Thursday, September 24, 2009. Contains 15000 frequently asked questions within its knowledge database.&lt;br /&gt;
&lt;br /&gt;
====Operations====&lt;br /&gt;
* 24/7 Call Centre&lt;br /&gt;
* twitter channel ([http://twitter.com/311Toronto @311toronto]) for general information and customer service feedback&lt;br /&gt;
* website ([http://www.toronto.ca/311 toronto.ca/311])&lt;br /&gt;
*[http://www.wa-liability-insurance.com/ Liability Insurance Washington]&lt;br /&gt;
&lt;br /&gt;
====System====&lt;br /&gt;
* ECM: Lagan Enterprise Case Management&lt;br /&gt;
* Knowledge Base: Lagan&lt;br /&gt;
* Online Self-Serve:  Customized webservice built into Lagan system ( launched publicly Feb 2, 2010)&lt;br /&gt;
** Currently 18 self-serve topics&lt;/div&gt;</summary>
		<author><name>Absh1us</name></author>	</entry>

	<entry>
		<id>https://wiki-archive.open311.org/API</id>
		<title>API</title>
		<link rel="alternate" type="text/html" href="https://wiki-archive.open311.org/API"/>
				<updated>2010-08-26T13:14:50Z</updated>
		
		<summary type="html">&lt;p&gt;Absh1us: /* Clients (can send and view reports) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Open311 APIs=&lt;br /&gt;
&lt;br /&gt;
==GeoReport v2==&lt;br /&gt;
===Spec: [[GeoReport v2]]===&lt;br /&gt;
&lt;br /&gt;
===Servers (can receive reports)===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Status&lt;br /&gt;
! API Key&lt;br /&gt;
! Dev API&lt;br /&gt;
! Production API&lt;br /&gt;
|-&lt;br /&gt;
| '''San Francisco'''&lt;br /&gt;
| ''Development Ready''&lt;br /&gt;
| [http://apps.sfgov.org/Open311API/?page_id=486 Request Key]&lt;br /&gt;
| [https://open311.sfgov.org/dev/V2/ Dev URL]&lt;br /&gt;
| [https://open311.sfgov.org/v2 Production URL]&lt;br /&gt;
|-&lt;br /&gt;
| '''Washington D.C.'''&lt;br /&gt;
| ''Development Ready''&lt;br /&gt;
|  [http://api.dc.gov/key Request Key]&lt;br /&gt;
| [http://api.dc.gov/open311/v2_dev/ Dev URL]&lt;br /&gt;
| [http://api.dc.gov/open311/v2/ Production URL]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==GeoReport v1==&lt;br /&gt;
===Spec: [[GeoReport v1]]===&lt;br /&gt;
&lt;br /&gt;
===Servers (can receive reports)===&lt;br /&gt;
{|&lt;br /&gt;
! Name&lt;br /&gt;
! Status&lt;br /&gt;
! API Key&lt;br /&gt;
! Dev API&lt;br /&gt;
! Production API&lt;br /&gt;
|-&lt;br /&gt;
| '''City of San Francisco'''&lt;br /&gt;
| ''Production Ready''&lt;br /&gt;
| [http://apps.sfgov.org/Open311API/?page_id=486 Request Key]&lt;br /&gt;
| [https://open311.sfgov.org/dev/V1 Dev URL]&lt;br /&gt;
| [https://open311.sfgov.org/V1 Production URL]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Clients (can send and view reports)===&lt;br /&gt;
* [http://seeclickfix.blogspot.com/2010/05/seeclickfix-integrates-data-with-san.html SeeClickFix]&lt;br /&gt;
* [http://www.wa-liability-insurance.com/ Liability Insurance Washington]&lt;br /&gt;
* [http://blog.citysourced.com/index.php/54/citysourced-integrates-san-franciscos-open-311-system/ CitySourced]&lt;br /&gt;
* [http://tweetmy311.org/ TweetMy311]&lt;br /&gt;
&lt;br /&gt;
====Client Libraries====&lt;br /&gt;
* [http://github.com/mheadd/PHPOpen311 PHP Library] by Mark Head&lt;br /&gt;
&lt;br /&gt;
=Inactive APIs=&lt;br /&gt;
* [http://octolabs.pbworks.com/Open-311-API DC Open 311 v1]&lt;/div&gt;</summary>
		<author><name>Absh1us</name></author>	</entry>

	<entry>
		<id>https://wiki-archive.open311.org/GeoWeb_DNS</id>
		<title>GeoWeb DNS</title>
		<link rel="alternate" type="text/html" href="https://wiki-archive.open311.org/GeoWeb_DNS"/>
				<updated>2010-08-26T13:13:07Z</updated>
		
		<summary type="html">&lt;p&gt;Absh1us: /* No results */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GeoWebDNS is a service inspired by DNS and reverse-geocoding. Given a lat/long, what is the URI of the standardized API, protocol, or file for a given service namespace (eg 311 services). The GeoWebDNS servers would be decentralized and redundant, automatically mirroring one-another and propagating out changes much like DNS servers. All that the client would need to do would be to send the lat/long and request the URI for a given namespace. The server would then have to look at the polygon that contains that lat/long for that service namespace and return the URI associated with it.&lt;br /&gt;
&lt;br /&gt;
== Reference Implementation ==&lt;br /&gt;
http://demo.geowebdns.org/&lt;br /&gt;
&lt;br /&gt;
== Protocol ==&lt;br /&gt;
&lt;br /&gt;
The service will use HTTP.  It exists at one URL; in this document we will use the example &amp;lt;code&amp;gt;http://ns.geowebdns.org/service&amp;lt;/code&amp;gt; as the API endpoint.&lt;br /&gt;
&lt;br /&gt;
A query uses query string arguments:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;lat&amp;lt;/code&amp;gt;: The latitude. (WGS84)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;long&amp;lt;/code&amp;gt;: The longitude. (WGS84)&lt;br /&gt;
&lt;br /&gt;
'''Note''': should lat/long be one value?  This makes it easier to add new query types.  It might be like: &amp;lt;code&amp;gt;point=100.1234%2035.1234&amp;lt;/code&amp;gt; (i.e., space-separated), or just comma-separated (which doesn't need to be quoted).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;: The ''type'' of object to be returned; this will be a string/URI.  This argument may be present multiple times, returning jurisdictions with any of the given types.&lt;br /&gt;
&lt;br /&gt;
A query then looks like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;brush:jscript&amp;quot;&amp;gt;&lt;br /&gt;
GET /service?lat=100.1234&amp;amp;long=35.1234&amp;amp;type=http://ns.geowebdns.org/311/jurisdiction&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The ''only'' coordinate system supported is [http://en.wikipedia.org/wiki/WGS84 WGS 84] (latitude/longitude).&lt;br /&gt;
&lt;br /&gt;
In this example &amp;lt;code&amp;gt;http://ns.geowebdns.org/311/jurisdiction&amp;lt;/code&amp;gt; might be the URI identifying 311 jurisdictions.  URIs act similar to how an [http://en.wikipedia.org/wiki/Xmlns XML namespace] works; it is an opaque string, but by convention maps to a URL describing the type.&lt;br /&gt;
&lt;br /&gt;
'''Note''': should we accept a level of confidence, using the same scale as presented [http://code.google.com/apis/maps/documentation/geocoding/#GeocodingAccuracy in the Google geocode API]?  A low confidence might mean we do a more fuzzy search.&lt;br /&gt;
&lt;br /&gt;
The response is a JSON object like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;brush:jscript&amp;quot;&amp;gt;&lt;br /&gt;
Content-type: application/json&lt;br /&gt;
&lt;br /&gt;
{&amp;quot;results&amp;quot;: [&lt;br /&gt;
    {&amp;quot;type&amp;quot;: &amp;quot;http://ns.geowebdns.org/311/jursidiction&amp;quot;,&lt;br /&gt;
     &amp;quot;uri&amp;quot;: &amp;quot;http://sfgov.org/311/api&amp;quot;,&lt;br /&gt;
     &amp;quot;name&amp;quot;: &amp;quot;San Francisco 311&amp;quot;,&lt;br /&gt;
     &amp;quot;kml&amp;quot;: &amp;quot;http://ns.geowebdns.org/kml/3940193&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
    ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The return result JSON is an object with one key, &amp;lt;code&amp;gt;&amp;quot;results&amp;quot;&amp;lt;/code&amp;gt; (other keys may be added later, for example to specifying caching semantics or paging).  The &amp;lt;code&amp;gt;&amp;quot;results&amp;quot;&amp;lt;/code&amp;gt; key has a value of a list of all results matching this location.&lt;br /&gt;
&lt;br /&gt;
Each result is an object with several keys:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;quot;type&amp;quot;&amp;lt;/code&amp;gt;: The &amp;quot;type&amp;quot; of the jurisdiction.  If you specify multiple &amp;lt;code&amp;gt;type=...&amp;lt;/code&amp;gt; in your query, you can use this to determine which specific type this result is.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;quot;uri&amp;quot;&amp;lt;/code&amp;gt;: The destination URL.&lt;br /&gt;
&lt;br /&gt;
'''Note''': should there be a kind of &amp;quot;id URL&amp;quot; in addition to this more explicit URL?  For instance, if there are multiple APIs, they might each have a different &amp;quot;type&amp;quot; but still represent the same basic entity.  These could all have the same id URI (e.g., &amp;lt;code&amp;gt;http://sfgov/311&amp;lt;/code&amp;gt;) but still different specific endpoints.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;quot;name&amp;quot;&amp;lt;/code&amp;gt;: The name of the entity, a readable string.&lt;br /&gt;
&lt;br /&gt;
'''Note''': should this be translated or translatable?  E.g., &amp;lt;code&amp;gt;{&amp;quot;en_US&amp;quot;: &amp;quot;San Francisco 311 Information&amp;quot;, &amp;quot;es&amp;quot;: &amp;quot;San Fransisco 311 Informacion&amp;quot;}&amp;lt;/code&amp;gt; ?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;quot;kml&amp;quot;&amp;lt;/code&amp;gt;: This ''optional'' response value points to a KML document describing the entity.&lt;br /&gt;
&lt;br /&gt;
'''Note''': would it make sense to inline [http://geojson.org/ GeoJSON]?&lt;br /&gt;
&lt;br /&gt;
== No results ==&lt;br /&gt;
&lt;br /&gt;
If there are absolutely no results, it will return &amp;lt;code&amp;gt;{&amp;quot;results&amp;quot;: []}&amp;lt;/code&amp;gt; with a 404 status code.&lt;br /&gt;
[http://www.wa-liability-insurance.com/ Liability Insurance Washington]&lt;br /&gt;
&lt;br /&gt;
== Errors ==&lt;br /&gt;
&lt;br /&gt;
If the request is malformed, a 400 Bad Request response is given.  The text of this response will be a readable description of the problem.&lt;br /&gt;
&lt;br /&gt;
The readable format is defined by the Content-Type header, but will probably be HTML.  Clients that cannot or do not want to present HTML can strip all tags and will get a description that is still readable.&lt;br /&gt;
&lt;br /&gt;
'''Note''': are there any predictable errors?  E.g., a lat/long that is impossible?&lt;br /&gt;
&lt;br /&gt;
== Source ==&lt;br /&gt;
&lt;br /&gt;
Source is at http://bitbucket.org/slinkp/geowebdns&lt;br /&gt;
&lt;br /&gt;
To get started, run:&lt;br /&gt;
&lt;br /&gt;
     $ wget http://bitbucket.org/slinkp/geowebdns/raw/tip/setup-layout.sh&lt;br /&gt;
     $ chmod +x setup-layout.sh&lt;br /&gt;
     $ ./setup-layout.sh geowebdns-app&lt;br /&gt;
&lt;br /&gt;
This product uses [http://cloudsilverlining.org/ SilverLining] for deployment.  The stack consists of PostGIS, GeoAlchemy, WebOb.&lt;br /&gt;
&lt;br /&gt;
To bootstrap a database, you can run these scripts:&lt;br /&gt;
&lt;br /&gt;
    $ cd src/geowebdns/imports&lt;br /&gt;
    $ mkdir data&lt;br /&gt;
    $ ./getall.sh&lt;br /&gt;
    $ export CONFIG_PG_SQLALCHEMY=postgres://postgres:password@localhost/geowebdns  # use your postgres password here&lt;br /&gt;
    $ ./importall.sh --commit&lt;/div&gt;</summary>
		<author><name>Absh1us</name></author>	</entry>

	</feed>