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.
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.
{
"message": "Success message",
"error": false,
"code": 200,
"data": { ... }
}{
"message": "Error message",
"code": 400,
"error": true
}HTTP status codes
| Code | Description |
|---|---|
| 200 | OK. Request succeeded. |
| 400 | Bad Request. Invalid parameters. |
| 401 | Unauthorized. Invalid or missing API key. |
| 403 | Forbidden. Insufficient permissions. |
| 404 | Not Found. Resource doesn't exist. |
| 429 | Rate Limited. Too many requests. |
| 500 | Server 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.
/v2/board/v2/board/:id/v2/boardCreate Board
Create a board in your Gmail.
Parameters
NamestringRequiredName of the board
Example: "Support Board"
UserslistOptionalList of user emails
Example: ["aj@dragapp.com"]
{
"message": "Board created successfully",
"error": false,
"code": 200,
"data": {
"Id": 404303,
"BoardName": "Testing V2 Board"
}
}List Boards
List all types of boards.
No parameters.
{
"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.
{
"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.
/v2/board/:boardId/columns/v2/board/:boardId/column/:id/v2/board/:boardId/column/:columnId/cards/v2/board/:boardId/columnCreate Column
Create a column in a board.
Parameters
NamestringRequiredName of the column
Example: "To Do"
{
"message": "Column created successfully",
"error": false,
"code": 200,
"data": {
"Success": "Column created successfully."
}
}List Columns
List all columns of a board.
No body parameters.
{
"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
pagenumberRequiredPage number
Example: 1
limitstringOptionalNumber of cards per page
Example: "10"
{
"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.
/v2/card/:id/v2/card/v2/card/:cardId/v2/card/move-card/v2/card/:cardId/v2/card/:cardId/note/v2/card/:cardId/tags/v2/card/:cardId/sub-taskCreate Card
Create a card on a board.
Parameters
BoardIdnumberRequiredBoard where you want the card to be added
Example: 20841
ColumnIdnumberRequiredBoard column where you want the card to be added
Example: 1094
CardTitlestringRequiredCard title
Example: "Planning Task"
NotestringOptionalNote to be added on the card
CommentstringOptionalComment to be added on the card
SubTaskstringOptionalSubtask to be added on the card
AssigneelistOptionalAssignee email, or null to unassign
Example: ["aj@dragapp.com"]
ReadStatusnumberOptionalRead = 1, Unread = 0. Default is Read.
Example: 1
{
"Error": false,
"Success": "Task Added Successfully",
"taskId": 200433
}Update Card
Update an existing card.
Parameters
BoardIdnumberRequiredBoard where the card is
Example: 20841
ColumnIdnumberRequiredBoard column where the card is
Example: 1094
CardTitlestringRequiredCard title
Example: "Planning Task"
NotestringOptionalNote for the card
CommentstringOptionalComment for the card
SubTaskstringOptionalSubtask for the card
AssigneelistOptionalAssignee email, or null to unassign
Example: ["aj@dragapp.com"]
{
"message": "Card updated successfully.",
"error": false,
"code": 200,
"data": "2451"
}Move Card
Move a card to a different column or a different board.
Parameters
IdstringRequiredCard to be moved
Example: "18ac0539048b4d0d"
NewBoardIdnumberOptionalBoard where you want to move the card to
Example: 1094
NewColumnIdnumberRequiredBoard column where you want to move the card to
Example: 1094
NewPositionnumberRequiredPosition in column where you want to move the card to
Example: 0
{
"message": "Card moved successfully.",
"error": false,
"code": 200,
"data": "success"
}Add Note
Add a note to a card.
Parameters
BodystringRequiredNote to be added on the card
{
"message": "Note added to card successfully.",
"error": false,
"code": 200,
"data": { "CardId": "200429" }
}Add Tag to Card
Add a tag to a card.
Parameters
TagIdstringRequiredTag to be added to card
Example: "77155"
{
"message": "Added tag to card successfully.",
"error": false,
"code": 200,
"data": { "CardId": "200429" }
}Add Sub-Task
Add a sub-task to a card.
Parameters
BodystringRequiredSub-task to be added on the card
Example: "Sub task 1"
{
"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.
{
"message": "Card archived successfully.",
"error": false,
"code": 200,
"data": { "id": "43813" }
}Email Sequences
Email Sequences are automated follow-up email chains that can be scheduled and tracked.
/v2/email-sequence/v2/email-sequence/:idList All
No parameters.
{
"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.
{
"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
CLI & official SDKs
Coming soon
MCP (Model Context Protocol)Live
43 tools for Claude, ChatGPT, Gemini, Copilot, Cursor, and more
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
Comments
Comments are internal team messages attached to cards.
/v2/comment/v2/comment/:commentId/v2/comment/:commentId/v2/comment/:commentIdAdd Comment
Parameters
CardIdstringRequiredCard where you want to add the comment
Example: "77155"
BodystringRequiredComment to be added on the card
Update Comment
Parameters
BodystringRequiredComment to be updated