Vitally Tasks API
The Tasks API from Vitally — 2 operation(s) for tasks.
The Tasks API from Vitally — 2 operation(s) for tasks.
openapi: 3.1.0
info:
title: Vitally REST Accounts Tasks API
version: '1.0'
x-generated: '2026-07-21'
x-method: generated
x-source: https://docs.vitally.io/en/articles/9880649-rest-api-overview and the per-resource REST API reference articles (accounts, users, tasks, organizations, notes, conversations, npsResponses, admins, customObjects). Operations, hosts, authentication, pagination and error semantics are taken verbatim from Vitally's published documentation; object schemas for Account, User and Task are transcribed from their documented object tables. Not a provider-published OpenAPI — a faithful generation from the public docs.
description: Vitally's public REST API for creating, updating, retrieving and listing the core Customer Success objects — Accounts, Organizations, Users, Tasks, Notes, Conversations and NPS Responses. Authentication is HTTP Basic using a Vitally REST API key as the username. List endpoints use cursor-based pagination ordered by updatedAt (default) or createdAt.
contact:
name: Vitally
url: https://docs.vitally.io/en/articles/9880649-rest-api-overview
servers:
- url: https://{subdomain}.rest.vitally.io/resources
description: US data center (default)
variables:
subdomain:
default: yoursubdomain
description: Your Vitally subdomain (from your login URL yoursubdomain.vitally.io)
- url: https://rest.vitally-eu.io/resources
description: EU data center
security:
- basicAuth: []
tags:
- name: Tasks
paths:
/tasks:
get:
operationId: listTasks
tags:
- Tasks
summary: List tasks
parameters:
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/from'
- $ref: '#/components/parameters/sortBy'
responses:
'200':
description: A page of tasks
content:
application/json:
schema:
$ref: '#/components/schemas/TaskList'
'401':
$ref: '#/components/responses/Unauthorized'
post:
operationId: createTask
tags:
- Tasks
summary: Create a task
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/TaskWrite'
responses:
'200':
description: The created task
content:
application/json:
schema:
$ref: '#/components/schemas/Task'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/tasks/{taskId}:
parameters:
- name: taskId
in: path
required: true
schema:
type: string
get:
operationId: getTask
tags:
- Tasks
summary: Get a task
responses:
'200':
description: The task
content:
application/json:
schema:
$ref: '#/components/schemas/Task'
'401':
$ref: '#/components/responses/Unauthorized'
put:
operationId: updateTask
tags:
- Tasks
summary: Update a task
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/TaskWrite'
responses:
'200':
description: The updated task
content:
application/json:
schema:
$ref: '#/components/schemas/Task'
'401':
$ref: '#/components/responses/Unauthorized'
delete:
operationId: deleteTask
tags:
- Tasks
summary: Delete a task
responses:
'204':
description: Deleted
'401':
$ref: '#/components/responses/Unauthorized'
components:
schemas:
Cursor:
type: object
properties:
next:
type:
- string
- 'null'
description: The cursor to use for the following page, or null at the end.
TaskWrite:
type: object
properties:
externalId:
type: string
organizationId:
type: string
accountId:
type: string
name:
type: string
description:
type: string
dueDate:
type: string
completedAt:
type: string
format: date-time
assignedToId:
type: string
completedById:
type: string
tags:
type: array
items:
type: string
traits:
type: object
additionalProperties: true
required:
- name
- accountId
TaskCategory:
type: object
properties:
id:
type: string
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
name:
type: string
Error:
type: object
properties:
error:
type: string
description: Human-readable error message.
required:
- error
Task:
type: object
properties:
id:
type: string
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
externalId:
type: string
organizationId:
type:
- string
- 'null'
accountId:
type: string
name:
type: string
description:
type:
- string
- 'null'
description: The body of the task; may include a restricted set of HTML tags.
completedAt:
type:
- string
- 'null'
format: date-time
dueDate:
type:
- string
- 'null'
tags:
type: array
items:
type: string
archivedAt:
type:
- string
- 'null'
format: date-time
meetingId:
type:
- string
- 'null'
source:
type:
- string
- 'null'
categoryId:
type:
- string
- 'null'
assignedToId:
type:
- string
- 'null'
completedById:
type:
- string
- 'null'
category:
$ref: '#/components/schemas/TaskCategory'
projects:
type: array
items:
$ref: '#/components/schemas/SegmentRef'
traits:
type: object
additionalProperties: true
required:
- id
- name
- accountId
SegmentRef:
type: object
properties:
id:
type: string
name:
type: string
TaskList:
allOf:
- $ref: '#/components/schemas/Cursor'
- type: object
properties:
results:
type: array
items:
$ref: '#/components/schemas/Task'
parameters:
from:
name: from
in: query
description: The cursor returned from a previous request (from the next property).
schema:
type: string
sortBy:
name: sortBy
in: query
description: How to order results. Default updatedAt.
schema:
type: string
enum:
- createdAt
- updatedAt
default: updatedAt
limit:
name: limit
in: query
description: Number of items to return. Max/default is 100.
schema:
type: integer
maximum: 100
default: 100
responses:
Unauthorized:
description: Unauthorized - there is an issue with the authorization used
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
BadRequest:
description: Bad Request - the body of the request needs to be reviewed
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
securitySchemes:
basicAuth:
type: http
scheme: basic
description: 'HTTP Basic authentication. Use your Vitally REST API key as the username with an empty password (Authorization: Basic base64(apiKey:)). Keys are created in the Vitally UI under Settings -> Integrations -> Vitally REST API.'