openapi: 3.2.0 info: title: Entur Inventory Admin API version: 2026.09.0 contact: name: Entur Team Varelager description: 'Operations tagged Inventory Admin across 2 of this provider''s published API definitions: entur-inventory-openapi.json, entur-inventory-openapi.yml. Each path carries the servers of the definition it was published in.' servers: - url: https://api.entur.io/inventory security: - bearer-key: [] tags: - name: Inventory Admin paths: /v1/quotas: parameters: - $ref: '#/components/parameters/ET-Client-Name' - $ref: '#/components/parameters/X-Correlation-Id' get: tags: - Inventory Admin summary: Get quota(s) description: Retrieve quota(s) for a service journey operationId: getQuotaOnDeparture parameters: - name: datedServiceJourney in: query description: Id for the dated service journey required: true style: form explode: true schema: type: string - name: product in: query description: Navn product required: false style: form explode: true schema: type: string - name: origin in: query description: Navn origin required: false style: form explode: true schema: type: string - name: destination in: query description: Navn destination required: false style: form explode: true schema: type: string - name: quotaConfigId in: query description: Id for quotaconfig required: false style: form explode: true schema: type: integer format: int32 responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/QuotaResponseV1' put: tags: - Inventory Admin summary: Overwrite quota(s) description: Overwrite quota(s) for a dated service journey operationId: updateQuotasOnDeparture parameters: - name: datedServiceJourney in: query description: The departure ID (dated service journey) to overwrite quotas for required: true style: form explode: true schema: type: string requestBody: content: application/json: schema: type: array description: List of quotas to update for a dated service journey items: $ref: '#/components/schemas/UpdateQuotaRequestV1' required: true responses: '201': description: Created content: application/json: schema: type: array items: $ref: '#/components/schemas/QuotaResponseV1' post: tags: - Inventory Admin summary: Create quota(s) description: Create quota(s) for a service journey operationId: postQuotasOnDeparture requestBody: content: application/json: schema: type: array description: List of quotas to create items: $ref: '#/components/schemas/QuotaRequestV1' required: true responses: '201': description: Created content: application/json: schema: type: array items: $ref: '#/components/schemas/QuotaResponseV1' servers: - url: https://api.entur.io/inventory /v1/quotas/{quotaId}: parameters: - $ref: '#/components/parameters/ET-Client-Name' - $ref: '#/components/parameters/X-Correlation-Id' get: tags: - Inventory Admin summary: Get quota description: Retrieve quota by ID operationId: getQuotaById parameters: - name: quotaId in: path description: Id for the quota required: true style: simple explode: false schema: type: integer format: int64 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/QuotaResponseV1' put: tags: - Inventory Admin summary: Update quota description: Updates a quota for a service journey operationId: putQuotaOnDeparture parameters: - name: quotaId in: path description: ID for the quota required: true style: simple explode: false schema: type: integer format: int64 requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateQuotaRequestV1' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/QuotaResponseV1' delete: tags: - Inventory Admin summary: Delete quota description: Delete quota by ID operationId: deleteQuotaById parameters: - name: quotaId in: path description: Id for the quota required: true style: simple explode: false schema: type: integer format: int64 responses: '204': description: No Content servers: - url: https://api.entur.io/inventory /v1/quota-templates: parameters: - $ref: '#/components/parameters/ET-Client-Name' - $ref: '#/components/parameters/X-Correlation-Id' get: tags: - Inventory Admin summary: Get quota templates for a line description: Retrieve all quota templates for a given line operationId: getQuotaTemplates parameters: - name: lineId in: query description: Id of the line to get quota templates for required: true style: form explode: true schema: type: string responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/QuotaTemplateResponseV1' post: tags: - Inventory Admin summary: Create quota template description: Create a new quota template for a line operationId: createQuotaTemplate requestBody: content: application/json: schema: $ref: '#/components/schemas/QuotaTemplateRequestV1' required: true responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/QuotaTemplateResponseV1' servers: - url: https://api.entur.io/inventory /v1/quota-templates/{id}: parameters: - $ref: '#/components/parameters/ET-Client-Name' - $ref: '#/components/parameters/X-Correlation-Id' get: tags: - Inventory Admin summary: Get quota template by id description: Retrieve a quota template by its ID operationId: getQuotaTemplate parameters: - name: id in: path description: Id of the quota template required: true style: simple explode: false schema: type: integer format: int64 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/QuotaTemplateResponseV1' put: tags: - Inventory Admin summary: Update quota template description: Update an existing quota template operationId: updateQuotaTemplate parameters: - name: id in: path description: Id of the quota template required: true style: simple explode: false schema: type: integer format: int64 requestBody: content: application/json: schema: $ref: '#/components/schemas/QuotaTemplateUpdateRequestV1' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/QuotaTemplateResponseV1' delete: tags: - Inventory Admin summary: Delete quota template description: Delete a quota template by its ID operationId: deleteQuotaTemplate parameters: - name: id in: path description: Id of the quota template required: true style: simple explode: false schema: type: integer format: int64 responses: '204': description: No Content servers: - url: https://api.entur.io/inventory /v1/quota-configurations/{id}: parameters: - $ref: '#/components/parameters/ET-Client-Name' - $ref: '#/components/parameters/X-Correlation-Id' get: tags: - Inventory Admin summary: Get quota configuration description: Retrieve quota configurations by ID operationId: getQuotaConfiguration parameters: - name: id in: path description: Id for the quota configuration to get required: true style: simple explode: false schema: type: integer format: int32 responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/QuotaConfigurationResponseV1' security: - bearer-key: [] put: tags: - Inventory Admin summary: Update quota configuration description: Update a quota configuration operationId: putQuotaConfiguration parameters: - name: id in: path description: The id of the quota configuration to update required: true style: simple explode: false schema: type: integer format: int32 requestBody: content: application/json: schema: $ref: '#/components/schemas/QuotaConfiguration' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/QuotaConfigurationResponseV1' security: - bearer-key: [] delete: tags: - Inventory Admin summary: Delete quota configuration operationId: deleteQuotaConfiguration parameters: - name: id in: path description: The id of the quota configuration to delete required: true style: simple explode: false schema: type: integer format: int32 responses: '204': description: No Content security: - bearer-key: [] servers: - url: https://api.entur.io/inventory /v1/dated-service-journeys/{id}: parameters: - $ref: '#/components/parameters/ET-Client-Name' - $ref: '#/components/parameters/X-Correlation-Id' get: tags: - Inventory Admin summary: Get a departure description: Retrieves a departure for transportation. operationId: getDeparture parameters: - name: id in: path description: Id for the departure required: true style: simple explode: false schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/DepartureResponseV1' patch: tags: - Inventory Admin summary: Update a departure description: Updates inactive flag on departure operationId: patchDeparture parameters: - name: id in: path description: Id for the departure required: true style: simple explode: false schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateDepartureRequestV1' required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/DepartureResponseV1' servers: - url: https://api.entur.io/inventory /v1/quota-configurations: parameters: - $ref: '#/components/parameters/ET-Client-Name' - $ref: '#/components/parameters/X-Correlation-Id' get: tags: - Inventory Admin summary: Get quota configurations description: Get all registered quota configurations operationId: findAllQuotaConfigurations parameters: - name: ownerOrganisationId in: query description: Not applicable for Partners/operators. Used to filter between operator organisations required: false style: form explode: true schema: type: string responses: default: description: default response content: application/json: schema: type: string security: - bearer-key: [] post: tags: - Inventory Admin summary: Create quota configuration description: Create a quota configuration operationId: postQuotaConfiguration parameters: - name: ownerOrganisationId in: query description: Not applicable for Partners/operators. Used to filter between operator organisations required: false style: form explode: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/QuotaConfiguration' required: true responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/QuotaConfigurationResponseV1' security: - bearer-key: [] servers: - url: https://api.entur.io/inventory /v1/nesting-config-tree: parameters: - $ref: '#/components/parameters/ET-Client-Name' - $ref: '#/components/parameters/X-Correlation-Id' get: tags: - Inventory Admin summary: Get nesting config trees description: Retrieves all nesting config trees operationId: getNestingTrees parameters: - name: ownerOrganisationId in: query description: Not applicable for Partners/operators. Used to filter between operator organisations required: false style: form explode: true schema: type: string responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/NestingConfigTreeResponseV1' post: tags: - Inventory Admin summary: Create/Update a nesting config tree description: Create/Update a nesting config tree. operationId: postQuotaConfiguration_1 parameters: - name: ownerOrganisationId in: query description: Not applicable for Partners/operators. Used to filter between operator organisations required: false style: form explode: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/NestingConfigTree' required: true responses: '201': description: Created content: application/json: schema: $ref: '#/components/schemas/NestingConfigTreeResponseV1' servers: - url: https://api.entur.io/inventory /v1/dated-service-journeys/{departureId}/refresh: parameters: - $ref: '#/components/parameters/ET-Client-Name' - $ref: '#/components/parameters/X-Correlation-Id' post: tags: - Inventory Admin summary: Refresh departure with live journey data description: Refresh departure with journey data, which can possibly merge multiple existing departures operationId: refreshDeparture parameters: - name: departureId in: path description: The datedServiceJourneyId to refresh required: true style: simple explode: false schema: type: string - name: multiPrivateCodeOverride in: query description: If true, the refresh will merge departures event with different privateCodes required: false style: form explode: true schema: type: boolean default: false responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/DepartureResponseV1' servers: - url: https://api.entur.io/inventory components: schemas: OdRequestV1: type: object properties: origin: type: string destination: type: string required: - destination - origin QuotaTemplateQuotaResponseV1: type: object properties: quota: type: integer format: int32 productIds: type: array items: type: string quotaConfigurationId: type: integer format: int32 nullable: true required: - productIds - quota QuotaTemplateQuotaRequestV1: type: object properties: quota: type: integer format: int32 productIds: type: array items: type: string quotaConfigurationId: type: integer format: int32 nullable: true required: - productIds - quota UpdateQuotaRequestV1: type: object description: Quota to update properties: quota: type: integer format: int32 products: type: array items: type: string ods: type: array items: $ref: '#/components/schemas/OdRequestV1' quotaConfigurationId: type: integer format: int32 purchaseWindowStart: type: string format: date-time purchaseWindowStop: type: string format: date-time useStoplist: type: boolean required: - ods - products - quota - useStoplist Line: type: object properties: id: type: string version: type: integer format: int32 organisationId: type: integer format: int64 created: type: string format: date-time changed: type: string format: date-time stops: type: array items: type: string required: - changed - created - id - organisationId - stops - version DepartureResponseV1: type: object properties: id: type: string invertedDirection: type: string line: $ref: '#/components/schemas/Line' organisationId: type: integer format: int64 departureDate: type: string format: date isClosed: type: boolean required: - departureDate - id - invertedDirection - isClosed - line - organisationId QuotaResponseV1: type: object properties: id: type: integer format: int64 quota: type: integer format: int32 products: type: array items: type: string ods: type: array items: $ref: '#/components/schemas/OdResponse' quotaConfigurationId: type: integer format: int32 datedServiceJourneyId: type: string purchaseWindowStart: type: string format: date-time purchaseWindowStop: type: string format: date-time useStoplist: type: boolean required: - datedServiceJourneyId - id - ods - products - quota - useStoplist QuotaTemplateUpdateRequestV1: type: object description: Request to update a quota template properties: quotas: type: array items: $ref: '#/components/schemas/QuotaTemplateQuotaRequestV1' required: - quotas QuotaConfiguration: type: object description: Updated quota configuration properties: name: type: string priority: type: integer format: int32 selectionRule: type: string enum: - COMBINED - SINGLE consumptionRule: type: string enum: - DIRECT - BY_PRIORITY directionRule: type: string enum: - FROM_RIGHT - FROM_LEFT parent: type: integer format: int32 id: type: integer format: int32 closedBy: type: array items: type: integer format: int32 required: - name - priority UpdateDepartureRequestV1: type: object properties: isClosed: type: - boolean - 'null' QuotaTemplateResponseV1: type: object properties: id: type: integer format: int64 lineId: type: string privateCode: type: string nullable: true quotas: type: array items: $ref: '#/components/schemas/QuotaTemplateQuotaResponseV1' required: - id - lineId - quotas QuotaRequestV1: type: object description: One or more quotas for the service journey properties: quota: type: integer format: int32 products: type: array items: type: string ods: type: array items: $ref: '#/components/schemas/OdRequestV1' quotaConfigurationId: type: integer format: int32 datedServiceJourneyId: type: string purchaseWindowStart: type: string format: date-time purchaseWindowStop: type: string format: date-time useStoplist: type: boolean required: - datedServiceJourneyId - ods - products - quota - useStoplist NestingConfigTreeNodeRequestV1: type: object properties: quotaConfigurationRequest: $ref: '#/components/schemas/QuotaConfiguration' children: type: array items: required: - quotaConfigurationRequest required: - children - quotaConfigurationRequest OdResponse: type: object properties: origin: type: string destination: type: string required: - destination - origin NestingConfigTreeNodeResponseV1: type: object properties: quotaConfiguration: $ref: '#/components/schemas/QuotaConfigurationResponseV1' children: type: array items: required: - quotaConfiguration required: - children - quotaConfiguration QuotaConfigurationResponseV1: type: object properties: id: type: integer format: int32 organisationId: type: integer format: int64 name: type: string priority: type: integer format: int32 selectionRule: type: string enum: - COMBINED - SINGLE consumptionRule: type: string enum: - DIRECT - BY_PRIORITY directionRule: type: string enum: - FROM_RIGHT - FROM_LEFT parent: type: integer format: int32 closedBy: type: array items: type: integer format: int32 required: - closedBy - id - name - organisationId - priority NestingConfigTreeResponseV1: type: object properties: root: $ref: '#/components/schemas/NestingConfigTreeNodeResponseV1' required: - root NestingConfigTree: type: object description: A NestingConfigTree properties: root: $ref: '#/components/schemas/NestingConfigTreeNodeRequestV1' flattenTree: type: array items: $ref: '#/components/schemas/QuotaConfiguration' required: - flattenTree - root QuotaTemplateRequestV1: type: object description: Request to create a quota template properties: lineId: type: string privateCode: type: string nullable: true quotas: type: array items: $ref: '#/components/schemas/QuotaTemplateQuotaRequestV1' required: - lineId - quotas 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: bearer-key: type: http scheme: Bearer bearerFormat: jwt x-refined-from: - entur-inventory-openapi.json - entur-inventory-openapi.yml