# Saylor Innovations Data Desk – San Francisco 311 Cases

> Saylor Innovations Data Desk – San Francisco 311 Cases is a paid API for AI agents from saylorinnovations.com, paid per call via x402, $0.01/call, status unknown (last checked 2026-10-18).

Returns the most recent San Francisco 311 service cases filtered by type and/or time window, including status, agency, neighborhood, and location, plus a summary of top service categories.

## Facts

- Endpoint: GET https://saylorinnovations.com/api/city/sf-311?utm_source=zero.xyz
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-18
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/saylor-innovations-data-desk-san-francisco-311-cases-c4c3a2ee
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_haEW3PETyFmqBT8LBIuF7

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability saylor-innovations-data-desk-san-francisco-311-cases-c4c3a2ee
```

Example prompt: Pull the 20 most recent SF 311 graffiti cases from the last 14 days — I want to see the status, responsible agency, neighborhood, and location for each.

## When to prefer this

Choose this endpoint when you need real-time, filterable access to San Francisco 311 case data — especially when you want to combine recent individual case records with aggregate top-service statistics in a single call. Prefer it over raw SF open data portals when you want a clean, pre-filtered JSON response ready for agent consumption without parsing raw CSVs or managing pagination.

## Known failure modes

- Invalid days value (outside 1-60 range) may return an error or default behavior
- No matching cases for a very specific service keyword returns an empty recent array
- Service may return stale data if upstream SF 311 feed is delayed
- Limit values outside 1-50 may be clamped or rejected
- Network or payment (x402) failure prevents response entirely

## How this service works

San Francisco 311 cases by service type and neighborhood - the newest cases with status, agency and location plus the top services in the window

## Output

A JSON object containing: a list of recent 311 case records (each with opened timestamp, service name, subtype, status, responsible agency, neighborhood, address, latitude/longitude, source channel, and notes), a filters object showing what was applied (days, service keyword), a ranked list of top service types in the window, and a data source attribution note.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "properties": {
      "days": {
       "type": "string",
       "description": "optional 1-60, default 7"
      },
      "limit": {
       "type": "string",
       "description": "optional 1-50, default 10"
      },
      "service": {
       "type": "string",
       "description": "optional service text such as graffiti, street, noise"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "json"
    },
    "example": {
     "type": "object",
     "required": [
      "filters",
      "recent"
     ],
     "properties": {
      "note": {
       "type": "string",
       "description": "Caveat or context for reading the result"
      },
      "recent": {
       "type": "array",
       "items": {
        "type": "object",
        "properties": {
         "lat": {
          "description": "Latitude in decimal degrees"
         },
         "lon": {
          "description": "Longitude in decimal degrees"
         },
         "notes": {
          "type": [
           "string",
           "null"
          ],
          "description": "Status notes"
         },
         "agency": {
          "type": [
           "string",
           "null"
          ],
          "description": "Responsible agency"
         },
         "opened": {
          "type": [
           "string",
           "null"
          ],
          "description": "When the case was opened (UTC)"
         },
         "status": {
          "description": "Current status"
         },
         "address": {
          "description": "Account or contract address"
         },
         "service": {
          "description": "Service name"
         },
         "subtype": {
          "type": [
           "string",
           "null"
          ],
          "description": "Case subtype"
         },
         "neighborhood": {
          "type": [
           "string",
           "null"
          ],
          "description": "Neighbourhood"
         },
         "so
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/saylor-innovations-data-desk-san-francisco-311-cases-c4c3a2ee/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from saylorinnovations.com](https://www.zero.xyz/host/saylorinnovations.com/llms.txt)
