asset
November 12, 2025 ยท View on GitHub
the asset that can by applied to execute a leg.
Type: object
semantics [{'transmodel': 'VEHICLE, PARKING BAY, CYCLE STORAGE EQUIPMENT, VEHICLE CHARGING EQUIPMENT'}]
Properties overview
| Property | Type | Required | Description |
|---|---|---|---|
type | string | ||
id | assetReference | โ | Identifier of an asset. Can be an external reference, but also a (internal) ID |
visualId | shortString | for instance, a license plate or seat number. | |
product | productReference | default string, full names etc (length 0-200) | |
mode | mode | These classes are taken from the NeTeX standard, but ALL and UNKNOWN are remo... | |
subMode | normalString | a more precise classification of the asset, like 'cargo bike', 'public bus', ... | |
damages | array[damage] | list of damages that are reported for this asset | |
cargo | cargoLimits | applicable properties to specify cargo space/loads | |
appSupport | appSupport | attributes to display/use in an external app. | |
equipment | array[equipmentReference] | list of external references | |
customFields | customProperties | dictionary for extra fields (bilatural agreements) | |
fee | fareStructure |
Detailed Properties
-
type(string) - optional
value: "asset" -
id(assetReference) - required
Identifier of an asset. Can be an external reference, but also a (internal) ID -
visualId(shortString) - optional
for instance, a license plate or seat number. -
product(productReference) - optional
default string, full names etc (length 0-200) -
mode(mode) - optional
These classes are taken from the NeTeX standard, but ALL and UNKNOWN are removed. On the other hand OTHER and PARKING are added. -
subMode(normalString) - optional
a more precise classification of the asset, like 'cargo bike', 'public bus', 'coach bus', 'office bus', 'water taxi', 'segway'. This is mandatory when using 'OTHER' as class. -
damages(array[damage]) - optional
list of damages that are reported for this asset Array item properties:assetComponent(enum (FRONT,REAR,LEFT,RIGHT,TOP, ...)) - required
Part/Component of the asset affected. If OTHER is specified the description needs to provide more detail as to what part/component is affected.description(string) - required
Description of the damage.pictures(array[string (uri)]) - optional
URL where pictures of the damage can be accessed. Any special characters in the URL must be correctly escaped.
-
cargo(cargoLimits) - optional
applicable properties to specify cargo space/loadsdescription(string) - optional
describes options to carry cargo, should match Content-Languagevolume(integer) - optional
the volume in liters of the cargo default:0weight(integer) - optional
the weight in kilograms of the cargo default:0
-
appSupport(appSupport) - optional
attributes to display/use in an external app.displayName(string) - optional
displayable name for this assetdescription(string) - optional
the description of the assetimage(string (uri)) - optional
Link to an image of the asseticon(string (uri)) - optional
Link to an icon of the assetaccessMethods(array[enum (BARCODE,QRCODE,AZTECCODE,REMOTE,DEEP_LINK, ...)]) - optional
how this asset can be opened
-
equipment(array[equipmentReference]) - optional
list of external references -
customFields(customProperties) - optional
dictionary for extra fields (bilatural agreements) -
fee(fareStructure) - optional
Asset statusses
The asset statusses are not pre-defined. The operations are also free to create, but they have to be compliant with OGC API processes.
The returned object must be a geojson, containing the package, just like all the other endpoints deliver.
Example json (list of links), to unlock (seperated from the 'start-leg') a bike
[
{ "rel": "unlock-asset",
"href": "https://bike.org/tomp/v2/processes/unlock-asset/execution",
"body": { "inputs": { "asset": "GDR:GBFS_vehicle:2581dd23-460d-4df0-b8cf-fb2c97e17a40" } },
"method": "POST",
"type": "application/geo+json"
}
]
The 'GDR:GBFS_vehicle' prefix must be available in the GET /collections/datasources/items endpoint, as a 'rel', referring to the source file where this asset can be found.
This approach can also be used to unlock lockers (the word 'asset' in the url is not mandatory, it can also be 'unlock-locker', or 'connect-charger').## Example
{
"id": "identifier",
"type": "asset",
"visualId": "example-string",
"product": "example-string"
}