APIProElite

An API is a set of methods (commands) that allow other programs to manage SingularityApp entities from outside without entering the application itself. In other words, it’s a tool for automating work with your tasks, projects, and habits through scripts and programs.

Imagine: you want every email in your inbox to automatically become a task in SingularityApp. Instead of manually going into the application each time and creating a task, you can write a small script — and it will do this automatically through the API.

What can be automated:

  • Create tasks from emails, messages, or web forms;
  • Collect statistics on tasks and habits;
  • Sync SingularityApp with other applications;
  • Manage projects and tasks from external systems.

Everything is limited only by your skills and ideas ;)

Important! This functionality requires technical knowledge and programming skills. SingularityApp technical support does not configure the API for custom scenarios.

What you need to know before getting started with the API

To work with the API, you need a token — this is an access key that allows external systems to connect to SingularityApp on your behalf.

A token works like a pass: you choose what permissions you give to the external system (whether it can create tasks, edit projects, etc.), and the system uses this pass to gain access. A token is always tied to one account and only works within it.

Swagger — an interactive API documentation for exploring methods and testing requests in a browser, provided that a token has already been obtained.

Token management (creation, deletion, updating) is performed in your personal account, and the tokens themselves are used when sending actual requests through scripts and programs.

We break down all the details about working with tokens and using Swagger below.

How to get started with the API

To work with the API, you need to create a token in your personal account:

  1. In your SingularityApp personal account, go to the "API Access" screen. There you will see a list of existing tokens and a "Create Token" button.
  2. Click the "Create Token" button. A window with settings will open.
  3. In the creation window, you need to:
    • Enter a token name (any arbitrary name that will help distinguish it from others);
    • Select the entities this token can work with (tasks, projects, habits, etc.):
  4. For example, if you select only "project" the token will only be able to create, modify, and delete projects. If you need to work with all entities, select all.

    After configuring, click "Create Token".

  5. After creation, the token will appear in the list. Click on Token — the token will be copied to the clipboard. You need to use this string in your scripts for API authorization. Pass this token in the Authorization header in the Bearer token format with each API request.

Editing and deleting a token

Important! An existing token cannot be edited. It can only be deleted and a new one created.

To delete a token, click on the row with the desired token in the list. A detailed token view will open, where you can click “Delete Token.” After deletion, the token will become invalid.

Basic API operations through Swagger

Two main questions when working with the API:

  1. Where to find information about methods? (Answer — Swagger).
  2. What types of operations are available? (Answer — CRUD).

Swagger is the API documentation. It shows what commands (methods) you can send, what parameters you need to pass in them, and what you will receive in response.

CRUD — these are four basic operations that cover everything you can do with data:

  • Create — add a new task, project, or other entity. Uses the POST method;
  • Read — get information about a task, project, or other available entity. Uses the GET method;
  • Update — change the name, description, or other data of an available entity. Uses the PATCH method;
  • Delete — delete a task, project, or other entity. Uses the DELETE method.

Our API covers the basic operations for working with data: creation, reading, updating, and deletion (CRUD). The API currently does not support webhooks, event streams, or subscriptions to changes.

How to manage tasks through the API

Through the API, you can fully manage tasks: create new ones, get information about them, add notes, move them between columns in kanban mode, and create checklists. The methods you can use:

Getting a list of tasks

The GET method to the `/v2/task` endpoint allows you to get all tasks. Tasks can be filtered by query fields.

  • Filtering by status: use `includeRemoved` and `includeArchived` (true/false) to select which tasks to display;
  • Limiting results: the `maxCount` (number) parameter allows you to get only the required number of tasks, and `includeAllRecurrenceInstances` (true/false) controls the display of recurring tasks;
  • Filtering by project and subtasks: specify `projectId` (string) for tasks of a specific project or `parent` (string) for subtasks of a specific task;
  • Filtering by dates: the `startDateFrom` and `startDateTo` parameters (string with date in ISO format: `2025-11-28`) will help you select tasks in the desired date range.

Creating a task

Use the POST method to the `/v2/task` endpoint to create a new task. Pass the data in the request body in JSON format with the necessary fields.

Required fields: "title" (string) — task name. This field is required to create a task (example: "Buy groceries").

Main parameters:

  • "start" (string, ISO format) — task start date (example: "2025-11-28");
  • "note" (string) — note or description for the task (example: "Note text");
  • "priority" (number) — task priority (0 — high priority; 1 — normal (medium) priority; 2 — low priority).

Additional parameters:

  • "isNote" (boolean) — set to true to create a note instead of a regular task;
  • "journalDate" (string, ISO format) — archiving date. If you specify this date, the task will be moved to the archive immediately;
  • "deleteDate" (string, ISO format) — deletion date. If you specify this date, the task will be moved to trash.

Important! Recurring tasks cannot be created yet — the API only supports regular tasks.

Getting a task by ID

