REST API

API Overview

The public Rest API currently supports creating, updating, retrieving and listing Users, Accounts, Conversations, Tasks, Notes and NPS Responses.

It uses an API Key header for authentication.

List endpoints use cursor-based pagination, ordered by updatedAt (the default) or createdAt.

Authentication

The authentication is passed via the Authorization header on every request.

Keys can be created in the Vitally UI.

For security purposes they can be rolled (a new key will be generated) or deleted.

Request Headers

The Authorization header format is basic auth, using the API Key as the username.

  • Authorization: Basic c2VjcmV0X2tleTo=

Rate-Limiting

The default rate limiting is set at 1000 requests / min using a sliding window. Headers returned on every request will show the total limit, the requests remaining for the current window, and the number of seconds until the earliest request leaves the window.

Response Headers

  • RateLimit-Limit: 1000, 1000;window=60

  • RateLimit-Remaining: 999

  • RateLimit-Reset: 59

Error

Status Code

  • 429 Too Many Requests

Pagination

All paginated endpoints use cursor based pagination.

In addition to an array of results, the response will return a next property which can be used to access the subsequent page. The next property will be null when the end is reached and there are no more pages.

Unless specified otherwise, all List endpoints paginate sorted by updatedAt descending.

Query Params

Param

Type

Description

limit

number

(optional) The number of items to return. The max/default is 100

from

string

(optional) The cursor returned from a previous request

sortBy

"createdAt" | "updatedAt"

(optional) How to order the elements returned. The default is "updatedAt".

If you are frequently sending data to Vitally and your data may update at any time, setting sortBy to "createdAt" will ensure you return a full list every time.

Response Body

Param

Type

Description

results

array

Any array of the items for that endpoint.

next

string | null

The cursor to use for the following page, if any.

Example response

With more results:

GET /endpoint?limit=100
{
  "results": [...],
  "next": "c29tZWJhc2U2NA=="
}

At the end:

GET /endpoint?limit=100&from=c29tZWJhc2U2NA==
{
  "results": [...],
  "next": null
}

HTML Fields

Fields that are editable in Vitally as rich text (Notes, Tasks) share the same set of supported tags and attributes. Any tags or attributes not in the allow list will be stripped out when creating or updating.

Tags

<a>, <img>, <p>, <div>, <br>, <ul>, <ol>, <nl>, <li>, <b>, <u>, <i>, <strong>, <em>, <code>

Attributes

Tag

Attributes

<a>

href, name, target

<img>

src, alt, width, height

Last updated