Operator entity presents information about certain agency or provider. It could be a bus operator, a rail agency, or a mobility provider for shared vehicles.

Description

id
required
string
The unique identifier for an operator.
name
required
one of
Name of the operator.
description
one of
Description of the operator.
language
required
string
Default language for the operator. It should be used by default in responses if no specific language is requested, or if there are no translations for the requested language.
timezone
required
string
Timezone where the operator operates. All route timetable times, that belong to the operator, are defined in this timezone.
web
string
Website of the operator.
phone
one of
Phone number(s) of the operator.
email
one of
Email address(es) of the operator.
loc
one of
Location of the operator.
graphics
[]object
Graphics that are accociated with the stop.

Examples

#1

{
  "id": "A01",
  "name": "Agency 01",
  "language": "en",
  "timezone": "Europe/Berlin"
}

#2

{
  "id": "A02",
  "name": "Agency 02",
  "language": "en-US",
  "timezone": "Europe/Paris",
  "phone": [
    {
      "phoneType": "information",
      "value": "54321"
    },
    {
      "phoneType": "support",
      "value": "12345"
    }
  ]
}

#3

{
  "id": "A03",
  "name": {
    "en": "Agency 03",
    "de": "Verkehrsbetriebe 03"
  },
  "language": "de",
  "timezone": "Europe/Madrid",
  "phone": [
    {
      "phoneType": "information",
      "value": "54321"
    },
    {
      "phoneType": "support",
      "value": "12345"
    }
  ],
  "loc": [
    52.525517,
    13.4153366
  ]
}

Schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://github.com/vchezganov/cityvehiclespec/schema/operator.json",
  "title": "Operator",
  "type": "object",
  "properties": {
    "id": {
      "description": "The unique identifier for an operator.",
      "type": "string"
    },
    "name": {
      "description": "Name of the operator.",
      "$ref": "definitions.json#/$defs/translation"
    },
    "description": {
      "description": "Description of the operator.",
      "$ref": "definitions.json#/$defs/translation"
    },
    "language": {
      "description": "Default language for the operator. It should be used by default in responses if no specific language is requested, or if there are no translations for the requested language.",
      "type": "string"
    },
    "timezone": {
      "description": "Timezone where the operator operates. All route timetable times, that belong to the operator, are defined in this timezone.",
      "type": "string"
    },
    "web": {
      "description": "Website of the operator.",
      "type": "string"
    },
    "phone": {
      "description": "Phone number(s) of the operator.",
      "oneOf": [
        {
          "description": "Defines only one main phone number of the operator.",
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "description": "Defines various phone numbers of the operator.",
            "type": "object",
            "properties": {
              "phoneType": {
                "description": "Type of the phone number.",
                "enum": [
                  "main",
                  "support",
                  "information"
                ]
              },
              "value": {
                "description": "Phone number.",
                "type": "string"
              }
            },
            "required": [
              "phoneType",
              "value"
            ],
            "uniqueItems": true
          }
        }
      ]
    },
    "email": {
      "description": "Email address(es) of the operator.",
      "oneOf": [
        {
          "description": "Defines only one main email address of the operator.",
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "description": "Defines various email addresses of the operator.",
            "type": "object",
            "properties": {
              "emailType": {
                "description": "Type of the email.",
                "enum": [
                  "main",
                  "support",
                  "information"
                ]
              },
              "value": {
                "description": "Email address.",
                "type": "string"
              }
            },
            "required": [
              "emailType",
              "value"
            ],
            "uniqueItems": true
          }
        }
      ]
    },
    "loc": {
      "description": "Location of the operator.",
      "$ref": "definitions.json#/$defs/location"
    },
    "graphics": {
      "description": "Graphics that are accociated with the stop.",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "kind": {
            "description": "Kind of the graphic.",
            "enum": [
              "icon"
            ]
          },
          "graphic": {
            "$ref": "definitions.json#/$defs/graphicReference"
          }
        }
      }
    }
  },
  "required": [
    "id",
    "name",
    "language",
    "timezone"
  ]
}