API Documentation

The DragApp REST API lets you programmatically interact with your Boards, Columns, Cards, Tags, and Email Sequences. Build integrations, automate workflows, and sync Drag with your existing tools.


Authentication

The DragApp API uses API keys to authenticate requests. Include your API key in the Authorization header of every request.

Your API key is available in your DragApp account settings. If you don't have an account, sign up here.

Example request
curl --request GET \
  --url https://app.dragapp.com/v2/board \
  --header 'Authorization: YOUR_API_KEY'

Keep your API key secure. Do not share it publicly or commit it to version control.


Base URL

All endpoints are relative to this base URL:

https://app.dragapp.com/v2/

Response format

All responses return JSON with a consistent structure. Codes in the 200 range indicate success. Codes in the 400 range indicate an error in the request.

Success
{
  "message": "Success message",
  "error": false,
  "code": 200,
  "data": { ... }
}
Error
{
  "message": "Error message",
  "code": 400,
  "error": true
}

HTTP status codes

CodeDescription
200OK. Request succeeded.
400Bad Request. Invalid parameters.
401Unauthorized. Invalid or missing API key.
403Forbidden. Insufficient permissions.
404Not Found. Resource doesn't exist.
429Rate Limited. Too many requests.
500Server Error. Something went wrong on our end.

Boards

Boards are the top-level containers in Drag. Each board maps to a shared inbox or task workspace in Gmail.

GET/v2/board
List all boards
GET/v2/board/:id
Retrieve a single board
POST/v2/board
Create a board

Create Board

Create a board in your Gmail.

Parameters

NamestringRequired

Name of the board

Example: "Support Board"

UserslistOptional

List of user emails

Example: ["aj@dragapp.com"]

Response
{
  "message": "Board created successfully",
  "error": false,
  "code": 200,
  "data": {
    "Id": 404303,
    "BoardName": "Testing V2 Board"
  }
}

List Boards

List all types of boards.

No parameters.

Response
{
  "message": "Board list",
  "error": false,
  "code": 200,
  "data": [
    {
      "Id": 162461,
      "Name": "A's Inbox",
      "Owner": "aj@dragapp.com",
      "Users": "akdev013@gmail.com"
    }
  ]
}

Retrieve Board

Retrieve details of a single board.

No body parameters. Pass the board ID in the URL path.

Response
{
  "message": "Board details",
  "error": false,
  "code": 200,
  "data": {
    "Id": 162461,
    "Name": "A's Inbox",
    "Owner": "aj@dragapp.com",
    "Users": "akdev013@gmail.com"
  }
}

Columns

Columns represent the stages of your Kanban board (e.g. To Do, Doing, Done). Each column belongs to a board.

GET/v2/board/:boardId/columns
List all columns of a board
GET/v2/board/:boardId/column/:id
Retrieve a single column
GET/v2/board/:boardId/column/:columnId/cards
List all cards in a column
POST/v2/board/:boardId/column
Create a column

Create Column

Create a column in a board.

Parameters

NamestringRequired

Name of the column

Example: "To Do"

Response
{
  "message": "Column created successfully",
  "error": false,
  "code": 200,
  "data": {
    "Success": "Column created successfully."
  }
}

List Columns

List all columns of a board.

No body parameters.

Response
{
  "message": "Columns list",
  "error": false,
  "code": 200,
  "data": [
    { "Id": 158415, "ColumnId": "Label_1", "Name": "To Do" },
    { "Id": 158416, "ColumnId": "Label_2", "Name": "Doing" },
    { "Id": 158417, "ColumnId": "Label_3", "Name": "Done" }
  ]
}

List Cards in Column

List all cards in a column. Supports pagination.

Parameters

pagenumberRequired

Page number

Example: 1

limitstringOptional

Number of cards per page

Example: "10"

Response
{
  "message": "Column cards",
  "error": false,
  "code": 200,
  "data": [
    {
      "DragTaskId": 200442,
      "TaskName": "Task",
      "ReadUnreadStatus": 1,
      "ColumnId": "Label_1",
      "BoardId": 404302,
      "DueDate": null,
      "Assignees": null,
      "ThreadOwnerEmail": "aj@dragapp.com",
      "CreatedAt": "2023-10-31T04:38:31.000Z",
      "Status": "1",
      "CustomFields": "[{}]"
    }
  ]
}

