REST API v1

API Документация

Внешнее API позволяет AI-ассистентам, скриптам и любым сервисам создавать задачи напрямую — они мгновенно появляются в трекере и приходят уведомлением в Telegram.

Получить API ключ

1
Напиши /start в Telegram-боте — получишь auth key для входа на сайт
2
Войди на сайт и в левом меню нажми API ключ — там твой ngsapi-... ключ
3
Или получи ключ командой /apikey прямо в боте

Создать задачу

POST /api/external/tasks

Headers

HeaderЗначение
Content-Typeapplication/json
x-api-keyТвой API ключ (ngsapi-...)

Body (JSON)

ПолеТипОбязательноОписание
titlestringНазвание задачи
descriptionstringПодробное описание
deadlinestring ISO 8601"2025-12-31T18:00:00.000Z"
prioritystring"high" / "medium" / "low"
send_to_botbooleanОтправить уведомление в Telegram (default: true)

Пример запроса

bash / curl
curl -X POST https://ngservicebot.ru/api/external/tasks \
  -H "Content-Type: application/json" \
  -H "x-api-key: ngsapi-ВАШ_КЛЮЧ" \
  -d '{
    "title": "Подготовить презентацию",
    "description": "Слайды для встречи с командой в пятницу",
    "deadline": "2025-05-02T10:00:00.000Z",
    "priority": "high",
    "send_to_bot": true
  }'

Ответ

json
{
  "success": true,
  "task": {
    "id": 42,
    "title": "Подготовить презентацию",
    "priority": "high",
    "deadline": "2025-05-02T10:00:00.000Z",
    "status": "pending",
    "url": "https://ngservicebot.ru/user/123456789/tasks/42"
  }
}

Список задач

GET /api/external/tasks?status=pending

Query params

ПараметрЗначение
statuspending / done / cancelled — default: pending
bash / curl
curl https://ngservicebot.ru/api/external/tasks?status=pending \
  -H "x-api-key: ngsapi-ВАШ_КЛЮЧ"

Использование с Claude AI

Добавь системный промпт чтобы Claude мог создавать задачи автоматически при разговоре.

System Prompt

У тебя есть доступ к NGS Tasks Tracker API для создания задач пользователя.

Endpoint: POST https://ngservicebot.ru/api/external/tasks
API Key: ngsapi-ВАШ_КЛЮЧ

Когда пользователь просит запомнить задачу, добавить дело или установить напоминание — создай задачу через API.

Формат дедлайна: ISO 8601 (например "2025-12-31T18:00:00.000Z")
Приоритеты: "high", "medium", "low"

После создания скажи пользователю что задача добавлена и он получит напоминание в Telegram.

Python SDK (Anthropic)

Пример интеграции с официальным Python SDK и function calling.

python
import anthropic
import requests

client = anthropic.Anthropic(api_key="sk-ant-...")

NGS_API_KEY = "ngsapi-ВАШ_КЛЮЧ"
NGS_API_URL = "https://ngservicebot.ru/api/external/tasks"

tools = [{
    "name": "create_task",
    "description": "Создать задачу в NGS Tasks Tracker. Задача придёт в Telegram.",
    "input_schema": {
        "type": "object",
        "properties": {
            "title":       {"type": "string", "description": "Название задачи"},
            "description": {"type": "string", "description": "Подробное описание"},
            "deadline":    {"type": "string", "description": "ISO 8601, напр. 2025-12-31T18:00:00.000Z"},
            "priority":    {"type": "string", "enum": ["high", "medium", "low"]},
        },
        "required": ["title"]
    }
}]

def create_task(**kwargs):
    res = requests.post(
        NGS_API_URL,
        headers={"Content-Type": "application/json", "x-api-key": NGS_API_KEY},
        json={**kwargs, "send_to_bot": True}
    )
    return res.json()

response = client.messages.create(
    model="claude-opus-4-5",
    max_tokens=1024,
    tools=tools,
    messages=[{"role": "user", "content": "Напомни завтра в 10 утра проверить почту"}]
)

for block in response.content:
    if block.type == "tool_use" and block.name == "create_task":
        result = create_task(**block.input)
        print(f"Задача создана: {result}")

Коды ответов

200
Успешно выполнено
400
Ошибка валидации — не передан title или неверный формат
401
Неверный или отсутствующий x-api-key
404
Задача не найдена
500
Внутренняя ошибка сервера

Автоматические напоминания

Если задача создана с deadline, бот автоматически отправит уведомления в Telegram:

📅
За 24 часа до дедлайна — предупреждение
За 1 час до дедлайна — срочное напоминание
🚨
После просрочки — уведомление о пропуске дедлайна

Формат даты (deadline)

iso 8601
# UTC
"2025-12-31T18:00:00.000Z"

# Московское время (+03:00)
"2025-12-31T21:00:00.000+03:00"