openapi: 3.2.0 info: title: Entur Interchangings API version: 2026.10.0 description: 'Operations tagged interchangings across 2 of this provider''s published API definitions: entur-products-openapi.json, entur-products-openapi.yml. Each path carries the servers of the definition it was published in.' servers: - url: https://api.entur.io/products description: Production environment - url: https://api.staging.entur.io/products description: Staging environment - url: https://api.dev.entur.io/products description: Development environment security: - jwt: [] tags: - name: interchangings paths: /interchangings: parameters: - $ref: '#/components/parameters/ET-Client-Name' - $ref: '#/components/parameters/X-Correlation-Id' get: tags: - interchangings summary: Retrieves all interchangings for a given fare frame operationId: interchangings_getAll parameters: - name: orgId in: query required: false style: form explode: true schema: type: string - name: fareFrameId in: query description: The unique id to identify a dataset for an organization required: false style: form explode: true schema: type: string - name: languageCode in: query required: false style: form explode: true schema: type: string - name: If-None-Match in: header description: Used to make conditional requests. It allows the client to provide an ETag value, and the server will process the request only if the ETag does not match the current version of the resource. required: false style: simple explode: false schema: type: string responses: '200': description: Returns the info content: application/json: schema: type: array items: $ref: '#/components/schemas/Interchanging' '304': description: Not Modified '400': description: Bad Request content: application/problem+json: schema: type: string '401': description: Unauthorized content: application/problem+json: schema: type: string '403': description: Forbidden content: application/problem+json: schema: type: string '404': description: Resource not found content: application/problem+json: schema: type: string '500': description: Internal server error content: application/problem+json: schema: type: string security: - basic_auth: [] x-entur-permissions: value: product-api-access:les post: tags: - interchangings summary: Create an interchanging operationId: interchangings_create parameters: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/InterchangingInsert' required: true responses: '204': description: Returns the info content: application/json: schema: $ref: '#/components/schemas/BoxedUnit' '400': description: Validation errors content: application/problem+json: schema: type: string '401': description: Unauthorized content: application/problem+json: schema: type: string '403': description: Forbidden content: application/problem+json: schema: type: string '404': description: Not Found content: application/problem+json: schema: type: string '409': description: Already registered content: application/problem+json: schema: type: string '500': description: Internal server error content: application/problem+json: schema: type: string security: - basic_auth: [] x-entur-permissions: value: product-api-access:endre servers: - url: https://api.entur.io/products description: Production environment - url: https://api.staging.entur.io/products description: Staging environment - url: https://api.dev.entur.io/products description: Development environment /interchangings/{id}/{version}: parameters: - $ref: '#/components/parameters/ET-Client-Name' - $ref: '#/components/parameters/X-Correlation-Id' get: tags: - interchangings summary: Retrieves an interchanging by id and version operationId: interchangings_getByIdAndVersion parameters: - name: id in: path description: The unique id to identify a interchanging required: true style: simple explode: false schema: pattern: ^([A-Z]{3}):([A-Za-z]*):([0-9A-Za-z_\-]*)$ type: string - name: version in: path description: The id for the version of the interchanging required: true style: simple explode: false schema: pattern: ^([A-Z]{3}):([A-Za-z]*):([0-9A-Za-z_\-]*)$ type: string - name: Accept-Language in: header description: The language code from ISO-639-3 required: false style: simple explode: false schema: type: string - name: If-None-Match in: header description: Used to make conditional requests. It allows the client to provide an ETag value, and the server will process the request only if the ETag does not match the current version of the resource. required: false style: simple explode: false schema: type: string responses: '200': description: Returns the interchanging content: application/json: schema: $ref: '#/components/schemas/Interchanging' '304': description: Not Modified '400': description: Bad request content: application/problem+json: schema: type: string '401': description: Unauthorized content: application/problem+json: schema: type: string '403': description: Forbidden content: application/problem+json: schema: type: string '404': description: Resource not found content: application/problem+json: schema: type: string '500': description: Internal server error content: application/problem+json: schema: type: string security: - basic_auth: [] x-entur-permissions: value: product-api-access:les put: tags: - interchangings summary: Update an interchanging operationId: interchangings_update parameters: - name: id in: path description: The unique id to identify a interchanging required: true style: simple explode: false schema: pattern: ^([A-Z]{3}):([A-Za-z]*):([0-9A-Za-z_\-]*)$ type: string - name: version in: path description: The id for the version of the interchanging required: true style: simple explode: false schema: pattern: ^([A-Z]{3}):([A-Za-z]*):([0-9A-Za-z_\-]*)$ type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/InterchangingInsert' required: true responses: '204': description: Entity updated successfully '400': description: Validation errors content: application/problem+json: schema: type: string '401': description: Missing Authorization content: application/problem+json: schema: type: string '403': description: Authorization failed content: application/problem+json: schema: type: string '404': description: Resource not found content: application/problem+json: schema: type: string '409': description: Conflict content: application/problem+json: schema: type: string '500': description: Internal server error content: application/problem+json: schema: type: string security: - basic_auth: [] x-entur-permissions: value: product-api-access:endre servers: - url: https://api.entur.io/products description: Production environment - url: https://api.staging.entur.io/products description: Staging environment - url: https://api.dev.entur.io/products description: Development environment /v1/interchangings/{id}: parameters: - $ref: '#/components/parameters/ET-Client-Name' - $ref: '#/components/parameters/X-Correlation-Id' get: tags: - interchangings summary: Retrieves an interchanging by id operationId: interchangings_getByIdV2 parameters: - name: id in: path description: The unique id to identify a group ticket required: true style: simple explode: false schema: pattern: ^([A-Z]{3}):([A-Za-z]*):([0-9A-Za-z_\-]*)$ type: string - name: Accept-Language in: header description: The language code from ISO-639-3 required: false style: simple explode: false schema: type: string - name: startDate in: query required: false style: form explode: true schema: type: string - name: endDate in: query required: false style: form explode: true schema: type: string - name: status in: query description: The version status of the interchaning required: false style: form explode: true schema: type: string - name: fromDate in: query description: The from date of the interchaning version required: false style: form explode: true schema: type: string - name: toDate in: query description: The to date of the interchaning version required: false style: form explode: true schema: type: string - name: If-None-Match in: header description: Used to make conditional requests. It allows the client to provide an ETag value, and the server will process the request only if the ETag does not match the current version of the resource. required: false style: simple explode: false schema: type: string responses: '200': description: Returns interchaning content: application/json: schema: type: array items: $ref: '#/components/schemas/Interchanging' '304': description: Not Modified '400': description: Bad request content: application/problem+json: schema: type: string '401': description: Unauthorized content: application/problem+json: schema: type: string '403': description: Forbidden content: application/problem+json: schema: type: string '404': description: Resource not found content: application/problem+json: schema: type: string '500': description: Internal server error content: application/problem+json: schema: type: string security: - basic_auth: [] x-entur-permissions: value: product-api-access:les servers: - url: https://api.entur.io/products description: Production environment - url: https://api.staging.entur.io/products description: Staging environment - url: https://api.dev.entur.io/products description: Development environment components: schemas: Interchanging: required: - changed - created - fareFrameRef - id - modification - nameOfClass - status - version type: object properties: changed: type: string description: Changed datetime. format: date-time compatibleWithVersionRef: type: string description: Compatible with version. created: type: string description: Created datetime. format: date-time derivedFromVersionRef: type: string description: Derived from version. description: type: array description: Description. items: $ref: '#/components/schemas/TextInLanguage' fareFrameRef: $ref: '#/components/schemas/VersionOfObjectRef' fromMode: type: string description: Vehicle fromMode. enum: - AIR - BUS - CABLE_WAY - WATER - FUNICULAR - LIFT - RAIL - METRO - TRAM - UNKNOWN id: minLength: 1 pattern: ^([A-Z]{3}):([A-Za-z]*):([0-9A-Za-z_\-]*)$ type: string description: Id. examples: - NSB:Interchanging:Trondelag maximumNumberOfChanges: type: integer description: MaximumNumberOfChanges. format: int32 maximumTimeToMakeATransfer: type: string description: MaximumTimeToMakeATransfer modification: type: string description: Modification status. enum: - NEW - REVISE - DELETE examples: - NEW name: type: array description: Name. items: $ref: '#/components/schemas/TextInLanguage' nameOfClass: type: string description: Name of class. examples: - Interchanging status: type: string description: Status enum: - DRAFT - PROPOSED - VERSIONED - DEPRECATED examples: - DRAFT toMode: type: string description: Vehicle toMode. enum: - AIR - BUS - CABLE_WAY - WATER - FUNICULAR - LIFT - RAIL - METRO - TRAM - UNKNOWN typeOfUsageParameterRef: $ref: '#/components/schemas/VersionOfObjectRef' version: minLength: 1 pattern: ^([A-Z]{3}):([A-Za-z]*):([0-9A-Za-z_\-]*)$ type: string description: Version. examples: - NSB:Version:V1 VersionOfObjectRef: required: - nameOfClass - ref - version type: object properties: nameOfClass: minLength: 1 type: string description: Name of class. ref: minLength: 1 pattern: ^([A-Z]{3}):([A-Za-z]*):([0-9A-Za-z_\-]*)$ type: string description: The netex id reference to the object. version: type: string description: Version. description: Fare frame ref. InterchangingInsert: required: - fareFrameRef - id - name type: object properties: description: type: array description: Description. items: $ref: '#/components/schemas/TextInLanguage' fareFrameRef: $ref: '#/components/schemas/VersionOfObjectRef' fromMode: type: string description: Vehicle fromMode. enum: - AIR - BUS - CABLE_WAY - WATER - FUNICULAR - LIFT - RAIL - METRO - TRAM - UNKNOWN id: minLength: 1 pattern: ^([A-Z]{3}):([A-Za-z]*):([0-9A-Za-z_\-]*)$ type: string description: Id. examples: - NSB:Interchanging:Trondelag maximumNumberOfChanges: type: integer description: MaximumNumberOfChanges. format: int32 maximumTimeToMakeATransfer: type: string description: MaximumTimeToMakeATransfer name: type: array description: Name. items: $ref: '#/components/schemas/TextInLanguage' toMode: type: string description: Vehicle toMode. enum: - AIR - BUS - CABLE_WAY - WATER - FUNICULAR - LIFT - RAIL - METRO - TRAM - UNKNOWN typeOfUsageParameterRef: $ref: '#/components/schemas/VersionOfObjectRef' version: minLength: 1 pattern: ^([A-Z]{3}):([A-Za-z]*):([0-9A-Za-z_\-]*)$ type: string description: Version. examples: - NSB:Version:V1 TextInLanguage: required: - lang - value type: object properties: lang: minLength: 1 type: string description: Language code. examples: - nob value: minLength: 1 type: string description: The text. description: Text in a specific language. BoxedUnit: type: object parameters: X-Correlation-Id: name: X-Correlation-Id in: header description: Correlation id required: false style: simple explode: false schema: type: string ET-Client-Name: name: ET-Client-Name in: header description: 'Entur Client Header. It is required that all consumers identify themselves by using this header. Entur will deploy strict rate-limiting policies on API-consumers who do not identify with a header and reserves the right to block unidentified consumers. The structure of ET-Client-Name should be: `-`.' required: false style: simple explode: false schema: type: string securitySchemes: jwt: type: http scheme: bearer bearerFormat: JWT x-refined-from: - entur-products-openapi.json - entur-products-openapi.yml