Skip to main content
API

What the API covers

This page lists the records an integration can reach through the EVX Software API, the rules the data follows, and two short examples. It helps you decide what an integration can do, and gives your developer a first look before the full reference.

For developers and IT teams

The technical reference, with authentication, every endpoint, and code samples, is at developers.evxsoftware.com.

This version of the API is available from EVX Software version 4.3.

Records the API covers​

AreaWhat an integration can do
ProjectsRead and update projects and their details, including your firm's custom fields
ClientsRead and update the clients your projects belong to
TasksRead, create, and update tasks
TimeRead and record time entries
ExpensesRead and record expenses, when your installation uses the Expenses module
FormsRead and fill in forms, laid out as your installation configures them
NotesRead and create notes
DocumentsRead, store, and download documents
ConfigurationRead the settings an integration needs, such as the number of decimals for amounts
MeRead the details of the user the integration acts as

The full list of operations for each area is on developers.evxsoftware.com.

How the data behaves​

  • Permissions: the integration sees and changes only what its user can. An amount the user is not allowed to see comes back empty.
  • Custom fields: the custom fields your firm added to projects and other records can be read and written.
  • Lists: long lists come back in pages, with the total number of records, so an integration can fetch them in steps.
  • Retries: an integration can safely repeat a request that failed halfway, without creating the same record twice.
  • Modules: an area that belongs to a module your installation does not use, such as Expenses, is not available.

Examples​

These examples show what a developer sends and receives. Replace the values in capitals with your own.

Sign in and get a token. The integration sends its credentials to the token endpoint, and receives an access token valid for a few minutes:

curl -X POST "TOKEN_ENDPOINT" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials" \
-d "client_id=CLIENT_ID" \
-d "client_secret=CLIENT_SECRET"
{
"access_token": "ACCESS_TOKEN",
"token_type": "Bearer",
"expires_in": 300
}

List tasks. The integration sends the token with each request. This one asks for the first 20 tasks the user can see:

curl "https://YOUR-INSTALLATION/api/v3/tasks?start=0&limit=20" \
-H "Authorization: Bearer ACCESS_TOKEN"

A successful answer starts with "ok": true, followed by the tasks in data. A refused request starts with "ok": false and explains why in error.

Code samples in PHP, Node.js, and Python, and every other operation, are on developers.evxsoftware.com.

What you can do next​

  1. Connecting an integration to give an integration access.
  2. developers.evxsoftware.com for the full technical reference.
  3. API to return to the start of this section.