Entur · Schema

CustomerResponse

A registered customer response

CompanyPublic TransportJourney PlanningMobilityOpen DataNorwayTransitGraphQL

Properties

Name Type Description
changedAt string When the customer was last changed. ISO 8601 date format
changedBy string Who last changed the customer. Either web, app or username of employee. Used for traceability in accordance with GDPR
changedByChannel string Which sales channel or system who last changed the customer. Used for traceability in accordance with GDPR
countryCode string Telephone number country code, starting with +.
createdAt string When the customer was created. ISO 8601 date format
createdBy string Who created the customer. Either web, app or username of employee. Used for traceability in accordance with GDPR
createdByChannel string Which sales channel or system who created the customer. Used for traceability in accordance with GDPR
customerAccountId string Customer account id used for account based ticketing
customerAccounts array Customer accounts used for account based ticketing
customerConsents array The legacy consents connected to the customer.
customerNumber integer Customer number.
customerRef string Optional customer reference. Defaults to customer number if not set.
dateOfBirth object
dateOfDeath object
ecardOwnerships array The ecards connected to the customer.
email string Contact email. May become different from username
emailOld string When customer is deleted (status='D'), the value of 'email' is moved here to allow creation of a new customer with the same email.
emailVerifiedAt string When the email was verified. ISO 8601 date format
expirationDate string The date when the customers personal data should be deleted. Personal data will be deleted continuously. ISO 8601 date format
firstName string First and middle name.
givenConsents array The consents connected to the customer. Deprecated
id integer Customer id. Deprecated
landlineNumber string Landline telephone number.
languagePreference string Deprecated, please use languagePreferenceISO6393. Which language the customer wants information in. Default is 'NO'.
languagePreferenceISO6393 string Which language the customer wants information in. ISO 639-3 format. Default is 'NOB'.
lastSignInAt string When the customer last signed in. ISO 8601 date format
lastSignInFrom string Where the customer last signed in from. Typically web or app. Typically used to display to the user where the last login was performed.
nationality string The customers nationality. ISO 3166-1 alpha-3 format
notes array Deprecated. The notes connected to the customer.
organisationId integer The organisation the customer is registered with.
parentId object Id of the parent customer. Used to connect different customer types.
personnelTicketBearer object
postalAddresses array The postal addresses connected to the customer.
preferences array The preferences connected to the customer.
profileType string Type of profile. Types supported: 'S' = Standard customer, 'P' = Personnel ticket customer, 'T' = Temporary customer. Default is 'S'.
relatedCustomerNumbers array The customer number of profiles which has been merged into the current profile. These may be used to lookup customer information in other systems
status string Customer status. Statuses supported: 'A' = Active, 'P' = Passive, 'D' = Deleted. Default is 'A'.
surname string Surname.
telephoneNumber string Deprecated. Please use countryCode and telephoneNumberNoCountryCode. Telephone number for customer. This should be a cell phone number.
telephoneNumberNoCountryCode string Telephone number without country code or punctuation.
telephoneNumberVerifiedAt string When the telephone number was verified. ISO 8601 date format
username string Username the customer can use to log unto their profile. Only available on profile type S(tamkunde) and profile status A(ctive)
uuid string A universal unique id for the customer. 32 random alphanumeric characters. Not RFC 4122 compliant
vippsId string Deprecated. The field is no longer stored. Vipps unique user identifier.
View JSON Schema on GitHub

JSON Schema

