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.
HttpCode: 200
Content-Type: application/json
Body:
{
"result": [],
"error": null,
"isSuccessful": true,
"message": null
}
Endpoints
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:
POST /capi/rest/api/Account/GetToken HTTP/1.1
Host: https://onprem-api.ford.com.tr
Content-Type: application/json
{
"clientId": "{your-client-id}",
"clientSecret": "{your-client-secret}"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"result": {
"tokenType": "Bearer",
"expiresIn": 10,
"accessToken": "Token...."
},
"error": null,
"isSuccessful": true,
"message": null
}
VehicleSignal API
Returns the latest signal information from the vehicles
Here is an example of a POST request to an VehicleSignal API:
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}
{
"vinList": ["VehicleIdentificationNo"],
"parameters": ["Battery", "Tpms.Row1"]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"result": [
{
"vin": "VehicleIdentificationNo",
"data": {
"signals": [
{
"path": "Battery.StateOfCharge",
"value": "75.0",
"timestamp": "04081427022025"
},
{
"path": "Tpms.Row1.Tire1.Pressure",
"value": "65533.0",
"timestamp": "04081427022025"
}
]
}
}
],
"error": null,
"isSuccessful": true,
"message": null
}
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}
{
"vinList": ["VehicleIdentificationNo"],
"parameters": []
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"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
Returns the vehicle's connectivity settings.
Here is an example of a POST request to an VehicleConnectivity API:
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}
{
"vinList": ["VehicleIdentificationNo"],
"parameters": ["CCS"]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"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
}
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}
{
"vinList": ["VehicleIdentificationNo"],
"parameters": [""]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"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
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:
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}
{
"vinList": ["VehicleIdentificationNo"],
"parameters": ["Uptime.EngineOilLevel"]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"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
}
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}
{
"vinList": ["VehicleIdentificationNo"],
"parameters": [""]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"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
Returns the vehicle's inventory information.
Here is an example of a POST request to an VehicleInventory API:
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}
{
"vinList": ["VehicleIdentificationNo"],
"parameters": [
"Inventory.Brand.Name",
"Inventory.Model"
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"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
}
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}
{
"vinList": ["VehicleIdentificationNo"],
"parameters": [""]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"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
Returns the vehicle's insight information.
Here is an example of a POST request to an VehicleInsight API:
POST /capi/rest/api/Vehicle/Insight HTTP/1.1
Host: https://onprem-api.ford.com.tr
Content-Type: application/json
Authorization: Bearer {your-access-token}
{
"vinList": ["VehicleIdentificationNo"],
"parameters": ["Insight.Odometer"],
"startTime": "00000001072025",
"endTime": "00000030082025"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"result": [
{
"vin": "VehicleIdentificationNo",
"data": {
"insights": [
{
"path": "Insight.Odometer",
"value": "209855",
"startTime": "00000001072025",
"endTime": "00000030082025"
}
]
}
}
],
"error": null,
"isSuccessful": true,
"message": null
}
POST /capi/rest/api/Vehicle/Insight HTTP/1.1
Host: https://onprem-api.ford.com.tr
Content-Type: application/json
Authorization: Bearer {your-access-token}
{
"vinList": ["VehicleIdentificationNo"],
"parameters": [""],
"startTime": "00000001072025",
"endTime": "00000030082025"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"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
}
DTC API
Returns the current active DTCs (Diagnostic Trouble Codes) present in the vehicle.
Here is an example of a POST request to the DTC API:
POST /capi/rest/api/Vehicle/DTC HTTP/1.1
Host: https://onprem-api.ford.com.tr
Content-Type: application/json
Authorization: Bearer {your-access-token}
{
"vinList": ["VehicleIdentificationNo1"],
"parameters": ["DiagnosticTroubleCode"]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"result": [
{
"vin": "VehicleIdentificationNo1",
"data": {
"dtc": [
{
"path": "DiagnosticTroubleCode",
"value": {
"dtc": "1199-00",
"failureType": "0x11",
"ecu": "327168",
"status": "0x29",
"platform": "VR625_MY24",
"startDate": "40121413052026"
},
"timestamp": "44121114052026"
},
{
"path": "DiagnosticTroubleCode",
"value": {
"dtc": "1299-00",
"failureType": "0x19",
"ecu": "327168",
"status": "0x02",
"platform": "VR625_MY24",
"startDate": "40121413052026"
},
"timestamp": "44121114052026"
}
]
}
}
],
"error": null,
"isSuccessful": true,
"message": null
}
DTC Dictionary API
Returns the description and details of the given DTC codes from the dictionary. Supports language-specific descriptions via the languageCode parameter.
Here is an example of a POST request to the DTC Dictionary API:
POST /capi/rest/api/Vehicle/DTC/Dictionary HTTP/1.1
Host: https://onprem-api.ford.com.tr
Content-Type: application/json
Authorization: Bearer {your-access-token}
{
"languageCode": "en-US",
"parameters": [
{
"dtc": "42A13-13",
"ecu": "270592",
"platform": "VR625_MY24",
"failureType": "0x27",
"status": "0x01"
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"result": [
{
"description": "Right Turn Rear Signal Output Open Circuit",
"dtc": "42A13-13",
"ecu": "270592",
"failureType": "0x27",
"status": "0x01",
"platform": "VR625_MY24",
"module": "BCM"
}
],
"error": null,
"isSuccessful": true,
"message": null
}
VehicleConfiguration API
Applies configuration parameters to vehicles (e.g. enabling/disabling features). Each vehicle group shares the same configuration set. VINs are automatically classified as PCCV or Truck and routed to the corresponding downstream service.
Here is an example of a POST request to the VehicleConfig API:
POST /capi/rest/api/Vehicle/Config HTTP/1.1
Host: https://onprem-api.ford.com.tr
Content-Type: application/json
Authorization: Bearer {your-access-token}
{
"vins": ["NM0KBGSWUAT099193"],
"configs": [
{
"parameter": "Configuration.FleetMode",
"value": "ON"
}
]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"result": [
{
"vin": "NM0KBGSWUAT099193",
"parameter": "Configuration.FleetMode",
"value": "ON",
"isSuccessful": true,
"message": null
}
],
"error": null,
"isSuccessful": true,
"message": null
}
Streaming Services
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}
// Import capi_proto (proto2) file
• The lock icon near the address bar in your API client indicates whether the connection is secure (HTTPS). Please be sure to check this before invoke the stream.
1. Open your API client 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.