POST api/Bike/CaptureService
Used to record services not executed by a linked partner or for historic services at a linked partner Please provide the information as well as what gear was serviced When used to record info against a Jobcard (Service request), please fill in the ServiceRequestID = jobcard.ID, else leave servicerequestid zero This function is used to capture a new service log.
Request Information
URI Parameters
None.
Body Parameters
CaptureBikeServiceModel| Name | Description | Type | Additional information |
|---|---|---|---|
| BikeID |
Links to bike |
integer |
None. |
| PartnerID |
Links to partner (Cycle shop): When a service is done at a cycle shop that runs hubtiger, this field is filled in, else the CycleshopDescription field is filled in |
integer |
None. |
| CycleshopDescription |
When a service is done at a cycle shop that runs hubtiger, PartnerID is filled in, else the CycleshopDescription field is filled in |
string |
None. |
| ServiceRequestID |
ServiceRequestID (Jobcard) to be filled in when this is done as part of a partner service, not for capturing historic or services done by "not linked" cycle shops |
integer |
None. |
| ServiceDate |
Date of service |
date |
None. |
| Rating |
Provide a 1, 2,3, 4 or 5 start rating for the service |
integer |
None. |
| Notes |
Provide an optional note on your service experience and work done |
string |
None. |
| ServicedGear |
Only provide list of gear which was serviced |
Collection of CaptureGearServiceModel |
None. |
Request Formats
application/json, text/json
{
"BikeID": 1,
"PartnerID": 2,
"CycleshopDescription": "sample string 3",
"ServiceRequestID": 4,
"ServiceDate": "2026-03-21T11:23:23.8905969+00:00",
"Rating": 6,
"Notes": "sample string 7",
"ServicedGear": [
{
"GearID": 1,
"KmServiceInterval": 2,
"MinutesServiceInterval": 3,
"Replaced": true,
"Replaced_Manufacturer": "sample string 5",
"Replaced_Model": "sample string 6",
"Replaced_Description": "sample string 7",
"InvoiceLineItemID": 8
},
{
"GearID": 1,
"KmServiceInterval": 2,
"MinutesServiceInterval": 3,
"Replaced": true,
"Replaced_Manufacturer": "sample string 5",
"Replaced_Model": "sample string 6",
"Replaced_Description": "sample string 7",
"InvoiceLineItemID": 8
}
]
}
application/xml, text/xml
<CaptureBikeServiceModel xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Hub.Server.Models.DTO">
<BikeID>1</BikeID>
<CycleshopDescription>sample string 3</CycleshopDescription>
<Notes>sample string 7</Notes>
<PartnerID>2</PartnerID>
<Rating>6</Rating>
<ServiceDate>2026-03-21T11:23:23.8905969+00:00</ServiceDate>
<ServiceRequestID>4</ServiceRequestID>
<ServicedGear>
<CaptureGearServiceModel>
<GearID>1</GearID>
<InvoiceLineItemID>8</InvoiceLineItemID>
<KmServiceInterval>2</KmServiceInterval>
<MinutesServiceInterval>3</MinutesServiceInterval>
<Replaced>true</Replaced>
<Replaced_Description>sample string 7</Replaced_Description>
<Replaced_Manufacturer>sample string 5</Replaced_Manufacturer>
<Replaced_Model>sample string 6</Replaced_Model>
</CaptureGearServiceModel>
<CaptureGearServiceModel>
<GearID>1</GearID>
<InvoiceLineItemID>8</InvoiceLineItemID>
<KmServiceInterval>2</KmServiceInterval>
<MinutesServiceInterval>3</MinutesServiceInterval>
<Replaced>true</Replaced>
<Replaced_Description>sample string 7</Replaced_Description>
<Replaced_Manufacturer>sample string 5</Replaced_Manufacturer>
<Replaced_Model>sample string 6</Replaced_Model>
</CaptureGearServiceModel>
</ServicedGear>
</CaptureBikeServiceModel>
application/x-www-form-urlencoded
Sample not available.
Response Information
Resource Description
BikeModel| Name | Description | Type | Additional information |
|---|---|---|---|
| ID |
When adding a bike, ensure id = 0 |
integer |
None. |
| TypeID | integer |
None. |
|
| Type |
Readonly property returned when you fetch a bike |
string |
None. |
| UserID |
Links bike to user |
integer |
None. |
| CyclistDescription |
Readonly property returned when you fetch a bike |
string |
None. |
| RefNo | string |
None. |
|
| SerialNo | string |
None. |
|
| Manufacturer | string |
None. |
|
| Model | string |
None. |
|
| Colour | string |
None. |
|
| ModelYear | integer |
None. |
|
| Km |
This is a calculated value - calculated from the sum of rides. To start off with a number of kms, insert one ride entry in the past with the required no of kms (note that rides are in meters) |
decimal number |
None. |
| MovingTime |
This is a calculated value - calculated from the sum of rides. Minutes |
integer |
None. |
| LastService | date |
None. |
|
| DateBought | date |
None. |
|
| StatusID |
Valid vales = 1, 2: lookup list of values with descriptions can be found on api/lookup |
integer |
None. |
| Status |
Readonly property returned when you fetch a bike |
string |
None. |
| MinutesToNextService |
Calculated based on service intervals of gear items, when they were added, and rides taken since, returns value of first item requiring service |
integer |
None. |
| HoursToNextService | integer |
None. |
|
| KmToNextService |
Calculated based on service intervals of gear items, when they were added, and rides taken since, returns value of first item requiring service |
integer |
None. |
| KmSinceLastService |
Calculated field based on last service date and rides since |
integer |
None. |
| MovingTimeSinceLastService |
Calculated field based on last service date and rides since in minutes |
integer |
None. |
| ImageURL |
Field is populated by uploading an image for a bike. |
string |
None. |
| ServicePercentage |
Calculated from the service percentages on gear |
integer |
None. |
| Strava_Id | string |
None. |
|
| IntegrationStatusID | integer |
None. |
|
| OpeningKm | integer |
None. |
|
| OpeningHours | integer |
None. |
|
| UnitsOfMeasureID | integer |
None. |
|
| HasKMBasedGear | boolean |
None. |
|
| HasHourBasedGear | boolean |
None. |
|
| BikeSize | string |
None. |
|
| PartnerType | integer |
None. |
Response Formats
application/json, text/json
{
"ID": 1,
"TypeID": 2,
"Type": "sample string 3",
"UserID": 4,
"CyclistDescription": "sample string 5",
"RefNo": "sample string 6",
"SerialNo": "sample string 7",
"Manufacturer": "sample string 8",
"Model": "sample string 9",
"Colour": "sample string 10",
"ModelYear": 11,
"Km": 12.1,
"MovingTime": 13,
"LastService": "2026-03-21T11:23:23.9062132+00:00",
"DateBought": "2026-03-21T11:23:23.9062132+00:00",
"StatusID": 14,
"Status": "sample string 15",
"MinutesToNextService": 16,
"HoursToNextService": 17,
"KmToNextService": 18,
"KmSinceLastService": 19,
"MovingTimeSinceLastService": 20,
"ImageURL": "sample string 21",
"ServicePercentage": 22,
"Strava_Id": "sample string 23",
"IntegrationStatusID": 24,
"OpeningKm": 25,
"OpeningHours": 26,
"UnitsOfMeasureID": 27,
"HasKMBasedGear": true,
"HasHourBasedGear": true,
"BikeSize": "sample string 30",
"PartnerType": 31
}
application/xml, text/xml
<BikeModel xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Hub.Server.Models.DTO"> <BikeSize>sample string 30</BikeSize> <Colour>sample string 10</Colour> <CyclistDescription>sample string 5</CyclistDescription> <DateBought>2026-03-21T11:23:23.9062132+00:00</DateBought> <HasHourBasedGear>true</HasHourBasedGear> <HasKMBasedGear>true</HasKMBasedGear> <HoursToNextService>17</HoursToNextService> <ID>1</ID> <ImageURL>sample string 21</ImageURL> <IntegrationStatusID>24</IntegrationStatusID> <Km>12.1</Km> <KmSinceLastService>19</KmSinceLastService> <KmToNextService>18</KmToNextService> <LastService>2026-03-21T11:23:23.9062132+00:00</LastService> <Manufacturer>sample string 8</Manufacturer> <MinutesToNextService>16</MinutesToNextService> <Model>sample string 9</Model> <ModelYear>11</ModelYear> <MovingTime>13</MovingTime> <MovingTimeSinceLastService>20</MovingTimeSinceLastService> <OpeningHours>26</OpeningHours> <OpeningKm>25</OpeningKm> <PartnerType>31</PartnerType> <RefNo>sample string 6</RefNo> <SerialNo>sample string 7</SerialNo> <ServicePercentage>22</ServicePercentage> <Status>sample string 15</Status> <StatusID>14</StatusID> <Strava_Id>sample string 23</Strava_Id> <Type>sample string 3</Type> <TypeID>2</TypeID> <UnitsOfMeasureID>27</UnitsOfMeasureID> <UserID>4</UserID> </BikeModel>