To get a task, use the GET method to the `/v2/task` endpoint. You need to specify the task ID as a path parameter in the URL. Where to find the ID: from the response when creating a task or in the application interface — right-click on the task → copy private link → the string that starts with “T” is the task ID.

Updating a task

Use the PATCH method to the `/v2/task` endpoint to modify an existing task. Specify the task ID in the request path (path parameter). In the request body, pass JSON with the fields you want to change.

Main parameters for updating:

  • "title" (string) — new task name (example: "Buy groceries");
  • "start" (string, ISO format) — task start date (example: "2025-11-28");
  • "note" (string) — description or note for the task (example: "Note text");
  • "priority" (number) — task priority (0 — high priority; 1 — normal (medium) priority; 2 — low priority);
  • "isNote" (boolean) — change the entity type: true converts a task to a note, false converts a note to a task.

Important! "title" is not required when updating (unlike when creating), since the task ID is already passed in the path. You can only update the fields that need to be changed.

Deleting a task

To delete a task, use the DELETE method to the endpoint `/v2/task`. You need to specify the task ID as a path parameter in the URL. Deletion via the DELETE method is irreversible.

If you want to move a task to archive or trash (instead of permanent deletion), use the PATCH method with the corresponding fields:

  • "journalDate" (string, ISO format) — archive the task by specifying the archive date;
  • "deleteDate" (string, ISO format) — move the task to trash by specifying the deletion date.

Moving a task in kanban

To move a task from one column to another, use the POST method to the `/v2/kanban-task-status` endpoint. Pass the task ID and column ID in the request body in JSON format. Both must exist before this request, otherwise you will get an error.

Checklists

You can work with checklists through GET, POST, PATCH, DELETE methods to the `/v2/checklist-item` endpoint. To create a checklist, pass its name in the "title" field and specify the task ID in the "parent" field for the request body in JSON format.

How to manage projects through the API

Through the API, you can fully manage projects: create new ones, get information about them, add project descriptions, create sections and columns for kanban mode. The methods you can use:

Finding a project

The GET method to the `/v2/project` endpoint allows you to get all projects. Projects can be filtered by query fields.

Filtering by status:

  • "includeRemoved" (boolean) — show or hide deleted projects;
  • "includeArchived" (boolean) — show or hide archived projects.

Limiting results: "maxCount" (number) — limit the number of projects in the response (for example, 10, 50).

Important! Shared projects will not appear in the search results — the API returns only your personal projects.

Creating a project

Use the POST method to the `/v2/project` endpoint to create a new project. Pass the data in the request body in JSON format with the necessary fields.

Required fields: "title" (string) — project name (example: "My Project").

Main parameters:

  • "note" (string) — project description or note (example: "Project note");
  • "isNotebook" (boolean) — entity type (true — create a notebook instead of a project; false — create a regular project).

Formatting:

  • "emoji" (string) — project emoji as a hexadecimal code (example: "1f49e");
  • "color" (string) — project color in HEX format (example: "#ad1457").

Available colors:

ColorHEX codes
Pink#ad1457, #e91e63, #f06292
Purple#6a1b9a, #9c27b0, #ba68c8
Deep Purple#4527a0, #673ab7, #9575cd
Indigo#283593, #3f51b5, #7986cb
Light Blue#0277bd, #03a9f4, #4fc3f7
Cyan#00838f, #00bcd4, #4dd0e1
Teal#00695c, #009688, #4db6ac
Green#2e7d32, #4caf50, #81c784
Lime#9e9d24, #cddc39, #d4e157
Yellow#f57f17, #ffeb3b, #fff176
Amber#ff6f00, #ffc107, #ffd54f
Red#c62828, #f44336, #ef5350
Deep Orange#bf360c, #ff5722, #ff8a65
Brown#4e342e, #795548, #a1887f
Grey#424242, #9e9e9e, #e0e0e0
Blue Grey#37474f, #607d8b, #90a4ae

Updating a project

To update project fields, use the PATCH method to the `/v2/project` endpoint. The only required field is "id" as a path parameter. To change project fields, you need to add JSON to the request body similar to project creation, with one exception — "title" is not required since you have already passed the ID in the path.

Kanban columns

The `kanban-status` entity represents a column in a project. You can work with them through GET, POST, PATCH, DELETE methods to the `/v2/kanban-status` endpoint. To create a column, pass the column name in the "title" field and the project ID in the "parent" field in the request body in JSON format. To move a task from one column to another, use the POST method.

In the request body, pass:

  • "taskId" (string) — the ID of the task to be moved;
  • "statusId" (string) — the ID of the column to which the task should be moved.

Sections

The "task-group" entity represents sections in a project. You can work with them through GET, POST, PATCH, DELETE methods to the `/v2/task-group` endpoint. To create a section, pass its name in the "title" field and the project ID in the "parent" field.

