Service catalogue profile

How the services a government offers are described so residents can find and understand them.

Schemas: 2

Code lists: 2

Standards: schema.org, Open Referral / HSDS

ServiceAtLocation service at location link

One service delivered at one place, with the hours that apply there. HSDS models this as a separate join rather than a field on either side, because a service and a location are independent: one office delivers many services, one service runs from many offices, and the opening hours belong to the pairing rather than to either alone.

Standards: Open Referral / HSDS

FieldTypeDefinitionRequired
@type "ServiceAtLocation" Always ServiceAtLocation. Yes
@id string This pairing's own dereferenceable identifier. No
location Reference A Facility from _core. Yes
openingHoursSpecification object[] schema:OpeningHoursSpecification - the hours this service is available at this location, which may differ from the location's own general hours. No
appointmentRequired boolean Whether this service must be booked in advance at this location. No
description string A plain-language note on this specific pairing, when it differs from the service's own description - e.g. a satellite office offering only part of the service. No
availableLanguage string[] BCP 47 tags for languages available at this specific location, where they differ from the service's own availableLanguage. No
{
  "@type": "ServiceAtLocation",
  "@id": "https://example-city.gov/id/service-at-location/birth-certificate-city-hall",
  "location": {
    "@id": "https://example-city.gov/id/facility/city-hall",
    "name": "Example City Hall"
  },
  "appointmentRequired": false,
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": [
        "Monday",
        "Tuesday",
        "Wednesday",
        "Thursday",
        "Friday"
      ],
      "opens": "09:00",
      "closes": "16:00"
    }
  ],
  "availableLanguage": [
    "en-US",
    "es-US"
  ]
}
Download JSON

Service service link

A service a resident can obtain from government: a birth certificate, a business registration, housing support, a parking permit. The requests profile covers reporting a problem; this covers finding and using a service, which is the most common thing anyone asks a government website. Mirrors Open Referral / HSDS, which remains the source model. This is the fuller definition of schema:GovernmentService; requests/service.schema.json describes the same type at the depth Open311 needs, and a publisher serving both should use this one.

Standards: Open Referral / HSDS

