Entur · Schema
PostSkoleskyssRequest
CompanyPublic TransportJourney PlanningMobilityOpen DataNorwayTransitGraphQL
Properties
| Name | Type | Description |
|---|---|---|
| organisationId | number | |
| studentId | object | |
| applicationId | object | |
| name | string | Navnet på skyssretten. For eksempel 'Skoleskort 2025-2026'. |
| schoolName | string | Navnet på skolen |
| validity | object | |
| studentDetails | object |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/entur/main/json-schema/entur-post-skoleskyss-request-schema.json",
"title": "PostSkoleskyssRequest",
"x-generated": "2026-10-09",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/entur-skoleskyss-openapi.yml#/components/schemas/PostSkoleskyssRequest",
"type": "object",
"properties": {
"organisationId": {
"type": "number"
},
"studentId": {
"$ref": "#/$defs/NumberOrString"
},
"applicationId": {
"$ref": "#/$defs/NumberOrString"
},
"name": {
"type": "string",
"description": "Navnet på skyssretten. For eksempel 'Skoleskort 2025-2026'."
},
"schoolName": {
"type": "string",
"description": "Navnet på skolen"
},
"validity": {
"$ref": "#/$defs/ValidityRequest"
},
"studentDetails": {
"$ref": "#/$defs/StudentDetailsRequest"
}
},
"required": [
"applicationId",
"studentId",
"validity"
],
"$defs": {
"FareZoneIds": {
"type": "object",
"properties": {
"fromZoneId": {
"type": "string",
"pattern": "^[A-Z]{3}:FareZone:\\d+$"
},
"toZoneId": {
"type": "string",
"pattern": "^[A-Z]{3}:FareZone:\\d+$"
}
},
"required": [
"fromZoneId",
"toZoneId"
]
},
"GroupOfTariffZone": {
"type": "object",
"properties": {
"groupOfTariffZoneId": {
"type": "string",
"pattern": "^[A-Z]{3}:GroupOfTariffZones:\\d+$"
}
},
"required": [
"groupOfTariffZoneId"
]
},
"IdAndName": {
"type": "object",
"properties": {
"id": {
"$ref": "#/$defs/NumberOrString"
},
"name": {
"type": "string"
}
},
"required": [
"id",
"name"
]
},
"NumberOrString": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "number"
}
]
},
"PrivateCodeZone": {
"type": "object",
"properties": {
"fromPrivateCode": {
"$ref": "#/$defs/NumberOrString"
},
"toPrivateCode": {
"$ref": "#/$defs/NumberOrString"
}
},
"required": [
"fromPrivateCode",
"toPrivateCode"
]
},
"StudentDetailsRequest": {
"type": "object",
"properties": {
"firstName": {
"type": "string"
},
"surname": {
"type": "string"
},
"school": {
"$ref": "#/$defs/IdAndName"
},
"class": {
"$ref": "#/$defs/IdAndName"
},
"email": {
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
},
"phone": {
"type": "object",
"description": "Ved landskode +47 må number starte med 4 eller 9 og bestå av 8 siffer.",
"properties": {
"number": {
"type": "string",
"pattern": "\\d+"
},
"countryCode": {
"type": "string",
"default": "+47",
"pattern": "^\\+?\\d{1,3}$"
}
},
"required": [
"number"
]
}
}
},
"ValidityRequest": {
"type": "object",
"description": "endDate må være samme dag som eller etter startDate, og kan ikke ha passert.",
"properties": {
"name": {
"type": "string",
"description": "Navn på gyldigheten. Brukes i billettvisningen."
},
"startDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"endDate": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"calendar": {
"description": "Må inneholde enten id eller validDates, ikke begge.",
"oneOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Overstyrer standard-kalenderen fra config. Kan ikke kombineres med validDates.",
"pattern": "^[A-Z]{3}:FareDayType:\\w+$"
}
},
"required": [
"id"
]
},
{
"type": "object",
"properties": {
"validDates": {
"type": "array",
"description": "Liste over gyldige datoer for skyssretten (YYYY-MM-DD). Kan ikke kombineres med id.",
"items": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"minItems": 1
}
},
"required": [
"validDates"
]
}
]
},
"tripDurationMinutes": {
"type": "integer",
"description": "Antall minutter et enkelt klipp er gyldig etter aktivering. Standard er 180 minutter.",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"maxAvailableTrips": {
"type": "integer",
"description": "Maks antall turer totalt skyssretten gir rett til. Hvis utelatt er det ingen begrensning.",
"maximum": 9007199254740991,
"minimum": 0
},
"maxTripsPerDay": {
"type": "integer",
"description": "Maks antall turer per dag skyssretten gir rett til. Standard er 2.",
"maximum": 10,
"minimum": 1
},
"travelWindow": {
"type": "object",
"description": "Tidsvindu for når eleven kan gjennomføre turer. Overstyrer eventuell standard fra config. fromHour må være mindre enn eller lik toHour.",
"properties": {
"fromHour": {
"type": "integer",
"description": "Tidligste klokketime eleven kan starte en tur.",
"maximum": 23,
"minimum": 0
},
"toHour": {
"type": "integer",
"description": "Seneste klokketime eleven kan starte en tur.",
"maximum": 23,
"minimum": 0
}
},
"required": [
"fromHour",
"toHour"
]
},
"zones": {
"type": "array",
"items": {
"$ref": "#/$defs/Zone"
}
}
},
"required": [
"endDate",
"startDate",
"zones"
]
},
"Zone": {
"anyOf": [
{
"$ref": "#/$defs/PrivateCodeZone"
},
{
"$ref": "#/$defs/FareZoneIds"
},
{
"$ref": "#/$defs/GroupOfTariffZone"
}
]
}
}
}
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-post-skoleskyss-request"
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.