How to manage habits through the API

Through the API, you can work with habits: create new ones, get information about them, modify and delete them, as well as mark them as complete. The methods you can use:

Finding habits

The GET method to the `/v2/habit` endpoint allows you to get habits. The search works similarly to tasks and projects. When searching, you can limit the number of habits through the query parameter "maxCount".

Creating a habit

Use the POST method to the `/v2/habit` endpoint to create a new habit. Pass the data in the request body in JSON format with the necessary fields.

Required fields: "title" (string) — habit name (example: "Drink water").

Main parameters:

  • "description" (string) — habit description (example: "This is my habit description");
  • "color" (string) — habit color. Available values: "red", "pink", "purple", "deepPurple", "indigo", "lightBlue", "cyan", "teal", "green", "lightGreen", "lime", "yellow", "amber", "orange", "deepOrange", "brown", "grey", "blueGrey".

Updating a habit

Use the PATCH method to the `/v2/habit` endpoint to update an existing habit. Specify the habit ID in the request path (path parameter). In the request body, pass JSON with the fields you want to change.

Deleting a habit

To delete a habit, use the DELETE method to the `/v2/habit` endpoint. Pass the habit ID for deletion.

Marking a habit

To mark a habit, use the POST method to the `/v2/habit-progress` endpoint. Pass the data in the request body in JSON format with the necessary fields.

Required fields:

  • "habit" (string) — the ID of the habit to be marked (example: "HB-123");
  • "date" (string) — the date of the mark in YYYY-MM-DD format (example: "2025-11-28");
  • "progress" (number) — the status of the mark (0 — default value, does not change progress; 1 — mark the habit as NOT completed (preserves the habit streak); 2 — mark the habit as fully completed).

How to manage tags through the API

Through the API, you can work with tags: create new ones, get information about them, update and delete them. The methods you can use:

Finding tags

The GET method to the `/v2/tag` endpoint allows you to get tags. Results can be filtered using query parameters.

  • Filtering by status: "includeRemoved" (boolean) — show or hide deleted tags;
  • Filtering by hierarchy: "parent" (string) — filter tags by parent tag if they are nested in it (example: "A-123");
  • Limiting results: "maxCount" (number) — limit the maximum number of tags in a single request (example: "100").

Creating a tag

Use the POST method to the `/v2/tag` endpoint to create a new tag. Pass the data in the request body in JSON format with the necessary fields.

Required fields: "title" (string) — tag name (example: "Work").

Main parameters:

  • "parent" (string) — the ID of the parent tag if you need to nest the new tag in an existing one (example: "A-123");
  • "hotkey" (number) — hotkey for quick access to the tag. Specify the Unicode code of the character you press after Alt (for example, if the tag is Alt+9, then "hotkey: 57", since 57 is the Unicode code of the character "9").

Updating a tag

To update a tag, use the PATCH method to the `/v2/tag` endpoint and pass its ID in the request path. Then pass JSON to the request body with fields similar to tag creation, where "title" will be optional since you are accessing the tag by ID, which you have already passed in the path. You can only update the fields that need to be changed.

Deleting a tag

To delete a tag, use the DELETE method to the `/v2/tag` endpoint. Pass the tag ID for deletion.

FAQ

I don’t understand how to use the API, where do I start?

To work with the API, you will need technical skills. You can start by studying the theory of interacting with APIs, including each of the terms found in this article that raise questions. You will also need to study the programming language with which you want to send requests to the SingularityApp API.

I don’t want to write the integration through the API myself. Can you write it for me for my service?

No, we do not develop scripts for any user services. We provide support for the functionality of API methods in the scope and format presented in public access in Swagger.

What is a token and why is it important?

A token is an access key that allows external systems to connect to SingularityApp on your behalf. You choose what permissions you give to the external system (whether it can create tasks, edit projects, etc.), and the system uses this key to work. A token is always tied to one account and only works within it. Never share your token with third parties.

Can I edit an existing token?

No, an existing token cannot be edited. If you need to change token permissions, delete it and create a new one with the desired parameters. After deletion, the old token will become invalid.

What API operations are supported?

The API supports four basic operations (CRUD): create (POST), read (GET), update (PATCH), and delete (DELETE). A complete list of methods and their descriptions is available in Swagger. Currently, the API does not support webhooks, event streams, or subscriptions to changes.

Can I create recurring tasks through the API?

No, recurring (recursive) tasks cannot be created yet. The API only supports regular tasks. Recurring tasks can only be created through the SingularityApp application interface.

Where can I find the API documentation?

Complete documentation is available in Swagger — an interactive reference where all available methods, their parameters, and response examples are described. To access Swagger, you need to create a token in your SingularityApp personal account.
The documentation is automatically generated. If you haven’t found the answer to your question, please contact us at support..
Android
Android
Windows x64
Windows x64
Install it on all your devices so your to-do list is always at hand