FieldTypeDefinitionRequired
@id string This service's own dereferenceable identifier. Yes
@type "GovernmentService" Always GovernmentService, a real schema.org type. Yes
name string The service's public name, e.g. 'Apply for a business licence'. Yes
alternateName string[] Other names residents might know this service by. No
description string A plain-language explanation of the service, shown to residents deciding whether it's the one they need. No
url string Where more information about this service can be found. No
identifier Identifier[] Any scheme-qualified identifiers for this service beyond its @id. No
serviceCode string The publisher's own code. Shared with the requests profile. No
serviceType string The publisher's grouping. No
keywords string[] Search terms residents might use to find this service. No
provider Reference The GovernmentOrganization providing it. Yes
areaServed Reference The Jurisdiction this service is available in. No
serviceStatus string Whether the service is currently available. HSDS distinguishes defunct from temporarily closed because a resident needs to know whether to come back. Optional at Core conformance, because Open311 service catalogues carry no status field and requiring it would make them unrepresentable. Required at Standard: a service listing that cannot say whether the service still exists is of limited use. No
lifeEvent string[] The life events this service relates to. People look for services by circumstance - having a baby, losing a job, moving home - not by the department that happens to run them, which is why the EU Single Digital Gateway organises services this way. No
eligibility object Who may use the service. schema:PeopleAudience already carries age and geography; the free-text criterion carries what a structured audience cannot express. No
applicationProcess string How to apply, in plain language. HSDS treats this as central and it is what residents actually need; a service described without it is a listing rather than a route to anything. No
requiredDocument object[] What an applicant must bring or supply. The single most common reason an application fails at the counter. No
cost object What it costs. A free service must say so explicitly rather than omitting the field, because absence reads as unknown. No
processingTime string Expected time to completion, as an ISO 8601 duration. No
availableChannel object[] schema:ServiceChannel - online, phone, in person, post. No
availableAtLocation ServiceAtLocation[] Where the service is delivered in person, and when. HSDS keeps this as a separate join because a service and a location are independent things with a many-to-many relationship. No
availableLanguage string[] BCP 47 tags. No
interpretationAvailable boolean Whether interpretation is offered for languages not listed. No
accessibilityNote string Accommodations available for residents with disabilities. No
relatedLegislation Reference The provision the service is delivered under. No
dateModified string When this record was last updated. No
sourceDataset string The Dataset this record was published as part of. No
{
  "@id": "https://example-city.gov/id/service/birth-certificate",
  "@type": "GovernmentService",
  "name": "Order a copy of a birth certificate",
  "alternateName": [
    "Birth record request"
  ],
  "description": "Order a certified copy of a birth registered in Example City.",
  "url": "https://example-city.gov/services/birth-certificate",
  "serviceCode": "VIT-001",
  "serviceType": "Vital records",
  "serviceStatus": "active",
  "lifeEvent": [
    "birth",
    "family"
  ],
  "keywords": [
    "birth certificate",
    "vital records",
    "certified copy"
  ],
  "provider": {
    "@id": "https://example-city.gov/id/organization/city-government",
    "name": "Example City Government"
  },
  "areaServed": {
    "@id": "https://example-city.gov/id/jurisdiction/example-city",
    "name": "Example City"
  },
  "eligibility": {
    "@type": "PeopleAudience",
    "audienceType": "The person named on the record, a parent, a legal guardian, or a legal representative",
    "requiredMinAge": 18,
    "geographicArea": {
      "@id": "https://example-city.gov/id/jurisdiction/example-city"
    },
    "eligibilityCriteria": "Applicants under 18 may apply with a parent or guardian co-signing. Proof of relationship is required for third-party applicants."
  },
  "applicationProcess": "Apply online, by post, or in person at City Hall. Online applications are processed first. Postal applications must include a photocopy of identification; do not send original documents.",
  "requiredDocument": [
    {
      "@type": "RequiredDocument",
      "name": "Photo identification",
      "description": "Driver's licence, passport or state ID card."
    },
    {
      "@type": "RequiredDocument",
      "name": "Proof of relationship",
      "description": "Required only where the applicant is not the person named on the record.",
      "optional": true
    }
  ],
  "cost": {
    "@type": "ServiceCost",
    "free": false,
    "amount": {
      "@type": "MonetaryAmount",
      "value": 25,
      "currency": "USD"
    },
    "description": "$25 for the first copy, $8 for each additional copy ordered at the same time.",
    "waiverAvailable": true
  },
  "processingTime": "P10D",
  "availableLanguage": [
    "en-US",
    "es-US"
  ],
  "interpretationAvailable": true,
  "accessibilityNote": "City Hall counters are step-free. Induction loops are available at counters 1 to 4.",
  "availableChannel": [
    {
      "@type": "ServiceChannel",
      "serviceUrl": "https://example-city.gov/services/birth-certificate/apply",
      "servicePhone": {
        "@type": "ContactPoint",
        "telephone": "+1-555-0142"
      },
      "processingTime": "P10D",
      "availableLanguage": [
        "en-US",
        "es-US"
      ]
    }
  ],
  "availableAtLocation": [
    {
      "@type": "ServiceAtLocation",
      "@id": "https://example-city.gov/id/service-at-location/birth-certificate-city-hall",
      "location": {
        "@id": "https://example-city.gov/id/facility/city-hall",
        "name": "Example City Hall"
      },
      "appointmentRequired": false,
      "openingHoursSpecification": [
        {
          "@type": "OpeningHoursSpecification",
          "dayOfWeek": [
            "Monday",
            "Tuesday",
            "Wednesday",
            "Thursday",
            "Friday"
          ],
          "opens": "09:00",
          "closes": "16:00"
        }
      ],
      "availableLanguage": [
        "en-US",
        "es-US"
      ]
    }
  ],
  "dateModified": "2026-08-14"
}
Download JSON