Колоды

Публичная документация

API для агента

Эта страница открывается без входа. Markdown для агента: /agent.md, /llms.txt, /api/docs.

Документация для агента
Сначала колода, потом карточки. Все запросы с Authorization: Bearer mdk_.... Токен выпускается в аккаунте. Ту же инструкцию агент читает без логина: /agent.md, /llms.txt, /api/docs.
  1. POST /api/decks — тело { "name": "Немецкий A1", "description": "Глаголы" }. Из ответа взять id.
  2. POST /api/decks/:id/cards — тело { "front": "вопрос", "back": "ответ" } на каждую карточку.
  3. Без колоды карточки создать нельзя. Чужие id этот токен не видит.

Колода

  • name — строка, обязательна при создании, 1–80 символов
  • description — строка, необязательна, до 280 символов

Карточка

  • front — вопрос, обязателен, до 32 000 символов
  • back — ответ, обязателен, до 32 000 символов
  • Можно Markdown и LaTeX: $...$, $$...$$
Методы
Ответ ошибки всегда { "error": "текст" }. Даты — ISO-8601.
GET/api/decks

список колод, новые сверху

Тело: нет

Ответ: DeckWithCount[]

POST/api/decks

создать колоду

Тело: { "name": string, "description"?: string }

Ответ: 201 DeckWithCount

GET/api/decks/:id

колода и все карточки

Тело: нет

Ответ: DeckWithCards

PATCH/api/decks/:id

частично изменить колоду

Тело: { "name"?: string, "description"?: string }

Ответ: DeckWithCount

DELETE/api/decks/:id

удалить колоду вместе с карточками

Тело: нет

Ответ: { "ok": true }

GET/api/decks/:id/cards

карточки одной колоды

Тело: нет

Ответ: Card[]

POST/api/decks/:id/cards

добавить карточку

Тело: { "front": string, "back": string }

Ответ: 201 Card

PATCH/api/cards/:id

частично изменить карточку

Тело: { "front"?: string, "back"?: string }

Ответ: Card

DELETE/api/cards/:id

удалить карточку

Тело: нет

Ответ: { "ok": true }

Ответы
DeckWithCount {
  id, userId, name, description,
  createdAt, updatedAt, cardCount
}

DeckWithCards {
  id, userId, name, description,
  createdAt, updatedAt,
  cards: Card[]
}

Card {
  id, deckId, front, back,
  createdAt, updatedAt
}
пример
создать колоду и карточку
curl -X POST https://memdecks.studentto.ru/api/decks \
  -H "Authorization: Bearer mdk_..." \
  -H "Content-Type: application/json" \
  -d '{"name":"Немецкий A1","description":"Глаголы"}'

curl -X POST https://memdecks.studentto.ru/api/decks/<DECK_ID>/cards \
  -H "Authorization: Bearer mdk_..." \
  -H "Content-Type: application/json" \
  -d '{"front":"Good morning","back":"Доброе утро"}'