⚙️ Для разработчиков

tg-task API

REST API для интеграции задач, проектов и привычек в ваши сервисы и скрипты автоматизации.

API-токен

Токен используется для авторизации запросов к API без входа через Telegram.

🔑 Ваш токен

Для управления токеном нужно войти через Telegram.

Быстрый старт

Примеры работы с API через curl и Python.

curl

bash
# Получить список задач
curl https://tg-task.com/api/tasks \
  -H "Authorization: Bearer ВАШ_ТОКЕН"

# Создать задачу
curl -X POST https://tg-task.com/api/tasks \
  -H "Authorization: Bearer ВАШ_ТОКЕН" \
  -H "Content-Type: application/json" \
  -d '{"title":"Купить молоко","priority":"low","date":"2026-03-20"}'

Python

python
import requests

TOKEN = "ВАШ_ТОКЕН"
BASE  = "https://tg-task.com/api"
HEADERS = {"Authorization": f"Bearer {TOKEN}"}

# Список задач
tasks = requests.get(f"{BASE}/tasks", headers=HEADERS).json()
for t in tasks:
    print(f"{'✅' if t['done'] else '○'} {t['title']}")

# Создать задачу
requests.post(f"{BASE}/tasks", headers=HEADERS, json={
    "title": "Новая задача",
    "priority": "high",
    "date": "2026-03-20",
})

Авторизация

Все запросы требуют заголовок Authorization.

http
Authorization: Bearer <ваш_токен>

При неверном или отсутствующем токене сервер вернёт 401 Unauthorized.

Лимиты запросов

Применяются только к запросам через API-токен.

60
запросов в минуту
1 000
запросов в день

При превышении — 429 Too Many Requests:

json
{ "error": "Лимит: 60 запросов в минуту. Попробуй через минуту." }

Задачи

Создание, чтение, обновление и удаление задач.

GET /api/tasks Список всех задач

Пример ответа

[{
  "id": 1,
  "title": "Купить молоко",
  "description": null,
  "priority": "low",
  "category": null,
  "date": "2026-03-20",
  "time": null,
  "done": false,
  "project_id": null,
  "remind": false,
  "remind_before": 30,
  "timer_sessions": []
}]
POST /api/tasks Создать задачу

Тело запроса

ПолеТипОписание
titlestringобязательноНазвание задачи
descriptionstringопциональноОписание
prioritystringопциональноlow / medium / high (по умолч. medium)
datestringопциональноДата в формате YYYY-MM-DD
timestringопциональноВремя в формате HH:MM
project_idintegerопциональноID проекта
remindbooleanопциональноВключить напоминание
remind_beforeintegerопциональноМинут до напоминания (по умолч. 30)

Пример

{ "title": "Купить молоко", "priority": "low", "date": "2026-03-20" }

Ответ

{ "id": 42 }  // 201 Created
PUT /api/tasks/<id> Обновить задачу

Передай только те поля, которые нужно изменить. Доступны все поля из POST.

Пример — отметить выполненной

{ "done": true }
DELETE /api/tasks/<id> Удалить задачу

Тело запроса не нужно.

Проекты

Управление проектами.

GET /api/projects Список проектов
[{
  "id": 1, "name": "Мой проект",
  "emoji": "🚀", "color": "#6c63ff",
  "status": "active", "deadline": null
}]
POST /api/projects Создать проект
ПолеТипОписание
namestringобязательноНазвание
emojistringопциональноИконка (по умолч. 📁)
colorstringопциональноHEX-цвет (по умолч. #6c63ff)
statusstringопциональноactive / paused / done
deadlinestringопциональноДата YYYY-MM-DD
PUT /api/projects/<id> Обновить проект

Те же поля что в POST, все опциональны.

DELETE /api/projects/<id> Удалить проект

Тело запроса не нужно.

Привычки

Трекер привычек — создание и отметка выполнения.

GET /api/habits Список привычек с логами
[{
  "id": 1, "name": "Пробежка", "emoji": "🏃",
  "type": "bool", "streak": 7,
  "active_days": [0,1,2,3,4],
  "logs": [{ "date": "2026-03-19", "value": 1 }]
}]
POST /api/habits Создать привычку
ПолеТипОписание
namestringобязательноНазвание
emojistringопциональноИконка
typestringопциональноbool (да/нет) или qty (количество)
qty_goalintegerопциональноЦель (только для type=qty)
unitstringопциональноЕдиница измерения (км, стаканов...)
active_daysarrayопциональноДни недели [0-6], 0=пн. По умолч. все дни.
POST /api/habits/<id>/log Отметить привычку за дату
ПолеТипОписание
datestringобязательноДата YYYY-MM-DD
valueintegerопционально1 для bool, количество для qty (по умолч. 1)

Пример

{ "date": "2026-03-19", "value": 1 }
PUT /api/habits/<id> Обновить привычку

Те же поля что в POST, все опциональны.

DELETE /api/habits/<id> Удалить привычку

Тело запроса не нужно.

Профиль

Информация о текущем пользователе.

GET /api/me Данные пользователя
{
  "id": 1,
  "username": "makar4eg",
  "avatar_url": "https://...",
  "plan": "free",
  "oauth_provider": "telegram",
  "has_api_token": true
}