Service requests profile

How resident requests, like reporting a pothole, are tracked from submission to resolution.

Schemas: 2

Code lists: 1

Standards: schema.org, Open311 GeoReport v2

ServiceRequest service request link

One report of a problem or request for service - a pothole, a broken streetlight, an abandoned vehicle.

Standards: Open311 GeoReport v2

FieldTypeDefinitionRequired
@id string This request's own dereferenceable identifier. Yes
@type "ServiceRequest" Always ServiceRequest. Mirrors Open311 GeoReport v2, which is the established standard and remains the source model; this is a schema.org projection of it, not a replacement - schema.org has no service request concept of any kind, so gs:ServiceRequest is minted outright. Deliberately has no fields for the reporter's name, email, phone, device ID, or account ID: those exist in the Open311 POST payload and must not survive into published data. See the privacy section in the profile README. Yes
identifier Identifier[] Any scheme-qualified identifiers for this request beyond its @id. No
serviceRequestId string The publisher's own request number, as shown to the public. Open311 service_request_id. Yes
serviceCode string The code of the service requested. Open311 service_code. Must match a GovernmentService in the catalogue. Yes
service Reference The GovernmentService this request is against. No
description string The reporter's account of the problem. Free text submitted by a member of the public: treat as untrusted, and review before publishing, since people put their own names and phone numbers in here. No
requestStatus string termCode from the ServiceRequestStatus code list. Open311 defines only open and closed; anything other than closed maps to open for Open311 compatibility. Yes
statusNote string Public explanation of the current status. Open311 status_notes. No
agencyResponsible Reference The GovernmentOrganization handling it. No
dateCreated string Open311 requested_datetime. Yes
dateModified string Open311 updated_datetime. No
expectedResolutionDate string Open311 expected_datetime. No
geo object schema.org GeoCoordinates. Round coordinates for requests at residential addresses - see the privacy section of the profile README. No
address object schema.org PostalAddress, when the request concerns one rather than coordinates alone. No
location Reference A named Facility or Place, where the request concerns one. No
jurisdiction Reference The Jurisdiction the request falls in. No
image object[] schema.org ImageObject. Open311 media_url. Photos submitted by the public routinely contain bystanders, licence plates, and house numbers; review before publishing. No
additionalProperty object[] Answers to the service's own questions, as schema.org PropertyValue with propertyID matching the attribute's valueName. Open311 attribute[]. No
sourceDataset string The Dataset this record was published as part of. No
duplicateOf Reference The request this duplicates, when requestStatus is duplicate. A reference, not prose: 'Duplicate of 2025-104882' in a status note cannot be followed by anything. No
relatedAlert Reference An Alert this request concerns. A service disruption is both: the disruption is an alert, reports about it are requests. No
statusHistory object[] Timestamped record of how the request progressed. Without it only current state is visible, so nobody can see how long a request sat unassigned - which is exactly what residents and service-level measurement need. No
{
  "@id": "https://example-city.gov/id/request/2025-104882",
  "@type": "ServiceRequest",
  "serviceRequestId": "2025-104882",
  "serviceCode": "ROAD-001",
  "service": {
    "@id": "https://example-city.gov/id/service/pothole",
    "name": "Pothole repair"
  },
  "description": "Large pothole in the eastbound lane just past the junction.",
  "requestStatus": "closed",
  "statusNote": "Repaired and resurfaced.",
  "agencyResponsible": {
    "@id": "https://example-city.gov/id/organization/public-works",
    "name": "Public Works Department"
  },
  "jurisdiction": {
    "@id": "https://example-city.gov/id/jurisdiction/example-city",
    "name": "Example City"
  },
  "dateCreated": "2025-05-02T08:14:00-07:00",
  "dateModified": "2025-05-09T16:02:00-07:00",
  "expectedResolutionDate": "2025-05-09T00:00:00-07:00",
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 34.0521,
    "longitude": -118.2436
  },
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "Junction of 4th and Alder",
    "addressLocality": "Example City",
    "addressRegion": "CA",
    "addressCountry": "US"
  },
  "additionalProperty": [
    {
      "@type": "PropertyValue",
      "propertyID": "surface_type",
      "value": "asphalt"
    },
    {
      "@type": "PropertyValue",
      "propertyID": "approx_size_cm",
      "value": "60"
    }
  ],
  "statusHistory": [
    {
      "@type": "StatusChange",
      "requestStatus": "open",
      "date": "2025-05-02T08:14:00-07:00"
    },
    {
      "@type": "StatusChange",
      "requestStatus": "inProgress",
      "date": "2025-05-05T09:02:00-07:00",
      "statusNote": "Assigned to street maintenance crew."
    },
    {
      "@type": "StatusChange",
      "requestStatus": "closed",
      "date": "2025-05-09T16:02:00-07:00",
      "statusNote": "Repaired and resurfaced."
    }
  ]
}
Download JSON

