Epitrello API Documentation
Welcome to the GraphQL API documentation for Epitrello
API Endpoints
# Staging:
https://staging-epitrello-backend-940386127836.europe-west1.run.app/graphql
Headers
# Your foo from bar
Authorization: Bearer <YOUR_TOKEN_HERE>
Getting Started
Getting Started
- Authentication: Most operations require authentication. Use the
loginorregistermutations to obtain a JWT token. - Authorization: Include the JWT token in the
Authorizationheader:Bearer YOUR_JWT_TOKEN - Base URL:
https://staging-epitrello-backend-940386127836.europe-west1.run.app/graphql
Features
- Boards: Create and manage project boards
- Lists: Organize tasks into lists within boards
- Cards: Create and manage tasks with position tracking
- Workspaces: Organize boards into workspaces
- Authentication: Secure JWT-based authentication
- OAuth: Support for Google, Microsoft, Apple, and Slack
Queries
activityFeed
Description
Get activity feed from all boards the user has access to (all members). Optional workspace filter.
Response
Returns a MyActivityResult!
Arguments
| Name | Description |
|---|---|
input - MyActivityInput
|
Default = {limit: 20} |
Example
Query
query ActivityFeed($input: MyActivityInput) {
activityFeed(input: $input) {
activities {
board {
...BoardFragment
}
boardId
cardId
createdAt
id
listId
payload {
...ActivityPayloadFragment
}
type
user {
...UserFragment
}
userId
}
hasMore
nextCursor
}
}
Variables
{"input": {"limit": 20}}
Response
{
"data": {
"activityFeed": {
"activities": [Activity],
"hasMore": true,
"nextCursor": 4
}
}
}
archivedCards
Description
Get archived cards for a board. User must have access to the board.
Example
Query
query ArchivedCards($boardId: ID!) {
archivedCards(boardId: $boardId) {
assignees {
avatar
description
email
id
name
}
background
checklists {
cardId
id
items {
...ChecklistItemFragment
}
title
}
completed
createdAt
description
dueDate
id
isArchived
labels {
boardId
color
id
name
}
listId
position
startDate
title
updatedAt
}
}
Variables
{"boardId": "4"}
Response
{
"data": {
"archivedCards": [
{
"assignees": [MemberUser],
"background": "abc123",
"checklists": [Checklist],
"completed": true,
"createdAt": "2007-12-03T10:15:30Z",
"description": "abc123",
"dueDate": "2007-12-03T10:15:30Z",
"id": "4",
"isArchived": true,
"labels": [Label],
"listId": "4",
"position": 123.45,
"startDate": "2007-12-03T10:15:30Z",
"title": "abc123",
"updatedAt": "2007-12-03T10:15:30Z"
}
]
}
}
archivedLists
Description
Get archived lists for a board. User must have access to the board.
Example
Query
query ArchivedLists($boardId: ID!) {
archivedLists(boardId: $boardId) {
boardId
cards {
assignees {
...MemberUserFragment
}
background
checklists {
...ChecklistFragment
}
completed
createdAt
description
dueDate
id
isArchived
labels {
...LabelFragment
}
listId
position
startDate
title
updatedAt
}
createdAt
id
isArchived
position
title
updatedAt
}
}
Variables
{"boardId": "4"}
Response
{
"data": {
"archivedLists": [
{
"boardId": "4",
"cards": [Card],
"createdAt": "2007-12-03T10:15:30Z",
"id": 4,
"isArchived": true,
"position": 123,
"title": "xyz789",
"updatedAt": "2007-12-03T10:15:30Z"
}
]
}
}
attachment
Description
Get an attachment by ID. User must have access to the board.
Response
Returns an Attachment!
Arguments
| Name | Description |
|---|---|
id - ID!
|
Example
Query
query Attachment($id: ID!) {
attachment(id: $id) {
cardId
createdAt
filename
id
size
uploader {
avatar
createdAt
description
email
id
name
updatedAt
}
uploaderId
url
}
}
Variables
{"id": "4"}
Response
{
"data": {
"attachment": {
"cardId": "4",
"createdAt": "2007-12-03T10:15:30Z",
"filename": "xyz789",
"id": "4",
"size": 987,
"uploader": User,
"uploaderId": "4",
"url": "xyz789"
}
}
}
board
Description
Get a board by ID. Access based on visibility and membership.
Example
Query
query Board($id: ID!) {
board(id: $id) {
background
createdAt
creatorId
description
id
isArchived
lists {
boardId
cards {
...CardFragment
}
createdAt
id
isArchived
position
title
updatedAt
}
members {
boardId
id
joinedAt
role
user {
...MemberUserFragment
}
userId
}
title
updatedAt
visibility
workspaceId
}
}
Variables
{"id": 4}
Response
{
"data": {
"board": {
"background": "abc123",
"createdAt": "2007-12-03T10:15:30Z",
"creatorId": 4,
"description": "xyz789",
"id": "4",
"isArchived": false,
"lists": [List],
"members": [BoardMemberWithUser],
"title": "xyz789",
"updatedAt": "2007-12-03T10:15:30Z",
"visibility": "PRIVATE",
"workspaceId": "4"
}
}
}
boardActivity
Description
Get activity for a board (all members). User must have access to the board.
Response
Returns a MyActivityResult!
Arguments
| Name | Description |
|---|---|
boardId - String!
|
|
input - BoardActivityInput
|
Default = {limit: 50} |
Example
Query
query BoardActivity(
$boardId: String!,
$input: BoardActivityInput
) {
boardActivity(
boardId: $boardId,
input: $input
) {
activities {
board {
...BoardFragment
}
boardId
cardId
createdAt
id
listId
payload {
...ActivityPayloadFragment
}
type
user {
...UserFragment
}
userId
}
hasMore
nextCursor
}
}
Variables
{
"boardId": "xyz789",
"input": {"limit": 50}
}
Response
{
"data": {
"boardActivity": {
"activities": [Activity],
"hasMore": true,
"nextCursor": 4
}
}
}
boardLabels
Description
List all labels for a board. User must have access to the board.
Example
Query
query BoardLabels($boardId: ID!) {
boardLabels(boardId: $boardId) {
boardId
color
id
name
}
}
Variables
{"boardId": "4"}
Response
{
"data": {
"boardLabels": [
{
"boardId": "4",
"color": "xyz789",
"id": 4,
"name": "abc123"
}
]
}
}
card
Description
Get a card by ID. User must have access to the board.
Example
Query
query Card($id: ID!) {
card(id: $id) {
assignees {
avatar
description
email
id
name
}
background
checklists {
cardId
id
items {
...ChecklistItemFragment
}
title
}
completed
createdAt
description
dueDate
id
isArchived
labels {
boardId
color
id
name
}
listId
position
startDate
title
updatedAt
}
}
Variables
{"id": 4}
Response
{
"data": {
"card": {
"assignees": [MemberUser],
"background": "abc123",
"checklists": [Checklist],
"completed": true,
"createdAt": "2007-12-03T10:15:30Z",
"description": "xyz789",
"dueDate": "2007-12-03T10:15:30Z",
"id": "4",
"isArchived": true,
"labels": [Label],
"listId": "4",
"position": 987.65,
"startDate": "2007-12-03T10:15:30Z",
"title": "xyz789",
"updatedAt": "2007-12-03T10:15:30Z"
}
}
}
cardAttachments
Description
List attachments for a card. User must have access to the board.
Response
Returns [Attachment!]!
Arguments
| Name | Description |
|---|---|
cardId - ID!
|
Example
Query
query CardAttachments($cardId: ID!) {
cardAttachments(cardId: $cardId) {
cardId
createdAt
filename
id
size
uploader {
avatar
createdAt
description
email
id
name
updatedAt
}
uploaderId
url
}
}
Variables
{"cardId": 4}
Response
{
"data": {
"cardAttachments": [
{
"cardId": 4,
"createdAt": "2007-12-03T10:15:30Z",
"filename": "xyz789",
"id": "4",
"size": 987,
"uploader": User,
"uploaderId": "4",
"url": "xyz789"
}
]
}
}
cardChecklists
Description
List all checklists for a card. User must have access to the board.
Response
Returns [Checklist!]!
Arguments
| Name | Description |
|---|---|
cardId - ID!
|
Example
Query
query CardChecklists($cardId: ID!) {
cardChecklists(cardId: $cardId) {
cardId
id
items {
checked
checklistId
content
id
position
}
title
}
}
Variables
{"cardId": "4"}
Response
{
"data": {
"cardChecklists": [
{
"cardId": "4",
"id": "4",
"items": [ChecklistItem],
"title": "abc123"
}
]
}
}
cardComments
Description
List comments for a card. User must have access to the board.
Response
Returns [Comment!]!
Arguments
| Name | Description |
|---|---|
cardId - ID!
|
Example
Query
query CardComments($cardId: ID!) {
cardComments(cardId: $cardId) {
author {
avatar
createdAt
description
email
id
name
updatedAt
}
authorId
cardId
content
createdAt
id
updatedAt
}
}
Variables
{"cardId": "4"}
Response
{
"data": {
"cardComments": [
{
"author": User,
"authorId": 4,
"cardId": 4,
"content": "abc123",
"createdAt": "2007-12-03T10:15:30Z",
"id": 4,
"updatedAt": "2007-12-03T10:15:30Z"
}
]
}
}
checklist
Description
Get a checklist by ID. User must have access to the board.
Response
Returns a Checklist!
Arguments
| Name | Description |
|---|---|
id - ID!
|
Example
Query
query Checklist($id: ID!) {
checklist(id: $id) {
cardId
id
items {
checked
checklistId
content
id
position
}
title
}
}
Variables
{"id": 4}
Response
{
"data": {
"checklist": {
"cardId": "4",
"id": 4,
"items": [ChecklistItem],
"title": "xyz789"
}
}
}
comment
Description
Get a comment by ID. User must have access to the board.
Example
Query
query Comment($id: ID!) {
comment(id: $id) {
author {
avatar
createdAt
description
email
id
name
updatedAt
}
authorId
cardId
content
createdAt
id
updatedAt
}
}
Variables
{"id": 4}
Response
{
"data": {
"comment": {
"author": User,
"authorId": "4",
"cardId": "4",
"content": "xyz789",
"createdAt": "2007-12-03T10:15:30Z",
"id": "4",
"updatedAt": "2007-12-03T10:15:30Z"
}
}
}
list
Description
Get a list by ID. User must have access to the board.
Example
Query
query List($id: ID!) {
list(id: $id) {
boardId
cards {
assignees {
...MemberUserFragment
}
background
checklists {
...ChecklistFragment
}
completed
createdAt
description
dueDate
id
isArchived
labels {
...LabelFragment
}
listId
position
startDate
title
updatedAt
}
createdAt
id
isArchived
position
title
updatedAt
}
}
Variables
{"id": "4"}
Response
{
"data": {
"list": {
"boardId": 4,
"cards": [Card],
"createdAt": "2007-12-03T10:15:30Z",
"id": 4,
"isArchived": true,
"position": 987,
"title": "abc123",
"updatedAt": "2007-12-03T10:15:30Z"
}
}
}
me
Description
Get the currently authenticated user information
Response
Returns a User
Example
Query
query Me {
me {
avatar
createdAt
description
email
id
name
updatedAt
}
}
Response
{
"data": {
"me": {
"avatar": "xyz789",
"createdAt": "2007-12-03T10:15:30Z",
"description": "abc123",
"email": "xyz789",
"id": "4",
"name": "xyz789",
"updatedAt": "2007-12-03T10:15:30Z"
}
}
}
myActivity
Description
Get current user activity log with optional workspace filter and pagination.
Response
Returns a MyActivityResult!
Arguments
| Name | Description |
|---|---|
input - MyActivityInput
|
Default = {limit: 20} |
Example
Query
query MyActivity($input: MyActivityInput) {
myActivity(input: $input) {
activities {
board {
...BoardFragment
}
boardId
cardId
createdAt
id
listId
payload {
...ActivityPayloadFragment
}
type
user {
...UserFragment
}
userId
}
hasMore
nextCursor
}
}
Variables
{"input": {"limit": 20}}
Response
{
"data": {
"myActivity": {
"activities": [Activity],
"hasMore": false,
"nextCursor": "4"
}
}
}
myInvitations
Description
Get all pending invitations for the current user.
Response
Returns [WorkspaceInvitation!]!
Example
Query
query MyInvitations {
myInvitations {
createdAt
expiresAt
id
inviteeEmail
inviteeId
inviterId
inviterName
role
status
updatedAt
workspaceId
workspaceName
}
}
Response
{
"data": {
"myInvitations": [
{
"createdAt": "2007-12-03T10:15:30Z",
"expiresAt": "2007-12-03T10:15:30Z",
"id": "4",
"inviteeEmail": "xyz789",
"inviteeId": "4",
"inviterId": 4,
"inviterName": "xyz789",
"role": "abc123",
"status": "ACCEPTED",
"updatedAt": "2007-12-03T10:15:30Z",
"workspaceId": "4",
"workspaceName": "abc123"
}
]
}
}
myNotificationPreferences
Description
Get current user notification preferences (email frequency, desktop notifications).
Response
Returns a NotificationPreferences!
Example
Query
query MyNotificationPreferences {
myNotificationPreferences {
allowDesktopNotifications
emailFrequency
}
}
Response
{
"data": {
"myNotificationPreferences": {
"allowDesktopNotifications": false,
"emailFrequency": "DAILY"
}
}
}
myNotifications
Description
Get current user notifications with pagination and optional unread filter.
Response
Returns a MyNotificationsResult!
Arguments
| Name | Description |
|---|---|
input - MyNotificationsInput
|
Default = {} |
Example
Query
query MyNotifications($input: MyNotificationsInput) {
myNotifications(input: $input) {
hasMore
nextCursor
notifications {
createdAt
id
payload
read
type
userId
}
}
}
Variables
{"input": {}}
Response
{
"data": {
"myNotifications": {
"hasMore": false,
"nextCursor": "abc123",
"notifications": [Notification]
}
}
}
myWorkspaces
Description
Get all workspaces where the current user is a member
Response
Returns [Workspace!]!
Example
Query
query MyWorkspaces {
myWorkspaces {
createdAt
description
id
logoUrl
memberCount
memberships {
id
joinedAt
role
userId
}
name
updatedAt
visibility
}
}
Response
{
"data": {
"myWorkspaces": [
{
"createdAt": "2007-12-03T10:15:30Z",
"description": "xyz789",
"id": "4",
"logoUrl": "abc123",
"memberCount": 987.65,
"memberships": [WorkspaceMember],
"name": "xyz789",
"updatedAt": "2007-12-03T10:15:30Z",
"visibility": "PRIVATE"
}
]
}
}
user
Description
Get a user by ID (requires authentication)
Example
Query
query User($id: ID!) {
user(id: $id) {
avatar
createdAt
description
email
id
name
updatedAt
}
}
Variables
{"id": 4}
Response
{
"data": {
"user": {
"avatar": "xyz789",
"createdAt": "2007-12-03T10:15:30Z",
"description": "abc123",
"email": "xyz789",
"id": "4",
"name": "xyz789",
"updatedAt": "2007-12-03T10:15:30Z"
}
}
}
userByEmail
Description
Get a user by email (for invite flows; requires authentication)
Example
Query
query UserByEmail($email: String!) {
userByEmail(email: $email) {
avatar
createdAt
description
email
id
name
updatedAt
}
}
Variables
{"email": "xyz789"}
Response
{
"data": {
"userByEmail": {
"avatar": "xyz789",
"createdAt": "2007-12-03T10:15:30Z",
"description": "abc123",
"email": "xyz789",
"id": "4",
"name": "xyz789",
"updatedAt": "2007-12-03T10:15:30Z"
}
}
}
users
Description
Get all users (requires authentication)
Response
Returns [User!]!
Example
Query
query Users {
users {
avatar
createdAt
description
email
id
name
updatedAt
}
}
Response
{
"data": {
"users": [
{
"avatar": "xyz789",
"createdAt": "2007-12-03T10:15:30Z",
"description": "abc123",
"email": "xyz789",
"id": "4",
"name": "xyz789",
"updatedAt": "2007-12-03T10:15:30Z"
}
]
}
}
workspace
Description
Get a workspace by ID. User must be a member to access.
Response
Returns a Workspace!
Arguments
| Name | Description |
|---|---|
id - ID!
|
Example
Query
query Workspace($id: ID!) {
workspace(id: $id) {
createdAt
description
id
logoUrl
memberCount
memberships {
id
joinedAt
role
userId
}
name
updatedAt
visibility
}
}
Variables
{"id": "4"}
Response
{
"data": {
"workspace": {
"createdAt": "2007-12-03T10:15:30Z",
"description": "abc123",
"id": "4",
"logoUrl": "xyz789",
"memberCount": 987.65,
"memberships": [WorkspaceMember],
"name": "xyz789",
"updatedAt": "2007-12-03T10:15:30Z",
"visibility": "PRIVATE"
}
}
}
workspaceBoards
Description
List all boards in a workspace. User must be a workspace member.
Example
Query
query WorkspaceBoards($workspaceId: ID!) {
workspaceBoards(workspaceId: $workspaceId) {
background
createdAt
creatorId
description
id
isArchived
lists {
boardId
cards {
...CardFragment
}
createdAt
id
isArchived
position
title
updatedAt
}
members {
boardId
id
joinedAt
role
user {
...MemberUserFragment
}
userId
}
title
updatedAt
visibility
workspaceId
}
}
Variables
{"workspaceId": 4}
Response
{
"data": {
"workspaceBoards": [
{
"background": "abc123",
"createdAt": "2007-12-03T10:15:30Z",
"creatorId": 4,
"description": "xyz789",
"id": 4,
"isArchived": false,
"lists": [List],
"members": [BoardMemberWithUser],
"title": "abc123",
"updatedAt": "2007-12-03T10:15:30Z",
"visibility": "PRIVATE",
"workspaceId": 4
}
]
}
}
workspaceInvitations
Description
Get pending invitations for a workspace. Only ADMIN can view.
Response
Returns [WorkspaceInvitation!]!
Arguments
| Name | Description |
|---|---|
workspaceId - ID!
|
Example
Query
query WorkspaceInvitations($workspaceId: ID!) {
workspaceInvitations(workspaceId: $workspaceId) {
createdAt
expiresAt
id
inviteeEmail
inviteeId
inviterId
inviterName
role
status
updatedAt
workspaceId
workspaceName
}
}
Variables
{"workspaceId": "4"}
Response
{
"data": {
"workspaceInvitations": [
{
"createdAt": "2007-12-03T10:15:30Z",
"expiresAt": "2007-12-03T10:15:30Z",
"id": 4,
"inviteeEmail": "xyz789",
"inviteeId": "4",
"inviterId": "4",
"inviterName": "abc123",
"role": "abc123",
"status": "ACCEPTED",
"updatedAt": "2007-12-03T10:15:30Z",
"workspaceId": 4,
"workspaceName": "abc123"
}
]
}
}
workspaceInviteInfo
Description
Get workspace name/logo for the invite link page. Public.
Response
Returns a WorkspaceInviteInfo!
Arguments
| Name | Description |
|---|---|
workspaceId - ID!
|
Example
Query
query WorkspaceInviteInfo($workspaceId: ID!) {
workspaceInviteInfo(workspaceId: $workspaceId) {
id
logoUrl
name
}
}
Variables
{"workspaceId": 4}
Response
{
"data": {
"workspaceInviteInfo": {
"id": "4",
"logoUrl": "abc123",
"name": "xyz789"
}
}
}
workspaceMembers
Description
Get all members of a workspace. User must be a member to view.
Response
Returns [WorkspaceMemberWithUser!]!
Arguments
| Name | Description |
|---|---|
workspaceId - ID!
|
Example
Query
query WorkspaceMembers($workspaceId: ID!) {
workspaceMembers(workspaceId: $workspaceId) {
id
joinedAt
role
user {
avatar
description
email
id
name
}
userId
workspaceId
}
}
Variables
{"workspaceId": 4}
Response
{
"data": {
"workspaceMembers": [
{
"id": 4,
"joinedAt": "2007-12-03T10:15:30Z",
"role": "abc123",
"user": MemberUser,
"userId": "4",
"workspaceId": "4"
}
]
}
}
Mutations
acceptInvitation
Description
Accept a workspace invitation.
Response
Returns a WorkspaceInvitation!
Arguments
| Name | Description |
|---|---|
input - RespondInvitationInput!
|
Example
Query
mutation AcceptInvitation($input: RespondInvitationInput!) {
acceptInvitation(input: $input) {
createdAt
expiresAt
id
inviteeEmail
inviteeId
inviterId
inviterName
role
status
updatedAt
workspaceId
workspaceName
}
}
Variables
{"input": RespondInvitationInput}
Response
{
"data": {
"acceptInvitation": {
"createdAt": "2007-12-03T10:15:30Z",
"expiresAt": "2007-12-03T10:15:30Z",
"id": "4",
"inviteeEmail": "xyz789",
"inviteeId": "4",
"inviterId": 4,
"inviterName": "abc123",
"role": "xyz789",
"status": "ACCEPTED",
"updatedAt": "2007-12-03T10:15:30Z",
"workspaceId": "4",
"workspaceName": "abc123"
}
}
}
addBoardMember
Description
Add a member to a board. Only board ADMIN can add members.
Response
Returns a BoardMemberWithUser!
Arguments
| Name | Description |
|---|---|
input - AddBoardMemberInput!
|
Example
Query
mutation AddBoardMember($input: AddBoardMemberInput!) {
addBoardMember(input: $input) {
boardId
id
joinedAt
role
user {
avatar
description
email
id
name
}
userId
}
}
Variables
{"input": AddBoardMemberInput}
Response
{
"data": {
"addBoardMember": {
"boardId": "4",
"id": "4",
"joinedAt": "2007-12-03T10:15:30Z",
"role": "xyz789",
"user": MemberUser,
"userId": "4"
}
}
}
addChecklistItem
Description
Add an item to a checklist.
Response
Returns a ChecklistItem!
Arguments
| Name | Description |
|---|---|
input - AddChecklistItemInput!
|
Example
Query
mutation AddChecklistItem($input: AddChecklistItemInput!) {
addChecklistItem(input: $input) {
checked
checklistId
content
id
position
}
}
Variables
{"input": AddChecklistItemInput}
Response
{
"data": {
"addChecklistItem": {
"checked": true,
"checklistId": "4",
"content": "abc123",
"id": 4,
"position": 123.45
}
}
}
addLabelToCard
Description
Add a label to a card. User must have access to the board.
Response
Returns a Card!
Arguments
| Name | Description |
|---|---|
input - AddLabelToCardInput!
|
Example
Query
mutation AddLabelToCard($input: AddLabelToCardInput!) {
addLabelToCard(input: $input) {
assignees {
avatar
description
email
id
name
}
background
checklists {
cardId
id
items {
...ChecklistItemFragment
}
title
}
completed
createdAt
description
dueDate
id
isArchived
labels {
boardId
color
id
name
}
listId
position
startDate
title
updatedAt
}
}
Variables
{"input": AddLabelToCardInput}
Response
{
"data": {
"addLabelToCard": {
"assignees": [MemberUser],
"background": "abc123",
"checklists": [Checklist],
"completed": false,
"createdAt": "2007-12-03T10:15:30Z",
"description": "xyz789",
"dueDate": "2007-12-03T10:15:30Z",
"id": "4",
"isArchived": true,
"labels": [Label],
"listId": 4,
"position": 987.65,
"startDate": "2007-12-03T10:15:30Z",
"title": "xyz789",
"updatedAt": "2007-12-03T10:15:30Z"
}
}
}
archiveBoard
Description
Archive a board. User must be ADMIN or MEMBER.
Example
Query
mutation ArchiveBoard($id: ID!) {
archiveBoard(id: $id) {
background
createdAt
creatorId
description
id
isArchived
lists {
boardId
cards {
...CardFragment
}
createdAt
id
isArchived
position
title
updatedAt
}
members {
boardId
id
joinedAt
role
user {
...MemberUserFragment
}
userId
}
title
updatedAt
visibility
workspaceId
}
}
Variables
{"id": "4"}
Response
{
"data": {
"archiveBoard": {
"background": "abc123",
"createdAt": "2007-12-03T10:15:30Z",
"creatorId": "4",
"description": "xyz789",
"id": 4,
"isArchived": true,
"lists": [List],
"members": [BoardMemberWithUser],
"title": "xyz789",
"updatedAt": "2007-12-03T10:15:30Z",
"visibility": "PRIVATE",
"workspaceId": "4"
}
}
}
archiveCard
Description
Archive a card. User must have access to the board.
Example
Query
mutation ArchiveCard($id: ID!) {
archiveCard(id: $id) {
assignees {
avatar
description
email
id
name
}
background
checklists {
cardId
id
items {
...ChecklistItemFragment
}
title
}
completed
createdAt
description
dueDate
id
isArchived
labels {
boardId
color
id
name
}
listId
position
startDate
title
updatedAt
}
}
Variables
{"id": "4"}
Response
{
"data": {
"archiveCard": {
"assignees": [MemberUser],
"background": "abc123",
"checklists": [Checklist],
"completed": true,
"createdAt": "2007-12-03T10:15:30Z",
"description": "xyz789",
"dueDate": "2007-12-03T10:15:30Z",
"id": "4",
"isArchived": true,
"labels": [Label],
"listId": "4",
"position": 987.65,
"startDate": "2007-12-03T10:15:30Z",
"title": "abc123",
"updatedAt": "2007-12-03T10:15:30Z"
}
}
}
archiveList
Description
Archive a list. User must have access to the board.
Example
Query
mutation ArchiveList($id: ID!) {
archiveList(id: $id) {
boardId
cards {
assignees {
...MemberUserFragment
}
background
checklists {
...ChecklistFragment
}
completed
createdAt
description
dueDate
id
isArchived
labels {
...LabelFragment
}
listId
position
startDate
title
updatedAt
}
createdAt
id
isArchived
position
title
updatedAt
}
}
Variables
{"id": "4"}
Response
{
"data": {
"archiveList": {
"boardId": "4",
"cards": [Card],
"createdAt": "2007-12-03T10:15:30Z",
"id": 4,
"isArchived": true,
"position": 987,
"title": "xyz789",
"updatedAt": "2007-12-03T10:15:30Z"
}
}
}
assignMemberToCard
Description
Assign a member to a card. User must have access to the board.
Response
Returns a Card!
Arguments
| Name | Description |
|---|---|
input - AssignMemberToCardInput!
|
Example
Query
mutation AssignMemberToCard($input: AssignMemberToCardInput!) {
assignMemberToCard(input: $input) {
assignees {
avatar
description
email
id
name
}
background
checklists {
cardId
id
items {
...ChecklistItemFragment
}
title
}
completed
createdAt
description
dueDate
id
isArchived
labels {
boardId
color
id
name
}
listId
position
startDate
title
updatedAt
}
}
Variables
{"input": AssignMemberToCardInput}
Response
{
"data": {
"assignMemberToCard": {
"assignees": [MemberUser],
"background": "xyz789",
"checklists": [Checklist],
"completed": true,
"createdAt": "2007-12-03T10:15:30Z",
"description": "abc123",
"dueDate": "2007-12-03T10:15:30Z",
"id": 4,
"isArchived": false,
"labels": [Label],
"listId": "4",
"position": 123.45,
"startDate": "2007-12-03T10:15:30Z",
"title": "abc123",
"updatedAt": "2007-12-03T10:15:30Z"
}
}
}
cancelInvitation
Description
Cancel a pending invitation. Only the inviter or workspace admin can cancel.
createAttachment
Description
Create an attachment on a card.
Response
Returns an Attachment!
Arguments
| Name | Description |
|---|---|
input - CreateAttachmentInput!
|
Example
Query
mutation CreateAttachment($input: CreateAttachmentInput!) {
createAttachment(input: $input) {
cardId
createdAt
filename
id
size
uploader {
avatar
createdAt
description
email
id
name
updatedAt
}
uploaderId
url
}
}
Variables
{"input": CreateAttachmentInput}
Response
{
"data": {
"createAttachment": {
"cardId": 4,
"createdAt": "2007-12-03T10:15:30Z",
"filename": "abc123",
"id": 4,
"size": 987,
"uploader": User,
"uploaderId": "4",
"url": "abc123"
}
}
}
createBoard
Description
Create a new board. User must be ADMIN or MEMBER of the workspace (if provided).
Response
Returns a Board!
Arguments
| Name | Description |
|---|---|
input - CreateBoardInput!
|
Example
Query
mutation CreateBoard($input: CreateBoardInput!) {
createBoard(input: $input) {
background
createdAt
creatorId
description
id
isArchived
lists {
boardId
cards {
...CardFragment
}
createdAt
id
isArchived
position
title
updatedAt
}
members {
boardId
id
joinedAt
role
user {
...MemberUserFragment
}
userId
}
title
updatedAt
visibility
workspaceId
}
}
Variables
{"input": CreateBoardInput}
Response
{
"data": {
"createBoard": {
"background": "abc123",
"createdAt": "2007-12-03T10:15:30Z",
"creatorId": "4",
"description": "xyz789",
"id": 4,
"isArchived": true,
"lists": [List],
"members": [BoardMemberWithUser],
"title": "abc123",
"updatedAt": "2007-12-03T10:15:30Z",
"visibility": "PRIVATE",
"workspaceId": "4"
}
}
}
createCard
Description
Create a new card. Position is calculated automatically if not provided.
Response
Returns a Card!
Arguments
| Name | Description |
|---|---|
input - CreateCardInput!
|
Example
Query
mutation CreateCard($input: CreateCardInput!) {
createCard(input: $input) {
assignees {
avatar
description
email
id
name
}
background
checklists {
cardId
id
items {
...ChecklistItemFragment
}
title
}
completed
createdAt
description
dueDate
id
isArchived
labels {
boardId
color
id
name
}
listId
position
startDate
title
updatedAt
}
}
Variables
{"input": CreateCardInput}
Response
{
"data": {
"createCard": {
"assignees": [MemberUser],
"background": "xyz789",
"checklists": [Checklist],
"completed": true,
"createdAt": "2007-12-03T10:15:30Z",
"description": "xyz789",
"dueDate": "2007-12-03T10:15:30Z",
"id": 4,
"isArchived": true,
"labels": [Label],
"listId": 4,
"position": 987.65,
"startDate": "2007-12-03T10:15:30Z",
"title": "abc123",
"updatedAt": "2007-12-03T10:15:30Z"
}
}
}
createChecklist
Description
Create a new checklist for a card.
Response
Returns a Checklist!
Arguments
| Name | Description |
|---|---|
input - CreateChecklistInput!
|
Example
Query
mutation CreateChecklist($input: CreateChecklistInput!) {
createChecklist(input: $input) {
cardId
id
items {
checked
checklistId
content
id
position
}
title
}
}
Variables
{"input": CreateChecklistInput}
Response
{
"data": {
"createChecklist": {
"cardId": "4",
"id": "4",
"items": [ChecklistItem],
"title": "xyz789"
}
}
}
createComment
Description
Create a comment on a card.
Response
Returns a Comment!
Arguments
| Name | Description |
|---|---|
input - CreateCommentInput!
|
Example
Query
mutation CreateComment($input: CreateCommentInput!) {
createComment(input: $input) {
author {
avatar
createdAt
description
email
id
name
updatedAt
}
authorId
cardId
content
createdAt
id
updatedAt
}
}
Variables
{"input": CreateCommentInput}
Response
{
"data": {
"createComment": {
"author": User,
"authorId": "4",
"cardId": 4,
"content": "xyz789",
"createdAt": "2007-12-03T10:15:30Z",
"id": 4,
"updatedAt": "2007-12-03T10:15:30Z"
}
}
}
createLabel
Description
Create a new label for a board. User must have access to the board.
Response
Returns a Label!
Arguments
| Name | Description |
|---|---|
input - CreateLabelInput!
|
Example
Query
mutation CreateLabel($input: CreateLabelInput!) {
createLabel(input: $input) {
boardId
color
id
name
}
}
Variables
{"input": CreateLabelInput}
Response
{
"data": {
"createLabel": {
"boardId": "4",
"color": "xyz789",
"id": 4,
"name": "abc123"
}
}
}
createList
Description
Create a new list. Position is calculated automatically if not provided.
Response
Returns a List!
Arguments
| Name | Description |
|---|---|
input - CreateListInput!
|
Example
Query
mutation CreateList($input: CreateListInput!) {
createList(input: $input) {
boardId
cards {
assignees {
...MemberUserFragment
}
background
checklists {
...ChecklistFragment
}
completed
createdAt
description
dueDate
id
isArchived
labels {
...LabelFragment
}
listId
position
startDate
title
updatedAt
}
createdAt
id
isArchived
position
title
updatedAt
}
}
Variables
{"input": CreateListInput}
Response
{
"data": {
"createList": {
"boardId": 4,
"cards": [Card],
"createdAt": "2007-12-03T10:15:30Z",
"id": 4,
"isArchived": true,
"position": 987,
"title": "abc123",
"updatedAt": "2007-12-03T10:15:30Z"
}
}
}
createUser
Description
Create a new user (requires authentication)
Response
Returns a User!
Arguments
| Name | Description |
|---|---|
input - CreateUserInput!
|
Example
Query
mutation CreateUser($input: CreateUserInput!) {
createUser(input: $input) {
avatar
createdAt
description
email
id
name
updatedAt
}
}
Variables
{"input": CreateUserInput}
Response
{
"data": {
"createUser": {
"avatar": "abc123",
"createdAt": "2007-12-03T10:15:30Z",
"description": "xyz789",
"email": "abc123",
"id": 4,
"name": "xyz789",
"updatedAt": "2007-12-03T10:15:30Z"
}
}
}
createWorkspace
Description
Create a new workspace. The creator becomes an ADMIN automatically.
Response
Returns a Workspace!
Arguments
| Name | Description |
|---|---|
input - CreateWorkspaceInput!
|
Example
Query
mutation CreateWorkspace($input: CreateWorkspaceInput!) {
createWorkspace(input: $input) {
createdAt
description
id
logoUrl
memberCount
memberships {
id
joinedAt
role
userId
}
name
updatedAt
visibility
}
}
Variables
{"input": CreateWorkspaceInput}
Response
{
"data": {
"createWorkspace": {
"createdAt": "2007-12-03T10:15:30Z",
"description": "abc123",
"id": 4,
"logoUrl": "xyz789",
"memberCount": 987.65,
"memberships": [WorkspaceMember],
"name": "xyz789",
"updatedAt": "2007-12-03T10:15:30Z",
"visibility": "PRIVATE"
}
}
}
deleteAttachment
Description
Delete an attachment. Uploader only.
deleteBoard
Description
Delete a board. Only board ADMIN can delete.
deleteCard
Description
Delete a card. User must have access to the board.
deleteChecklist
Description
Delete a checklist.
deleteChecklistItem
Description
Delete a checklist item.
deleteComment
Description
Delete a comment. Author only.
deleteLabel
Description
Delete a label. User must have access to the board.
deleteList
Description
Delete a list. Cards are automatically deleted via cascade.
deleteUser
Description
Delete a user by ID (requires authentication)
deleteWorkspace
Description
Delete a workspace. Only ADMIN members can delete.
forgotPassword
Description
Request a password reset. A reset token will be sent to the provided email address if the account exists.
Response
Returns a MessageResponse!
Arguments
| Name | Description |
|---|---|
input - ForgotPasswordInput!
|
Example
Query
mutation ForgotPassword($input: ForgotPasswordInput!) {
forgotPassword(input: $input) {
message
}
}
Variables
{"input": ForgotPasswordInput}
Response
{
"data": {
"forgotPassword": {"message": "abc123"}
}
}
inviteMember
Description
Invite a member to a workspace. Only ADMIN members can invite.
Response
Returns a WorkspaceInvitation!
Arguments
| Name | Description |
|---|---|
input - InviteMemberInput!
|
Example
Query
mutation InviteMember($input: InviteMemberInput!) {
inviteMember(input: $input) {
createdAt
expiresAt
id
inviteeEmail
inviteeId
inviterId
inviterName
role
status
updatedAt
workspaceId
workspaceName
}
}
Variables
{"input": InviteMemberInput}
Response
{
"data": {
"inviteMember": {
"createdAt": "2007-12-03T10:15:30Z",
"expiresAt": "2007-12-03T10:15:30Z",
"id": "4",
"inviteeEmail": "xyz789",
"inviteeId": 4,
"inviterId": "4",
"inviterName": "abc123",
"role": "abc123",
"status": "ACCEPTED",
"updatedAt": "2007-12-03T10:15:30Z",
"workspaceId": 4,
"workspaceName": "abc123"
}
}
}
joinWorkspaceByInviteLink
Description
Join a workspace via invite link. Adds current user as MEMBER if not already a member.
leaveBoard
Description
Leave a board. Cannot leave if you are the last admin.
leaveWorkspace
Description
Leave a workspace. Cannot leave if you are the last admin.
login
Description
Login with email and password. Returns a JWT token for authenticated requests.
Response
Returns an AuthPayload!
Arguments
| Name | Description |
|---|---|
input - LoginInput!
|
Example
Query
mutation Login($input: LoginInput!) {
login(input: $input) {
token
user {
avatar
createdAt
description
email
id
name
updatedAt
}
}
}
Variables
{"input": LoginInput}
Response
{
"data": {
"login": {
"token": "abc123",
"user": User
}
}
}
markAllNotificationsRead
Description
Mark all notifications as read for the current user. Returns count updated.
Response
Returns an Int!
Example
Query
mutation MarkAllNotificationsRead {
markAllNotificationsRead
}
Response
{"data": {"markAllNotificationsRead": 123}}
markNotificationRead
Description
Mark a notification as read.
Response
Returns a Notification!
Arguments
| Name | Description |
|---|---|
id - ID!
|
Example
Query
mutation MarkNotificationRead($id: ID!) {
markNotificationRead(id: $id) {
createdAt
id
payload
read
type
userId
}
}
Variables
{"id": 4}
Response
{
"data": {
"markNotificationRead": {
"createdAt": "2007-12-03T10:15:30Z",
"id": "4",
"payload": "xyz789",
"read": true,
"type": "BOARD_INVITATION",
"userId": 4
}
}
}
moveCard
Description
Move a card to a different list within the same board. Position is calculated automatically if not provided.
Response
Returns a Card!
Arguments
| Name | Description |
|---|---|
input - MoveCardInput!
|
Example
Query
mutation MoveCard($input: MoveCardInput!) {
moveCard(input: $input) {
assignees {
avatar
description
email
id
name
}
background
checklists {
cardId
id
items {
...ChecklistItemFragment
}
title
}
completed
createdAt
description
dueDate
id
isArchived
labels {
boardId
color
id
name
}
listId
position
startDate
title
updatedAt
}
}
Variables
{"input": MoveCardInput}
Response
{
"data": {
"moveCard": {
"assignees": [MemberUser],
"background": "xyz789",
"checklists": [Checklist],
"completed": false,
"createdAt": "2007-12-03T10:15:30Z",
"description": "abc123",
"dueDate": "2007-12-03T10:15:30Z",
"id": 4,
"isArchived": true,
"labels": [Label],
"listId": "4",
"position": 987.65,
"startDate": "2007-12-03T10:15:30Z",
"title": "xyz789",
"updatedAt": "2007-12-03T10:15:30Z"
}
}
}
register
Description
Register a new user account. If companyName is provided, a workspace is automatically created.
Response
Returns an AuthPayload!
Arguments
| Name | Description |
|---|---|
input - RegisterInput!
|
Example
Query
mutation Register($input: RegisterInput!) {
register(input: $input) {
token
user {
avatar
createdAt
description
email
id
name
updatedAt
}
}
}
Variables
{"input": RegisterInput}
Response
{
"data": {
"register": {
"token": "xyz789",
"user": User
}
}
}
rejectInvitation
Description
Reject a workspace invitation.
Response
Returns a WorkspaceInvitation!
Arguments
| Name | Description |
|---|---|
input - RespondInvitationInput!
|
Example
Query
mutation RejectInvitation($input: RespondInvitationInput!) {
rejectInvitation(input: $input) {
createdAt
expiresAt
id
inviteeEmail
inviteeId
inviterId
inviterName
role
status
updatedAt
workspaceId
workspaceName
}
}
Variables
{"input": RespondInvitationInput}
Response
{
"data": {
"rejectInvitation": {
"createdAt": "2007-12-03T10:15:30Z",
"expiresAt": "2007-12-03T10:15:30Z",
"id": "4",
"inviteeEmail": "xyz789",
"inviteeId": "4",
"inviterId": "4",
"inviterName": "xyz789",
"role": "abc123",
"status": "ACCEPTED",
"updatedAt": "2007-12-03T10:15:30Z",
"workspaceId": 4,
"workspaceName": "xyz789"
}
}
}
removeBoardMember
Description
Remove a member from a board. Only board ADMIN can remove members.
Example
Query
mutation RemoveBoardMember(
$boardId: ID!,
$userId: ID!
) {
removeBoardMember(
boardId: $boardId,
userId: $userId
)
}
Variables
{
"boardId": "4",
"userId": "4"
}
Response
{"data": {"removeBoardMember": true}}
removeLabelFromCard
Description
Remove a label from a card. User must have access to the board.
Response
Returns a Card!
Arguments
| Name | Description |
|---|---|
input - RemoveLabelFromCardInput!
|
Example
Query
mutation RemoveLabelFromCard($input: RemoveLabelFromCardInput!) {
removeLabelFromCard(input: $input) {
assignees {
avatar
description
email
id
name
}
background
checklists {
cardId
id
items {
...ChecklistItemFragment
}
title
}
completed
createdAt
description
dueDate
id
isArchived
labels {
boardId
color
id
name
}
listId
position
startDate
title
updatedAt
}
}
Variables
{"input": RemoveLabelFromCardInput}
Response
{
"data": {
"removeLabelFromCard": {
"assignees": [MemberUser],
"background": "xyz789",
"checklists": [Checklist],
"completed": true,
"createdAt": "2007-12-03T10:15:30Z",
"description": "xyz789",
"dueDate": "2007-12-03T10:15:30Z",
"id": 4,
"isArchived": false,
"labels": [Label],
"listId": "4",
"position": 123.45,
"startDate": "2007-12-03T10:15:30Z",
"title": "xyz789",
"updatedAt": "2007-12-03T10:15:30Z"
}
}
}
removeMember
Description
Remove a member from a workspace. Only ADMIN can remove members.
Response
Returns a Boolean!
Arguments
| Name | Description |
|---|---|
input - RemoveMemberInput!
|
Example
Query
mutation RemoveMember($input: RemoveMemberInput!) {
removeMember(input: $input)
}
Variables
{"input": RemoveMemberInput}
Response
{"data": {"removeMember": true}}
reorderCards
Description
Reorder multiple cards within the same list. All cards must belong to the same list.
Response
Returns [Card!]!
Arguments
| Name | Description |
|---|---|
input - ReorderCardsInput!
|
Example
Query
mutation ReorderCards($input: ReorderCardsInput!) {
reorderCards(input: $input) {
assignees {
avatar
description
email
id
name
}
background
checklists {
cardId
id
items {
...ChecklistItemFragment
}
title
}
completed
createdAt
description
dueDate
id
isArchived
labels {
boardId
color
id
name
}
listId
position
startDate
title
updatedAt
}
}
Variables
{"input": ReorderCardsInput}
Response
{
"data": {
"reorderCards": [
{
"assignees": [MemberUser],
"background": "xyz789",
"checklists": [Checklist],
"completed": true,
"createdAt": "2007-12-03T10:15:30Z",
"description": "abc123",
"dueDate": "2007-12-03T10:15:30Z",
"id": 4,
"isArchived": false,
"labels": [Label],
"listId": "4",
"position": 987.65,
"startDate": "2007-12-03T10:15:30Z",
"title": "abc123",
"updatedAt": "2007-12-03T10:15:30Z"
}
]
}
}
reorderChecklistItems
Description
Reorder items in a checklist.
Response
Returns [ChecklistItem!]!
Arguments
| Name | Description |
|---|---|
input - ReorderChecklistItemsInput!
|
Example
Query
mutation ReorderChecklistItems($input: ReorderChecklistItemsInput!) {
reorderChecklistItems(input: $input) {
checked
checklistId
content
id
position
}
}
Variables
{"input": ReorderChecklistItemsInput}
Response
{
"data": {
"reorderChecklistItems": [
{
"checked": false,
"checklistId": "4",
"content": "xyz789",
"id": "4",
"position": 123.45
}
]
}
}
reorderLists
Description
Reorder multiple lists at once. All lists must belong to the same board.
Response
Returns [List!]!
Arguments
| Name | Description |
|---|---|
input - ReorderListsInput!
|
Example
Query
mutation ReorderLists($input: ReorderListsInput!) {
reorderLists(input: $input) {
boardId
cards {
assignees {
...MemberUserFragment
}
background
checklists {
...ChecklistFragment
}
completed
createdAt
description
dueDate
id
isArchived
labels {
...LabelFragment
}
listId
position
startDate
title
updatedAt
}
createdAt
id
isArchived
position
title
updatedAt
}
}
Variables
{"input": ReorderListsInput}
Response
{
"data": {
"reorderLists": [
{
"boardId": 4,
"cards": [Card],
"createdAt": "2007-12-03T10:15:30Z",
"id": "4",
"isArchived": false,
"position": 987,
"title": "abc123",
"updatedAt": "2007-12-03T10:15:30Z"
}
]
}
}
resetPassword
Description
Reset password using a valid reset token. The token is received via email after requesting a password reset.
Response
Returns a MessageResponse!
Arguments
| Name | Description |
|---|---|
input - ResetPasswordInput!
|
Example
Query
mutation ResetPassword($input: ResetPasswordInput!) {
resetPassword(input: $input) {
message
}
}
Variables
{"input": ResetPasswordInput}
Response
{
"data": {
"resetPassword": {"message": "xyz789"}
}
}
unarchiveBoard
Description
Unarchive a board. User must be ADMIN or MEMBER.
Example
Query
mutation UnarchiveBoard($id: ID!) {
unarchiveBoard(id: $id) {
background
createdAt
creatorId
description
id
isArchived
lists {
boardId
cards {
...CardFragment
}
createdAt
id
isArchived
position
title
updatedAt
}
members {
boardId
id
joinedAt
role
user {
...MemberUserFragment
}
userId
}
title
updatedAt
visibility
workspaceId
}
}
Variables
{"id": "4"}
Response
{
"data": {
"unarchiveBoard": {
"background": "abc123",
"createdAt": "2007-12-03T10:15:30Z",
"creatorId": "4",
"description": "abc123",
"id": "4",
"isArchived": true,
"lists": [List],
"members": [BoardMemberWithUser],
"title": "abc123",
"updatedAt": "2007-12-03T10:15:30Z",
"visibility": "PRIVATE",
"workspaceId": "4"
}
}
}
unarchiveCard
Description
Unarchive a card. User must have access to the board.
Example
Query
mutation UnarchiveCard($id: ID!) {
unarchiveCard(id: $id) {
assignees {
avatar
description
email
id
name
}
background
checklists {
cardId
id
items {
...ChecklistItemFragment
}
title
}
completed
createdAt
description
dueDate
id
isArchived
labels {
boardId
color
id
name
}
listId
position
startDate
title
updatedAt
}
}
Variables
{"id": 4}
Response
{
"data": {
"unarchiveCard": {
"assignees": [MemberUser],
"background": "abc123",
"checklists": [Checklist],
"completed": true,
"createdAt": "2007-12-03T10:15:30Z",
"description": "xyz789",
"dueDate": "2007-12-03T10:15:30Z",
"id": "4",
"isArchived": false,
"labels": [Label],
"listId": 4,
"position": 987.65,
"startDate": "2007-12-03T10:15:30Z",
"title": "abc123",
"updatedAt": "2007-12-03T10:15:30Z"
}
}
}
unarchiveList
Description
Unarchive a list. User must have access to the board.
Example
Query
mutation UnarchiveList($id: ID!) {
unarchiveList(id: $id) {
boardId
cards {
assignees {
...MemberUserFragment
}
background
checklists {
...ChecklistFragment
}
completed
createdAt
description
dueDate
id
isArchived
labels {
...LabelFragment
}
listId
position
startDate
title
updatedAt
}
createdAt
id
isArchived
position
title
updatedAt
}
}
Variables
{"id": "4"}
Response
{
"data": {
"unarchiveList": {
"boardId": "4",
"cards": [Card],
"createdAt": "2007-12-03T10:15:30Z",
"id": 4,
"isArchived": true,
"position": 987,
"title": "xyz789",
"updatedAt": "2007-12-03T10:15:30Z"
}
}
}
unassignMemberFromCard
Description
Unassign a member from a card. User must have access to the board.
Response
Returns a Card!
Arguments
| Name | Description |
|---|---|
input - UnassignMemberFromCardInput!
|
Example
Query
mutation UnassignMemberFromCard($input: UnassignMemberFromCardInput!) {
unassignMemberFromCard(input: $input) {
assignees {
avatar
description
email
id
name
}
background
checklists {
cardId
id
items {
...ChecklistItemFragment
}
title
}
completed
createdAt
description
dueDate
id
isArchived
labels {
boardId
color
id
name
}
listId
position
startDate
title
updatedAt
}
}
Variables
{"input": UnassignMemberFromCardInput}
Response
{
"data": {
"unassignMemberFromCard": {
"assignees": [MemberUser],
"background": "xyz789",
"checklists": [Checklist],
"completed": true,
"createdAt": "2007-12-03T10:15:30Z",
"description": "abc123",
"dueDate": "2007-12-03T10:15:30Z",
"id": 4,
"isArchived": true,
"labels": [Label],
"listId": "4",
"position": 123.45,
"startDate": "2007-12-03T10:15:30Z",
"title": "xyz789",
"updatedAt": "2007-12-03T10:15:30Z"
}
}
}
updateAttachment
Description
Update an attachment. Uploader only.
Response
Returns an Attachment!
Arguments
| Name | Description |
|---|---|
input - UpdateAttachmentInput!
|
Example
Query
mutation UpdateAttachment($input: UpdateAttachmentInput!) {
updateAttachment(input: $input) {
cardId
createdAt
filename
id
size
uploader {
avatar
createdAt
description
email
id
name
updatedAt
}
uploaderId
url
}
}
Variables
{"input": UpdateAttachmentInput}
Response
{
"data": {
"updateAttachment": {
"cardId": "4",
"createdAt": "2007-12-03T10:15:30Z",
"filename": "abc123",
"id": "4",
"size": 123,
"uploader": User,
"uploaderId": "4",
"url": "xyz789"
}
}
}
updateBoard
Description
Update a board. User must be ADMIN or MEMBER of the board.
Response
Returns a Board!
Arguments
| Name | Description |
|---|---|
input - UpdateBoardInput!
|
Example
Query
mutation UpdateBoard($input: UpdateBoardInput!) {
updateBoard(input: $input) {
background
createdAt
creatorId
description
id
isArchived
lists {
boardId
cards {
...CardFragment
}
createdAt
id
isArchived
position
title
updatedAt
}
members {
boardId
id
joinedAt
role
user {
...MemberUserFragment
}
userId
}
title
updatedAt
visibility
workspaceId
}
}
Variables
{"input": UpdateBoardInput}
Response
{
"data": {
"updateBoard": {
"background": "xyz789",
"createdAt": "2007-12-03T10:15:30Z",
"creatorId": 4,
"description": "xyz789",
"id": 4,
"isArchived": true,
"lists": [List],
"members": [BoardMemberWithUser],
"title": "xyz789",
"updatedAt": "2007-12-03T10:15:30Z",
"visibility": "PRIVATE",
"workspaceId": 4
}
}
}
updateBoardMemberRole
Description
Update a member role in a board. Only board ADMIN can update roles.
Response
Returns a Boolean!
Arguments
| Name | Description |
|---|---|
input - UpdateBoardMemberRoleInput!
|
Example
Query
mutation UpdateBoardMemberRole($input: UpdateBoardMemberRoleInput!) {
updateBoardMemberRole(input: $input)
}
Variables
{"input": UpdateBoardMemberRoleInput}
Response
{"data": {"updateBoardMemberRole": true}}
updateCard
Description
Update a card. User must have access to the board.
Response
Returns a Card!
Arguments
| Name | Description |
|---|---|
input - UpdateCardInput!
|
Example
Query
mutation UpdateCard($input: UpdateCardInput!) {
updateCard(input: $input) {
assignees {
avatar
description
email
id
name
}
background
checklists {
cardId
id
items {
...ChecklistItemFragment
}
title
}
completed
createdAt
description
dueDate
id
isArchived
labels {
boardId
color
id
name
}
listId
position
startDate
title
updatedAt
}
}
Variables
{"input": UpdateCardInput}
Response
{
"data": {
"updateCard": {
"assignees": [MemberUser],
"background": "xyz789",
"checklists": [Checklist],
"completed": false,
"createdAt": "2007-12-03T10:15:30Z",
"description": "abc123",
"dueDate": "2007-12-03T10:15:30Z",
"id": 4,
"isArchived": true,
"labels": [Label],
"listId": "4",
"position": 123.45,
"startDate": "2007-12-03T10:15:30Z",
"title": "xyz789",
"updatedAt": "2007-12-03T10:15:30Z"
}
}
}
updateChecklist
Description
Update a checklist title.
Response
Returns a Checklist!
Arguments
| Name | Description |
|---|---|
input - UpdateChecklistInput!
|
Example
Query
mutation UpdateChecklist($input: UpdateChecklistInput!) {
updateChecklist(input: $input) {
cardId
id
items {
checked
checklistId
content
id
position
}
title
}
}
Variables
{"input": UpdateChecklistInput}
Response
{
"data": {
"updateChecklist": {
"cardId": "4",
"id": 4,
"items": [ChecklistItem],
"title": "xyz789"
}
}
}
updateChecklistItem
Description
Update a checklist item (content, checked, position).
Response
Returns a ChecklistItem!
Arguments
| Name | Description |
|---|---|
input - UpdateChecklistItemInput!
|
Example
Query
mutation UpdateChecklistItem($input: UpdateChecklistItemInput!) {
updateChecklistItem(input: $input) {
checked
checklistId
content
id
position
}
}
Variables
{"input": UpdateChecklistItemInput}
Response
{
"data": {
"updateChecklistItem": {
"checked": false,
"checklistId": 4,
"content": "abc123",
"id": 4,
"position": 123.45
}
}
}
updateComment
Description
Update a comment. Author only.
Response
Returns a Comment!
Arguments
| Name | Description |
|---|---|
input - UpdateCommentInput!
|
Example
Query
mutation UpdateComment($input: UpdateCommentInput!) {
updateComment(input: $input) {
author {
avatar
createdAt
description
email
id
name
updatedAt
}
authorId
cardId
content
createdAt
id
updatedAt
}
}
Variables
{"input": UpdateCommentInput}
Response
{
"data": {
"updateComment": {
"author": User,
"authorId": 4,
"cardId": "4",
"content": "xyz789",
"createdAt": "2007-12-03T10:15:30Z",
"id": 4,
"updatedAt": "2007-12-03T10:15:30Z"
}
}
}
updateLabel
Description
Update a label. User must have access to the board.
Response
Returns a Label!
Arguments
| Name | Description |
|---|---|
input - UpdateLabelInput!
|
Example
Query
mutation UpdateLabel($input: UpdateLabelInput!) {
updateLabel(input: $input) {
boardId
color
id
name
}
}
Variables
{"input": UpdateLabelInput}
Response
{
"data": {
"updateLabel": {
"boardId": 4,
"color": "abc123",
"id": "4",
"name": "xyz789"
}
}
}
updateList
Description
Update a list. User must have access to the board.
Response
Returns a List!
Arguments
| Name | Description |
|---|---|
input - UpdateListInput!
|
Example
Query
mutation UpdateList($input: UpdateListInput!) {
updateList(input: $input) {
boardId
cards {
assignees {
...MemberUserFragment
}
background
checklists {
...ChecklistFragment
}
completed
createdAt
description
dueDate
id
isArchived
labels {
...LabelFragment
}
listId
position
startDate
title
updatedAt
}
createdAt
id
isArchived
position
title
updatedAt
}
}
Variables
{"input": UpdateListInput}
Response
{
"data": {
"updateList": {
"boardId": 4,
"cards": [Card],
"createdAt": "2007-12-03T10:15:30Z",
"id": 4,
"isArchived": false,
"position": 987,
"title": "abc123",
"updatedAt": "2007-12-03T10:15:30Z"
}
}
}
updateMemberRole
Description
Update a member role in a workspace. Only ADMIN can update roles.
Response
Returns a Boolean!
Arguments
| Name | Description |
|---|---|
input - UpdateMemberRoleInput!
|
Example
Query
mutation UpdateMemberRole($input: UpdateMemberRoleInput!) {
updateMemberRole(input: $input)
}
Variables
{"input": UpdateMemberRoleInput}
Response
{"data": {"updateMemberRole": false}}
updateMyNotificationPreferences
Description
Update current user notification preferences.
Response
Returns a NotificationPreferences!
Arguments
| Name | Description |
|---|---|
input - UpdateNotificationPreferencesInput!
|
Example
Query
mutation UpdateMyNotificationPreferences($input: UpdateNotificationPreferencesInput!) {
updateMyNotificationPreferences(input: $input) {
allowDesktopNotifications
emailFrequency
}
}
Variables
{"input": UpdateNotificationPreferencesInput}
Response
{
"data": {
"updateMyNotificationPreferences": {
"allowDesktopNotifications": false,
"emailFrequency": "DAILY"
}
}
}
updateUser
Description
Update an existing user (requires authentication)
Response
Returns a User!
Arguments
| Name | Description |
|---|---|
id - ID!
|
|
input - UpdateUserInput!
|
Example
Query
mutation UpdateUser(
$id: ID!,
$input: UpdateUserInput!
) {
updateUser(
id: $id,
input: $input
) {
avatar
createdAt
description
email
id
name
updatedAt
}
}
Variables
{"id": 4, "input": UpdateUserInput}
Response
{
"data": {
"updateUser": {
"avatar": "abc123",
"createdAt": "2007-12-03T10:15:30Z",
"description": "abc123",
"email": "abc123",
"id": "4",
"name": "abc123",
"updatedAt": "2007-12-03T10:15:30Z"
}
}
}
updateWorkspace
Description
Update a workspace. Only ADMIN members can update.
Response
Returns a Workspace!
Arguments
| Name | Description |
|---|---|
id - ID!
|
|
input - UpdateWorkspaceInput!
|
Example
Query
mutation UpdateWorkspace(
$id: ID!,
$input: UpdateWorkspaceInput!
) {
updateWorkspace(
id: $id,
input: $input
) {
createdAt
description
id
logoUrl
memberCount
memberships {
id
joinedAt
role
userId
}
name
updatedAt
visibility
}
}
Variables
{
"id": "4",
"input": UpdateWorkspaceInput
}
Response
{
"data": {
"updateWorkspace": {
"createdAt": "2007-12-03T10:15:30Z",
"description": "abc123",
"id": "4",
"logoUrl": "abc123",
"memberCount": 987.65,
"memberships": [WorkspaceMember],
"name": "xyz789",
"updatedAt": "2007-12-03T10:15:30Z",
"visibility": "PRIVATE"
}
}
}
verifyEmail
Description
Verify email address using the verification token received via email. A welcome email will be sent upon successful verification.
Response
Returns a MessageResponse!
Arguments
| Name | Description |
|---|---|
token - String!
|
Example
Query
mutation VerifyEmail($token: String!) {
verifyEmail(token: $token) {
message
}
}
Variables
{"token": "abc123"}
Response
{
"data": {
"verifyEmail": {"message": "abc123"}
}
}
Subscriptions
cardUpdated
Description
Subscribe to card create/update/move/delete for a board.
Example
Query
subscription CardUpdated($boardId: ID!) {
cardUpdated(boardId: $boardId) {
assignees {
avatar
description
email
id
name
}
background
checklists {
cardId
id
items {
...ChecklistItemFragment
}
title
}
completed
createdAt
description
dueDate
id
isArchived
labels {
boardId
color
id
name
}
listId
position
startDate
title
updatedAt
}
}
Variables
{"boardId": 4}
Response
{
"data": {
"cardUpdated": {
"assignees": [MemberUser],
"background": "xyz789",
"checklists": [Checklist],
"completed": false,
"createdAt": "2007-12-03T10:15:30Z",
"description": "abc123",
"dueDate": "2007-12-03T10:15:30Z",
"id": 4,
"isArchived": true,
"labels": [Label],
"listId": 4,
"position": 987.65,
"startDate": "2007-12-03T10:15:30Z",
"title": "xyz789",
"updatedAt": "2007-12-03T10:15:30Z"
}
}
}
cardUpdatedByCardId
Description
Subscribe to updates for a single card (e.g. card modal).
Example
Query
subscription CardUpdatedByCardId($cardId: ID!) {
cardUpdatedByCardId(cardId: $cardId) {
assignees {
avatar
description
email
id
name
}
background
checklists {
cardId
id
items {
...ChecklistItemFragment
}
title
}
completed
createdAt
description
dueDate
id
isArchived
labels {
boardId
color
id
name
}
listId
position
startDate
title
updatedAt
}
}
Variables
{"cardId": 4}
Response
{
"data": {
"cardUpdatedByCardId": {
"assignees": [MemberUser],
"background": "abc123",
"checklists": [Checklist],
"completed": false,
"createdAt": "2007-12-03T10:15:30Z",
"description": "abc123",
"dueDate": "2007-12-03T10:15:30Z",
"id": "4",
"isArchived": false,
"labels": [Label],
"listId": "4",
"position": 123.45,
"startDate": "2007-12-03T10:15:30Z",
"title": "abc123",
"updatedAt": "2007-12-03T10:15:30Z"
}
}
}
commentAdded
Description
Subscribe to new comments on a card. Filter by cardId.
Example
Query
subscription CommentAdded($cardId: ID!) {
commentAdded(cardId: $cardId) {
author {
avatar
createdAt
description
email
id
name
updatedAt
}
authorId
cardId
content
createdAt
id
updatedAt
}
}
Variables
{"cardId": "4"}
Response
{
"data": {
"commentAdded": {
"author": User,
"authorId": "4",
"cardId": 4,
"content": "abc123",
"createdAt": "2007-12-03T10:15:30Z",
"id": "4",
"updatedAt": "2007-12-03T10:15:30Z"
}
}
}
commentDeleted
Description
Subscribe to comment deletions on a card. Payload has commentId and cardId.
Response
Returns a CommentDeletedEvent!
Arguments
| Name | Description |
|---|---|
cardId - ID!
|
Example
Query
subscription CommentDeleted($cardId: ID!) {
commentDeleted(cardId: $cardId) {
cardId
commentId
}
}
Variables
{"cardId": 4}
Response
{"data": {"commentDeleted": {"cardId": 4, "commentId": 4}}}
commentUpdated
Description
Subscribe to comment edits on a card. Filter by cardId.
Example
Query
subscription CommentUpdated($cardId: ID!) {
commentUpdated(cardId: $cardId) {
author {
avatar
createdAt
description
email
id
name
updatedAt
}
authorId
cardId
content
createdAt
id
updatedAt
}
}
Variables
{"cardId": 4}
Response
{
"data": {
"commentUpdated": {
"author": User,
"authorId": "4",
"cardId": 4,
"content": "xyz789",
"createdAt": "2007-12-03T10:15:30Z",
"id": 4,
"updatedAt": "2007-12-03T10:15:30Z"
}
}
}
listUpdated
Description
Subscribe to list create/update/reorder/delete for a board.
Example
Query
subscription ListUpdated($boardId: ID!) {
listUpdated(boardId: $boardId) {
boardId
cards {
assignees {
...MemberUserFragment
}
background
checklists {
...ChecklistFragment
}
completed
createdAt
description
dueDate
id
isArchived
labels {
...LabelFragment
}
listId
position
startDate
title
updatedAt
}
createdAt
id
isArchived
position
title
updatedAt
}
}
Variables
{"boardId": "4"}
Response
{
"data": {
"listUpdated": {
"boardId": "4",
"cards": [Card],
"createdAt": "2007-12-03T10:15:30Z",
"id": "4",
"isArchived": false,
"position": 987,
"title": "xyz789",
"updatedAt": "2007-12-03T10:15:30Z"
}
}
}
notificationReceived
Description
Real-time notifications for the current user (WebSocket).
Response
Returns a Notification!
Example
Query
subscription NotificationReceived {
notificationReceived {
createdAt
id
payload
read
type
userId
}
}
Response
{
"data": {
"notificationReceived": {
"createdAt": "2007-12-03T10:15:30Z",
"id": 4,
"payload": "abc123",
"read": true,
"type": "BOARD_INVITATION",
"userId": "4"
}
}
}
Types
Activity
Fields
| Field Name | Description |
|---|---|
board - Board
|
|
boardId - ID!
|
|
cardId - ID
|
|
createdAt - DateTime!
|
|
id - ID!
|
|
listId - ID
|
|
payload - ActivityPayload
|
|
type - ActivityType!
|
|
user - User
|
|
userId - ID!
|
Example
{
"board": Board,
"boardId": 4,
"cardId": 4,
"createdAt": "2007-12-03T10:15:30Z",
"id": "4",
"listId": 4,
"payload": ActivityPayload,
"type": "BOARD_ARCHIVED",
"user": User,
"userId": "4"
}
ActivityPayload
Example
{
"boardTitle": "abc123",
"cardTitle": "xyz789",
"commentPreview": "xyz789",
"listName": "xyz789",
"memberName": "abc123",
"targetListName": "xyz789"
}
ActivityType
Description
Type of user action recorded in the activity log
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"BOARD_ARCHIVED"
AddBoardMemberInput
AddChecklistItemInput
AddLabelToCardInput
AssignMemberToCardInput
Attachment
Example
{
"cardId": 4,
"createdAt": "2007-12-03T10:15:30Z",
"filename": "abc123",
"id": "4",
"size": 123,
"uploader": User,
"uploaderId": 4,
"url": "xyz789"
}
AuthPayload
Board
Example
{
"background": "xyz789",
"createdAt": "2007-12-03T10:15:30Z",
"creatorId": "4",
"description": "xyz789",
"id": 4,
"isArchived": true,
"lists": [List],
"members": [BoardMemberWithUser],
"title": "xyz789",
"updatedAt": "2007-12-03T10:15:30Z",
"visibility": "PRIVATE",
"workspaceId": "4"
}
BoardActivityInput
BoardMemberWithUser
Boolean
Description
The Boolean scalar type represents true or false.
Example
true
Card
Fields
| Field Name | Description |
|---|---|
assignees - [MemberUser!]
|
|
background - String
|
|
checklists - [Checklist!]
|
|
completed - Boolean!
|
|
createdAt - DateTime!
|
|
description - String
|
|
dueDate - DateTime
|
|
id - ID!
|
|
isArchived - Boolean!
|
|
labels - [Label!]
|
|
listId - ID!
|
|
position - Float!
|
|
startDate - DateTime
|
|
title - String!
|
|
updatedAt - DateTime!
|
Example
{
"assignees": [MemberUser],
"background": "xyz789",
"checklists": [Checklist],
"completed": false,
"createdAt": "2007-12-03T10:15:30Z",
"description": "xyz789",
"dueDate": "2007-12-03T10:15:30Z",
"id": 4,
"isArchived": true,
"labels": [Label],
"listId": "4",
"position": 987.65,
"startDate": "2007-12-03T10:15:30Z",
"title": "abc123",
"updatedAt": "2007-12-03T10:15:30Z"
}
CardPosition
Checklist
Fields
| Field Name | Description |
|---|---|
cardId - ID!
|
|
id - ID!
|
|
items - [ChecklistItem!]
|
|
title - String!
|
Example
{
"cardId": "4",
"id": 4,
"items": [ChecklistItem],
"title": "abc123"
}
ChecklistItem
ChecklistItemPositionInput
Comment
Example
{
"author": User,
"authorId": "4",
"cardId": "4",
"content": "xyz789",
"createdAt": "2007-12-03T10:15:30Z",
"id": "4",
"updatedAt": "2007-12-03T10:15:30Z"
}
CommentDeletedEvent
CreateAttachmentInput
CreateBoardInput
Fields
| Input Field | Description |
|---|---|
background - String
|
|
description - String
|
|
title - String!
|
|
visibility - Visibility
|
|
workspaceId - ID
|
Example
{
"background": "abc123",
"description": "xyz789",
"title": "abc123",
"visibility": "PRIVATE",
"workspaceId": 4
}
CreateCardInput
Example
{
"background": "xyz789",
"completed": true,
"description": "xyz789",
"dueDate": "2007-12-03T10:15:30Z",
"listId": 4,
"position": 987.65,
"startDate": "2007-12-03T10:15:30Z",
"title": "abc123"
}
CreateChecklistInput
CreateCommentInput
CreateLabelInput
CreateListInput
CreateUserInput
CreateWorkspaceInput
DateTime
Description
A date-time string at UTC, such as 2019-12-03T09:54:33Z, compliant with the date-time format.
Example
"2007-12-03T10:15:30Z"
Float
Description
The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.
Example
987.65
ForgotPasswordInput
Description
Input for requesting password reset
Fields
| Input Field | Description |
|---|---|
email - String!
|
User email address |
Example
{"email": "abc123"}
ID
Description
The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4") or integer (such as 4) input value will be accepted as an ID.
Example
4
Int
Description
The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.
Example
987
InvitationStatus
Description
Status of a workspace invitation
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
Example
"ACCEPTED"
InviteMemberInput
Label
List
Example
{
"boardId": 4,
"cards": [Card],
"createdAt": "2007-12-03T10:15:30Z",
"id": 4,
"isArchived": false,
"position": 123,
"title": "abc123",
"updatedAt": "2007-12-03T10:15:30Z"
}
ListPosition
LoginInput
MemberUser
MessageResponse
Description
Generic message response
Fields
| Field Name | Description |
|---|---|
message - String!
|
Response message |
Example
{"message": "abc123"}
MoveCardInput
MyActivityInput
MyActivityResult
Fields
| Field Name | Description |
|---|---|
activities - [Activity!]!
|
|
hasMore - Boolean!
|
|
nextCursor - ID
|
Cursor for next page (last activity id) |
Example
{
"activities": [Activity],
"hasMore": true,
"nextCursor": "4"
}
MyNotificationsInput
MyNotificationsResult
Fields
| Field Name | Description |
|---|---|
hasMore - Boolean!
|
|
nextCursor - String
|
Cursor for next page (last notification id) |
notifications - [Notification!]!
|
Example
{
"hasMore": false,
"nextCursor": "xyz789",
"notifications": [Notification]
}
Notification
Example
{
"createdAt": "2007-12-03T10:15:30Z",
"id": "4",
"payload": "abc123",
"read": true,
"type": "BOARD_INVITATION",
"userId": 4
}
NotificationEmailFrequency
Description
How often to receive notification emails.
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
Example
"DAILY"
NotificationPreferences
Fields
| Field Name | Description |
|---|---|
allowDesktopNotifications - Boolean!
|
|
emailFrequency - NotificationEmailFrequency!
|
Example
{"allowDesktopNotifications": true, "emailFrequency": "DAILY"}
NotificationType
Description
Type of notification (card assigned, due soon, comment, invitation, etc.)
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"BOARD_INVITATION"
RegisterInput
Description
Input for user registration
Example
{
"companyName": "abc123",
"email": "xyz789",
"name": "abc123",
"password": "xyz789"
}
RemoveLabelFromCardInput
RemoveMemberInput
ReorderCardsInput
Fields
| Input Field | Description |
|---|---|
cardPositions - [CardPosition!]!
|
|
listId - ID!
|
Example
{"cardPositions": [CardPosition], "listId": 4}
ReorderChecklistItemsInput
Fields
| Input Field | Description |
|---|---|
checklistId - ID!
|
|
itemPositions - [ChecklistItemPositionInput!]!
|
Example
{
"checklistId": "4",
"itemPositions": [ChecklistItemPositionInput]
}
ReorderListsInput
Fields
| Input Field | Description |
|---|---|
boardId - ID!
|
|
listPositions - [ListPosition!]!
|
Example
{"boardId": 4, "listPositions": [ListPosition]}
ResetPasswordInput
RespondInvitationInput
Fields
| Input Field | Description |
|---|---|
invitationId - String!
|
Example
{"invitationId": "abc123"}
String
Description
The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.
Example
"abc123"
UnassignMemberFromCardInput
UpdateAttachmentInput
UpdateBoardInput
Fields
| Input Field | Description |
|---|---|
background - String
|
|
description - String
|
|
id - ID!
|
|
title - String
|
|
visibility - Visibility
|
Example
{
"background": "xyz789",
"description": "xyz789",
"id": "4",
"title": "xyz789",
"visibility": "PRIVATE"
}
UpdateBoardMemberRoleInput
UpdateCardInput
Example
{
"background": "abc123",
"completed": false,
"description": "abc123",
"dueDate": "2007-12-03T10:15:30Z",
"id": 4,
"position": 987.65,
"startDate": "2007-12-03T10:15:30Z",
"title": "xyz789"
}
UpdateChecklistInput
UpdateChecklistItemInput
UpdateCommentInput
UpdateLabelInput
UpdateListInput
UpdateMemberRoleInput
UpdateNotificationPreferencesInput
Fields
| Input Field | Description |
|---|---|
allowDesktopNotifications - Boolean
|
|
emailFrequency - NotificationEmailFrequency
|
Example
{"allowDesktopNotifications": true, "emailFrequency": "DAILY"}
UpdateUserInput
UpdateWorkspaceInput
User
Example
{
"avatar": "abc123",
"createdAt": "2007-12-03T10:15:30Z",
"description": "abc123",
"email": "xyz789",
"id": "4",
"name": "xyz789",
"updatedAt": "2007-12-03T10:15:30Z"
}
Visibility
Description
Board visibility settings
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
Example
"PRIVATE"
Workspace
Fields
| Field Name | Description |
|---|---|
createdAt - DateTime!
|
|
description - String
|
|
id - ID!
|
|
logoUrl - String
|
|
memberCount - Float!
|
|
memberships - [WorkspaceMember!]
|
|
name - String!
|
|
updatedAt - DateTime!
|
|
visibility - Visibility!
|
Example
{
"createdAt": "2007-12-03T10:15:30Z",
"description": "abc123",
"id": "4",
"logoUrl": "abc123",
"memberCount": 987.65,
"memberships": [WorkspaceMember],
"name": "xyz789",
"updatedAt": "2007-12-03T10:15:30Z",
"visibility": "PRIVATE"
}
WorkspaceInvitation
Example
{
"createdAt": "2007-12-03T10:15:30Z",
"expiresAt": "2007-12-03T10:15:30Z",
"id": "4",
"inviteeEmail": "abc123",
"inviteeId": "4",
"inviterId": 4,
"inviterName": "abc123",
"role": "xyz789",
"status": "ACCEPTED",
"updatedAt": "2007-12-03T10:15:30Z",
"workspaceId": 4,
"workspaceName": "xyz789"
}