Cards

Cards represent individual tasks or email threads on a board. Cards can have notes, comments, sub-tasks, tags, and assignees.

GET/v2/card/:id
Retrieve card details
POST/v2/card
Create a card
PUT/v2/card/:cardId
Update a card
POST/v2/card/move-card
Move card to a different column or board
DELETE/v2/card/:cardId
Archive a card
POST/v2/card/:cardId/note
Add a note to a card
POST/v2/card/:cardId/tags
Add a tag to a card
POST/v2/card/:cardId/sub-task
Add a sub-task to a card

Create Card

Create a card on a board.

Parameters

BoardIdnumberRequired

Board where you want the card to be added

Example: 20841

ColumnIdnumberRequired

Board column where you want the card to be added

Example: 1094

CardTitlestringRequired

Card title

Example: "Planning Task"

NotestringOptional

Note to be added on the card

CommentstringOptional

Comment to be added on the card

SubTaskstringOptional

Subtask to be added on the card

AssigneelistOptional

Assignee email, or null to unassign

Example: ["aj@dragapp.com"]

ReadStatusnumberOptional

Read = 1, Unread = 0. Default is Read.

Example: 1

Response
{
  "Error": false,
  "Success": "Task Added Successfully",
  "taskId": 200433
}

Update Card

Update an existing card.

Parameters

BoardIdnumberRequired

Board where the card is

Example: 20841

ColumnIdnumberRequired

Board column where the card is

Example: 1094

CardTitlestringRequired

Card title

Example: "Planning Task"

NotestringOptional

Note for the card

CommentstringOptional

Comment for the card

SubTaskstringOptional

Subtask for the card

AssigneelistOptional

Assignee email, or null to unassign

Example: ["aj@dragapp.com"]

Response
{
  "message": "Card updated successfully.",
  "error": false,
  "code": 200,
  "data": "2451"
}

Move Card

Move a card to a different column or a different board.

Parameters

IdstringRequired

Card to be moved

Example: "18ac0539048b4d0d"

NewBoardIdnumberOptional

Board where you want to move the card to

Example: 1094

NewColumnIdnumberRequired

Board column where you want to move the card to

Example: 1094

NewPositionnumberRequired

Position in column where you want to move the card to

Example: 0

Response
{
  "message": "Card moved successfully.",
  "error": false,
  "code": 200,
  "data": "success"
}

Add Note

Add a note to a card.

Parameters

BodystringRequired

Note to be added on the card

Response
{
  "message": "Note added to card successfully.",
  "error": false,
  "code": 200,
  "data": { "CardId": "200429" }
}

Add Tag to Card

Add a tag to a card.

Parameters

TagIdstringRequired

Tag to be added to card

Example: "77155"

Response
{
  "message": "Added tag to card successfully.",
  "error": false,
  "code": 200,
  "data": { "CardId": "200429" }
}

Add Sub-Task

Add a sub-task to a card.

Parameters

BodystringRequired

Sub-task to be added on the card

Example: "Sub task 1"

Response
{
  "message": "SubTask added to card successfully.",
  "error": false,
  "code": 200,
  "data": { "CardId": "200429" }
}

Archive Card

Archive (delete) a card.

No body parameters. Pass the card ID in the URL path.

Response
{
  "message": "Card archived successfully.",
  "error": false,
  "code": 200,
  "data": { "id": "43813" }
}

Comments

Comments are internal team messages attached to cards.

POST/v2/comment
Add a comment to a card
GET/v2/comment/:commentId
Retrieve a comment
PUT/v2/comment/:commentId
Update a comment
DELETE/v2/comment/:commentId
Delete a comment

Add Comment

Parameters

CardIdstringRequired

Card where you want to add the comment

Example: "77155"

BodystringRequired

Comment to be added on the card