Service service link

One service a resident can request, and the questions asked when requesting it.

Standards: Open311 GeoReport v2

FieldTypeDefinitionRequired
@id string This service's own dereferenceable identifier. Yes
@type "GovernmentService" Always GovernmentService - this is the half of Open311 that schema.org does cover: GovernmentService is a real type, ServiceChannel describes how to reach it, and PropertyValueSpecification describes a form field, so the request attributes need no minted vocabulary. Combines the Open311 Service List and Service Definition into a single entity. Yes
name string The service's public name, e.g. 'Pothole Repair'. Yes
description string A plain-language explanation of the service, shown to residents deciding what to report. No
url string Where more information about this service can be found. No
serviceCode string Open311 service_code. Stable; requests reference it. Yes
serviceType string Open311 group, e.g. 'Streets', 'Sanitation'. No
keywords string[] Search terms residents might use to find this service. No
provider Reference The GovernmentOrganization providing it. Yes
areaServed Reference The Jurisdiction it covers. No
availableChannel object[] schema.org ServiceChannel: how a resident actually reports this. processingTime carries the service-level expectation. No
requestAttribute object[] The questions asked when submitting. Open311 Service Definition attributes, as schema.org PropertyValueSpecification. No
isRealtime boolean Whether a request against this service returns an id immediately. Open311 type: realtime versus batch or blackbox. No
sourceDataset string The Dataset this record was published as part of. No
{
  "@id": "https://example-city.gov/id/service/pothole",
  "@type": "GovernmentService",
  "name": "Pothole repair",
  "description": "Report a pothole or damaged road surface on a city-maintained street.",
  "url": "https://example-city.gov/services/pothole",
  "serviceCode": "ROAD-001",
  "serviceType": "Streets",
  "keywords": [
    "pothole",
    "road",
    "pavement",
    "street repair"
  ],
  "isRealtime": true,
  "provider": {
    "@id": "https://example-city.gov/id/organization/public-works",
    "name": "Public Works Department"
  },
  "areaServed": {
    "@id": "https://example-city.gov/id/jurisdiction/example-city",
    "name": "Example City"
  },
  "availableChannel": [
    {
      "@type": "ServiceChannel",
      "serviceUrl": "https://example-city.gov/report/pothole",
      "servicePhone": {
        "@type": "ContactPoint",
        "telephone": "+1-555-0311"
      },
      "serviceSmsNumber": {
        "@type": "ContactPoint",
        "telephone": "+1-555-0311"
      },
      "processingTime": "P5D",
      "availableLanguage": [
        "en-US",
        "es-US"
      ]
    }
  ],
  "requestAttribute": [
    {
      "@type": "PropertyValueSpecification",
      "valueName": "surface_type",
      "name": "What kind of surface is affected?",
      "valueRequired": true,
      "position": 1,
      "valueOption": [
        {
          "@type": "DefinedTerm",
          "termCode": "asphalt",
          "name": "Asphalt road"
        },
        {
          "@type": "DefinedTerm",
          "termCode": "concrete",
          "name": "Concrete road"
        },
        {
          "@type": "DefinedTerm",
          "termCode": "sidewalk",
          "name": "Sidewalk"
        }
      ]
    },
    {
      "@type": "PropertyValueSpecification",
      "valueName": "approx_size_cm",
      "name": "Roughly how wide is it, in centimetres?",
      "valueRequired": false,
      "position": 2,
      "minValue": 1,
      "maxValue": 500
    }
  ],
  "serviceStatus": "active"
}
Download JSON