General
CAPI is a platform envisaged by Ford Otosan to meet its connected vehicle integration needs. The platform is intended to go beyond generic fleet management and is intended to provide services to customers in managing such as vehicle health.Ford Otosan IT team support the CAPI solution that is hosted in Otosan IT Systems
If you get a response like the one below, the value you are trying to query does not exist for the vehicle you are querying or there may be a typo in your parameters. In some rare cases, it may have been created as a result of an error. If you are sure that the value you are querying should exist, please contact us.
Response:
HttpCode:200
Content-Type: application/json
Body:
{
"result": [],
"error": null,
"isSuccessful": true,
"message": null
} null
}
Endpoints
Login API
Login API
Capi requests require a Bearer Token in the Authorization header.You can get your bearer token via Login API.
Here is an example of a POST request to an Login API:
Succesfull Response Case:
Request:
POST capi/rest/api/Account/GetToken HTTP/1.1
Host: https://onprem-api.ford.com.tr/
Content-Type: application/json
Body:
{
"clientId": "{your-client-id}",
"clientSecret": "{your-client-secret}"
}
Response:
HttpCode:200
Content-Type: application/json
Body:
{
"result": {
"tokenType": "Bearer",
"expiresIn": 10,
"accessToken": "Token...."
},
"error": null,
"isSuccessful": true,
"message": null
}
VehicleSignal API
VehicleSignal API
Returns the latest signal information from the vehicles
Here is an example of a POST request to an VehicleSignal API:
Succesfull Response Case:
Request:
POST /capi/rest/api/Vehicle/Signal HTTP/1.1
Host: https://onprem-api.ford.com.tr
Content-Type: application/json
Authorization: Bearer {your-access-token}
Body:
{
"vinList": [
"VehicleIdentificationNo"
],
"parameters": [
"Battery",
"Tpms.Row1"
]
}
Response:
HttpCode:200
Content-Type: application/json
Body:
{
"result": [
{
"vin": "VehicleIdentificationNo",
"data": {
"signals": [
{
"path": "Battery.StateOfCharge",
"value": "75.0",
"timestamp": "04081427022025"
},
{
"path": "Tpms.Row1.Tire1.Pressure",
"value": "65533.0",
"timestamp": "04081427022025"
},
{
"path": "Tpms.Row1.Tire2.Pressure",
"value": "207.0",
"timestamp": "04081427022025"
}
]
}
}
],
"error": null,
"isSuccessful": true,
"message": null
}
Error Response Case:
Request:
POST /capi/rest/api/Vehicle/Signal HTTP/1.1
Host: https://onprem-api.ford.com.tr
Content-Type: application/json
Authorization: Bearer {your-access-token}
Body:
{
"vinList": [
"VehicleIdentificationNo"
],
"parameters": []
}
Response:
HttpCode:200
Content-Type: application/json
Body:
{
"result": null,
"error": {
"code": 400,
"correlationId": "112a423d-b7f9-466d-b5c4-7c82755dcbf5",
"details": null,
"message": "Please check your request paramaters.",
"validationErrors": null
},
"isSuccessful": false,
"message": null
}
VehicleConnectivity API
VehicleConnectivity API
Returns the vehicle's connectivity settings.
Here is an example of a POST request to an VehicleConnectivity API:
Succesfull Response Case:
Request:
POST /capi/rest/api/Vehicle/Connectivity HTTP/1.1
Host: https://onprem-api.ford.com.tr
Content-Type: application/json
Authorization: Bearer {your-access-token}
Body:
{
"vinList": [
"VehicleIdentificationNo"
],
"parameters": [
"CCS"
]
}
Response:
HttpCode:200
Content-Type: application/json
Body:
{
"result": [
{
"vin": "VehicleIdentificationNo",
"data": {
"connectivities": [
{
"path": "CCS.Connectivity",
"value": "true",
"timestamp": "35451711022025"
},
{
"path": "CCS.DriverBehaviour",
"value": "false",
"timestamp": "35451711022025"
},
{
"path": "CCS.Location",
"value": "false",
"timestamp": "35451711022025"
},
{
"path": "CCS.VehicleData",
"value": "true",
"timestamp": "35451711022025"
}
]
}
}
],
"error": null,
"isSuccessful": true,
"message": null
}
Error Response Case:
Request:
POST /capi/rest/api/Vehicle/Connectivity HTTP/1.1
Host: https://onprem-api.ford.com.tr
Content-Type: application/json
Authorization: Bearer {your-access-token}
Body:
{
"vinList": [
"VehicleIdentificationNo"
],
"parameters": [""]
}
Response:
HttpCode:200
Content-Type: application/json
Body:
{
"result": null,
"error": {
"code": 400,
"correlationId": "b5219106-4d7b-4d07-b2c3-81cc9a368d85",
"details": null,
"message": "Please check your request paramaters.",
"validationErrors": null
},
"isSuccessful": false,
"message": null
}
VehicleHealth API
VehicleHealth API
Returns the vehicle's health status.
Current statuses:
0 - Good
1 – Critical / Action Soon
2- Action Now
These statuses and parameters can be increased as needed.
Here is an example of a POST request to an VehicleHealth API:
Succesfull Response Case:
Request:
POST /capi/rest/api/Vehicle/Health HTTP/1.1
Host: https://onprem-api.ford.com.tr
Content-Type: application/json
Authorization: Bearer {your-access-token}
Body:
{
"vinList": [
"VehicleIdentificationNo"
],
"parameters": [
"Uptime.EngineOilLevel"
]
}
Response:
HttpCode:200
Content-Type: application/json
Body:
{
"result": [
{
"vin": "VehicleIdentificationNo",
"data": {
"healths": [
{
"path": "Uptime.EngineOilLevel",
"value": "0",
"timestamp": "42440209102025",
"signals": [
{
"path": "Engine.LowOilIndicatorStatus",
"value": "0.0",
"timestamp": "42440209102025"
}
]
}
]
}
}
],
"error": null,
"isSuccessful": true,
"message": null
}
Error Response Case:
Request:
POST /capi/rest/api/Vehicle/Health HTTP/1.1
Host: https://onprem-api.ford.com.tr
Content-Type: application/json
Authorization: Bearer {your-access-token}
Body:
{
"vinList": [
"VehicleIdentificationNo"
],
"parameters": [""]
}
Response:
HttpCode:200
Content-Type: application/json
Body:
{
"result": null,
"error": {
"code": 400,
"correlationId": "b5219106-4d7b-4d07-b2c3-81cc9a368d85",
"details": null,
"message": "Please check your request paramaters.",
"validationErrors": null
},
"isSuccessful": false,
"message": null
}
VehicleInventory API
VehicleInventory API
Returns the vehicle's inventory information.
Here is an example of a POST request to an VehicleInventory API:
Succesfull Response Case:
Request:
POST /capi/rest/api/Vehicle/Inventory HTTP/1.1
Host: https://onprem-api.ford.com.tr
Content-Type: application/json
Authorization: Bearer {your-access-token}
Body:
{
"vinList": [
"VehicleIdentificationNo"
],
"parameters": [
"Inventory.Brand.Name",
"Inventory.Model"
]
}
Response:
HttpCode:200
Content-Type: application/json
Body:
{
"result": [
{
"vin": "VehicleIdentificationNo",
"data": {
"inventories": [
{
"path": "Inventory.Brand.Name",
"value": "FORD",
"timestamp": "29261107112024"
},
{
"path": "Inventory.Model.Code",
"value": "MODELCODE",
"timestamp": "29261107112024"
},
{
"path": "Inventory.Model.Description",
"value": "TOURNEO COURIER TREND 1.5L DIZEL M/T 100PS",
"timestamp": "29261107112024"
},
{
"path": "Inventory.Model.Name",
"value": "TRANSIT COURIER (TOURNEO)",
"timestamp": "29261107112024"
},
{
"path": "Inventory.Model.Year",
"value": "2024",
"timestamp": "29261107112024"
}
]
}
}
],
"error": null,
"isSuccessful": true,
"message": null
}
Error Response Case:
Request:
POST /capi/rest/api/Vehicle/Inventory HTTP/1.1
Host: https://onprem-api.ford.com.tr
Content-Type: application/json
Authorization: Bearer {your-access-token}
Body:
{
"vinList": [
"VehicleIdentificationNo"
],
"parameters": [""]
}
Response:
HttpCode:200
Content-Type: application/json
Body:
{
"result": null,
"error": {
"code": 400,
"correlationId": "b5219106-4d7b-4d07-b2c3-81cc9a368d85",
"details": null,
"message": "Please check your request paramaters.",
"validationErrors": null
},
"isSuccessful": false,
"message": null
}
VehicleInsight API
VehicleInsight API
Returns the vehicle's insight information.
Here is an example of a POST request to an VehicleInsight API:
Succesfull Response Case:
Request:
POST /capi/rest/api/Vehicle/Insight HTTP/1.1
Host: https://test-onprem-api.ford.com.tr
Content-Type: application/json
Authorization: Bearer {your-access-token}
Body:
{
{
"vinList": [
"VehicleIdentificationNo"
],
"parameters": [
"Insight.Odometer"
],
"startTime": "00000001072025",
"endTime": "00000030082025"
}
Response:
HttpCode: 200
Content-Type: application/json
Body:
{
"result": [
{
"vin": "VehicleIdentificationNo",
"data": {
"insights": [
{
"path": "Insight.Odometer",
"value": "209855",
"startTime": "00000001072025",
"endTime": "00000030082025"
}
]
}
}
],
"error": null,
"isSuccessful": true,
"message": null
}
Error Response Case:
Request:
POST /capi/rest/api/Vehicle/Insight HTTP/1.1
Host: https://test-onprem-api.ford.com.tr
Content-Type: application/json
Authorization: Bearer {your-access-token}
Body:
{
"vinList": [
"VehicleIdentificationNo"
],
"parameters": [""],
"startTime": "00000001072025",
"endTime": "00000030082025"
}
Response:
HttpCode: 200
Content-Type: application/json
Body:
{
"result": null,
"error": {
"code": 500,
"correlationId": "36073f54-8f46-46ef-a37f-f4f40383021c",
"details": null,
"message": "Object reference not set to an instance of an object.",
"validationErrors": null
},
"isSuccessful": false,
"message": null
}
Streaming Services
Streaming Service
It provides instant data from the vehicle.
To use GRPC service capi.proto you need to use.
Here is an example of a GRPC request for data streaming
GRPC /StartStream HTTP/2
Host: grpc://capi-telematics.ford.com.tr
Authorization: Bearer {your-access-token}
You need to import capi_proto(proto2) file.
• The lock icon near the address bar in Postman indicates whether the connection is secure (HTTPS). Please be sure to check this before invoke the stream.
1. Open Postman and Create a New Request:
• Click on 'New' and select 'Request'.
• Name the request and select the 'gRPC' option.
2. Enter the gRPC Server URL:
• Enter the URL: grpc://capi-telematics.ford.com.tr.
3. Import the Proto File:
• Click on the 'Import' button and select the 'capi.proto' file.
4. Select the Method and Configure the Request:
• Select the 'StartStream' method from the list of available methods..
• Set the Authorization header with the Bearer token.
5• Check that you have marked the HTTPS lock symbol and invoke.