API Documentation
How to access data through the City's APIs
The City of St. Louis provides an application programming interface (API) for developers to access some of the City's public data.
You need to request an API key before accessing some of the City's APIs.
Available APIs
CSB Service Requests
This API provides access to service request data submitted to the Citizens' Service Bureau. Uses the Open311 GeoReport v2 spec.
An API key is required for this API.
Address Validation
The address validation API validates properties located in the City of St. Louis. It is designed to take an address, validate it against City of St. Louis data, and return standardized, deliverable addresses.
An API key is required for this API.
Public Schools
This API provides information on St. Louis Public Schools, including school assignment information by address and city block.
Accessing API Methods
The City's APIs use a RESTful interface, which means that you can send an HTTP GET or POST to call the API's methods, which responds with a document and HTTP status code.
API Keys
For APIs that require an API key (see documentation) you will need to sign up for a key for each individual API. Your API key is required for each request.
If you would like an API key, send us a request and tell us how you would like to use the data.
If you forgot your API key, you can retrieve it using the email address on file.
Making API Calls
- Each call needs to include your API key, if required.
- Each API call should be done using https.
- Simply change the format extension for your request to get results in a different format. Check the documentation for supported formats for each API method.
// Make a request for data in JSON format httpService = new http(); httpService.setMethod("get"); httpService.setURL("https://www.stlouis-mo.gov/powernap/stlouis/api.cfm/requests/32345.json?api_key=YourKeyGoesHere"); result = httpService.send().getPrefix(); // Dump results writeDump(deserializeJSON(result.fileContent));
// Set up the URL $url = "https://www.stlouis-mo.gov/powernap/stlouis/api.cfm/requests/32345.json?api_key=yourApiKeyHere"; // Get the results $response = file_get_contents($url); // Parse the JSON $requestInfo = json_decode($response, true);
# Import an HTTP library import requests # Make the request r = requests.get('https://www.stlouis-mo.gov/powernap/stlouis/api.cfm/requests/32345.json?api_key=yourApiKeyHere') # The returned data r.json()