{"id":19748,"date":"2023-05-22T18:05:25","date_gmt":"2023-05-22T16:05:25","guid":{"rendered":"https:\/\/www.smartrace.de\/?page_id=19748"},"modified":"2024-12-17T09:22:57","modified_gmt":"2024-12-17T08:22:57","slug":"data-interface","status":"publish","type":"page","link":"https:\/\/www.smartrace.de\/en\/the-smartrace-manual\/data-interface\/","title":{"rendered":"The data interface"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\">The data interface<\/h1>\n\n\n\n<p class=\"gb-headline gb-headline-b4b00472\"><span class=\"gb-icon\"><svg viewBox=\"0 0 576 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M448 64V12c0-6.6-5.4-12-12-12H140c-6.6 0-12 5.4-12 12v52H12C5.4 64 0 69.4 0 76v61.6C0 199.7 68.1 272 160.7 285.7c29.4 60.7 73.7 90.3 111.3 96.9V480h-86c-14.4 0-26 11.7-26 26.1 0 3.3 2.7 5.9 6 5.9h244c3.3 0 6-2.6 6-5.9 0-14.4-11.6-26.1-26-26.1h-86v-97.4c37.7-6.6 81.9-36.2 111.3-96.9C508 272 576 199.6 576 137.6V76c0-6.6-5.4-12-12-12H448zM32 137.6V96h96v24c0 51.8 7 94.9 18.5 130.2C77.9 232.5 32 178 32 137.6zM288 352c-72 0-128-104-128-232V32h256v88c0 128-56 232-128 232zm256-214.4c0 40.4-46 94.9-114.5 112.6C441 214.9 448 171.8 448 120V96h96v41.6z\"><\/path><\/svg><\/span><span class=\"gb-headline-text\">This feature is part of the <strong>SmartRace Champions Club<\/strong>. This is a big package with cool extensions, which you can conveniently add in the form of a monthly or annual subscription in the app and of course cancel at any time. <a data-type=\"URL\" data-id=\"https:\/\/www.smartrace.de\/en\/add-ons\/\" href=\"https:\/\/www.smartrace.de\/en\/add-ons\/\" target=\"_blank\" rel=\"noreferrer noopener\">Learn more<\/a>.<\/span><\/p>\n\n\n\n<div class=\"alert alert-danger\"><strong>Important<\/strong>: Using the data interface requires programming knowledge. To be able to process the data provided by the interface, you need a web server to receive the data. If you cannot program or do not know how to set up a web server, the data interface is probably not for you.<\/div>\n\n\n\n<div class=\"alert alert-danger\"><strong>Important<\/strong>: If you have difficulties receiving data from the data interface with your server, please take a closer look at the <a href=\"#cors-issues-and-options-request\">section on possible CORS problems<\/a>.<\/div>\n\n\n\n<h3 class=\"gb-headline gb-headline-dc9b447d gb-headline-text\">What is the data interface?<\/h3>\n\n\n\n<p>The data interface offers you the possibility to connect external services or scripts to SmartRace. For this purpose, SmartRace sends certain data to a configurable endpoint on request and you can process this data as you wish. The data is sent as a <strong>POST request in JSON format.<\/strong><\/p>\n\n\n\n<p>The data interface is endpoint-agnostic, i.e. it is not aimed at specific endpoints with a specific data format. What you do with the data is entirely up to you.<\/p>\n\n\n\n<h3 class=\"gb-headline gb-headline-342cb3fe gb-headline-text\">Activation and configuration<\/h3>\n\n\n\n<p>The data interface is not activated by default. To activate it, go to Settings in the main menu of SmartRace and open the Data Interface tab. Use the button at the top to enable the interface, but you must also enable the events that you want the data interface to consider. Which data are contained in the individual events, you will learn below.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"737\" src=\"https:\/\/www.smartrace.de\/wp-content\/uploads\/2023\/05\/SmartRace-Data-Interface-1-1024x737.png\" alt=\"\" class=\"wp-image-19790\" title=\"widgets\" srcset=\"https:\/\/www.smartrace.de\/wp-content\/uploads\/2023\/05\/SmartRace-Data-Interface-1-1024x737.png 1024w, https:\/\/www.smartrace.de\/wp-content\/uploads\/2023\/05\/SmartRace-Data-Interface-1-300x216.png 300w, https:\/\/www.smartrace.de\/wp-content\/uploads\/2023\/05\/SmartRace-Data-Interface-1-768x553.png 768w, https:\/\/www.smartrace.de\/wp-content\/uploads\/2023\/05\/SmartRace-Data-Interface-1.png 1290w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Configuration of the data interface<\/figcaption><\/figure>\n\n\n\n<h3 class=\"gb-headline gb-headline-542c8b16 gb-headline-text\">The different events<\/h3>\n\n\n\n<p>You can select on which events the data interface should send data. Each event type triggers different actions in SmartRace. Which actions these are, you can see in the following:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Lap<\/strong>: A car finishes a lap. The first crossing of start\/finish does not trigger this event.<\/li>\n\n\n\n<li><strong>Event<\/strong>: A new event (qualifying\/race) is started or finished or the event status changes (e.g. suspended, jump start, etc.).<\/li>\n\n\n\n<li><strong>Weather<\/strong>: Weather changes and change announcements (&#8220;it will rain soon&#8221;, etc.)<\/li>\n\n\n\n<li><strong>VSC<\/strong>: Activating and deactivating the virtual safety car.<\/li>\n\n\n\n<li><strong>Penalty<\/strong>: Getting and serving penalties<\/li>\n\n\n\n<li><strong>Damage<\/strong>: Suffer and repair damage<\/li>\n\n\n\n<li><strong>Fuel<\/strong>: Fuel state updates.<\/li>\n\n\n\n<li><strong>Pitstops<\/strong>: Information about cars getting in and out of the pits.<\/li>\n\n\n\n<li><strong>Miscellaneous<\/strong>: Different information (see below):<\/li>\n<\/ul>\n\n\n\n<h3 class=\"gb-headline gb-headline-5a05f9ce gb-headline-text\">Sent data<\/h3>\n\n\n\n<p>The structure of the sent data is identical for each event and is built like this:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"time\": 1684769957969, \/\/ Time of the event as Unix timestamp\n  \"event_type\": \"ui.lap_update\", \/\/ Event name\n  \"event_data\": {\n      \/\/ The data of the event, see below\n  }\n}<\/code><\/pre>\n\n\n<div class=\"gb-container gb-container-f489acfd gb-tabs\" data-opened-tab=\"1\">\n<div class=\"gb-container gb-container-0784b7b3 gb-tabs__buttons\">\n\n<button class=\"gb-button gb-button-e7808738 gb-button-text gb-tabs__button gb-block-is-current\" id=\"gb-tab-button-e7808738\">Lap<\/button>\n\n\n\n<button class=\"gb-button gb-button-ce2d88da gb-button-text gb-tabs__button\" id=\"gb-tab-button-ce2d88da\">Event<\/button>\n\n\n\n<button class=\"gb-button gb-button-226a1eeb gb-button-text gb-tabs__button\" id=\"gb-tab-button-226a1eeb\">Weather<\/button>\n\n\n\n<button class=\"gb-button gb-button-3fd54a5c gb-button-text gb-tabs__button\" id=\"gb-tab-button-3fd54a5c\">VSC<\/button>\n\n\n\n<button class=\"gb-button gb-button-d29c6776 gb-button-text gb-tabs__button\" id=\"gb-tab-button-d29c6776\">Penalty<\/button>\n\n\n\n<button class=\"gb-button gb-button-be56f020 gb-button-text gb-tabs__button\" id=\"gb-tab-button-be56f020\">Damage<\/button>\n\n\n\n<button class=\"gb-button gb-button-f2fada0f gb-button-text gb-tabs__button\" id=\"gb-tab-button-f2fada0f\">Fuel<\/button>\n\n\n\n<button class=\"gb-button gb-button-9564cfcb gb-button-text gb-tabs__button\" id=\"gb-tab-button-9564cfcb\">Pitstops<\/button>\n\n\n\n<button class=\"gb-button gb-button-aaa75206 gb-button-text gb-tabs__button\" id=\"gb-tab-button-aaa75206\">Miscellaneous<\/button>\n\n<\/div>\n\n<div class=\"gb-container gb-container-e172fe88 gb-tabs__items\">\n<div class=\"gb-container gb-container-42953899 gb-tabs__item gb-tabs__item-open\" id=\"gb-tab-item-42953899\">\n\n<h4 class=\"gb-headline gb-headline-3bc6eea6 gb-headline-text\"><strong>ui.lap_update<\/strong><\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n    \"controller_id\": \"1\",\n    \"lap\": 1,\n    \"laptime\": \"0:13.861\",\n    \"laptime_raw\": 13861,\n    \"sector_1\": \"0:06.305\",\n    \"sector_1_pb\": true,\n    \"sector_2\": \"0:03.224\",\n    \"sector_2_pb\": true,\n    \"sector_3\": \"0:04.332\",\n    \"sector_3_pb\": true,\n    \"lap_pb\": true,\n    \"driver_data\": {\n        \"id\": 2,\n        \"name\": \"Marc\",\n        \"name_tts\": \"\",\n        \"active\": \"yes\",\n        \"start_no_text_style\": \"normal\",\n        \"team\": \"-\",\n        \"name_short\": null,\n        \"image\": \"\",\n        \"start_no\": \"\",\n        \"start_no_color_border\": \"rgb(68, 68, 68)\",\n        \"start_no_color_background\": \"rgb(68, 68, 68)\",\n        \"start_no_color_text\": \"rgb(68, 68, 68)\"\n    },\n    \"car_data\": {\n        \"color\": \"rgb(176, 243, 0)\",\n        \"brakes\": null,\n        \"active\": \"yes\",\n        \"tags\": \"&#91;]\",\n        \"decoder_type\": \"Carrera (default)\",\n        \"image\": \"cdvfile:\\\/\\\/localhost\\\/persistent\\\/1684000048302.jpg\",\n        \"laps\": 5,\n        \"fuel\": null,\n        \"speed\": null,\n        \"tyres\": \"Ortmann\",\n        \"digital_analog\": \"digital\",\n        \"name\": \"Porsche 911 RSR Grello (911)\",\n        \"manufacturer\": \"Carrera\",\n        \"id\": 40,\n        \"interval_counter\": 0,\n        \"scale\": \"1:24\",\n        \"magnets\": \"yes\",\n        \"logo\": \"porsche.png\",\n        \"changed_on\": null,\n        \"interval\": 0,\n        \"sound\": \"-\",\n        \"comment\": \"\"\n    },\n    \"controller_data\": {\n        \"color_bg\": \"rgb(176, 243, 0)\",\n        \"color_text\": \"#000\"\n    }\n}<\/code><\/pre>\n\n<\/div>\n\n<div class=\"gb-container gb-container-3d3129dc gb-tabs__item\" id=\"gb-tab-item-3d3129dc\">\n\n<h4 class=\"gb-headline gb-headline-7abf70d4 gb-headline-text\"><strong>event.start<\/strong><\/h4>\n\n\n\n<p class=\"gb-headline gb-headline-eba2b860 gb-headline-text\">When starting a lap race over 50 laps:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n    \"type\": \"race\",\n    \"laps\": \"50\"\n}<\/code><\/pre>\n\n\n\n<p class=\"gb-headline gb-headline-0f96ec05 gb-headline-text\">When starting a time race over 10 minutes (600 seconds):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n    \"type\": \"race\",\n    \"duration\": \"600\"\n}<\/code><\/pre>\n\n\n\n<h4 class=\"gb-headline gb-headline-f8920e64 gb-headline-text\"><strong>event.end<\/strong><\/h4>\n\n\n\n<p class=\"gb-headline gb-headline-ebf28b6d gb-headline-text\">The data contains all participants, here exemplarily with three participants:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n    \"type\": \"race\",\n    \"result\": {\n        \"1\": {\n            \"driver_id\": 2,\n            \"car_id\": 39,\n            \"controller_id\": 1,\n            \"laps\": 33,\n            \"best_laptime\": 4915,\n            \"pitstops\": 0,\n            \"gap\": \"\",\n            \"disqualified\": false,\n            \"retired\": false\n        },\n        \"2\": {\n            \"driver_id\": 2,\n            \"car_id\": 3,\n            \"controller_id\": 3,\n            \"laps\": 29,\n            \"best_laptime\": 4914,\n            \"pitstops\": 1,\n            \"gap\": \"+4 Lap(s)\",\n            \"disqualified\": false,\n            \"retired\": false\n        },\n        \"3\": {\n            \"driver_id\": 14,\n            \"car_id\": 33,\n            \"controller_id\": 4,\n            \"laps\": 27,\n            \"best_laptime\": 4925,\n            \"pitstops\": 0,\n            \"gap\": \"+6 Lap(s)\",\n            \"disqualified\": false,\n            \"retired\": false\n        }\n    }\n}<\/code><\/pre>\n\n\n\n<h4 class=\"gb-headline gb-headline-af101159 gb-headline-text\"><strong>event.change_status<\/strong><\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n    \"old\": \"running\",\n    \"new\": \"ended\"\n}<\/code><\/pre>\n\n\n\n<p>Valid status names: prepare_for_start, starting, jumpstart, running, suspended, restarting, ended.<\/p>\n\n<\/div>\n\n<div class=\"gb-container gb-container-8b7c1abb gb-tabs__item\" id=\"gb-tab-item-8b7c1abb\">\n\n<h4 class=\"gb-headline gb-headline-c24a81a1 gb-headline-text\"><strong>events.weather_change<\/strong><\/h4>\n\n\n\n<p class=\"gb-headline gb-headline-3cea57f4 gb-headline-text\">Contains either <strong>dry<\/strong> or <strong>wet<\/strong>.<\/p>\n\n\n\n<h4 class=\"gb-headline gb-headline-67f83be8 gb-headline-text\"><strong>events.weather_update<\/strong><\/h4>\n\n\n\n<p class=\"gb-headline gb-headline-eaa8e8d7 gb-headline-text\">Contains either <strong>about_to_rain<\/strong> or <strong>about_to_dry_up<\/strong>.<\/p>\n\n<\/div>\n\n<div class=\"gb-container gb-container-d52a92ee gb-tabs__item\" id=\"gb-tab-item-d52a92ee\">\n\n<h4 class=\"gb-headline gb-headline-1dc2695c gb-headline-text\"><strong>race.vsc_deployed<\/strong><\/h4>\n\n\n\n<p class=\"gb-headline gb-headline-a2563d90 gb-headline-text\">No further data.<\/p>\n\n\n\n<h4 class=\"gb-headline gb-headline-6b8cac45 gb-headline-text\"><strong>race.vsc_retracted<\/strong><\/h4>\n\n\n\n<p class=\"gb-headline gb-headline-9fcca8a3 gb-headline-text\">No further data.<\/p>\n\n<\/div>\n\n<div class=\"gb-container gb-container-59a29c8f gb-tabs__item\" id=\"gb-tab-item-59a29c8f\">\n\n<h4 class=\"gb-headline gb-headline-8d0d732d gb-headline-text\"><strong>race.penalty_update<\/strong><\/h4>\n\n\n\n<p>This event contains the <strong>controller_id<\/strong> and the penalty received in seconds. If the time is 0, the penalty has been served.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\t\n{\n    \"controller_id\": \"2\",\n    \"penalty\": 10\n    \/\/ Will be enriched with driver_data, car_data and controller_data, see ui.lap_update\n}<\/code><\/pre>\n\n<\/div>\n\n<div class=\"gb-container gb-container-850131d2 gb-tabs__item\" id=\"gb-tab-item-850131d2\">\n\n<h4 class=\"gb-headline gb-headline-e76d7bfc gb-headline-text\"><strong>race.damage_update<\/strong><\/h4>\n\n\n\n<p>This event contains the <strong>controller_id<\/strong> and the type of damage. The type is one of the following: <strong>engine<\/strong>, <strong>battery<\/strong>, <strong>suspension<\/strong> or <strong>gearbox<\/strong>.<\/p>\n\n\n\n<p>If the <strong>damage<\/strong> attribute has the value <strong>none<\/strong>, the damage has been repaired.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\t\n{\n    \"controller_id\": \"2\",\n    \"damage\": \"engine\"\n    \/\/ Will be enriched with driver_data, car_data and controller_data, see ui.lap_update\n}<\/code><\/pre>\n\n<\/div>\n\n<div class=\"gb-container gb-container-e7d481e2 gb-tabs__item\" id=\"gb-tab-item-e7d481e2\">\n\n<h4 class=\"gb-headline gb-headline-74640f38 gb-headline-text\"><strong><strong>util.fuel_update<\/strong><\/strong><\/h4>\n\n\n\n<p>This event contains the <strong>controller_id<\/strong> and the tank content (-1 to 100). -1 means that the tank function is deactivated.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\t\n{\n    \"controller_id\": \"2\",\n    \"fuel\": \"50\"\n    \/\/ Will be enriched with driver_data, car_data and controller_data, see ui.lap_update\n}<\/code><\/pre>\n\n<\/div>\n\n<div class=\"gb-container gb-container-2ca414ca gb-tabs__item\" id=\"gb-tab-item-2ca414ca\">\n\n<h4 class=\"gb-headline gb-headline-5a14b87f gb-headline-text\"><strong><strong>events.tire_change<\/strong><\/strong><\/h4>\n\n\n\n<p>Wird bei Reifenwechsel ausgel\u00f6st, enth\u00e4lt <strong>controller_id<\/strong> und die Reifenart, auf die gerade gewechselt wurde (<strong>dry<\/strong> oder <strong>wet<\/strong>). Jeder Fahrer startet immer auf \u201e<strong>dry<\/strong>\u201c.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\t\n{\n    \"controller_id\": \"2\",\n    \"tire\": \"dry\"\n    \/\/ Will be enriched with driver_data, car_data and controller_data, see ui.lap_update\n}<\/code><\/pre>\n\n\n\n<h4 class=\"gb-headline gb-headline-4367db5f gb-headline-text\"><strong><strong><strong>event.pit.enter<\/strong><\/strong><\/strong><\/h4>\n\n\n\n<p>A driver enters the pit. Contains only the controller ID.<\/p>\n\n\n\n<h4 class=\"gb-headline gb-headline-095ddb1a gb-headline-text\"><strong><strong><strong>event.pit.leave<\/strong><\/strong><\/strong><\/h4>\n\n\n\n<p>A driver leaves the pit. Contains only the controller ID.<\/p>\n\n<\/div>\n\n<div class=\"gb-container gb-container-06fd2da4 gb-tabs__item\" id=\"gb-tab-item-06fd2da4\">\n\n<h4 class=\"gb-headline gb-headline-e6790f19 gb-headline-text\"><strong><strong>util.set_active_track<\/strong><\/strong><\/h4>\n\n\n\n<p>Wird ausgel\u00f6st, wenn die aktive Strecke gesetzt wird. Enth\u00e4lt die Daten der jetzt aktiven Strecke.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n    \"length\": \"\",\n    \"reference_lap_time\": null,\n    \"track_svg\": null,\n    \"maximum_lap_time\": \"\",\n    \"id\": 7,\n    \"image\": \"cdvfile:\\\/\\\/localhost\\\/documents\\\/1570470682256.jpg\",\n    \"pitstop_delta\": \"25000\",\n    \"name_short\": null,\n    \"name\": \"Demo Circuit\",\n    \"minimum_lap_time\": \"\"\n}<\/code><\/pre>\n\n\n\n<h4 class=\"gb-headline gb-headline-3a85ce39 gb-headline-text\"><strong>ui.reset<\/strong><\/h4>\n\n\n\n<p>Is triggered when the user interface is reset, e.g. when a new event is started. Contains no data.<\/p>\n\n\n\n<h4 class=\"gb-headline gb-headline-081babf7 gb-headline-text\"><strong>ui.remove_car_from_session<\/strong><\/h4>\n\n\n\n<p>Is triggered when a car is manually removed from the session (by swiping in the race screen). Contains only the controller ID.<\/p>\n\n\n\n<h4 class=\"gb-headline gb-headline-394aa7e2 gb-headline-text\"><strong>cu.send_esc_command<\/strong><\/h4>\n\n\n\n<p>Contains no data. Is triggered when the ESC command is sent to the control unit from SmartRace. The ESC command triggers or recalls the safety car (if one is configured). Attention: If the corresponding button is pressed directly on the CU, SmartRace is not aware of this and cannot trigger the event.<\/p>\n\n<\/div>\n<\/div>\n<\/div>\n\n\n<h3 class=\"gb-headline gb-headline-231efa7a gb-headline-text\">Processing the data<\/h3>\n\n\n\n<p>The receiving script can be of any type. Here as an example a PHP script:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n\nheader(\"Access-Control-Allow-Origin: *\");\nheader(\"Access-Control-Allow-Headers: *\");\n\nif ($_SERVER&#91;'REQUEST_METHOD'] == 'POST'):\n\n    $json_data = json_decode(file_get_contents('php:\/\/input'));\n    print_r($json_data);\n\nendif;\n\n?&gt;<\/code><\/pre>\n\n\n\n<h3 class=\"gb-headline gb-headline-c32a5cfc gb-headline-text\">CORS Issues and OPTIONS Request<\/h3>\n\n\n\n<p>SmartRace runs in a webview and logs on to the web server that receives the data from the data interface, probably with a host such as http:\/\/localhost. However, your web server may not allow data to be received from a local or different host due to its <a href=\"https:\/\/en.wikipedia.org\/wiki\/Cross-origin_resource_sharing\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">CORS policies<\/a>. In this case, it helps to set appropriate headers via the web server configuration. For Apache, for example, these headers are as follows:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Header set Access-Control-Allow-Origin \"*\"\nHeader set Access-Control-Allow-Methods \"GET, POST, PUT, DELETE, OPTIONS\"\nHeader set Access-Control-Allow-Headers \"x-test-header, Origin, X-Requested-With, Content-Type, Accept\"<\/code><\/pre>\n\n\n\n<h4 class=\"gb-headline gb-headline-ab94b9d3 gb-headline-text\">OPTIONS Request<\/h4>\n\n\n\n<p>In addition to the actual POST request, the data interface may first send an OPTIONS request, which you must handle accordingly. The code for this could look like this (example with Flutter\/Dart):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>server = await HttpServer.bind(InternetAddress(serverIp), 8080);\n\nserver?.listen((HttpRequest request) async {\n\n\t\/\/ Allow all origins\n\trequest.response.headers.add('Access-Control-Allow-Origin', '*');\n\n\t\/\/ Allow POST requests\n\trequest.response.headers.add('Access-Control-Allow-Methods', 'POST');\n\n\t\/\/ Allow headers like Content-Type\n\trequest.response.headers.add('Access-Control-Allow-Headers', 'Content-Type'); \n\n\tif (request.method == 'OPTIONS') {\n\n\t\t\/\/ Respond with status 200 for OPTIONS requests\n\t\trequest.response\n\t\t\t..statusCode = HttpStatus.ok\n\t\t\t..write('');\n\n\t\tawait request.response.close();\n\n\t\treturn;\n\t}\n}<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>The data interface Important: Using the data interface requires programming knowledge. To be able to process the data provided by the interface, you need a web server to receive the data. If you cannot program or do not know how to set up a web server, the data interface is probably not for you. Important: &#8230; <\/p>\n<p class=\"read-more-container\"><a title=\"The data interface\" class=\"read-more button\" href=\"https:\/\/www.smartrace.de\/en\/the-smartrace-manual\/data-interface\/#more-19748\" aria-label=\"Read more about The data interface\">Read full article<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":407,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"manual.php","meta":{"_acf_changed":false,"_uag_custom_page_level_css":"","footnotes":""},"class_list":{"0":"post-19748","1":"page","2":"type-page","3":"status-publish","5":"infinite-scroll-item"},"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>The data interface - SmartRace for Carrera Digital<\/title>\n<meta name=\"description\" content=\"The data interface Important: Using the data interface requires programming knowledge. To be able to process the data provided by the interface, you need\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.smartrace.de\/en\/the-smartrace-manual\/data-interface\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The data interface - SmartRace for Carrera Digital\" \/>\n<meta property=\"og:description\" content=\"The data interface Important: Using the data interface requires programming knowledge. To be able to process the data provided by the interface, you need\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.smartrace.de\/en\/the-smartrace-manual\/data-interface\/\" \/>\n<meta property=\"og:site_name\" content=\"SmartRace for Carrera Digital\" \/>\n<meta property=\"article:publisher\" content=\"http:\/\/facebook.com\/smartraceapp\" \/>\n<meta property=\"article:modified_time\" content=\"2024-12-17T08:22:57+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.smartrace.de\/wp-content\/uploads\/2023\/05\/SmartRace-Data-Interface-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1290\" \/>\n\t<meta property=\"og:image:height\" content=\"929\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@smartrace\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.smartrace.de\\\/en\\\/the-smartrace-manual\\\/data-interface\\\/\",\"url\":\"https:\\\/\\\/www.smartrace.de\\\/en\\\/the-smartrace-manual\\\/data-interface\\\/\",\"name\":\"The data interface - SmartRace for Carrera Digital\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.smartrace.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.smartrace.de\\\/en\\\/the-smartrace-manual\\\/data-interface\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.smartrace.de\\\/en\\\/the-smartrace-manual\\\/data-interface\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.smartrace.de\\\/wp-content\\\/uploads\\\/2023\\\/05\\\/SmartRace-Data-Interface-1-1024x737.png\",\"datePublished\":\"2023-05-22T16:05:25+00:00\",\"dateModified\":\"2024-12-17T08:22:57+00:00\",\"description\":\"The data interface Important: Using the data interface requires programming knowledge. To be able to process the data provided by the interface, you need\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.smartrace.de\\\/en\\\/the-smartrace-manual\\\/data-interface\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.smartrace.de\\\/en\\\/the-smartrace-manual\\\/data-interface\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.smartrace.de\\\/en\\\/the-smartrace-manual\\\/data-interface\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.smartrace.de\\\/wp-content\\\/uploads\\\/2023\\\/05\\\/SmartRace-Data-Interface-1-1024x737.png\",\"contentUrl\":\"https:\\\/\\\/www.smartrace.de\\\/wp-content\\\/uploads\\\/2023\\\/05\\\/SmartRace-Data-Interface-1-1024x737.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.smartrace.de\\\/en\\\/the-smartrace-manual\\\/data-interface\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.smartrace.de\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"User Manual\",\"item\":\"https:\\\/\\\/www.smartrace.de\\\/en\\\/the-smartrace-manual\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"The data interface\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.smartrace.de\\\/#website\",\"url\":\"https:\\\/\\\/www.smartrace.de\\\/\",\"name\":\"SmartRace for Carrera Digital\",\"description\":\"The Nr. 1-App for carrera digital slot racing\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.smartrace.de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.smartrace.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.smartrace.de\\\/#organization\",\"name\":\"SmartRace f\u00fcr Carrera Digital\",\"url\":\"https:\\\/\\\/www.smartrace.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.smartrace.de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.smartrace.de\\\/wp-content\\\/uploads\\\/2018\\\/01\\\/Heller-Hintergrund-1.png\",\"contentUrl\":\"https:\\\/\\\/www.smartrace.de\\\/wp-content\\\/uploads\\\/2018\\\/01\\\/Heller-Hintergrund-1.png\",\"width\":1233,\"height\":1266,\"caption\":\"SmartRace f\u00fcr Carrera Digital\"},\"image\":{\"@id\":\"https:\\\/\\\/www.smartrace.de\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"http:\\\/\\\/facebook.com\\\/smartraceapp\",\"https:\\\/\\\/x.com\\\/smartrace\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UChWBm_cFDXFe8Id2966bdMA\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"The data interface - SmartRace for Carrera Digital","description":"The data interface Important: Using the data interface requires programming knowledge. To be able to process the data provided by the interface, you need","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.smartrace.de\/en\/the-smartrace-manual\/data-interface\/","og_locale":"en_US","og_type":"article","og_title":"The data interface - SmartRace for Carrera Digital","og_description":"The data interface Important: Using the data interface requires programming knowledge. To be able to process the data provided by the interface, you need","og_url":"https:\/\/www.smartrace.de\/en\/the-smartrace-manual\/data-interface\/","og_site_name":"SmartRace for Carrera Digital","article_publisher":"http:\/\/facebook.com\/smartraceapp","article_modified_time":"2024-12-17T08:22:57+00:00","og_image":[{"width":1290,"height":929,"url":"https:\/\/www.smartrace.de\/wp-content\/uploads\/2023\/05\/SmartRace-Data-Interface-1.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_site":"@smartrace","twitter_misc":{"Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.smartrace.de\/en\/the-smartrace-manual\/data-interface\/","url":"https:\/\/www.smartrace.de\/en\/the-smartrace-manual\/data-interface\/","name":"The data interface - SmartRace for Carrera Digital","isPartOf":{"@id":"https:\/\/www.smartrace.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.smartrace.de\/en\/the-smartrace-manual\/data-interface\/#primaryimage"},"image":{"@id":"https:\/\/www.smartrace.de\/en\/the-smartrace-manual\/data-interface\/#primaryimage"},"thumbnailUrl":"https:\/\/www.smartrace.de\/wp-content\/uploads\/2023\/05\/SmartRace-Data-Interface-1-1024x737.png","datePublished":"2023-05-22T16:05:25+00:00","dateModified":"2024-12-17T08:22:57+00:00","description":"The data interface Important: Using the data interface requires programming knowledge. To be able to process the data provided by the interface, you need","breadcrumb":{"@id":"https:\/\/www.smartrace.de\/en\/the-smartrace-manual\/data-interface\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.smartrace.de\/en\/the-smartrace-manual\/data-interface\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.smartrace.de\/en\/the-smartrace-manual\/data-interface\/#primaryimage","url":"https:\/\/www.smartrace.de\/wp-content\/uploads\/2023\/05\/SmartRace-Data-Interface-1-1024x737.png","contentUrl":"https:\/\/www.smartrace.de\/wp-content\/uploads\/2023\/05\/SmartRace-Data-Interface-1-1024x737.png"},{"@type":"BreadcrumbList","@id":"https:\/\/www.smartrace.de\/en\/the-smartrace-manual\/data-interface\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.smartrace.de\/en\/"},{"@type":"ListItem","position":2,"name":"User Manual","item":"https:\/\/www.smartrace.de\/en\/the-smartrace-manual\/"},{"@type":"ListItem","position":3,"name":"The data interface"}]},{"@type":"WebSite","@id":"https:\/\/www.smartrace.de\/#website","url":"https:\/\/www.smartrace.de\/","name":"SmartRace for Carrera Digital","description":"The Nr. 1-App for carrera digital slot racing","publisher":{"@id":"https:\/\/www.smartrace.de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.smartrace.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.smartrace.de\/#organization","name":"SmartRace f\u00fcr Carrera Digital","url":"https:\/\/www.smartrace.de\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.smartrace.de\/#\/schema\/logo\/image\/","url":"https:\/\/www.smartrace.de\/wp-content\/uploads\/2018\/01\/Heller-Hintergrund-1.png","contentUrl":"https:\/\/www.smartrace.de\/wp-content\/uploads\/2018\/01\/Heller-Hintergrund-1.png","width":1233,"height":1266,"caption":"SmartRace f\u00fcr Carrera Digital"},"image":{"@id":"https:\/\/www.smartrace.de\/#\/schema\/logo\/image\/"},"sameAs":["http:\/\/facebook.com\/smartraceapp","https:\/\/x.com\/smartrace","https:\/\/www.youtube.com\/channel\/UChWBm_cFDXFe8Id2966bdMA"]}]}},"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false,"gform-image-choice-sm":false,"gform-image-choice-md":false,"gform-image-choice-lg":false},"uagb_author_info":{"display_name":"SmartRace","author_link":"https:\/\/www.smartrace.de\/en\/author\/trademarc_design\/"},"uagb_comment_info":0,"uagb_excerpt":"The data interface Important: Using the data interface requires programming knowledge. To be able to process the data provided by the interface, you need a web server to receive the data. If you cannot program or do not know how to set up a web server, the data interface is probably not for you. Important:&hellip;","_links":{"self":[{"href":"https:\/\/www.smartrace.de\/en\/wp-json\/wp\/v2\/pages\/19748","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.smartrace.de\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.smartrace.de\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.smartrace.de\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.smartrace.de\/en\/wp-json\/wp\/v2\/comments?post=19748"}],"version-history":[{"count":7,"href":"https:\/\/www.smartrace.de\/en\/wp-json\/wp\/v2\/pages\/19748\/revisions"}],"predecessor-version":[{"id":21585,"href":"https:\/\/www.smartrace.de\/en\/wp-json\/wp\/v2\/pages\/19748\/revisions\/21585"}],"up":[{"embeddable":true,"href":"https:\/\/www.smartrace.de\/en\/wp-json\/wp\/v2\/pages\/407"}],"wp:attachment":[{"href":"https:\/\/www.smartrace.de\/en\/wp-json\/wp\/v2\/media?parent=19748"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}