entur-customer-response-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/entur/main/json-schema/entur-customer-response-schema.json",
  "title": "CustomerResponse",
  "description": "A registered customer response",
  "x-generated": "2026-10-09",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/entur-customers-openapi.yml#/components/schemas/CustomerResponse",
  "required": [
    "changedAt",
    "changedBy",
    "changedByChannel",
    "createdAt",
    "createdBy",
    "createdByChannel",
    "customerNumber",
    "firstName",
    "organisationId",
    "profileType",
    "status",
    "surname",
    "uuid"
  ],
  "type": "object",
  "properties": {
    "changedAt": {
      "type": "string",
      "description": "When the customer was last changed. ISO 8601 date format",
      "format": "date-time"
    },
    "changedBy": {
      "maxLength": 100,
      "type": "string",
      "description": "Who last changed the customer. Either web, app or username of employee. Used for traceability in accordance with GDPR"
    },
    "changedByChannel": {
      "maxLength": 100,
      "type": "string",
      "description": "Which sales channel or system who last changed the customer. Used for traceability in accordance with GDPR"
    },
    "countryCode": {
      "maxLength": 4,
      "type": "string",
      "description": "Telephone number country code, starting with +."
    },
    "createdAt": {
      "type": "string",
      "description": "When the customer was created. ISO 8601 date format",
      "format": "date-time"
    },
    "createdBy": {
      "maxLength": 100,
      "type": "string",
      "description": "Who created the customer. Either web, app or username of employee. Used for traceability in accordance with GDPR"
    },
    "createdByChannel": {
      "maxLength": 100,
      "type": "string",
      "description": "Which sales channel or system who created the customer. Used for traceability in accordance with GDPR"
    },
    "customerAccountId": {
      "maxLength": 60,
      "type": "string",
      "description": "Customer account id used for account based ticketing"
    },
    "customerAccounts": {
      "type": "array",
      "description": "Customer accounts used for account based ticketing",
      "items": {
        "$ref": "#/$defs/CustomerAccountResponse"
      }
    },
    "customerConsents": {
      "type": "array",
      "description": "The legacy consents connected to the customer.",
      "items": {
        "$ref": "#/$defs/CustomerConsent"
      }
    },
    "customerNumber": {
      "type": "integer",
      "description": "Customer number.",
      "format": "int64"
    },
    "customerRef": {
      "maxLength": 40,
      "type": "string",
      "description": "Optional customer reference. Defaults to customer number if not set."
    },
    "dateOfBirth": {
      "$ref": "#/$defs/LocalDateResponse"
    },
    "dateOfDeath": {
      "$ref": "#/$defs/LocalDateResponse"
    },
    "ecardOwnerships": {
      "type": "array",
      "description": "The ecards connected to the customer.",
      "items": {
        "$ref": "#/$defs/EcardOwnershipResponse"
      }
    },
    "email": {
      "maxLength": 80,
      "type": "string",
      "description": "Contact email. May become different from username"
    },
    "emailOld": {
      "maxLength": 80,
      "type": "string",
      "description": "When customer is deleted (status='D'), the value of 'email' is moved here to allow creation of a new customer with the same email."
    },
    "emailVerifiedAt": {
      "type": "string",
      "description": "When the email was verified. ISO 8601 date format",
      "format": "date-time"
    },
    "expirationDate": {
      "type": "string",
      "description": "The date when the customers personal data should be deleted. Personal data will be deleted continuously. ISO 8601 date format",
      "format": "date-time"
    },
    "firstName": {
      "maxLength": 50,
      "type": "string",
      "description": "First and middle name."
    },
    "givenConsents": {
      "type": "array",
      "description": "The consents connected to the customer. Deprecated",
      "deprecated": true,
      "items": {
        "type": "object",
        "description": "The consents connected to the customer. Deprecated",
        "deprecated": true
      }
    },
    "id": {
      "type": "integer",
      "description": "Customer id. Deprecated",
      "format": "int64",
      "deprecated": true
    },
    "landlineNumber": {
      "maxLength": 20,
      "type": "string",
      "description": "Landline telephone number."
    },
    "languagePreference": {
      "type": "string",
      "description": "Deprecated, please use languagePreferenceISO6393. Which language the customer wants information in. Default is 'NO'.",
      "deprecated": true,
      "enum": [
        "NO",
        "EN"
      ]
    },
    "languagePreferenceISO6393": {
      "type": "string",
      "description": "Which language the customer wants information in. ISO 639-3 format. Default is 'NOB'.",
      "enum": [
        "NOB",
        "NNO",
        "ENG"
      ]
    },
    "lastSignInAt": {
      "type": "string",
      "description": "When the customer last signed in. ISO 8601 date format",
      "format": "date-time"
    },
    "lastSignInFrom": {
      "maxLength": 100,
      "type": "string",
      "description": "Where the customer last signed in from. Typically web or app. Typically used to display to the user where the last login was performed."
    },
    "nationality": {
      "maxLength": 3,
      "minLength": 3,
      "type": "string",
      "description": "The customers nationality. ISO 3166-1 alpha-3 format"
    },
    "notes": {
      "type": "array",
      "description": "Deprecated. The notes connected to the customer.",
      "deprecated": true,
      "items": {
        "$ref": "#/$defs/NoteResponse"
      }
    },
    "organisationId": {
      "type": "integer",
      "description": "The organisation the customer is registered with.",
      "format": "int64"
    },
    "parentId": {
      "type": "object",
      "description": "Id of the parent customer. Used to connect different customer types."
    },
    "personnelTicketBearer": {
      "$ref": "#/$defs/PersonnelTicketBearer"
    },
    "postalAddresses": {
      "type": "array",
      "description": "The postal addresses connected to the customer.",
      "items": {
        "$ref": "#/$defs/PostalAddressResponse"
      }
    },
    "preferences": {
      "type": "array",
      "description": "The preferences connected to the customer.",
      "items": {
        "$ref": "#/$defs/CustomerPreferenceResponse"
      }
    },
    "profileType": {
      "type": "string",
      "description": "Type of profile. Types supported: 'S' = Standard customer, 'P' = Personnel ticket customer, 'T' = Temporary customer. Default is 'S'.",
      "enum": [
        "S",
        "P",
        "T"
      ]
    },
    "relatedCustomerNumbers": {
      "type": "array",
      "description": "The customer number of profiles which has been merged into the current profile. These may be used to lookup customer information in other systems",
      "items": {
        "type": "integer",
        "description": "The customer number of profiles which has been merged into the current profile. These may be used to lookup customer information in other systems",
        "format": "int64"
      }
    },
    "status": {
      "type": "string",
      "description": "Customer status. Statuses supported: 'A' = Active, 'P' = Passive, 'D' = Deleted. Default is 'A'.",
      "enum": [
        "A",
        "P",
        "D"
      ]
    },
    "surname": {
      "maxLength": 50,
      "type": "string",
      "description": "Surname."
    },
    "telephoneNumber": {
      "maxLength": 20,
      "type": "string",
      "description": "Deprecated. Please use countryCode and telephoneNumberNoCountryCode. Telephone number for customer. This should be a cell phone number."
    },
    "telephoneNumberNoCountryCode": {
      "maxLength": 12,
      "type": "string",
      "description": "Telephone number without country code or punctuation."
    },
    "telephoneNumberVerifiedAt": {
      "type": "string",
      "description": "When the telephone number was verified. ISO 8601 date format",
      "format": "date-time"
    },
    "username": {
      "type": "string",
      "description": "Username the customer can use to log unto their profile. Only available on profile type S(tamkunde) and profile status A(ctive)"
    },
    "uuid": {
      "maxLength": 32,
      "minLength": 32,
      "type": "string",
      "description": "A universal unique id for the customer. 32 random alphanumeric characters. Not RFC 4122 compliant"
    },
    "vippsId": {
      "type": "string",
      "description": "Deprecated. The field is no longer stored. Vipps unique user identifier.",
      "format": "uuid",
      "deprecated": true
    }
  },
  "$defs": {
    "CustomerAccountResponse": {
      "required": [
        "createdAt",
        "createdBy",
        "customerAccountId",
        "customerNumber",
        "id"
      ],
      "type": "object",
      "properties": {
        "alias": {
          "type": "string",
          "description": "Alias for the customer account"
        },
        "changedAt": {
          "type": "string",
          "description": "When the customer account was last changed. ISO 8601 date format",
          "format": "date-time"
        },
        "changedBy": {
          "type": "string",
          "description": "Who changed the customer account."
        },
        "createdAt": {
          "type": "string",
          "description": "When the customer account was created. ISO 8601 date format",
          "format": "date-time"
        },
        "createdBy": {
          "type": "string",
          "description": "Who created the customer account."
        },
        "customerAccountId": {
          "type": "string",
          "description": "Customer account id string"
        },
        "customerNumber": {
          "type": "integer",
          "description": "Unique customer number",
          "format": "int64"
        },
        "id": {
          "type": "integer",
          "description": "Customer account unique id.",
          "format": "int64"
        },
        "isDefault": {
          "type": "boolean",
          "description": "True if the account is the default account for the customer"
        }
      },
      "description": "Customer account connected to a customer"
    },
    "CustomerConsent": {
      "type": "object",
      "properties": {
        "changedAt": {
          "type": "string",
          "description": "When the customer consent was last changed.",
          "format": "date-time"
        },
        "consentChoice": {
          "type": "boolean",
          "description": "Whether the customer has approved or declined this consent."
        },
        "consentCode": {
          "maxLength": 20,
          "type": "string",
          "description": "The consent code."
        },
        "createdAt": {
          "type": "string",
          "description": "When the customer consent was created.",
          "format": "date-time"
        },
        "customerId": {
          "type": "integer",
          "description": "Id of the customer.",
          "format": "int64"
        }
      },
      "description": "Legacy consents for a customer"
    },
    "CustomerPreferenceResponse": {
      "required": [
        "changedAt",
        "createdAt",
        "preference",
        "preferenceId"
      ],
      "type": "object",
      "properties": {
        "changedAt": {
          "type": "string",
          "description": "When the customer preference was last changed. ISO 8601 date format",
          "format": "date-time"
        },
        "createdAt": {
          "type": "string",
          "description": "When the customer preference was created. ISO 8601 date format",
          "format": "date-time"
        },
        "customerId": {
          "type": "integer",
          "description": "Id of the customer. Deprecated",
          "format": "int64",
          "deprecated": true
        },
        "preference": {
          "$ref": "#/$defs/PreferenceResponse"
        },
        "preferenceId": {
          "type": "integer",
          "description": "Id of the preference",
          "format": "int64"
        },
        "preferenceValue": {
          "maxLength": 100,
          "minLength": 1,
          "type": "string",
          "description": "Value of the preference. This can be things like membership number."
        }
      },
      "description": "Preferences response for a customer"
    },
    "EcardOwnershipResponse": {
      "required": [
        "changedAt",
        "createdAt",
        "customerId",
        "ecardNumber",
        "ecardNumber16digits",
        "ecardOperator",
        "id",
        "startOfOwnership"
      ],
      "type": "object",
      "properties": {
        "bookingDate": {
          "type": "string",
          "description": "When the physical ecard was booked. ISO 8601 date format",
          "format": "date-time"
        },
        "changedAt": {
          "type": "string",
          "description": "When the ecard was last changed. ISO 8601 date format",
          "format": "date-time"
        },
        "createdAt": {
          "type": "string",
          "description": "When the ecard was created. ISO 8601 date format",
          "format": "date-time"
        },
        "customerId": {
          "type": "integer",
          "description": "The customer connected to the ecard. Deprecated",
          "format": "int64",
          "deprecated": true
        },
        "ecardName": {
          "maxLength": 100,
          "type": "string",
          "description": "Customer defined ecard alias."
        },
        "ecardNumber": {
          "type": "integer",
          "description": "Ecard number.",
          "format": "int64"
        },
        "ecardNumber16digits": {
          "maxLength": 16,
          "minLength": 16,
          "type": "string",
          "description": "The 16 digit ecard number. A combination of ecardNumber, ecardOperator and control digit."
        },
        "ecardOperator": {
          "type": "integer",
          "description": "Ecard operator.",
          "format": "int32"
        },
        "endOfOwnership": {
          "type": "string",
          "description": "When the customer removed the ecard connection. ISO 8601 date format",
          "format": "date-time"
        },
        "expirationDate": {
          "type": "string",
          "description": "When the physical ecard expires. ISO 8601 date format",
          "format": "date-time"
        },
        "id": {
          "type": "integer",
          "description": "Ecard id.",
          "format": "int64"
        },
        "shippingDate": {
          "type": "string",
          "description": "When the physical ecard was shipped to the customer. ISO 8601 date format",
          "format": "date-time"
        },
        "startOfOwnership": {
          "type": "string",
          "description": "When the ecard was first connected to the customer. ISO 8601 date format",
          "format": "date-time"
        }
      },
      "description": "Ecards connected to a customer"
    },
    "LocalDateResponse": {
      "required": [
        "day",
        "month",
        "year"
      ],
      "type": "object",
      "properties": {
        "day": {
          "type": "integer",
          "description": "day of month",
          "format": "int32"
        },
        "month": {
          "type": "integer",
          "description": "month number",
          "format": "int32"
        },
        "year": {
          "type": "integer",
          "description": "year",
          "format": "int32"
        }
      },
      "description": "Date as object"
    },
    "NoteResponse": {
      "required": [
        "changedAt",
        "changedBy",
        "createdAt",
        "createdBy",
        "customerId",
        "id",
        "text"
      ],
      "type": "object",
      "properties": {
        "changedAt": {
          "type": "string",
          "description": "When the note was last changed. ISO 8601 date format",
          "format": "date-time"
        },
        "changedBy": {
          "maxLength": 100,
          "type": "string",
          "description": "Who last changed the note."
        },
        "createdAt": {
          "type": "string",
          "description": "When the note was created. ISO 8601 date format",
          "format": "date-time"
        },
        "createdBy": {
          "maxLength": 100,
          "type": "string",
          "description": "Who created the note."
        },
        "customerId": {
          "type": "integer",
          "description": "Id of the customer connected to the note.",
          "format": "int64"
        },
        "id": {
          "type": "integer",
          "description": "Note id.",
          "format": "int64"
        },
        "text": {
          "maxLength": 4000,
          "type": "string",
          "description": "Note content."
        }
      },
      "description": "Deprecated"
    },
    "PersonnelTicketBearer": {
      "type": "object",
      "properties": {
        "bearerCustomerId": {
          "type": "integer",
          "format": "int64"
        },
        "changedAt": {
          "type": "string",
          "format": "date-time"
        },
        "createdAt": {
          "type": "string",
          "format": "date-time"
        },
        "isSelfServedRetrieval": {
          "type": "boolean"
        },
        "ticketRightBearer": {
          "type": "string"
        },
        "ticketRightOwner": {
          "type": "string"
        }
      },
      "description": "The personnel tickets connected to the customer. Deprecated. Does not contain updated information."
    },
    "PostalAddressResponse": {
      "required": [
        "changedAt",
        "countryCode",
        "createdAt",
        "customerId",
        "id",
        "postCode",
        "town",
        "typeOfAddress"
      ],
      "type": "object",
      "properties": {
        "addressLine1": {
          "maxLength": 80,
          "type": "string",
          "description": "Address line 1."
        },
        "addressLine2": {
          "maxLength": 80,
          "type": "string",
          "description": "Address line 2, often used for c/o information."
        },
        "changedAt": {
          "type": "string",
          "description": "When the postal address was last changed. ISO 8601 date format",
          "format": "date-time"
        },
        "countryCode": {
          "maxLength": 3,
          "minLength": 3,
          "type": "string",
          "description": "The address country code. ISO 3166-1 alpha-3 format"
        },
        "createdAt": {
          "type": "string",
          "description": "When the postal address was created. ISO 8601 date format",
          "format": "date-time"
        },
        "customerId": {
          "type": "integer",
          "description": "The customer connected to the address.",
          "format": "int64"
        },
        "id": {
          "type": "integer",
          "description": "Postal address id.",
          "format": "int64"
        },
        "postCode": {
          "maxLength": 10,
          "type": "string",
          "description": "The address post code."
        },
        "town": {
          "maxLength": 50,
          "type": "string",
          "description": "The address post town."
        },
        "typeOfAddress": {
          "type": "string",
          "description": "The type of address. Types supported: 'P' = Private, 'I' = Invoice, 'S' = Shadow.",
          "enum": [
            "P",
            "I",
            "S"
          ]
        },
        "verifiedAt": {
          "type": "string",
          "description": "When the address was verified. ISO 8601 date format",
          "format": "date-time"
        }
      },
      "description": "Postal address connected to a customer"
    },
    "PreferenceResponse": {
      "required": [
        "changedAt",
        "createdAt",
        "id",
        "isActive",
        "preferenceCode",
        "preferenceDescription",
        "preferenceType"
      ],
      "type": "object",
      "properties": {
        "changedAt": {
          "type": "string",
          "description": "When the preference was last changed. ISO 8601 date format",
          "format": "date-time"
        },
        "createdAt": {
          "type": "string",
          "description": "When the preference was created. ISO 8601 date format",
          "format": "date-time"
        },
        "id": {
          "type": "integer",
          "description": "Preference id.",
          "format": "int64"
        },
        "isActive": {
          "type": "boolean",
          "description": "Whether the preference is active."
        },
        "preferenceCode": {
          "maxLength": 20,
          "type": "string",
          "description": "The preference code."
        },
        "preferenceDescription": {
          "maxLength": 255,
          "type": "string",
          "description": "A description of the preference."
        },
        "preferenceType": {
          "maxLength": 20,
          "type": "string",
          "description": "Type of preference."
        }
      },
      "description": "Preference"
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/entur-customer-response"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.