Entur Developer
Pricing

Fare table

Server

A fare table holds the price(s) that a product references. A flat price is a table with a single selector-less entry; per-zone or per-distance pricing use the same shape with selector fields filled in. The table is versioned independently of the products that reference it.


Create a new fare table

POST
https://api.entur.io/products
/v3/fare-tables

Create a new fare table. A new version will be created with version number 1.

All prices in products-api are stored as a fare table — a flat price is a table with a single selector-less entry. The table is versioned independently of the products that reference it.

Only flat pricing is implemented: prices carry no zone or interval selectors, optionally differentiated by userProfile. Zone-pair and interval selectors are documented on FarePriceEntry and return 400 PRICE_MODEL_NOT_IMPLEMENTED until built.

Create a new fare table › Headers

ET-Client-Name
​string · style: simple

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: <company>-<application>.

X-Correlation-Id
​string · style: simple

Correlation id

Create a new fare table › Request Body

startDate
​string · date · required

First day this price version is valid.

Example: 2026-08-01
status
​string · enum · required

Status of the fare table version. Required; on create only DRAFT or PROPOSED is accepted — a new version cannot be published directly.

  • DRAFT - Under construction and not ready for operational use.
  • PROPOSED - Complete but pending review and approval.
  • VERSIONED - Finalized and frozen; a new version must be created for further modifications. Remains authoritative for its validity period even after expiry.
  • DEPRECATED - Explicitly withdrawn and should not be used; indicates an active decision to retract, not a natural expiry.
Enum values:
DRAFT
PROPOSED
VERSIONED
DEPRECATED
Example: DRAFT
​FarePriceEntry[] · minItems: 1 · required

The prices in this table. Each entry must be uniquely identified by its selector combination, so a flat price with no passenger-type differentiation is a single selector-less entry. Each entry carries its own optional currency, per NeTEx.

ownerOrganisationId
​integer · int64 · min: 1

Internal id of the organisation that owns this element. Omit it to use the organisation in the access token, which is what a caller acting for itself should do. Supplying a different organisation requires permission to act on behalf of that organisation.

Example: 1
​object[]
​object[]
endDate
​string · date

Last day this price version is valid (optional). Omit for an open-ended version.

Example: 2026-12-31

Create a new fare table › Responses

Fare table created successfully

id
​string · pattern: ^([A-Z]{3}):FareTabl… · required

NeTEx id of the fare table.

Example: ENT:FareTable:bike-supplement
versionId
​string · pattern: ^([A-Z]{3}):Version:… · required

NeTEx id of this fare table version.

Example: ENT:Version:8f1b2c3d
ownerOrganisationId
​integer · int64 · required

Internal id of the organisation that owns this fare table.

Example: 1
startDate
​string · date · required

First day this price version is valid.

Example: 2026-08-01
status
​string · enum · required

Status of the fare table version.

  • DRAFT - Under construction and not ready for operational use.
  • PROPOSED - Complete but pending review and approval.
  • VERSIONED - Finalized and frozen; a new version must be created for further modifications. Remains authoritative for its validity period even after expiry.
  • DEPRECATED - Explicitly withdrawn and should not be used; indicates an active decision to retract, not a natural expiry.
Enum values:
DRAFT
PROPOSED
VERSIONED
DEPRECATED
Example: VERSIONED
​FarePriceEntry[] · required

The prices in this table. Each entry echoes its own currency, per NeTEx FarePrice.Currency.

​object[]
​object[]
endDate
​string · date

Last day this price version is valid (optional). Omit for an open-ended version.

Example: 2026-12-31
pricesFor
​string[] · readOnly

NeTEx ids of the priceable objects (e.g. supplement products) this fare table prices — NeTEx FareTable.pricesFor.

The FareTable → PriceableObject link is deliberately loose: a versioned fare table prices a priceable object by netex id only, never pinned to a specific priceable object version. Version resolution happens later, when the product tree is built.

Default: []

Get the active version of a fare table

GET
https://api.entur.io/products
/v3/fare-tables/{id}

