Download OpenAPI specification:
The Rider API provides mobile application access to Urban Sharing mobility services. The API enables rider-facing functionality including trip management, vehicle discovery, reservations, and real-time notifications.
| Date | Version | Notes |
|---|---|---|
| Wed Feb 11 2026 | 1.0.0 | Initial release |
Returns all historical and current trips of a user
| systemId required | string |
| states | Array of strings Items Enum: "starting" "in_progress" "on_hold" "completed" "cancelled" Example: |
| from required | string The start date to filter trips from |
| to | string The end date to filter trips until |
{- "data": [
- {
- "type": "MAAS_TRIP_STATE_UPDATE",
- "id": 12345,
- "clientId": "Client12345",
- "userId": "User12345",
- "state": "cancelled",
- "stateTransitionReason": "cancelled_by_administrator",
- "stateTransitionComment": "string",
- "startedAtLocation": {
- "timestamp": "string",
- "geoPosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "statePosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "dock": {
- "dockGroupId": 2232,
- "dockGroupName": "Station 1",
- "dockNumber": 21
}
}, - "vehicle": {
- "id": 12345,
- "name": "Bike 1",
- "number": "42",
- "vehicleCategory": "ebike",
- "model": {
- "id": 101,
- "name": "Model X1",
- "type": "bike",
- "manufacturer": "Urban Sharing",
- "brand": "UrbanWheels",
- "model": "X1",
- "category": "ebike",
- "lockVisual": "ring_lock"
}, - "status": "available",
- "state": "docked",
- "unavailabilityReasons": [
- "dock_broken",
- "vehicle_broken"
], - "batteryCharge": 70,
- "batteryRange": 4000,
- "location": {
- "timestamp": "string",
- "geoPosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "statePosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "dock": {
- "dockGroupId": 2232,
- "dockGroupName": "Station 1",
- "dockNumber": 21
}
}, - "qrCode": "string",
- "isReserved": true,
- "trip": { }
}, - "endedAtLocation": {
- "timestamp": "string",
- "geoPosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "statePosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "dock": {
- "dockGroupId": 2232,
- "dockGroupName": "Station 1",
- "dockNumber": 21
}
}, - "totalDistance": 12.55,
- "updatedAt": "string",
- "pricing": {
- "source": "invoice",
- "totalAmountIncludingVat": 3600,
- "currency": "NOK",
- "tripDurationMins": 45,
- "freeMinutesFromPriceMatrix": 30,
- "freeMinutesPerDayUsed": 15,
- "freeMinutesPerDayRemaining": 30,
- "orderLines": [
- {
- "type": "trip",
- "quantity": 3,
- "amount": 1200,
- "vatRate": 0.25
}
]
}
}
]
}Returns all active vehicle reservations for the user (excludes completed and cancelled)
| systemId required | string |
{- "data": [
- {
- "id": 2,
- "vehicleId": 2,
- "dockGroupId": 2,
- "clientId": "Client12345",
- "createdAt": "string",
- "updatedAt": "string",
- "expiresAt": "string",
- "completedAt": "string",
- "cancelledAt": "string"
}
]
}Returns aggregated statistics for a user including distance, trips, CO2 saved, calories burned, and spending.
| systemId required | string |
| from required | string The start date to filter from |
| to | string The end date to filter until |
{- "totalTrips": 42,
- "totalDistanceKm": 123.45,
- "totalRidingTimeSec": 3600,
- "co2SavedGrams": 14814,
- "caloriesBurned": 3703,
- "totalSpentCents": 5000,
- "currency": "NOK"
}Returns the current active subscription for the user, or 404 if no active subscription exists.
| systemId required | string |
{- "id": 123,
- "enabled": true,
- "validFrom": "2024-01-01T00:00:00.000Z",
- "validTo": "2024-12-31T23:59:59.999Z",
- "product": {
- "id": 1,
- "name": "Monthly Pass",
- "price": 29.99,
- "freeMinutesPerDay": 45,
- "renewOptMethod": "disabled",
- "isRenewable": false
}, - "isCancellable": true,
- "autoRenewal": false
}Enables or disables auto-renewal for the current active subscription.
| systemId required | string |
| isEnabled required | boolean Whether auto-renew should be enabled for the current subscription |
{- "isEnabled": true
}{- "id": 123,
- "enabled": true,
- "validFrom": "2024-01-01T00:00:00.000Z",
- "validTo": "2024-12-31T23:59:59.999Z",
- "product": {
- "id": 1,
- "name": "Monthly Pass",
- "price": 29.99,
- "freeMinutesPerDay": 45,
- "renewOptMethod": "disabled",
- "isRenewable": false
}, - "isCancellable": true,
- "autoRenewal": false
}Updates the preferred locale for the authenticated user.
| systemId required | string |
| preferredLocale required | string The preferred locale of the user |
{- "preferredLocale": "en"
}{- "preferredLocale": "en"
}Returns the current onboarding state of the user.
| systemId required | string |
{- "steps": [
- {
- "type": "paymentMethod",
- "required": true,
- "visibility": [
- "onboarding",
- "edit_profile"
]
}
], - "pending": [
- {
- "type": "paymentMethod",
- "required": true,
- "visibility": [
- "onboarding",
- "edit_profile"
]
}
], - "data": {
- "firstName": "John",
- "lastName": "Doe",
- "email": "john.doe@example.com",
- "emailMarketingConsent": true,
- "emailNewsConsent": true,
- "phoneNumber": "+1234567890",
- "streetAddress": "123 Main St",
- "streetAddress2": "Apt 2",
- "streetAddress3": "Building C",
- "postalCode": "0182",
- "city": "Oslo",
- "countryCode": "NO",
- "personalNumber": "+1234567890",
- "gender": "male",
- "birthdate": "1990-05-20",
- "legalEntityNumber": "123456789"
}
}Submit the first and last name for the onboarding step.
| systemId required | string |
| firstName required | string First name |
| lastName required | string Last name |
{- "firstName": "John",
- "lastName": "Doe"
}{- "steps": [
- {
- "type": "paymentMethod",
- "required": true,
- "visibility": [
- "onboarding",
- "edit_profile"
]
}
], - "pending": [
- {
- "type": "paymentMethod",
- "required": true,
- "visibility": [
- "onboarding",
- "edit_profile"
]
}
], - "data": {
- "firstName": "John",
- "lastName": "Doe",
- "email": "john.doe@example.com",
- "emailMarketingConsent": true,
- "emailNewsConsent": true,
- "phoneNumber": "+1234567890",
- "streetAddress": "123 Main St",
- "streetAddress2": "Apt 2",
- "streetAddress3": "Building C",
- "postalCode": "0182",
- "city": "Oslo",
- "countryCode": "NO",
- "personalNumber": "+1234567890",
- "gender": "male",
- "birthdate": "1990-05-20",
- "legalEntityNumber": "123456789"
}
}Submit the gender for the onboarding step.
| systemId required | string |
| gender required | string Enum: "male" "female" "other" Gender |
{- "gender": "male"
}{- "steps": [
- {
- "type": "paymentMethod",
- "required": true,
- "visibility": [
- "onboarding",
- "edit_profile"
]
}
], - "pending": [
- {
- "type": "paymentMethod",
- "required": true,
- "visibility": [
- "onboarding",
- "edit_profile"
]
}
], - "data": {
- "firstName": "John",
- "lastName": "Doe",
- "email": "john.doe@example.com",
- "emailMarketingConsent": true,
- "emailNewsConsent": true,
- "phoneNumber": "+1234567890",
- "streetAddress": "123 Main St",
- "streetAddress2": "Apt 2",
- "streetAddress3": "Building C",
- "postalCode": "0182",
- "city": "Oslo",
- "countryCode": "NO",
- "personalNumber": "+1234567890",
- "gender": "male",
- "birthdate": "1990-05-20",
- "legalEntityNumber": "123456789"
}
}Submit the phone number for the onboarding step.
| systemId required | string |
| phoneNumber required | string The phone number |
{- "phoneNumber": "+4712345678"
}{- "steps": [
- {
- "type": "paymentMethod",
- "required": true,
- "visibility": [
- "onboarding",
- "edit_profile"
]
}
], - "pending": [
- {
- "type": "paymentMethod",
- "required": true,
- "visibility": [
- "onboarding",
- "edit_profile"
]
}
], - "data": {
- "firstName": "John",
- "lastName": "Doe",
- "email": "john.doe@example.com",
- "emailMarketingConsent": true,
- "emailNewsConsent": true,
- "phoneNumber": "+1234567890",
- "streetAddress": "123 Main St",
- "streetAddress2": "Apt 2",
- "streetAddress3": "Building C",
- "postalCode": "0182",
- "city": "Oslo",
- "countryCode": "NO",
- "personalNumber": "+1234567890",
- "gender": "male",
- "birthdate": "1990-05-20",
- "legalEntityNumber": "123456789"
}
}Submit the email address for the onboarding step.
| systemId required | string |
| email required | string The email address |
| emailMarketingConsent required | boolean Whether the user consents to email marketing |
| emailNewsConsent required | boolean Whether the user consents to email newsletters |
{- "email": "user@example.com",
- "emailMarketingConsent": true,
- "emailNewsConsent": true
}{- "steps": [
- {
- "type": "paymentMethod",
- "required": true,
- "visibility": [
- "onboarding",
- "edit_profile"
]
}
], - "pending": [
- {
- "type": "paymentMethod",
- "required": true,
- "visibility": [
- "onboarding",
- "edit_profile"
]
}
], - "data": {
- "firstName": "John",
- "lastName": "Doe",
- "email": "john.doe@example.com",
- "emailMarketingConsent": true,
- "emailNewsConsent": true,
- "phoneNumber": "+1234567890",
- "streetAddress": "123 Main St",
- "streetAddress2": "Apt 2",
- "streetAddress3": "Building C",
- "postalCode": "0182",
- "city": "Oslo",
- "countryCode": "NO",
- "personalNumber": "+1234567890",
- "gender": "male",
- "birthdate": "1990-05-20",
- "legalEntityNumber": "123456789"
}
}Submit the birthdate for the onboarding step.
| systemId required | string |
| birthdate required | string <date> Birthdate as an ISO 8601 date string |
{- "birthdate": "1990-05-20"
}{- "steps": [
- {
- "type": "paymentMethod",
- "required": true,
- "visibility": [
- "onboarding",
- "edit_profile"
]
}
], - "pending": [
- {
- "type": "paymentMethod",
- "required": true,
- "visibility": [
- "onboarding",
- "edit_profile"
]
}
], - "data": {
- "firstName": "John",
- "lastName": "Doe",
- "email": "john.doe@example.com",
- "emailMarketingConsent": true,
- "emailNewsConsent": true,
- "phoneNumber": "+1234567890",
- "streetAddress": "123 Main St",
- "streetAddress2": "Apt 2",
- "streetAddress3": "Building C",
- "postalCode": "0182",
- "city": "Oslo",
- "countryCode": "NO",
- "personalNumber": "+1234567890",
- "gender": "male",
- "birthdate": "1990-05-20",
- "legalEntityNumber": "123456789"
}
}Submit the street address for the onboarding step.
| systemId required | string |
| streetAddress required | string Street address line |
| streetAddress2 | string Second address line |
| streetAddress3 | string Third address line |
| postalCode required | string Postal code |
| city required | string City |
| countryCode | string Country code (ISO 3166-1 alpha-2) |
{- "streetAddress": "Storgata 1",
- "streetAddress2": "Apt 2",
- "streetAddress3": "Building C",
- "postalCode": "0182",
- "city": "Oslo",
- "countryCode": "NO"
}{- "steps": [
- {
- "type": "paymentMethod",
- "required": true,
- "visibility": [
- "onboarding",
- "edit_profile"
]
}
], - "pending": [
- {
- "type": "paymentMethod",
- "required": true,
- "visibility": [
- "onboarding",
- "edit_profile"
]
}
], - "data": {
- "firstName": "John",
- "lastName": "Doe",
- "email": "john.doe@example.com",
- "emailMarketingConsent": true,
- "emailNewsConsent": true,
- "phoneNumber": "+1234567890",
- "streetAddress": "123 Main St",
- "streetAddress2": "Apt 2",
- "streetAddress3": "Building C",
- "postalCode": "0182",
- "city": "Oslo",
- "countryCode": "NO",
- "personalNumber": "+1234567890",
- "gender": "male",
- "birthdate": "1990-05-20",
- "legalEntityNumber": "123456789"
}
}Submit the personal identification number for the onboarding step.
| systemId required | string |
| personalNumber required | string The personal identification number (national ID) |
{- "personalNumber": "12345678901"
}{- "steps": [
- {
- "type": "paymentMethod",
- "required": true,
- "visibility": [
- "onboarding",
- "edit_profile"
]
}
], - "pending": [
- {
- "type": "paymentMethod",
- "required": true,
- "visibility": [
- "onboarding",
- "edit_profile"
]
}
], - "data": {
- "firstName": "John",
- "lastName": "Doe",
- "email": "john.doe@example.com",
- "emailMarketingConsent": true,
- "emailNewsConsent": true,
- "phoneNumber": "+1234567890",
- "streetAddress": "123 Main St",
- "streetAddress2": "Apt 2",
- "streetAddress3": "Building C",
- "postalCode": "0182",
- "city": "Oslo",
- "countryCode": "NO",
- "personalNumber": "+1234567890",
- "gender": "male",
- "birthdate": "1990-05-20",
- "legalEntityNumber": "123456789"
}
}Accept the privacy policy and submit any additional legal consent checkboxes.
| systemId required | string |
| accepted required | boolean Whether the user accepted the privacy policy | ||||
| version | string Version of the privacy policy accepted | ||||
Array of objects (LegalConsent) Additional legal consent checkboxes | |||||
Array
| |||||
{- "accepted": true,
- "version": "2026-03-01",
- "legalConsents": [
- {
- "key": "marketing_emails",
- "accepted": true
}
]
}{- "steps": [
- {
- "type": "paymentMethod",
- "required": true,
- "visibility": [
- "onboarding",
- "edit_profile"
]
}
], - "pending": [
- {
- "type": "paymentMethod",
- "required": true,
- "visibility": [
- "onboarding",
- "edit_profile"
]
}
], - "data": {
- "firstName": "John",
- "lastName": "Doe",
- "email": "john.doe@example.com",
- "emailMarketingConsent": true,
- "emailNewsConsent": true,
- "phoneNumber": "+1234567890",
- "streetAddress": "123 Main St",
- "streetAddress2": "Apt 2",
- "streetAddress3": "Building C",
- "postalCode": "0182",
- "city": "Oslo",
- "countryCode": "NO",
- "personalNumber": "+1234567890",
- "gender": "male",
- "birthdate": "1990-05-20",
- "legalEntityNumber": "123456789"
}
}Accept the terms and conditions.
| systemId required | string |
| accepted required | boolean Whether the user accepted the terms and conditions |
| version | string Version of the terms and conditions accepted |
{- "accepted": true,
- "version": "2026-03-01"
}{- "steps": [
- {
- "type": "paymentMethod",
- "required": true,
- "visibility": [
- "onboarding",
- "edit_profile"
]
}
], - "pending": [
- {
- "type": "paymentMethod",
- "required": true,
- "visibility": [
- "onboarding",
- "edit_profile"
]
}
], - "data": {
- "firstName": "John",
- "lastName": "Doe",
- "email": "john.doe@example.com",
- "emailMarketingConsent": true,
- "emailNewsConsent": true,
- "phoneNumber": "+1234567890",
- "streetAddress": "123 Main St",
- "streetAddress2": "Apt 2",
- "streetAddress3": "Building C",
- "postalCode": "0182",
- "city": "Oslo",
- "countryCode": "NO",
- "personalNumber": "+1234567890",
- "gender": "male",
- "birthdate": "1990-05-20",
- "legalEntityNumber": "123456789"
}
}Mark the tutorial as acknowledged.
| systemId required | string |
| acknowledged required | boolean Whether the user acknowledged the tutorial |
{- "acknowledged": true
}{- "steps": [
- {
- "type": "paymentMethod",
- "required": true,
- "visibility": [
- "onboarding",
- "edit_profile"
]
}
], - "pending": [
- {
- "type": "paymentMethod",
- "required": true,
- "visibility": [
- "onboarding",
- "edit_profile"
]
}
], - "data": {
- "firstName": "John",
- "lastName": "Doe",
- "email": "john.doe@example.com",
- "emailMarketingConsent": true,
- "emailNewsConsent": true,
- "phoneNumber": "+1234567890",
- "streetAddress": "123 Main St",
- "streetAddress2": "Apt 2",
- "streetAddress3": "Building C",
- "postalCode": "0182",
- "city": "Oslo",
- "countryCode": "NO",
- "personalNumber": "+1234567890",
- "gender": "male",
- "birthdate": "1990-05-20",
- "legalEntityNumber": "123456789"
}
}Start verification of the phone number. Returns a verification state, TTL, and code length.
| systemId required | string |
| phoneNumber required | string The phone number |
{- "phoneNumber": "+4712345678"
}{- "state": "string",
- "ttl": 0,
- "length": 0
}Complete verification of the phone number by submitting the verification code.
| systemId required | string |
| state required | string Verification state |
| code required | string The verification code |
{- "state": "string",
- "code": "string"
}{- "steps": [
- {
- "type": "paymentMethod",
- "required": true,
- "visibility": [
- "onboarding",
- "edit_profile"
]
}
], - "pending": [
- {
- "type": "paymentMethod",
- "required": true,
- "visibility": [
- "onboarding",
- "edit_profile"
]
}
], - "data": {
- "firstName": "John",
- "lastName": "Doe",
- "email": "john.doe@example.com",
- "emailMarketingConsent": true,
- "emailNewsConsent": true,
- "phoneNumber": "+1234567890",
- "streetAddress": "123 Main St",
- "streetAddress2": "Apt 2",
- "streetAddress3": "Building C",
- "postalCode": "0182",
- "city": "Oslo",
- "countryCode": "NO",
- "personalNumber": "+1234567890",
- "gender": "male",
- "birthdate": "1990-05-20",
- "legalEntityNumber": "123456789"
}
}Start verification of the email address. Returns a verification state, TTL, and code length.
| systemId required | string |
| email required | string The email address |
{- "email": "user@example.com"
}{- "state": "string",
- "ttl": 0,
- "length": 0
}Complete verification of the email address by submitting the verification code.
| systemId required | string |
| state required | string Verification state |
| code required | string The verification code |
{- "state": "string",
- "code": "string"
}{- "steps": [
- {
- "type": "paymentMethod",
- "required": true,
- "visibility": [
- "onboarding",
- "edit_profile"
]
}
], - "pending": [
- {
- "type": "paymentMethod",
- "required": true,
- "visibility": [
- "onboarding",
- "edit_profile"
]
}
], - "data": {
- "firstName": "John",
- "lastName": "Doe",
- "email": "john.doe@example.com",
- "emailMarketingConsent": true,
- "emailNewsConsent": true,
- "phoneNumber": "+1234567890",
- "streetAddress": "123 Main St",
- "streetAddress2": "Apt 2",
- "streetAddress3": "Building C",
- "postalCode": "0182",
- "city": "Oslo",
- "countryCode": "NO",
- "personalNumber": "+1234567890",
- "gender": "male",
- "birthdate": "1990-05-20",
- "legalEntityNumber": "123456789"
}
}Trigger verification of the street address.
| systemId required | string |
{- "steps": [
- {
- "type": "paymentMethod",
- "required": true,
- "visibility": [
- "onboarding",
- "edit_profile"
]
}
], - "pending": [
- {
- "type": "paymentMethod",
- "required": true,
- "visibility": [
- "onboarding",
- "edit_profile"
]
}
], - "data": {
- "firstName": "John",
- "lastName": "Doe",
- "email": "john.doe@example.com",
- "emailMarketingConsent": true,
- "emailNewsConsent": true,
- "phoneNumber": "+1234567890",
- "streetAddress": "123 Main St",
- "streetAddress2": "Apt 2",
- "streetAddress3": "Building C",
- "postalCode": "0182",
- "city": "Oslo",
- "countryCode": "NO",
- "personalNumber": "+1234567890",
- "gender": "male",
- "birthdate": "1990-05-20",
- "legalEntityNumber": "123456789"
}
}Trigger verification of the personal identification number.
| systemId required | string |
{- "steps": [
- {
- "type": "paymentMethod",
- "required": true,
- "visibility": [
- "onboarding",
- "edit_profile"
]
}
], - "pending": [
- {
- "type": "paymentMethod",
- "required": true,
- "visibility": [
- "onboarding",
- "edit_profile"
]
}
], - "data": {
- "firstName": "John",
- "lastName": "Doe",
- "email": "john.doe@example.com",
- "emailMarketingConsent": true,
- "emailNewsConsent": true,
- "phoneNumber": "+1234567890",
- "streetAddress": "123 Main St",
- "streetAddress2": "Apt 2",
- "streetAddress3": "Building C",
- "postalCode": "0182",
- "city": "Oslo",
- "countryCode": "NO",
- "personalNumber": "+1234567890",
- "gender": "male",
- "birthdate": "1990-05-20",
- "legalEntityNumber": "123456789"
}
}Returns the full tax number, name, and postal address for a given legal entity number.
| systemId required | string |
| legalEntityNumber required | string |
{- "taxNumber": "11961552-2-42",
- "name": "Acme Corporation",
- "address": {
- "type": "HQ",
- "address": "123 Business Ave",
- "postalCode": "12345",
- "city": "Oslo",
- "countryCode": "NO"
}
}Submit the legal entity number for the onboarding step.
| systemId required | string |
| legalEntityNumber required | string or null The legal entity number |
{- "legalEntityNumber": "123456789"
}{- "steps": [
- {
- "type": "paymentMethod",
- "required": true,
- "visibility": [
- "onboarding",
- "edit_profile"
]
}
], - "pending": [
- {
- "type": "paymentMethod",
- "required": true,
- "visibility": [
- "onboarding",
- "edit_profile"
]
}
], - "data": {
- "firstName": "John",
- "lastName": "Doe",
- "email": "john.doe@example.com",
- "emailMarketingConsent": true,
- "emailNewsConsent": true,
- "phoneNumber": "+1234567890",
- "streetAddress": "123 Main St",
- "streetAddress2": "Apt 2",
- "streetAddress3": "Building C",
- "postalCode": "0182",
- "city": "Oslo",
- "countryCode": "NO",
- "personalNumber": "+1234567890",
- "gender": "male",
- "birthdate": "1990-05-20",
- "legalEntityNumber": "123456789"
}
}Get all areas with their configurations and schedules.
| systemId required | string |
| types | Array of strings Items Enum: "illegal_docking" "speed_limit" "no_entry" Example: |
{- "data": [
- {
- "id": 1,
- "createdAt": "string",
- "updatedAt": "string",
- "geometry": {
- "coordinates": [
- "string"
], - "type": "Polygon"
}, - "description": "string",
- "fillColour": "#ff00aa",
- "strokeColour": "#ff00aa",
- "configurations": {
- "illegalDocking": [
- {
- "createdAt": "string",
- "updatedAt": "string",
- "id": 1,
- "graceSeconds": 0,
- "price": 0,
- "exceptDockGroups": true,
- "replacesFreeFloatingDockingFee": true,
- "schedules": [
- {
- "createdAt": "string",
- "updatedAt": "string",
- "startTime": "string",
- "endTime": "string",
- "daysOfWeek": 0,
- "startDate": "string",
- "endDate": "string"
}
]
}
], - "speedLimit": [
- {
- "createdAt": "string",
- "updatedAt": "string",
- "id": 1,
- "speed": 25,
- "unit": "km/h",
- "schedules": [
- {
- "createdAt": "string",
- "updatedAt": "string",
- "startTime": "string",
- "endTime": "string",
- "daysOfWeek": 0,
- "startDate": "string",
- "endDate": "string"
}
]
}
], - "noEntry": [
- {
- "createdAt": "string",
- "updatedAt": "string",
- "id": 1,
- "schedules": [
- {
- "createdAt": "string",
- "updatedAt": "string",
- "startTime": "string",
- "endTime": "string",
- "daysOfWeek": 0,
- "startDate": "string",
- "endDate": "string"
}
]
}
]
}
}
]
}Returns CRM configuration for the authenticated user including provider type, app ID, and computed user hash for identity verification.
| systemId required | string |
| user-agent required | string |
{- "provider": "intercom",
- "appId": "abc123xyz",
- "token": "a1b2c3d4e5f6..."
}Return all dock groups with availability information.
| systemId required | string |
| superpowers | boolean Whether this request is on behalf of a user with superpowers, which may return more information than for a general public user |
{- "data": [
- {
- "id": 1,
- "createdAt": "string",
- "updatedAt": "string",
- "type": "virtual",
- "state": "active",
- "name": "58",
- "title": "Railway Station North",
- "subtitle": "Next to the big clock tower",
- "address": "123 Railway St, Cityville",
- "availabilityInfo": {
- "totalDocks": 0,
- "virtualDocks": 0,
- "availableVirtualDocks": 0,
- "physicalDocks": 0,
- "availablePhysicalDocks": 0,
- "availableDocks": 0,
- "unavailableDocks": 0,
- "availableVehicles": 0,
- "unavailableVehicles": 0,
- "availableVehicleCategories": [
- {
- "category": "string",
- "count": 0
}
], - "unavailableVehicleCategories": [
- {
- "category": "string",
- "count": 0
}
], - "brokenDocks": 0,
- "brokenVehicles": 0,
- "jammedVehicles": 0,
- "damagedVehicles": 0,
- "docksWithVehicles": 0,
- "virtuallyDockedVehicles": 0,
- "virtualOverflowAllowed": true
}, - "geometry": {
- "center": {
- "coordinates": [
- 51.3434,
- 11.3423
], - "type": "Point"
}, - "elevation": 14,
- "geofenceLock": {
- "coordinates": [
- "string"
], - "type": "Polygon"
}, - "geofenceRequest": {
- "coordinates": [
- "string"
], - "type": "Polygon"
}
}
}
]
}Returns vehicle data based on the the Dock Group ID.
| systemId required | string |
| dockGroupId required | number |
{- "data": [
- {
- "id": 12345,
- "name": "Bike 1",
- "number": "42",
- "vehicleCategory": "ebike",
- "model": {
- "id": 101,
- "name": "Model X1",
- "type": "bike",
- "manufacturer": "Urban Sharing",
- "brand": "UrbanWheels",
- "model": "X1",
- "category": "ebike",
- "lockVisual": "ring_lock"
}, - "status": "available",
- "state": "docked",
- "unavailabilityReasons": [
- "dock_broken",
- "vehicle_broken"
], - "batteryCharge": 70,
- "batteryRange": 4000,
- "location": {
- "timestamp": "string",
- "geoPosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "statePosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "dock": {
- "dockGroupId": 2232,
- "dockGroupName": "Station 1",
- "dockNumber": 21
}
}, - "qrCode": "string",
- "isReserved": true,
- "trip": {
- "type": "MAAS_TRIP_STATE_UPDATE",
- "id": 12345,
- "clientId": "Client12345",
- "userId": "User12345",
- "state": "cancelled",
- "stateTransitionReason": "cancelled_by_administrator",
- "stateTransitionComment": "string",
- "startedAtLocation": {
- "timestamp": "string",
- "geoPosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "statePosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "dock": {
- "dockGroupId": 2232,
- "dockGroupName": "Station 1",
- "dockNumber": 21
}
}, - "vehicle": {
- "id": 12345,
- "name": "Bike 1",
- "number": "42",
- "vehicleCategory": "ebike",
- "model": {
- "id": 101,
- "name": "Model X1",
- "type": "bike",
- "manufacturer": "Urban Sharing",
- "brand": "UrbanWheels",
- "model": "X1",
- "category": "ebike",
- "lockVisual": "ring_lock"
}, - "status": "available",
- "state": "docked",
- "unavailabilityReasons": [
- "dock_broken",
- "vehicle_broken"
], - "batteryCharge": 70,
- "batteryRange": 4000,
- "location": {
- "timestamp": "string",
- "geoPosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "statePosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "dock": {
- "dockGroupId": 2232,
- "dockGroupName": "Station 1",
- "dockNumber": 21
}
}, - "qrCode": "string",
- "isReserved": true,
- "trip": { }
}, - "endedAtLocation": {
- "timestamp": "string",
- "geoPosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "statePosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "dock": {
- "dockGroupId": 2232,
- "dockGroupName": "Station 1",
- "dockNumber": 21
}
}, - "totalDistance": 12.55,
- "updatedAt": "string",
- "pricing": {
- "source": "invoice",
- "totalAmountIncludingVat": 3600,
- "currency": "NOK",
- "tripDurationMins": 45,
- "freeMinutesFromPriceMatrix": 30,
- "freeMinutesPerDayUsed": 15,
- "freeMinutesPerDayRemaining": 30,
- "orderLines": [
- {
- "type": "trip",
- "quantity": 3,
- "amount": 1200,
- "vatRate": 0.25
}
]
}
}
}
]
}Return one dock group with availability information, if it matches the same visibility rules as the list endpoint.
| systemId required | string |
| dockGroupId required | number |
| superpowers | boolean Whether this request is on behalf of a user with superpowers, which may return more information than for a general public user |
{- "id": 1,
- "createdAt": "string",
- "updatedAt": "string",
- "type": "virtual",
- "state": "active",
- "name": "58",
- "title": "Railway Station North",
- "subtitle": "Next to the big clock tower",
- "address": "123 Railway St, Cityville",
- "availabilityInfo": {
- "totalDocks": 0,
- "virtualDocks": 0,
- "availableVirtualDocks": 0,
- "physicalDocks": 0,
- "availablePhysicalDocks": 0,
- "availableDocks": 0,
- "unavailableDocks": 0,
- "availableVehicles": 0,
- "unavailableVehicles": 0,
- "availableVehicleCategories": [
- {
- "category": "string",
- "count": 0
}
], - "unavailableVehicleCategories": [
- {
- "category": "string",
- "count": 0
}
], - "brokenDocks": 0,
- "brokenVehicles": 0,
- "jammedVehicles": 0,
- "damagedVehicles": 0,
- "docksWithVehicles": 0,
- "virtuallyDockedVehicles": 0,
- "virtualOverflowAllowed": true
}, - "geometry": {
- "center": {
- "coordinates": [
- 51.3434,
- 11.3423
], - "type": "Point"
}, - "elevation": 14,
- "geofenceLock": {
- "coordinates": [
- "string"
], - "type": "Polygon"
}, - "geofenceRequest": {
- "coordinates": [
- "string"
], - "type": "Polygon"
}
}
}Starts a dock group trip.
| systemId required | string |
| dockGroupId required | number |
object User position | |||||||||||
| |||||||||||
| vehicleCategory required | string Enum: "bike" "ebike" "scooter" "ebike_with_childseat" "bike_with_childseat" "ebike_cargo" "bike_cargo" The type of vehicle required for the trip. | ||||||||||
{- "userPosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "accuracyRadiusMeters": 12
}, - "vehicleCategory": "bike"
}{- "type": "MAAS_TRIP_STATE_UPDATE",
- "id": 12345,
- "clientId": "Client12345",
- "userId": "User12345",
- "state": "cancelled",
- "stateTransitionReason": "cancelled_by_administrator",
- "stateTransitionComment": "string",
- "startedAtLocation": {
- "timestamp": "string",
- "geoPosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "statePosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "dock": {
- "dockGroupId": 2232,
- "dockGroupName": "Station 1",
- "dockNumber": 21
}
}, - "vehicle": {
- "id": 12345,
- "name": "Bike 1",
- "number": "42",
- "vehicleCategory": "ebike",
- "model": {
- "id": 101,
- "name": "Model X1",
- "type": "bike",
- "manufacturer": "Urban Sharing",
- "brand": "UrbanWheels",
- "model": "X1",
- "category": "ebike",
- "lockVisual": "ring_lock"
}, - "status": "available",
- "state": "docked",
- "unavailabilityReasons": [
- "dock_broken",
- "vehicle_broken"
], - "batteryCharge": 70,
- "batteryRange": 4000,
- "location": {
- "timestamp": "string",
- "geoPosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "statePosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "dock": {
- "dockGroupId": 2232,
- "dockGroupName": "Station 1",
- "dockNumber": 21
}
}, - "qrCode": "string",
- "isReserved": true,
- "trip": { }
}, - "endedAtLocation": {
- "timestamp": "string",
- "geoPosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "statePosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "dock": {
- "dockGroupId": 2232,
- "dockGroupName": "Station 1",
- "dockNumber": 21
}
}, - "totalDistance": 12.55,
- "updatedAt": "string",
- "pricing": {
- "source": "invoice",
- "totalAmountIncludingVat": 3600,
- "currency": "NOK",
- "tripDurationMins": 45,
- "freeMinutesFromPriceMatrix": 30,
- "freeMinutesPerDayUsed": 15,
- "freeMinutesPerDayRemaining": 30,
- "orderLines": [
- {
- "type": "trip",
- "quantity": 3,
- "amount": 1200,
- "vatRate": 0.25
}
]
}
}Return all vehicles with detailed information.
| systemId required | string |
{- "data": [
- {
- "id": 12345,
- "name": "Bike 1",
- "number": "42",
- "vehicleCategory": "ebike",
- "model": {
- "id": 101,
- "name": "Model X1",
- "type": "bike",
- "manufacturer": "Urban Sharing",
- "brand": "UrbanWheels",
- "model": "X1",
- "category": "ebike",
- "lockVisual": "ring_lock"
}, - "status": "available",
- "state": "docked",
- "unavailabilityReasons": [
- "dock_broken",
- "vehicle_broken"
], - "batteryCharge": 70,
- "batteryRange": 4000,
- "location": {
- "timestamp": "string",
- "geoPosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "statePosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "dock": {
- "dockGroupId": 2232,
- "dockGroupName": "Station 1",
- "dockNumber": 21
}
}, - "qrCode": "string",
- "isReserved": true,
- "trip": {
- "type": "MAAS_TRIP_STATE_UPDATE",
- "id": 12345,
- "clientId": "Client12345",
- "userId": "User12345",
- "state": "cancelled",
- "stateTransitionReason": "cancelled_by_administrator",
- "stateTransitionComment": "string",
- "startedAtLocation": {
- "timestamp": "string",
- "geoPosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "statePosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "dock": {
- "dockGroupId": 2232,
- "dockGroupName": "Station 1",
- "dockNumber": 21
}
}, - "vehicle": {
- "id": 12345,
- "name": "Bike 1",
- "number": "42",
- "vehicleCategory": "ebike",
- "model": {
- "id": 101,
- "name": "Model X1",
- "type": "bike",
- "manufacturer": "Urban Sharing",
- "brand": "UrbanWheels",
- "model": "X1",
- "category": "ebike",
- "lockVisual": "ring_lock"
}, - "status": "available",
- "state": "docked",
- "unavailabilityReasons": [
- "dock_broken",
- "vehicle_broken"
], - "batteryCharge": 70,
- "batteryRange": 4000,
- "location": {
- "timestamp": "string",
- "geoPosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "statePosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "dock": {
- "dockGroupId": 2232,
- "dockGroupName": "Station 1",
- "dockNumber": 21
}
}, - "qrCode": "string",
- "isReserved": true,
- "trip": { }
}, - "endedAtLocation": {
- "timestamp": "string",
- "geoPosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "statePosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "dock": {
- "dockGroupId": 2232,
- "dockGroupName": "Station 1",
- "dockNumber": 21
}
}, - "totalDistance": 12.55,
- "updatedAt": "string",
- "pricing": {
- "source": "invoice",
- "totalAmountIncludingVat": 3600,
- "currency": "NOK",
- "tripDurationMins": 45,
- "freeMinutesFromPriceMatrix": 30,
- "freeMinutesPerDayUsed": 15,
- "freeMinutesPerDayRemaining": 30,
- "orderLines": [
- {
- "type": "trip",
- "quantity": 3,
- "amount": 1200,
- "vatRate": 0.25
}
]
}
}
}
]
}Returns vehicle data based on its QR code.
| systemId required | string |
| qrCode required | string |
{- "id": 12345,
- "name": "Bike 1",
- "number": "42",
- "vehicleCategory": "ebike",
- "model": {
- "id": 101,
- "name": "Model X1",
- "type": "bike",
- "manufacturer": "Urban Sharing",
- "brand": "UrbanWheels",
- "model": "X1",
- "category": "ebike",
- "lockVisual": "ring_lock"
}, - "status": "available",
- "state": "docked",
- "unavailabilityReasons": [
- "dock_broken",
- "vehicle_broken"
], - "batteryCharge": 70,
- "batteryRange": 4000,
- "location": {
- "timestamp": "string",
- "geoPosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "statePosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "dock": {
- "dockGroupId": 2232,
- "dockGroupName": "Station 1",
- "dockNumber": 21
}
}, - "qrCode": "string",
- "isReserved": true,
- "trip": {
- "type": "MAAS_TRIP_STATE_UPDATE",
- "id": 12345,
- "clientId": "Client12345",
- "userId": "User12345",
- "state": "cancelled",
- "stateTransitionReason": "cancelled_by_administrator",
- "stateTransitionComment": "string",
- "startedAtLocation": {
- "timestamp": "string",
- "geoPosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "statePosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "dock": {
- "dockGroupId": 2232,
- "dockGroupName": "Station 1",
- "dockNumber": 21
}
}, - "vehicle": {
- "id": 12345,
- "name": "Bike 1",
- "number": "42",
- "vehicleCategory": "ebike",
- "model": {
- "id": 101,
- "name": "Model X1",
- "type": "bike",
- "manufacturer": "Urban Sharing",
- "brand": "UrbanWheels",
- "model": "X1",
- "category": "ebike",
- "lockVisual": "ring_lock"
}, - "status": "available",
- "state": "docked",
- "unavailabilityReasons": [
- "dock_broken",
- "vehicle_broken"
], - "batteryCharge": 70,
- "batteryRange": 4000,
- "location": {
- "timestamp": "string",
- "geoPosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "statePosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "dock": {
- "dockGroupId": 2232,
- "dockGroupName": "Station 1",
- "dockNumber": 21
}
}, - "qrCode": "string",
- "isReserved": true,
- "trip": { }
}, - "endedAtLocation": {
- "timestamp": "string",
- "geoPosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "statePosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "dock": {
- "dockGroupId": 2232,
- "dockGroupName": "Station 1",
- "dockNumber": 21
}
}, - "totalDistance": 12.55,
- "updatedAt": "string",
- "pricing": {
- "source": "invoice",
- "totalAmountIncludingVat": 3600,
- "currency": "NOK",
- "tripDurationMins": 45,
- "freeMinutesFromPriceMatrix": 30,
- "freeMinutesPerDayUsed": 15,
- "freeMinutesPerDayRemaining": 30,
- "orderLines": [
- {
- "type": "trip",
- "quantity": 3,
- "amount": 1200,
- "vatRate": 0.25
}
]
}
}
}Returns vehicle data based on the its ID.
| systemId required | string |
| id required | string |
{- "id": 12345,
- "name": "Bike 1",
- "number": "42",
- "vehicleCategory": "ebike",
- "model": {
- "id": 101,
- "name": "Model X1",
- "type": "bike",
- "manufacturer": "Urban Sharing",
- "brand": "UrbanWheels",
- "model": "X1",
- "category": "ebike",
- "lockVisual": "ring_lock"
}, - "status": "available",
- "state": "docked",
- "unavailabilityReasons": [
- "dock_broken",
- "vehicle_broken"
], - "batteryCharge": 70,
- "batteryRange": 4000,
- "location": {
- "timestamp": "string",
- "geoPosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "statePosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "dock": {
- "dockGroupId": 2232,
- "dockGroupName": "Station 1",
- "dockNumber": 21
}
}, - "qrCode": "string",
- "isReserved": true,
- "trip": {
- "type": "MAAS_TRIP_STATE_UPDATE",
- "id": 12345,
- "clientId": "Client12345",
- "userId": "User12345",
- "state": "cancelled",
- "stateTransitionReason": "cancelled_by_administrator",
- "stateTransitionComment": "string",
- "startedAtLocation": {
- "timestamp": "string",
- "geoPosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "statePosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "dock": {
- "dockGroupId": 2232,
- "dockGroupName": "Station 1",
- "dockNumber": 21
}
}, - "vehicle": {
- "id": 12345,
- "name": "Bike 1",
- "number": "42",
- "vehicleCategory": "ebike",
- "model": {
- "id": 101,
- "name": "Model X1",
- "type": "bike",
- "manufacturer": "Urban Sharing",
- "brand": "UrbanWheels",
- "model": "X1",
- "category": "ebike",
- "lockVisual": "ring_lock"
}, - "status": "available",
- "state": "docked",
- "unavailabilityReasons": [
- "dock_broken",
- "vehicle_broken"
], - "batteryCharge": 70,
- "batteryRange": 4000,
- "location": {
- "timestamp": "string",
- "geoPosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "statePosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "dock": {
- "dockGroupId": 2232,
- "dockGroupName": "Station 1",
- "dockNumber": 21
}
}, - "qrCode": "string",
- "isReserved": true,
- "trip": { }
}, - "endedAtLocation": {
- "timestamp": "string",
- "geoPosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "statePosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "dock": {
- "dockGroupId": 2232,
- "dockGroupName": "Station 1",
- "dockNumber": 21
}
}, - "totalDistance": 12.55,
- "updatedAt": "string",
- "pricing": {
- "source": "invoice",
- "totalAmountIncludingVat": 3600,
- "currency": "NOK",
- "tripDurationMins": 45,
- "freeMinutesFromPriceMatrix": 30,
- "freeMinutesPerDayUsed": 15,
- "freeMinutesPerDayRemaining": 30,
- "orderLines": [
- {
- "type": "trip",
- "quantity": 3,
- "amount": 1200,
- "vatRate": 0.25
}
]
}
}
}Starts a vehicle trip.
| systemId required | string |
| vehicleId required | number |
object User position | |||||||||||
| |||||||||||
{- "userPosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "accuracyRadiusMeters": 12
}
}{- "type": "MAAS_TRIP_STATE_UPDATE",
- "id": 12345,
- "clientId": "Client12345",
- "userId": "User12345",
- "state": "cancelled",
- "stateTransitionReason": "cancelled_by_administrator",
- "stateTransitionComment": "string",
- "startedAtLocation": {
- "timestamp": "string",
- "geoPosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "statePosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "dock": {
- "dockGroupId": 2232,
- "dockGroupName": "Station 1",
- "dockNumber": 21
}
}, - "vehicle": {
- "id": 12345,
- "name": "Bike 1",
- "number": "42",
- "vehicleCategory": "ebike",
- "model": {
- "id": 101,
- "name": "Model X1",
- "type": "bike",
- "manufacturer": "Urban Sharing",
- "brand": "UrbanWheels",
- "model": "X1",
- "category": "ebike",
- "lockVisual": "ring_lock"
}, - "status": "available",
- "state": "docked",
- "unavailabilityReasons": [
- "dock_broken",
- "vehicle_broken"
], - "batteryCharge": 70,
- "batteryRange": 4000,
- "location": {
- "timestamp": "string",
- "geoPosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "statePosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "dock": {
- "dockGroupId": 2232,
- "dockGroupName": "Station 1",
- "dockNumber": 21
}
}, - "qrCode": "string",
- "isReserved": true,
- "trip": { }
}, - "endedAtLocation": {
- "timestamp": "string",
- "geoPosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "statePosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "dock": {
- "dockGroupId": 2232,
- "dockGroupName": "Station 1",
- "dockNumber": 21
}
}, - "totalDistance": 12.55,
- "updatedAt": "string",
- "pricing": {
- "source": "invoice",
- "totalAmountIncludingVat": 3600,
- "currency": "NOK",
- "tripDurationMins": 45,
- "freeMinutesFromPriceMatrix": 30,
- "freeMinutesPerDayUsed": 15,
- "freeMinutesPerDayRemaining": 30,
- "orderLines": [
- {
- "type": "trip",
- "quantity": 3,
- "amount": 1200,
- "vatRate": 0.25
}
]
}
}Reserves a specific vehicle
| systemId required | string |
| vehicleId required | number |
| productId | number The optional ID of the product being used for the reservation. If the product ID is valid, product validations will be performed before starting the reservation. e.g. valid product, penalty points etc. At the end of the reservation/trip, the product ID will be used to calculate the price and a summary will be sent to the users/invoices webhook. If no product ID is provided, it is the responsibility of the caller to manage pricing and penalties. |
{- "productId": 1
}{- "id": 2,
- "vehicleId": 2,
- "dockGroupId": 2,
- "userId": "435432",
- "clientId": "Client12345",
- "createdAt": "string",
- "updatedAt": "string",
- "expiresAt": "string",
- "completedAt": "string",
- "cancelledAt": "string"
}Creates a damage report for a vehicle.
| systemId required | string |
| vehicleId required | number |
| damageTypeIds required | Array of numbers List of IDs that correspond to the damage types being reported |
| comment | string An optional comment related to the damage |
| notifyOnRepair | boolean Whether to notify the user when the vehicle has been repaired |
| tripId | number The ID of the trip that the damage report is associated with |
{- "damageTypeIds": [
- 1,
- 2,
- 3,
- 4,
- 5
], - "comment": "The rear wheel is broken",
- "notifyOnRepair": true,
- "tripId": 1
}{- "code": "ERR_INVALID_DAMAGE_REPORT",
- "message": "Invalid damage report data provided"
}Uploads a damage image for a specific trip and damage type. Call after creating the damage report.
| systemId required | string |
| tripId required | number The ID of the trip the damage report is associated with |
| assetDamageTypeId required | number The asset damage type this image belongs to |
| image required | string <binary> Photo of the damage |
{- "status": "OK"
}Uploads an image associated with a completed or ending trip (e.g. parking verification).
| systemId required | string |
| tripId required | number The ID of the trip the image is associated with |
| imageType required | string The type of end-of-trip image |
| image required | string <binary> Photo taken at the end of the trip |
{- "status": "OK"
}Returns a trip based on ID
| systemId required | string |
| tripId required | number |
{- "type": "MAAS_TRIP_STATE_UPDATE",
- "id": 12345,
- "clientId": "Client12345",
- "userId": "User12345",
- "state": "cancelled",
- "stateTransitionReason": "cancelled_by_administrator",
- "stateTransitionComment": "string",
- "startedAtLocation": {
- "timestamp": "string",
- "geoPosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "statePosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "dock": {
- "dockGroupId": 2232,
- "dockGroupName": "Station 1",
- "dockNumber": 21
}
}, - "vehicle": {
- "id": 12345,
- "name": "Bike 1",
- "number": "42",
- "vehicleCategory": "ebike",
- "model": {
- "id": 101,
- "name": "Model X1",
- "type": "bike",
- "manufacturer": "Urban Sharing",
- "brand": "UrbanWheels",
- "model": "X1",
- "category": "ebike",
- "lockVisual": "ring_lock"
}, - "status": "available",
- "state": "docked",
- "unavailabilityReasons": [
- "dock_broken",
- "vehicle_broken"
], - "batteryCharge": 70,
- "batteryRange": 4000,
- "location": {
- "timestamp": "string",
- "geoPosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "statePosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "dock": {
- "dockGroupId": 2232,
- "dockGroupName": "Station 1",
- "dockNumber": 21
}
}, - "qrCode": "string",
- "isReserved": true,
- "trip": { }
}, - "endedAtLocation": {
- "timestamp": "string",
- "geoPosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "statePosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "streetAddress": "Karl Johans gate 1"
}, - "dock": {
- "dockGroupId": 2232,
- "dockGroupName": "Station 1",
- "dockNumber": 21
}
}, - "totalDistance": 12.55,
- "updatedAt": "string",
- "pricing": {
- "source": "invoice",
- "totalAmountIncludingVat": 3600,
- "currency": "NOK",
- "tripDurationMins": 45,
- "freeMinutesFromPriceMatrix": 30,
- "freeMinutesPerDayUsed": 15,
- "freeMinutesPerDayRemaining": 30,
- "orderLines": [
- {
- "type": "trip",
- "quantity": 3,
- "amount": 1200,
- "vatRate": 0.25
}
]
}
}Updates a trip.
| systemId required | string |
| tripId required | number |
| update required | string Enum: "pause" "resume" "cancel" "end" Set a new trip state. Note that not all states are supported by all vehicle types. | ||||||||||
object User position | |||||||||||
| |||||||||||
| stateTransitionReason | string Enum: "cancelled_by_administrator" "time_limit_exceeded" "vehicle_communication_timeout" "station_communication_timeout" "user_interaction_timeout" "vehicle_taken_by_administrator" "vehicle_moved_to_operation_location" "vehicle_decommissioned" "illegal_parking" The reason why the state transistioned to the current state. | ||||||||||
| stateTransitionComment | string Text describing the reason why the transition occurred | ||||||||||
{- "update": "end",
- "userPosition": {
- "geometry": {
- "type": "Point",
- "coordinates": [
- 10.752245,
- 59.913868
]
}, - "accuracyRadiusMeters": 12
}, - "stateTransitionReason": "cancelled_by_administrator",
- "stateTransitionComment": "string"
}{- "code": "invalid_location",
- "message": "An error occured"
}{- "data": [
- {
- "id": 1,
- "createdAt": "string",
- "updatedAt": "string",
- "name": "Premium",
- "enabled": true,
- "price": 10.99,
- "durationMethod": "absolute",
- "durationMins": 60,
- "vatRate": 0.21,
- "renewOptMethod": "disabled",
- "isRenewable": false,
- "purchasableFrom": "string",
- "purchasableTo": "string",
- "validFrom": "string",
- "validTo": "string",
- "purchasable": true,
- "sortIndex": 1,
- "freeMinutesPerDay": 60,
- "freeFloatingDockingFeeAmount": 1,
- "priceMatrices": [
- {
- "createdAt": "string",
- "updatedAt": "string",
- "vehicleCategory": "bike",
- "type": "trip",
- "priceMatrix": {
- "createdAt": "string",
- "updatedAt": "string",
- "title": "Standard Pricing",
- "lastStepInfinite": false,
- "penalty": {
- "points": 2,
- "penaltyAfterMinutes": 60
}, - "priceMatrixItems": [
- {
- "createdAt": "string",
- "updatedAt": "string",
- "type": "period",
- "price": 42.42,
- "quantity": 10,
- "minutes": 60,
- "index": 1
}
]
}
}
], - "nameTranslations": {
- "en": "Day pass",
- "de": "Tageskarte"
}, - "slugTranslations": {
- "en": "day-pass",
- "de": "tageskarte"
}, - "descriptionTextTranslations": {
- "en": "Day pass",
- "de": "Tageskarte"
}, - "descriptionBeforePurchasableTranslations": {
- "en": "Day pass",
- "de": "Tageskarte"
}, - "purchaseChannels": [
- "app",
- "web"
]
}
]
}Returns a reservation based on the id
| systemId required | string |
| reservationId required | string |
{- "id": 2,
- "vehicleId": 2,
- "dockGroupId": 2,
- "userId": "435432",
- "clientId": "Client12345",
- "createdAt": "string",
- "updatedAt": "string",
- "expiresAt": "string",
- "completedAt": "string",
- "cancelledAt": "string"
}Cancels an existing vehicle reservation
| systemId required | string |
| reservationId required | string |
{- "id": 2,
- "vehicleId": 2,
- "dockGroupId": 2,
- "userId": "435432",
- "clientId": "Client12345",
- "createdAt": "string",
- "updatedAt": "string",
- "expiresAt": "string",
- "completedAt": "string",
- "cancelledAt": "string"
}Return a specific system and its relevant information based on the system ID.
| systemId required | string |
| superpowers | boolean Whether this request is on behalf of a user with superpowers, which may return more information than for a general public user |
{- "data": {
- "id": "system-123",
- "name": "Urban Mobility System",
- "description": "System for managing fleet operations.",
- "type": "mobility",
- "appDeepLinkingPrefix": "myapp://system/",
- "countryCode": "SG",
- "cityName": "Singapore",
- "defaultLanguageCode": "en",
- "languageCodes": [
- "en",
- "zh",
- "ms"
], - "publicDomain": "example.com",
- "operator": "Urban Mobility Operator",
- "contactEmail": "contact@example.com",
- "timezone": "Asia/Singapore",
- "sanityProjectId": "sanity123",
- "sanityBusinessProjectId": "sanity-business-456",
- "sanityDataset": "production",
- "currency": "SGD",
- "colourKey": "#3399FF",
- "publicTripHistory": false,
- "rfidAssignMethod": [
- "automatic",
- "manual"
], - "hasVirtualCapabilityPreference": false,
- "registrationEnabled": true,
- "registrationFeeEnabled": false,
- "geometry": {
- "boundary": {
- "coordinates": [
- "string"
], - "type": "Polygon"
}
}, - "featureToggles": {
- "pauseTripEnabled": { },
- "physicalDockGroupRequestVehicleEnabled": { },
- "virtualDockGroupRequestVehicleEnabled": { },
- "hybridDockGroupRequestVehicleEnabled": { },
- "canUnlockOutsideOpeningHours": { },
- "qrCodeScanEnabled": { },
- "standaloneQrCodeScanEnabled": { },
- "freeFloatingEnabled": { },
- "vehicleReservationEnabled": { },
- "showSystemBoundaryEnabled": { },
- "pauseTripInsideLockFenceEnabled": { },
- "showVehicleListForDockGroupEnabled": { },
- "enableAppIntegrationPage": { },
- "showAgreedToSendDataToThirdPartiesCheckbox": { },
- "userEmailConfirmationRequired": { },
- "lateDeliverySmsAlertEnabled": { },
- "suspendDebtorEnabled": { }
}, - "season": {
- "inSeason": true,
- "currentSeason": {
- "startDate": "string",
- "endDate": "string"
}, - "nextSeason": {
- "startDate": "string",
- "endDate": "string"
}, - "previousSeason": {
- "startDate": "string",
- "endDate": "string"
}, - "insideOpeningHours": true,
- "closedReason": "string",
- "workingHours": {
- "startTime": "string",
- "endTime": "string"
}, - "openDate": "string"
}, - "contactNumber": {
- "countryCode": "string",
- "formatted": "string"
}, - "availablePaymentMethods": [
- "string"
], - "crmAppId": { },
- "legalConsents": [
- "string"
], - "paymentProvider": { },
- "registrationFeeAmount": 0,
- "defaultProductId": 42,
- "walletEnablement": "disabled",
- "walletMinBalance": 0,
- "vehicleReservationPeriodMins": 0,
- "vehicleReservationLimitConcurrent": 0
}
}{- "data": [
- {
- "id": "system-alert-123",
- "createdAt": "string",
- "updatedAt": "string",
- "administratorId": 0,
- "sanityId": "string",
- "resolvedAt": "string",
- "resolvedBy": 0,
- "systemAlertType": "system_closure",
- "visibility": "public_all",
- "incidentStartTime": "string",
- "incidentEndTime": "string",
- "publishedStartTime": "string",
- "publishedEndTime": "string",
- "isDismissible": true,
- "pushNotificationsEnabled": true,
- "titleTranslations": { },
- "descriptionTranslations": { },
- "slugTranslations": { },
- "updates": [
- {
- "id": 1,
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "administratorId": 0,
- "sanityId": "string",
- "titleTranslations": { },
- "descriptionTranslations": { }
}
], - "affectedDockGroups": [
- 0
]
}
]
}Returns all systems available for your organization. Optionally filter by position to only return systems whose geometry contains the given coordinates.
| systemId required | string |
| position | string Example: position=59.9139,10.7522 Filter systems by position. Format: "lat,lng" (e.g., "59.9139,10.7522"). Only returns systems whose geometry contains this position. |
{- "data": [
- {
- "id": "system-123",
- "name": "Urban Mobility System",
- "description": "System for managing fleet operations.",
- "type": "mobility",
- "countryCode": "SG",
- "cityName": "Singapore",
- "defaultLanguageCode": "en",
- "languageCodes": [
- "en",
- "zh",
- "ms"
], - "publicDomain": "example.com",
- "operator": "Urban Mobility Operator",
- "timezone": "Asia/Singapore",
- "currency": "SGD",
- "colourKey": "#3399FF",
- "geometry": {
- "boundary": {
- "coordinates": [
- "string"
], - "type": "Polygon"
}
}
}
]
}Creates a subscription order for the specified product.
| systemId required | string |
| locale required | string |
| productId required | string Product ID to create subscription for |
| enableAutoRenew | boolean Enable auto-renewal for this subscription order |
{- "productId": "string",
- "enableAutoRenew": true
}{- "id": "string",
- "token": "string",
- "status": "pending",
- "amount": 0,
- "amountWithoutVat": 0,
- "currency": "string",
- "createdAt": "string",
- "completedAt": "string",
- "unpaid": true,
- "vatAmount": 0,
- "vatRate": 0,
- "availablePaymentMethods": [
- "card"
], - "orderLines": [
- {
- "id": "string",
- "quantity": 0,
- "unitPrice": 0,
- "totalPrice": 0,
- "product": {
- "id": "string",
- "name": "string"
}
}
], - "discount": {
- "code": "string",
- "discountAmount": {
- "amount": 0,
- "percentage": 0
}
}
}Creates an order to deposit funds into the user wallet.
| systemId required | string |
| locale required | string |
| amount | number Amount to deposit into wallet |
{- "amount": 0
}{- "id": "string",
- "token": "string",
- "status": "pending",
- "amount": 0,
- "amountWithoutVat": 0,
- "currency": "string",
- "createdAt": "string",
- "completedAt": "string",
- "unpaid": true,
- "vatAmount": 0,
- "vatRate": 0,
- "availablePaymentMethods": [
- "card"
], - "orderLines": [
- {
- "id": "string",
- "quantity": 0,
- "unitPrice": 0,
- "totalPrice": 0,
- "product": {
- "id": "string",
- "name": "string"
}
}
], - "discount": {
- "code": "string",
- "discountAmount": {
- "amount": 0,
- "percentage": 0
}
}
}Creates an order for voucher/gift codes.
| systemId required | string |
| locale required | string |
| customerEmail required | string Customer email address | ||||
required | Array of objects (OrderLineInputDto) Order lines with product and quantity | ||||
Array
| |||||
| receiptEmail | string Email to send receipt to | ||||
{- "customerEmail": "string",
- "orderLines": [
- {
- "productId": "string",
- "quantity": 1
}
], - "receiptEmail": "string"
}{- "id": "string",
- "token": "string",
- "status": "pending",
- "amount": 0,
- "amountWithoutVat": 0,
- "currency": "string",
- "createdAt": "string",
- "completedAt": "string",
- "unpaid": true,
- "vatAmount": 0,
- "vatRate": 0,
- "availablePaymentMethods": [
- "card"
], - "orderLines": [
- {
- "id": "string",
- "quantity": 0,
- "unitPrice": 0,
- "totalPrice": 0,
- "product": {
- "id": "string",
- "name": "string"
}
}
], - "discount": {
- "code": "string",
- "discountAmount": {
- "amount": 0,
- "percentage": 0
}
}
}Returns a paginated list of user orders.
| systemId required | string |
| statuses | Array of strings Items Enum: "pending" "completed" "cancelled" "failed" Filter by order statuses |
| limit | number Default: 20 Maximum number of results to return |
| offset | number Default: 0 Number of results to skip |
| orderBy | string Enum: "createdAt" "completedAt" Field to sort by |
| orderDirection | string Enum: "asc" "desc" Sort direction |
{- "rows": [
- {
- "id": "string",
- "token": "string",
- "status": "pending",
- "amount": 0,
- "amountWithoutVat": 0,
- "currency": "string",
- "createdAt": "string",
- "completedAt": "string",
- "unpaid": true,
- "vatAmount": 0,
- "vatRate": 0,
- "availablePaymentMethods": [
- "card"
], - "orderLines": [
- {
- "id": "string",
- "quantity": 0,
- "unitPrice": 0,
- "totalPrice": 0,
- "product": {
- "id": "string",
- "name": "string"
}
}
], - "discount": {
- "code": "string",
- "discountAmount": {
- "amount": 0,
- "percentage": 0
}
}
}
], - "paginationInfo": {
- "total": 0,
- "limit": 0,
- "offset": 0
}
}Returns a single order by its token.
| systemId required | string |
| token required | string |
{- "id": "string",
- "token": "string",
- "status": "pending",
- "amount": 0,
- "amountWithoutVat": 0,
- "currency": "string",
- "createdAt": "string",
- "completedAt": "string",
- "unpaid": true,
- "vatAmount": 0,
- "vatRate": 0,
- "availablePaymentMethods": [
- "card"
], - "orderLines": [
- {
- "id": "string",
- "quantity": 0,
- "unitPrice": 0,
- "totalPrice": 0,
- "product": {
- "id": "string",
- "name": "string"
}
}
], - "discount": {
- "code": "string",
- "discountAmount": {
- "amount": 0,
- "percentage": 0
}
}
}Applies a discount code to an existing unpaid order.
| systemId required | string |
| orderId required | string |
| code required | string Discount code to apply |
{- "code": "string"
}{- "id": "string",
- "token": "string",
- "status": "pending",
- "amount": 0,
- "amountWithoutVat": 0,
- "currency": "string",
- "createdAt": "string",
- "completedAt": "string",
- "unpaid": true,
- "vatAmount": 0,
- "vatRate": 0,
- "availablePaymentMethods": [
- "card"
], - "orderLines": [
- {
- "id": "string",
- "quantity": 0,
- "unitPrice": 0,
- "totalPrice": 0,
- "product": {
- "id": "string",
- "name": "string"
}
}
], - "discount": {
- "code": "string",
- "discountAmount": {
- "amount": 0,
- "percentage": 0
}
}
}Removes the applied discount code from an order.
| systemId required | string |
| orderId required | string |
{- "id": "string",
- "token": "string",
- "status": "pending",
- "amount": 0,
- "amountWithoutVat": 0,
- "currency": "string",
- "createdAt": "string",
- "completedAt": "string",
- "unpaid": true,
- "vatAmount": 0,
- "vatRate": 0,
- "availablePaymentMethods": [
- "card"
], - "orderLines": [
- {
- "id": "string",
- "quantity": 0,
- "unitPrice": 0,
- "totalPrice": 0,
- "product": {
- "id": "string",
- "name": "string"
}
}
], - "discount": {
- "code": "string",
- "discountAmount": {
- "amount": 0,
- "percentage": 0
}
}
}Initiates payment for an order or invoice.
| systemId required | string |
| locale required | string |
| documentId required | string Document ID (order or invoice ID) | ||||||
| documentType required | string Enum: "order" "invoice" Document type | ||||||
required | object Payment parameters | ||||||
| |||||||
{- "documentId": "string",
- "documentType": "order",
- "params": {
- "selectedPaymentMethod": "card",
- "enableAutoRenew": true,
- "save": true
}
}{- "publishableKey": "string",
- "clientSecret": "string",
- "customerRef": "string",
- "customerKey": "string",
- "webUrl": "string",
- "paymentMethodRef": "string",
- "orderToken": "string",
- "state": "CREATED",
- "errorCode": "string",
- "message": "string",
- "description": "string"
}Returns the current payment methods for the user.
| systemId required | string |
{- "methods": [
- {
- "type": "card",
- "card": {
- "brand": "visa",
- "last4": "4242",
- "expMonth": 12,
- "expYear": 2025,
- "isExpired": true
}, - "wallet": {
- "balance": 0
}
}
]
}Initiates the flow to add a new payment method.
| systemId required | string |
| locale required | string |
object Redirect paths | |||||
| |||||
{- "paths": {
- "successPath": "string",
- "cancelPath": "string"
}
}{- "webUrl": "string",
- "provider": "stripe",
- "url": "string",
- "setupToken": "string",
- "sessionId": "string",
- "publishableKey": "string",
- "clientSecret": "string"
}Initiates the flow to replace the existing payment method.
| systemId required | string |
| locale required | string |
object Redirect paths | |||||
| |||||
{- "paths": {
- "successPath": "string",
- "cancelPath": "string"
}
}{- "webUrl": "string",
- "provider": "stripe",
- "url": "string",
- "setupToken": "string",
- "sessionId": "string",
- "publishableKey": "string",
- "clientSecret": "string"
}