Quenza Groups API
Organize clients into groups for shared programs and communication. Create a group and attach members to it. Confirmed endpoints - POST /groups and POST /groups/{group}/members.
Organize clients into groups for shared programs and communication. Create a group and attach members to it. Confirmed endpoints - POST /groups and POST /groups/{group}/members.
openapi: 3.1.0
info:
title: Quenza API
version: 1.0.0
description: The Quenza API allows you to integrate your systems with Quenza — manage clients, sync
data, and automate workflows. Authenticate using a Bearer token from your workspace settings under
Developer Tools → API Token.
servers:
- url: https://developers.quenza.com/v1
security:
- http: []
paths:
/clients:
get:
operationId: developers.v1.clients.list
description: Returns a paginated list of all clients in the workspace.
summary: List clients
tags:
- Clients
- ListClient
parameters:
- name: offset
in: query
description: Number of items to skip.
schema:
type: integer
default: 0
example: 0
- name: limit
in: query
description: 'Number of items to return per request. Max: 100.'
schema:
type: integer
default: 20
example: 20
responses:
'200':
description: ''
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/ClientResource'
meta:
type: object
properties:
limit:
type: integer
offset:
type: integer
total:
type: integer
required:
- limit
- offset
- total
links:
type: object
properties:
next:
type:
- string
- 'null'
prev:
type:
- string
- 'null'
required:
- next
- prev
required:
- data
- meta
- links
'401':
$ref: '#/components/responses/AuthenticationException'
post:
operationId: developers.v1.clients.create
description: Creates a new client and sends them an invitation email.
summary: Create a client
tags:
- Clients
- CreateClient
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateClientRequest'
responses:
'201':
description: '`ClientResource`'
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/ClientResource'
required:
- data
'401':
$ref: '#/components/responses/AuthenticationException'
'422':
$ref: '#/components/responses/ValidationException'
/clients/{client}:
get:
operationId: developers.v1.clients.show
description: Returns a single client by their ID.
summary: Get a client
tags:
- Clients
- ShowClient
parameters:
- name: client
in: path
required: true
description: The client sqid
schema:
type: integer
responses:
'200':
description: '`ClientResource`'
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/ClientResource'
required:
- data
'404':
$ref: '#/components/responses/ModelNotFoundException'
'401':
$ref: '#/components/responses/AuthenticationException'
patch:
operationId: developers.v1.clients.update
description: Updates one or more fields on an existing client. Only the fields included in the request
body are updated.
summary: Update a client
tags:
- Clients
- UpdateClient
parameters:
- name: client
in: path
required: true
description: The client sqid
schema:
type: integer
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateClientRequest'
responses:
'200':
description: '`ClientResource`'
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/ClientResource'
required:
- data
'404':
$ref: '#/components/responses/ModelNotFoundException'
'401':
$ref: '#/components/responses/AuthenticationException'
'422':
$ref: '#/components/responses/ValidationException'
/clients/{client}/archive:
post:
operationId: developers.v1.clients.archive
description: Archives a client, cancels all active assignments, and makes their chats read-only.
summary: Archive a client
tags:
- Clients
- ArchiveClient
parameters:
- name: client
in: path
required: true
description: The client sqid
schema:
type: integer
responses:
'200':
description: ''
'404':
$ref: '#/components/responses/ModelNotFoundException'
'401':
$ref: '#/components/responses/AuthenticationException'
/clients/{client}/unarchive:
post:
operationId: developers.v1.clients.unarchive
description: Restores an archived client to active status and re-enables their chats.
summary: Unarchive a client
tags:
- Clients
- UnarchiveClient
parameters:
- name: client
in: path
required: true
description: The client sqid
schema:
type: integer
responses:
'200':
description: ''
'404':
$ref: '#/components/responses/ModelNotFoundException'
'401':
$ref: '#/components/responses/AuthenticationException'
/groups:
post:
operationId: developers.v1.groups.create
summary: Create a group
tags:
- Groups
- CreateGroup
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateGroupRequest'
responses:
'201':
description: '`GroupResource`'
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/GroupResource'
required:
- data
'401':
$ref: '#/components/responses/AuthenticationException'
'422':
$ref: '#/components/responses/ValidationException'
/groups/{group}/members:
post:
operationId: developers.v1.groups.members.attach
summary: Add members to a group
tags:
- Groups
- AttachGroupMembers
parameters:
- name: group
in: path
required: true
description: The group sqid
schema:
type: integer
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
members:
type: array
description: Array of client SQIDs to add to the group.
example:
- 8GJ4D9KQ
- 2M7ZP5AT
items:
type: string
required:
- members
responses:
'200':
description: '`GroupResource`'
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/GroupResource'
required:
- data
'204':
description: No content
'404':
$ref: '#/components/responses/ModelNotFoundException'
'401':
$ref: '#/components/responses/AuthenticationException'
'422':
$ref: '#/components/responses/ValidationException'
/members:
get:
operationId: developers.v1.members.list
description: Returns a paginated list of all team members (professionals) in the workspace, including
pending and suspended members.
summary: List members
tags:
- Members
- ListMember
parameters:
- name: offset
in: query
description: Number of items to skip.
schema:
type: integer
default: 0
example: 0
- name: limit
in: query
description: 'Number of items to return per request. Max: 100.'
schema:
type: integer
default: 20
example: 20
responses:
'200':
description: ''
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/ProfessionalResource'
meta:
type: object
properties:
limit:
type: integer
offset:
type: integer
total:
type: integer
required:
- limit
- offset
- total
links:
type: object
properties:
next:
type:
- string
- 'null'
prev:
type:
- string
- 'null'
required:
- next
- prev
required:
- data
- meta
- links
'401':
$ref: '#/components/responses/AuthenticationException'
post:
operationId: developers.v1.members.create
description: Invites a new team member to the workspace and sends them an invitation email. Only
`member` and `manager` roles can be assigned via the API.
summary: Create a member
tags:
- Members
- CreateMember
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateTeamMemberRequest'
responses:
'201':
description: '`ProfessionalResource`'
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/ProfessionalResource'
required:
- data
'401':
$ref: '#/components/responses/AuthenticationException'
'422':
$ref: '#/components/responses/ValidationException'
/members/{professional}:
patch:
operationId: developers.v1.members.update
description: Updates one or more fields of a team member. Only included fields are updated.
summary: Update a member
tags:
- Members
- UpdateMember
parameters:
- name: professional
in: path
required: true
description: The professional sqid
schema:
type: integer
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateTeamMemberRequest'
responses:
'200':
description: '`ProfessionalResource`'
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/ProfessionalResource'
required:
- data
'404':
$ref: '#/components/responses/ModelNotFoundException'
'401':
$ref: '#/components/responses/AuthenticationException'
'422':
$ref: '#/components/responses/ValidationException'
/tasks:
get:
operationId: developers.v1.tasks.list
description: Returns a paginated list of all tasks in the workspace. Optionally filter by assignee
using `assignee_type` and `assignee_id` together.
summary: List tasks
tags:
- Tasks
- ListTask
parameters:
- name: offset
in: query
description: Number of items to skip.
schema:
type: integer
default: 0
example: 0
- name: limit
in: query
description: 'Number of items to return per request. Max: 100.'
schema:
type: integer
default: 20
example: 20
responses:
'200':
description: ''
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/TaskResource'
meta:
type: object
properties:
limit:
type: integer
offset:
type: integer
total:
type: integer
required:
- limit
- offset
- total
links:
type: object
properties:
next:
type:
- string
- 'null'
prev:
type:
- string
- 'null'
required:
- next
- prev
required:
- data
- meta
- links
'401':
$ref: '#/components/responses/AuthenticationException'
components:
securitySchemes:
http:
type: http
description: 'Authenticate using a **Bearer token** in the `Authorization` header:
```
Authorization: Bearer {your-token}
```
You can generate or regenerate your API token in your Quenza workspace under
**Settings → Developer Tools → API Token**.'
scheme: bearer
schemas:
ClientResource:
type: object
properties:
id:
type: string
email:
type: string
first_name:
type: string
last_name:
type: string
status:
$ref: '#/components/schemas/ClientStatus'
is_guest:
type: string
timezone:
type: string
phone:
type:
- string
- 'null'
gender:
type: string
gender_identity:
type:
- string
- 'null'
birthdate:
type: string
invited_at:
type: string
invitation_accepted_at:
type: string
archived_at:
type: string
created_at:
type: string
updated_at:
type: string
required:
- id
- email
- first_name
- last_name
- status
- is_guest
- timezone
- phone
- gender
- gender_identity
- birthdate
- invited_at
- invitation_accepted_at
- archived_at
- created_at
- updated_at
title: ClientResource
ClientStatus:
type: string
enum:
- active
- pending
- archived
title: ClientStatus
CreateClientRequest:
type: object
properties:
email:
type: string
format: email
maxLength: 255
first_name:
type: string
maxLength: 255
last_name:
type: string
maxLength: 255
phone:
type:
- string
- 'null'
maxLength: 50
gender:
$ref: '#/components/schemas/Gender'
gender_identity:
type:
- string
- 'null'
maxLength: 255
birthdate:
type:
- string
- 'null'
format: date-time
timezone:
type:
- string
- 'null'
enum:
- Africa/Abidjan
- Africa/Accra
- Africa/Addis_Ababa
- Africa/Algiers
- Africa/Asmara
- Africa/Bamako
- Africa/Bangui
- Africa/Banjul
- Africa/Bissau
- Africa/Blantyre
- Africa/Brazzaville
- Africa/Bujumbura
- Africa/Cairo
- Africa/Casablanca
- Africa/Ceuta
- Africa/Conakry
- Africa/Dakar
- Africa/Dar_es_Salaam
- Africa/Djibouti
- Africa/Douala
- Africa/El_Aaiun
- Africa/Freetown
- Africa/Gaborone
- Africa/Harare
- Africa/Johannesburg
- Africa/Juba
- Africa/Kampala
- Africa/Khartoum
- Africa/Kigali
- Africa/Kinshasa
- Africa/Lagos
- Africa/Libreville
- Africa/Lome
- Africa/Luanda
- Africa/Lubumbashi
- Africa/Lusaka
- Africa/Malabo
- Africa/Maputo
- Africa/Maseru
- Africa/Mbabane
- Africa/Mogadishu
- Africa/Monrovia
- Africa/Nairobi
- Africa/Ndjamena
- Africa/Niamey
- Africa/Nouakchott
- Africa/Ouagadougou
- Africa/Porto-Novo
- Africa/Sao_Tome
- Africa/Tripoli
- Africa/Tunis
- Africa/Windhoek
- America/Adak
- America/Anchorage
- America/Anguilla
- America/Antigua
- America/Araguaina
- America/Argentina/Buenos_Aires
- America/Argentina/Catamarca
- America/Argentina/Cordoba
- America/Argentina/Jujuy
- America/Argentina/La_Rioja
- America/Argentina/Mendoza
- America/Argentina/Rio_Gallegos
- America/Argentina/Salta
- America/Argentina/San_Juan
- America/Argentina/San_Luis
- America/Argentina/Tucuman
- America/Argentina/Ushuaia
- America/Aruba
- America/Asuncion
- America/Atikokan
- America/Bahia
- America/Bahia_Banderas
- America/Barbados
- America/Belem
- America/Belize
- America/Blanc-Sablon
- America/Boa_Vista
- America/Bogota
- America/Boise
- America/Cambridge_Bay
- America/Campo_Grande
- America/Cancun
- America/Caracas
- America/Cayenne
- America/Cayman
- America/Chicago
- America/Chihuahua
- America/Ciudad_Juarez
- America/Costa_Rica
- America/Coyhaique
- America/Creston
- America/Cuiaba
- America/Curacao
- America/Danmarkshavn
- America/Dawson
- America/Dawson_Creek
- America/Denver
- America/Detroit
- America/Dominica
- America/Edmonton
- America/Eirunepe
- America/El_Salvador
- America/Fort_Nelson
- America/Fortaleza
- America/Glace_Bay
- America/Goose_Bay
- America/Grand_Turk
- America/Grenada
- America/Guadeloupe
- America/Guatemala
- America/Guayaquil
- America/Guyana
- America/Halifax
- America/Havana
- America/Hermosillo
- America/Indiana/Indianapolis
- America/Indiana/Knox
- America/Indiana/Marengo
- America/Indiana/Petersburg
- America/Indiana/Tell_City
- America/Indiana/Vevay
- America/Indiana/Vincennes
- America/Indiana/Winamac
- America/Inuvik
- America/Iqaluit
- America/Jamaica
- America/Juneau
- America/Kentucky/Louisville
- America/Kentucky/Monticello
- America/Kralendijk
- America/La_Paz
- America/Lima
- America/Los_Angeles
- America/Lower_Princes
- America/Maceio
- America/Managua
- America/Manaus
- America/Marigot
- America/Martinique
- America/Matamoros
- America/Mazatlan
- America/Menominee
- America/Merida
- America/Metlakatla
- America/Mexico_City
- America/Miquelon
- America/Moncton
- America/Monterrey
- America/Montevideo
- America/Montserrat
- America/Nassau
- America/New_York
- America/Nome
- America/Noronha
- America/North_Dakota/Beulah
- America/North_Dakota/Center
- America/North_Dakota/New_Salem
- America/Nuuk
- America/Ojinaga
- America/Panama
- America/Paramaribo
- America/Phoenix
- America/Port-au-Prince
- America/Port_of_Spain
- America/Porto_Velho
- America/Puerto_Rico
- America/Punta_Arenas
- America/Rankin_Inlet
- America/Recife
- America/Regina
- America/Resolute
- America/Rio_Branco
- America/Santarem
- America/Santiago
- America/Santo_Domingo
- America/Sao_Paulo
- America/Scoresbysund
- America/Sitka
- America/St_Barthelemy
- America/St_Johns
- America/St_Kitts
- America/St_Lucia
- America/St_Thomas
- America/St_Vincent
- America/Swift_Current
- America/Tegucigalpa
- America/Thule
- America/Tijuana
- America/Toronto
- America/Tortola
- America/Vancouver
- America/Whitehorse
- America/Winnipeg
- America/Yakutat
- Antarctica/Casey
- Antarctica/Davis
- Antarctica/DumontDUrville
- Antarctica/Macquarie
- Antarctica/Mawson
- Antarctica/McMurdo
- Antarctica/Palmer
- Antarctica/Rothera
- Antarctica/Syowa
- Antarctica/Troll
- Antarctica/Vostok
- Arctic/Longyearbyen
- Asia/Aden
- Asia/Almaty
- Asia/Amman
- Asia/Anadyr
- Asia/Aqtau
- Asia/Aqtobe
- Asia/Ashgabat
- Asia/Atyrau
- Asia/Baghdad
- Asia/Bahrain
- Asia/Baku
- Asia/Bangkok
- Asia/Barnaul
- Asia/Beirut
- Asia/Bishkek
- Asia/Brunei
- Asia/Chita
- Asia/Colombo
- Asia/Damascus
- Asia/Dhaka
- Asia/Dili
- Asia/Dubai
- Asia/Dushanbe
- Asia/Famagusta
- Asia/Gaza
- Asia/Hebron
- Asia/Ho_Chi_Minh
- Asia/Hong_Kong
- Asia/Hovd
- Asia/Irkutsk
- Asia/Jakarta
- Asia/Jayapura
- Asia/Jerusalem
- Asia/Kabul
- Asia/Kamchatka
- Asia/Karachi
- Asia/Kathmandu
- Asia/Khandyga
- Asia/Kolkata
- Asia/Krasnoyarsk
- Asia/Kuala_Lumpur
- Asia/Kuching
- Asia/Kuwait
- Asia/Macau
- Asia/Magadan
- Asia/Makassar
- Asia/Manila
- Asia/Muscat
- Asia/Nicosia
- Asia/Novokuznetsk
- Asia/Novosibirsk
- Asia/Omsk
- Asia/Oral
- Asia/Phnom_Penh
- Asia/Pontianak
- Asia/Pyongyang
- Asia/Qatar
- Asia/Qostanay
- Asia/Qyzylorda
- Asia/Riyadh
- Asia/Sakhalin
- Asia/Samarkand
- Asia/Seoul
- Asia/Shanghai
- Asia/Singapore
- Asia/Srednekolymsk
- Asia/Taipei
- Asia/Tashkent
- Asia/Tbilisi
- Asia/Tehran
- Asia/Thimphu
- Asia/Tokyo
- Asia/Tomsk
- Asia/Ulaanbaatar
- Asia/Urumqi
- Asia/Ust-Nera
- Asia/Vientiane
- Asia/Vladivostok
- Asia/Yakutsk
- Asia/Yangon
- Asia/Yekaterinburg
- Asia/Yerevan
- Atlantic/Azores
- Atlantic/Bermuda
- Atlantic/Canary
- Atlantic/Cape_Verde
- Atlantic/Faroe
- Atlantic/Madeira
- Atlantic/Reykjavik
- Atlantic/South_Georgia
- Atlantic/St_Helena
- Atlantic/Stanley
- Australia/Adelaide
- Australia/Brisbane
- Australia/Broken_Hill
- Australia/Darwin
- Australia/Eucla
- Australia/Hobart
- Australia/Lindeman
- Australia/Lord_Howe
- Australia/Melbourne
- Australia/Perth
- Australia/Sydney
- Europe/Amsterdam
- Europe/Andorra
- Europe/Astrakhan
- Europe/Athens
- Europe/Belgrade
- Europe/Berlin
- Europe/Bratislava
- Europe/Brussels
- Europe/Bucharest
- Europe/Budapest
- Europe/Busingen
- Europe/Chisinau
- Europe/Copenhagen
- Europe/Dublin
- Europe/Gibraltar
- Europe/Guernsey
- Europe/Helsinki
- Europe/Isle_of_Man
- Europe/Istanbul
- Europe/Jersey
- Europe/Kaliningrad
- Europe/Kirov
- Europe/Kyiv
- Europe/Lisbon
- Europe/Ljubljana
- Europe/London
- Europe/Luxembourg
- Europe/Madrid
- Europe/Malta
- Europe/Mariehamn
- Europe/Minsk
- Europe/Monaco
- Europe/Moscow
- Europe/Oslo
- Europe/Paris
- Europe/Podgorica
- Europe/Prague
- Europe/Riga
- Europe/Rome
- Europe/Samara
- Europe/San_Marino
- Europe/Sarajevo
- Europe/Saratov
- Europe/Simferopol
- Europe/Skopje
- Europe/Sofia
- Europe/Stockholm
- Europe/Tallinn
- Europe/Tirane
- Europe/Ulyanovsk
- Europe/Vaduz
- Europe/Vatican
- Europe/Vienna
- Europe/Vilnius
- Europe/Volgograd
- Europe/Warsaw
- Europe/Zagreb
- Europe/Zurich
- Indian/Antananarivo
- Indian/Chagos
- Indian/Christmas
- Indian/Cocos
- Indian/Comoro
- Indian/Kerguelen
- Indian/Mahe
- Indian/Maldives
- Indian/Mauritius
- Indian/Mayotte
- Indian/Reunion
- Pacific/Apia
- Pacific/Auckland
- Pacific/Bougainville
- Pacific/Chatham
- Pacific/Chuuk
- Pacific/Easter
- Pacific/Efate
- Pacific/Fakaofo
- Pacific/Fiji
- Pacific/Funafuti
- Pacific/Galapagos
- Pacific/Gambier
- Pacific/Guadalcanal
- Pacific/Guam
- Pacific/Honolulu
- Pacific/Kanton
- Pacific/Kiritimati
- Pacific/Kosrae
- Pacific/Kwajalein
- Pacific/Majuro
- Pacific/Marquesas
- Pacific/Midway
- Pacific/Nauru
- Pacific/Niue
- Pacific/Norfolk
- Pacific/Noumea
- Pacific/Pago_Pago
- Pacific/Palau
- Pacific/Pitcairn
- Pacific/Pohnpei
- Pacific/Port_Moresby
- Pacific/Rarotonga
- Pacific/Saipan
- Pacific/Tahiti
- Pacific/Tarawa
- Pacific/Tongatapu
- Pacific/Wake
- Pacific/Wallis
- UTC
language_code:
type:
- string
- 'null'
enum:
- de
- nl
- en
- es
- fr
- it
- pt
required:
- email
- first_name
- last_name
title: CreateClientRequest
CreateGroupRequest:
type: object
properties:
name:
type: string
maxLength: 255
description:
type:
- string
- 'null'
maxLength: 255
enable_chat:
type:
- boolean
- 'null'
auto_send_assignments_to_new_members:
type:
- boolean
- 'null'
required:
- name
title: CreateGroupRequest
CreateTeamMemberRequest:
type: object
properties:
email:
type: string
format: email
maxLength: 255
first_name:
type: string
maxLength: 255
last_name:
type: string
maxLength: 255
role:
type: string
enum:
- member
- manager
timezone:
type:
- string
- 'null'
enum:
- Africa/Abidjan
- Africa/Accra
- Africa/Addis_Ababa
- Africa/Algiers
- Africa/Asmara
- Africa/Bamako
- Africa/Bangui
- Africa/Banjul
- Africa/Bissau
- Africa/Blantyre
- Africa/Brazzaville
- Africa/Bujumbura
- Africa/Cairo
- Africa/Casablanca
- Africa/Ceuta
- Africa/Conakry
- Africa/Dakar
- Africa/Dar_es_Salaam
- Africa/Djibouti
- Africa/Douala
- Africa/El_Aaiun
- Africa/Freetown
- Africa/Gaborone
- Africa/Harare
- Africa/Johannesburg
- Africa/Juba
- Africa/Kampala
- Africa/Khartoum
- Africa/Kigali
- Africa/Kinshasa
- Africa/Lagos
- Africa/Libreville
- Africa/Lome
- Africa/Luanda
- Africa/Lubumbashi
- Africa/Lusaka
- Africa/Malabo
- Africa/Maputo
- Africa/Maseru
- Africa/Mbabane
- Africa/Mogadishu
- Africa/Monrovia
- Africa/Nairobi
- Africa/Ndjamena
- Africa/Niamey
- Africa/Nouakchott
- Africa/Ouagadougou
- Africa/Porto-Novo
- Africa/Sao_Tome
- Africa/Tripoli
- Africa/Tunis
- Africa/Windhoek
- America/Adak
- America/Anchorage
- America/Anguilla
- America/Antigua
- America/Araguaina
- America/Argentina/Buenos_Aires
- America/Argentina/Catamarca
- America/Argentina/Cordoba
- America/Argentina/Jujuy
- America/Argentina/La_Rioja
- America/Argentina/Mendoza
- America/Argentina/Rio_Gallegos
- America/Argentina/Salta
- America/Argentina/San_Juan
- America/Argentina/San_Luis
- America/Argentina/Tucuman
- America/Argentina/Ushuaia
- America/Aruba
- America/Asuncion
- America/Atikokan
- America/Bahia
- America/Bahia_Banderas
- America/Barbados
- America/Belem
- America/Belize
- America/Blanc-Sablon
- A
# --- truncated at 32 KB (77 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/quenza/refs/heads/main/openapi/quenza-openapi.yml