Retrieve the version of the fare table that is active on the given date. Defaults to the version active today when no date is given.

Get the active version of a fare table › path Parameters

id
​string · pattern: ^([A-Z]{3}):([A-Za-z… · required · style: simple

The netex ID of the element to retrieve

Get the active version of a fare table › query Parameters

validOnDate
​string · date · style: form · explode: true

The date that the element should be valid for, e.g. the travel date. Defaults to the current date.

Get the active version of a fare table › Headers

ET-Client-Name
​string · style: simple

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: <company>-<application>.

X-Correlation-Id
​string · style: simple

Correlation id

Get the active version of a fare table › Responses

The fare table version active on the given date.

id
​string · pattern: ^([A-Z]{3}):FareTabl… · required

NeTEx id of the fare table.

Example: ENT:FareTable:bike-supplement
versionId
​string · pattern: ^([A-Z]{3}):Version:… · required

NeTEx id of this fare table version.

Example: ENT:Version:8f1b2c3d
ownerOrganisationId
​integer · int64 · required

Internal id of the organisation that owns this fare table.

Example: 1
startDate
​string · date · required

First day this price version is valid.

Example: 2026-08-01
status
​string · enum · required

Status of the fare table version.

  • DRAFT - Under construction and not ready for operational use.
  • PROPOSED - Complete but pending review and approval.
  • VERSIONED - Finalized and frozen; a new version must be created for further modifications. Remains authoritative for its validity period even after expiry.
  • DEPRECATED - Explicitly withdrawn and should not be used; indicates an active decision to retract, not a natural expiry.
Enum values:
DRAFT
PROPOSED
VERSIONED
DEPRECATED
Example: VERSIONED
​FarePriceEntry[] · required

The prices in this table. Each entry echoes its own currency, per NeTEx FarePrice.Currency.

​object[]
​object[]
endDate
​string · date

Last day this price version is valid (optional). Omit for an open-ended version.

Example: 2026-12-31
pricesFor
​string[] · readOnly

NeTEx ids of the priceable objects (e.g. supplement products) this fare table prices — NeTEx FareTable.pricesFor.

The FareTable → PriceableObject link is deliberately loose: a versioned fare table prices a priceable object by netex id only, never pinned to a specific priceable object version. Version resolution happens later, when the product tree is built.

Default: []

Create a new version of an existing fare table

POST
https://api.entur.io/products
/v3/fare-tables/{id}

Create a new version of an existing fare table — this is how a price changes. The referencing products are not modified: they point at the table's id, and the effective version is resolved by validity period.

Create a new version of an existing fare table › path Parameters

id
​string · pattern: ^([A-Z]{3}):([A-Za-z… · required · style: simple

The netex ID of the element to retrieve

Create a new version of an existing fare table › Headers

ET-Client-Name
​string · style: simple

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: <company>-<application>.

X-Correlation-Id
​string · style: simple

Correlation id

Create a new version of an existing fare table › Request Body

startDate
​string · date · required

First day this price version is valid.

Example: 2026-08-01
status
​string · enum · required

Status of the fare table version. Required; on create only DRAFT or PROPOSED is accepted — a new version cannot be published directly.

  • DRAFT - Under construction and not ready for operational use.
  • PROPOSED - Complete but pending review and approval.
  • VERSIONED - Finalized and frozen; a new version must be created for further modifications. Remains authoritative for its validity period even after expiry.
  • DEPRECATED - Explicitly withdrawn and should not be used; indicates an active decision to retract, not a natural expiry.
Enum values:
DRAFT
PROPOSED
VERSIONED
DEPRECATED
Example: DRAFT
​FarePriceEntry[] · minItems: 1 · required

The prices in this table. Each entry must be uniquely identified by its selector combination, so a flat price with no passenger-type differentiation is a single selector-less entry. Each entry carries its own optional currency, per NeTEx.

ownerOrganisationId
​integer · int64 · min: 1

Internal id of the organisation that owns this element. Omit it to use the organisation in the access token, which is what a caller acting for itself should do. Supplying a different organisation requires permission to act on behalf of that organisation.

Example: 1
​object[]
​object[]
endDate
​string · date

Last day this price version is valid (optional). Omit for an open-ended version.

Example: 2026-12-31

Create a new version of an existing fare table › Responses

Fare table version created successfully

id
​string · pattern: ^([A-Z]{3}):FareTabl… · required

NeTEx id of the fare table.

Example: ENT:FareTable:bike-supplement
versionId
​string · pattern: ^([A-Z]{3}):Version:… · required

NeTEx id of this fare table version.

Example: ENT:Version:8f1b2c3d
ownerOrganisationId
​integer · int64 · required

Internal id of the organisation that owns this fare table.

Example: 1
startDate
​string · date · required

First day this price version is valid.

Example: 2026-08-01
status
​string · enum · required

Status of the fare table version.

  • DRAFT - Under construction and not ready for operational use.
  • PROPOSED - Complete but pending review and approval.
  • VERSIONED - Finalized and frozen; a new version must be created for further modifications. Remains authoritative for its validity period even after expiry.
  • DEPRECATED - Explicitly withdrawn and should not be used; indicates an active decision to retract, not a natural expiry.
Enum values:
DRAFT
PROPOSED
VERSIONED
DEPRECATED
Example: VERSIONED
​FarePriceEntry[] · required

The prices in this table. Each entry echoes its own currency, per NeTEx FarePrice.Currency.

​object[]
​object[]
endDate
​string · date

Last day this price version is valid (optional). Omit for an open-ended version.

Example: 2026-12-31
pricesFor
​string[] · readOnly

NeTEx ids of the priceable objects (e.g. supplement products) this fare table prices — NeTEx FareTable.pricesFor.

The FareTable → PriceableObject link is deliberately loose: a versioned fare table prices a priceable object by netex id only, never pinned to a specific priceable object version. Version resolution happens later, when the product tree is built.

Default: []

Get a specific fare table version

GET
https://api.entur.io/products
/v3/fare-tables/{id}/{version}

Retrieve the complete fare table for a specific version, identified by NeTEx version id or version number.

Get a specific fare table version › path Parameters

id
​string · pattern: ^([A-Z]{3}):([A-Za-z… · required · style: simple

The netex ID of the element to retrieve

version
​string · pattern: ^(([A-Z]{3}):Version… · required · style: simple

The netex ID or sequence number of the version to retrieve

Get a specific fare table version › Headers

ET-Client-Name
​string · style: simple

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: <company>-<application>.

X-Correlation-Id
​string · style: simple

Correlation id

Get a specific fare table version › Responses

The fare table version

id
​string · pattern: ^([A-Z]{3}):FareTabl… · required

NeTEx id of the fare table.

Example: ENT:FareTable:bike-supplement
versionId
​string · pattern: ^([A-Z]{3}):Version:… · required

NeTEx id of this fare table version.

Example: ENT:Version:8f1b2c3d
ownerOrganisationId
​integer · int64 · required

Internal id of the organisation that owns this fare table.

Example: 1
startDate
​string · date · required

First day this price version is valid.

Example: 2026-08-01
status
​string · enum · required

Status of the fare table version.

  • DRAFT - Under construction and not ready for operational use.
  • PROPOSED - Complete but pending review and approval.
  • VERSIONED - Finalized and frozen; a new version must be created for further modifications. Remains authoritative for its validity period even after expiry.
  • DEPRECATED - Explicitly withdrawn and should not be used; indicates an active decision to retract, not a natural expiry.
Enum values:
DRAFT
PROPOSED
VERSIONED
DEPRECATED
Example: VERSIONED
​FarePriceEntry[] · required

The prices in this table. Each entry echoes its own currency, per NeTEx FarePrice.Currency.

​object[]
​object[]
endDate
​string · date

Last day this price version is valid (optional). Omit for an open-ended version.

Example: 2026-12-31
pricesFor
​string[] · readOnly

NeTEx ids of the priceable objects (e.g. supplement products) this fare table prices — NeTEx FareTable.pricesFor.

The FareTable → PriceableObject link is deliberately loose: a versioned fare table prices a priceable object by netex id only, never pinned to a specific priceable object version. Version resolution happens later, when the product tree is built.

Default: []

Update an existing fare table version

PUT
https://api.entur.io/products
/v3/fare-tables/{id}/{version}

Update the version of a fare table in place. The version will not be active until a start date is set and the version is published.

Update an existing fare table version › path Parameters

id
​string · pattern: ^([A-Z]{3}):([A-Za-z… · required · style: simple

The netex ID of the element to retrieve

version
​string · pattern: ^(([A-Z]{3}):Version… · required · style: simple

The netex ID or sequence number of the version to retrieve

Update an existing fare table version › Headers

ET-Client-Name
​string · style: simple

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: <company>-<application>.

X-Correlation-Id
​string · style: simple

Correlation id

Update an existing fare table version › Request Body

startDate
​string · date · required

First day this price version is valid.

Example: 2026-08-01
status
​string · enum · required

Status of the fare table version. Required; on create only DRAFT or PROPOSED is accepted — a new version cannot be published directly.

  • DRAFT - Under construction and not ready for operational use.
  • PROPOSED - Complete but pending review and approval.
  • VERSIONED - Finalized and frozen; a new version must be created for further modifications. Remains authoritative for its validity period even after expiry.
  • DEPRECATED - Explicitly withdrawn and should not be used; indicates an active decision to retract, not a natural expiry.
Enum values:
DRAFT
PROPOSED
VERSIONED
DEPRECATED
Example: DRAFT
​FarePriceEntry[] · minItems: 1 · required

The prices in this table. Each entry must be uniquely identified by its selector combination, so a flat price with no passenger-type differentiation is a single selector-less entry. Each entry carries its own optional currency, per NeTEx.

ownerOrganisationId
​integer · int64 · min: 1

Internal id of the organisation that owns this element. Omit it to use the organisation in the access token, which is what a caller acting for itself should do. Supplying a different organisation requires permission to act on behalf of that organisation.

Example: 1
​object[]
​object[]
endDate
​string · date

Last day this price version is valid (optional). Omit for an open-ended version.

Example: 2026-12-31

Update an existing fare table version › Responses

Fare table version updated successfully

id
​string · pattern: ^([A-Z]{3}):FareTabl… · required

NeTEx id of the fare table.

Example: ENT:FareTable:bike-supplement
versionId
​string · pattern: ^([A-Z]{3}):Version:… · required

NeTEx id of this fare table version.

Example: ENT:Version:8f1b2c3d
ownerOrganisationId
​integer · int64 · required

Internal id of the organisation that owns this fare table.

Example: 1
startDate
​string · date · required

First day this price version is valid.

Example: 2026-08-01
status
​string · enum · required

Status of the fare table version.

  • DRAFT - Under construction and not ready for operational use.
  • PROPOSED - Complete but pending review and approval.
  • VERSIONED - Finalized and frozen; a new version must be created for further modifications. Remains authoritative for its validity period even after expiry.
  • DEPRECATED - Explicitly withdrawn and should not be used; indicates an active decision to retract, not a natural expiry.
Enum values:
DRAFT
PROPOSED
VERSIONED
DEPRECATED
Example: VERSIONED
​FarePriceEntry[] · required

The prices in this table. Each entry echoes its own currency, per NeTEx FarePrice.Currency.

​object[]
​object[]
endDate
​string · date

Last day this price version is valid (optional). Omit for an open-ended version.

Example: 2026-12-31
pricesFor
​string[] · readOnly

NeTEx ids of the priceable objects (e.g. supplement products) this fare table prices — NeTEx FareTable.pricesFor.

The FareTable → PriceableObject link is deliberately loose: a versioned fare table prices a priceable object by netex id only, never pinned to a specific priceable object version. Version resolution happens later, when the product tree is built.

Default: []

Did you find what you were looking for?