---
title: "About the Vicon Evoke API"
canonical: "https://help.vicon.com/space/Evoke18/397970198/About%20the%20Vicon%20Evoke%20API"
format: markdown
---
Evoke includes an extensive Application Programming Interface (API) for remote control, system monitoring and third-party application integration.             

The API comprises the following components:

- [Vicon Core API](#ViconCoreAPI)
- [Evoke API](#EvokeAPI)

For information on running entirely via the API, without the Graphical User Interface (GUI), see [Headless operation](https://vicon-help.atlassian.net/wiki/spaces/Evoke18/pages/397970238).

> Macro (scroll-pagebreak)

### > Macro (anchor)

Vicon Core API

The Vicon Core API provides the core functionality for client/server communication, and schemas that define the types, functions and callbacks supported by the Vicon application. It is a generic JSON-based protocol operating over TCP.

Evoke opens the server socket on port 52800 by default. To specify the port number, launch Evoke with a command-line argument:

`C:\Program Files\Vicon\Evoke1.#\Evoke.exe --terminal-port=52800`

(where `#` is the point number of the latest release)

A sample exchange may look like the following (debug logging has been turned on for the ViconCoreAPI category, so all messages sent and received are logged):

> Macro (scroll-ignore)
> 
> ##### ViconCoreAPI client-server exchange

> Macro (scroll-title)

```plaintext
ViconCoreAPI	Starting Vicon Core API server on port 52800...
2019.09.13 13:42:38.456 +1	Default	ViconCoreAPI	Opened connection to 127.0.0.1:53926
2019.09.13 13:42:38.629 +1	Debug	ViconCoreAPI	Sending to 127.0.0.1:53926 [4,0][]
2019.09.13 13:42:38.631 +1	Debug	ViconCoreAPI	Received from 127.0.0.1:53926 [Terminal.AppInfo,5] []
2019.09.13 13:42:38.632 +1	Debug	ViconCoreAPI	Sending to 127.0.0.1:53926 [5,0]["Evoke","1.8.0.0","0"]
2019.09.13 13:42:38.645 +1	Debug	ViconCoreAPI	Received from 127.0.0.1:53926 [ApplicationServices.Shutdown,6] []
2019.09.13 13:42:38.730 +1	Debug	ViconCoreAPI	Sending to 127.0.0.1:53926 [6,0][""]
```

This trace shows two commands sent to the server as JSON-encoded strings, in the format `[SchemaName,CommandId] [Data]`:

- `Terminal.AppInfo` This is a built-in Vicon Core API command that returns the current application information.
- `ApplicationServices.Shutdown` This is an Evoke API command that safely closes down the application, releasing all resources and writing settings files as required.

Each command is assigned a unique number by the client, and this number is sent back by the server with the reply, with the format `[CommandId,ResultCode][Data]`. This enables the client to match replies to the correct command.

> Macro (scroll-pagebreak)

### > Macro (anchor)

Evoke API

The Evoke API is a client library that facilitates access to the services provided by Evoke. It includes all the schemas supported by the application, and classes for the data types exchanged via API. It is also responsible for serializing user data into JSON for transmission to the Vicon Core API server, and deserializing the replies back into user data.

The Evoke API is compatible with Python 2.7 and Python 3.7 and later. 

The following services are currently provided:

Client libraries are supplied for C# and Python, located by default at:

*C:\Program Files\Vicon\Evoke1.#\SDK*

(where *#* is the point number of the latest release)

Instructions for use and full documentation are included in the packages. A limited dashboard application is provided for C#, together with a number of sample Python scripts.