π ΠΠΎΡΡΡΠΏΠ½ΡΠ΅ endpoints (33+ ΡΠΎΡΡΠ°):
GET /health - ΡΡΠ°ΡΡΡ API
GET /api/rate-limits - ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ° rate limiting
π ΠΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ (6 ΡΠΎΡΡΠΎΠ²):
GET /api/sessions - ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΈΠΉ
DELETE /api/sessions - ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π΄ΡΡΠ³ΠΈΡ
ΡΠ΅ΡΡΠΈΠΉ
GET /api/auth/viewer-id - ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ID ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
POST /api/auth/logout - Π²ΡΡ
ΠΎΠ΄ ΠΈΠ· ΡΠΈΡΡΠ΅ΠΌΡ
POST /api/validate-telegram - Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΡ Telegram Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ
GET /api/tgusers?tg_id=123 - ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠΎ tg_id
π ΠΠΈΡΡΡ (7 ΡΠΎΡΡΠΎΠ²):
GET /api/vists?authorId=123 - ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΏΠΈΡΠΊΠ° Π²ΠΈΡΡΠΎΠ²
POST /api/vists - ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π²ΠΈΡΡΠ°
GET /api/vists/search?q=ΡΠ΅ΠΊΡΡ&type=text - ΠΏΠΎΠΈΡΠΊ Π²ΠΈΡΡΠΎΠ² ΠΏΠΎ ΡΠ΅ΠΊΡΡΡ/Ρ
ΡΡΡΠ΅Π³Π°ΠΌ
GET /api/vists/:vistId - ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ Π²ΠΈΡΡΠ°
PATCH /api/vists/:vistId - ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π²ΠΈΡΡΠ°
DELETE /api/vists/:vistId - ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π²ΠΈΡΡΠ°
GET /api/vists/:vistId/redirect - ΡΠ΅Π΄ΠΈΡΠ΅ΠΊΡ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ Π²ΠΈΡΡΠ°
β€οΈ Π Π΅Π°ΠΊΡΠΈΠΈ ΠΈ Π·Π°ΠΊΠ»Π°Π΄ΠΊΠΈ (3 ΡΠΎΡΡΠ°):
POST /api/vists/:vistId/reaction - Π»Π°ΠΉΠΊ/Π΄ΠΈΠ°Π»Π°ΠΉΠΊ Π²ΠΈΡΡΠ°
GET /api/vists/:vistId/bookmark - ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π°Π»ΠΈΡΠΈΡ Π·Π°ΠΊΠ»Π°Π΄ΠΊΠΈ
POST /api/vists/:vistId/bookmark - Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅/ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΊΠ»Π°Π΄ΠΊΠΈ
π¬ ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ (5 ΡΠΎΡΡΠΎΠ²):
GET /api/vists/:vistId/comments - ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² Π²ΠΈΡΡΠ°
POST /api/vists/:vistId/comments - Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ
GET /api/vists/:vistId/comments/:commentId - ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ
PATCH /api/vists/:vistId/comments/:commentId - ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ
DELETE /api/vists/:vistId/comments/:commentId - ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ
π ΠΠ΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ (5 ΡΠΎΡΡΠΎΠ²):
GET /api/user-actions - ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΡΡΠΎΡΠΈΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
GET /api/user-actions/reactions - ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Π°ΠΊΡΠΈΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
GET /api/user-bookmarks - ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π·Π°ΠΊΠ»Π°Π΄ΠΎΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π° ΠΏΡΠΎΡΠΈΠ»ΠΈ
GET /api/users/:vizzon_id/bookmark - ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π·Π°ΠΊΠ»Π°Π΄ΠΊΠΈ Π½Π° ΠΏΡΠΎΡΠΈΠ»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
POST /api/users/:vizzon_id/bookmark - Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅/ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΊΠ»Π°Π΄ΠΊΠΈ Π½Π° ΠΏΡΠΎΡΠΈΠ»Ρ
GET /api/users/sociallinks-by-id/:vizzon_id - ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΡΠ»ΠΎΠΊ ΡΠΎΡΡΠ΅ΡΠ΅ΠΉ ΠΏΠΎ ID π
GET /api/users/:username - ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠΈΠ»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠΎ username π
π Π£ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΡ (3 ΡΠΎΡΡΠ°):
GET /api/mentions/notifications - ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ ΠΎΠ± ΡΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΡΡ
POST /api/mentions/notifications - ΠΎΡΠΌΠ΅ΡΠΊΠ° ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ ΠΊΠ°ΠΊ ΠΏΡΠΎΡΠΈΡΠ°Π½Π½ΡΡ
GET /api/mentions/has-new - ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½ΠΎΠ²ΡΡ
ΡΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠΉ
π ΠΠ±ΡΠ°ΡΠ½Π°Ρ ΡΠ²ΡΠ·Ρ (1 ΡΠΎΡΡ):
POST /api/feedback - ΠΎΡΠΏΡΠ°Π²ΠΊΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠ²ΡΠ·ΠΈ
πΌοΈ ΠΠ²Π°ΡΠ°ΡΠΊΠΈ (10 ΡΠΎΡΡΠΎΠ²):
GET /api/avatar/user/:vizzon_id - ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π°Π²Π°ΡΠ°ΡΠΊΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠΎ ID
GET /api/avatar/username/:username - ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π°Π²Π°ΡΠ°ΡΠΊΠΈ ΠΏΠΎ username
POST /api/avatar/batch - Π³ΡΡΠΏΠΏΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π°Π²Π°ΡΠ°ΡΠΎΠΊ (Π΄ΠΎ 50 ID)
POST /api/avatar/upload - Π·Π°Π³ΡΡΠ·ΠΊΠ° Π½ΠΎΠ²ΠΎΠΉ Π°Π²Π°ΡΠ°ΡΠΊΠΈ (ΡΡΠ΅Π±ΡΠ΅Ρ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ)
GET /api/avatar/manager/get - ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ° Π°Π²Π°ΡΠ°ΡΠΎΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
POST /api/avatar/manager/set-current - ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π°Π²Π°ΡΠ°ΡΠΊΠΈ
DELETE /api/avatar/manager/delete-one - ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΉ Π°Π²Π°ΡΠ°ΡΠΊΠΈ
DELETE /api/avatar/manager/delete-all - ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ
Π°Π²Π°ΡΠ°ΡΠΎΠΊ
POST /api/avatar/manager/set-tgava-current - ΠΈΠΌΠΏΠΎΡΡ Π°Π²Π°ΡΠ°ΡΠΊΠΈ ΠΈΠ· Telegram π
GET /api/avatar/telegram-avatar/resolve?src=SVG_URL - ΠΊΠΎΠ½Π²Π΅ΡΡΠ°ΡΠΈΡ Telegram SVG β JPG/PNG π