Response
{
  "message": "Comment created successfully.",
  "error": false,
  "code": 200,
  "data": {
    "Error": false,
    "Success": "Comment added successfully",
    "CommentDetails": {
      "CommentId": 549007,
      "UserId": 1000075,
      "Comment": "Hello comment added",
      "EntityId": "200428",
      "CreatedAt": "2023-10-29T11:29:35.000Z"
    }
  }
}

Update Comment

Parameters

BodystringRequired

Comment to be updated

Response
{
  "message": "Comment updated successfully.",
  "error": false,
  "code": 200,
  "data": {
    "Error": false,
    "Success": "Comment updated successfully",
    "CommentDetails": {
      "CommentId": 549002,
      "Comment": "updating 1 existing comment",
      "EntityId": "200428",
      "CreatedAt": "2023-10-08T12:32:26.000Z"
    }
  }
}

Tags

Tags are coloured labels that can be applied to cards for categorisation and filtering.

GET/v2/tag
List tags for a board
POST/v2/tag
Create a tag
DELETE/v2/tag
Delete a tag

List Tags

List all tags for a board.

Parameters

BoardIdnumberRequired

Board from where you want to get the tags

Example: 20841

Response
{
  "message": "Tag list fetched successfully.",
  "error": false,
  "code": 200,
  "data": [
    { "Id": 77163, "Name": "Tag 1", "Color": "8", "BoardId": 20841 },
    { "Id": 77164, "Name": "Tag 2", "Color": "1", "BoardId": 20841 }
  ]
}

Create Tag

Parameters

BoardIdnumberRequired

Board where you want to create the tag

Example: 20841

NamestringRequired

Name for the tag

Example: "Pending"

ColornumberRequired

Color of the tag

Response
{
  "message": "Tag crated successfully.",
  "error": false,
  "code": 200,
  "data": {
    "Id": 77162,
    "Name": "Tag 3 API 2",
    "Color": "11",
    "Description": null,
    "BoardId": 3007,
    "UserId": 1000075
  }
}

Delete Tag

Parameters

BoardIdnumberRequired

Board where the tag was created

Example: 20841

TagIdnumberRequired

Tag ID

Example: 77162

Response
{
  "message": "Tag deleted successfully.",
  "error": false,
  "code": 200,
  "data": { "Id": 77162 }
}

Email Sequences

Email Sequences are automated follow-up email chains that can be scheduled and tracked.

GET/v2/email-sequence
List all email sequences
GET/v2/email-sequence/:id
Retrieve an email sequence

List All

No parameters.

Response
{
  "EmailTemplateId": 153783,
  "UserId": 1000075,
  "Name": "Welcome Email Sequence",
  "CreatedAt": "2023-11-02T15:59:00.000Z",
  "Content": "<p>Hello {{firstName}}, ...</p>",
  "Subject": "Welcome Email",
  "EmailFollowupId": 8393,
  "TotalViewCount": 0,
  "LastSent": null,
  "OwnerName": "A J",
  "OwnerEmail": "aj@dragapp.com"
}

Retrieve Email Sequence

Retrieve a single email sequence with all follow-up steps.

No body parameters. Pass the sequence ID in the URL path.

Response
{
  "Id": "153783",
  "Name": "Welcome Email Sequence",
  "CreatedAt": "2023-11-02T15:59:00.000Z",
  "EmailFollowups": [
    {
      "EmailFollowupId": 8393,
      "Subject": "Welcome Email",
      "Content": "<p>Hello {{firstName}}, ...</p>",
      "Days": 1,
      "Duration": "days",
      "Hours": 3,
      "Minutes": 30,
      "Sequence": 1
    },
    {
      "EmailFollowupId": 8394,
      "Subject": "Re: Welcome Email",
      "Days": 1,
      "Duration": "days",
      "Sequence": 2
    }
  ]
}

Rate limits

Rate limits apply to all API endpoints. If you receive a 429 status code, reduce your request frequency and retry with exponential backoff.


SDKs & tools


Need help?

Help center: guides, tutorials, and FAQs

In-app API documentation: interactive API reference in your DragApp account

support@dragapp.com: contact the team directly