Somerville 311 Service Requests logo

Somerville 311 Service Requests

Overview

This is a public Socrata Open Data API endpoint — no authentication is required to read data. You can optionally add a free Socrata app token for higher rate limits (below), which is worth doing for this connector because the dataset is large (over a million records).

Setup guide

Optional: add a Socrata app token for higher rate limits

Anonymous access works, but Socrata throttles unauthenticated traffic from a shared per-source-IP pool. A free Socrata app token grants a higher, dedicated quota.

  1. Go to data.somervillema.gov/profile/edit/developer_settings and sign in (or create a free account).
  2. In the App Tokens section, click Create New App Token, give it a name (e.g. Ingest), and save.
  3. Copy the value in the App Token column (about 25 characters). Do not use the Secret Token — that is a separate credential this connector does not use.
  4. Paste it into the Socrata app token (optional) field when you configure the 311 Service Requests endpoint.

The token is sent as the $$app_token query parameter. Leave the field blank for anonymous access. Important: an incorrect token makes requests fail with HTTP 403 — paste a valid token or leave it blank. (Socrata app tokens work across Socrata portals, so the same token can also serve the Cambridge 311 connector.)

Add it to Ingest

In the Ingest UI under Connectors → Somerville 311 Service Requests, no credentials are required — just activate the connector. If you created an app token above, paste it into the optional field when configuring the endpoint.

Mind the limits

The connector dispatches up to 2 requests per second. HTTP 429, 500, 502, 503, and 504 responses are retried automatically. The API uses SoQL query parameters ($limit, $offset, $where, $order, $select) to filter and page through the dataset; the optional app token above raises the anonymous rate limit.

Supported streams

1 endpoint are available out of the box. Each endpoint syncs into its own Iceberg table in Snowflake.

EndpointDescriptionReference
list_service_requests
list_service_requests

Authentication

Auth type
None

Performance & limits

Rate limit
2 requests per second (unauthenticated)
Automatic backoff
Ingest throttles requests to the published rate limit and retries with exponential backoff on transient errors. You don't need to handle 429s, retries, or pagination yourself.

Resources