Entur · Schema
EntitlementResponse
Entitlement containing information about contract, product, contract holder and ticker order
CompanyPublic TransportJourney PlanningMobilityOpen DataNorwayTransitGraphQL
Properties
| Name | Type | Description |
|---|---|---|
| productId | string | Id of the product connected to the contracts loyalty program |
| displayName | array | Display name for loyalty program |
| productVersion | string | Version of the product connected to the contracts loyalty program |
| contractUUID | string | Contract UUID, used to identify a contract |
| contractExternalRef | string | External contract reference if set. |
| contractOwnerCustomerNumber | integer | Contract owner customer number |
| contractOwnerDisplayName | string | Contract owners first and last name |
| contractOwnerBirthDate | object | |
| contractValidFrom | string | Contract consumable from date |
| contractValidTo | string | Contract expiration date |
| contractParent | string | If present, contract UUID of the parent contract. This field is usually set if the contract is created by a coupon usage, whereas this contract has a time constraint and the parent has a coupon constr |
| remainingCoupons | integer | Remaining coupons connected to the contract |
| couponsLimit | integer | How many coupons the contract has. Default is cascaded from Loyalty Program Version. If set, the contract will be blocked for usage when all coupons are used. Coupons are registered via an OrderLineEv |
| ticketOrderId | string | If present, a ticket is included in this right. It may be distributed or redistributed to this device. |
| isSeniorCitizen | boolean | Whether the contract owner is considered a senior citizen |
| passengerCategory | string | Passenger category. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/entur/main/json-schema/entur-entitlement-response-schema.json",
"title": "EntitlementResponse",
"description": "Entitlement containing information about contract, product, contract holder and ticker order",
"x-generated": "2026-10-09",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/entur-personnel-tickets-openapi.yml#/components/schemas/EntitlementResponse",
"required": [
"contractOwnerCustomerNumber",
"contractOwnerDisplayName",
"contractUUID",
"contractValidFrom",
"isSeniorCitizen",
"passengerCategory",
"productId",
"productVersion"
],
"type": "object",
"properties": {
"productId": {
"type": "string",
"description": "Id of the product connected to the contracts loyalty program"
},
"displayName": {
"type": "array",
"description": "Display name for loyalty program",
"items": {
"$ref": "#/$defs/LocalizedText"
}
},
"productVersion": {
"type": "string",
"description": "Version of the product connected to the contracts loyalty program"
},
"contractUUID": {
"type": "string",
"description": "Contract UUID, used to identify a contract"
},
"contractExternalRef": {
"type": "string",
"description": "External contract reference if set."
},
"contractOwnerCustomerNumber": {
"type": "integer",
"description": "Contract owner customer number",
"format": "int64"
},
"contractOwnerDisplayName": {
"type": "string",
"description": "Contract owners first and last name"
},
"contractOwnerBirthDate": {
"$ref": "#/$defs/LocalDateResponse"
},
"contractValidFrom": {
"type": "string",
"description": "Contract consumable from date"
},
"contractValidTo": {
"type": "string",
"description": "Contract expiration date"
},
"contractParent": {
"type": "string",
"description": "If present, contract UUID of the parent contract. This field is usually set if the contract is created by a coupon usage, whereas this contract has a time constraint and the parent has a coupon constraint."
},
"remainingCoupons": {
"type": "integer",
"description": "Remaining coupons connected to the contract",
"format": "int64"
},
"couponsLimit": {
"type": "integer",
"description": "How many coupons the contract has. Default is cascaded from Loyalty Program Version. If set, the contract will be blocked for usage when all coupons are used. Coupons are registered via an OrderLineEvent.",
"format": "int64"
},
"ticketOrderId": {
"type": "string",
"description": "If present, a ticket is included in this right. It may be distributed or redistributed to this device."
},
"isSeniorCitizen": {
"type": "boolean",
"description": "Whether the contract owner is considered a senior citizen",
"deprecated": true
},
"passengerCategory": {
"type": "string",
"description": "Passenger category.",
"enum": [
"STUDENT",
"SENIOR_CITIZEN",
"ADULT"
]
}
},
"$defs": {
"LocalDateResponse": {
"required": [
"day",
"month",
"year"
],
"type": "object",
"properties": {
"day": {
"type": "integer",
"format": "int32"
},
"month": {
"type": "integer",
"format": "int32"
},
"year": {
"type": "integer",
"format": "int32"
}
},
"description": "Contract owners birth day"
},
"LocalizedText": {
"required": [
"description",
"languageCode",
"text"
],
"type": "object",
"properties": {
"languageCode": {
"type": "string",
"description": "Language code according to ISO 639-3"
},
"text": {
"type": "string",
"description": "Text localized to the language given in languageCode"
},
"description": {
"type": "string",
"description": "Loyalty program description. Supports any kind of text"
}
},
"description": "Localized text with language code"
}
}
}
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.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/entur-entitlement-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.