VibeCode API Documentation

REST API для публікації постів програмно. Отримайте API ключ в адмін-панелі.

Автентифікація

Всі запити на створення контенту потребують API ключ в заголовку:

Authorization: Bearer vc_your_api_key_here

Створити API ключ можна в адмін-панелі.


GET /api/v1/posts

Отримати список опублікованих постів. Не потребує авторизації.

Параметри запиту

ПараметрТипЗа замовч.Опис
localestring"uk"uk | en
pagenumber1Номер сторінки
limitnumber101-50

Приклад

curl https://www.vaibecod.com/api/v1/posts?locale=uk&page=1&limit=5

Відповідь

{
  "posts": [
    {
      "id": "abc123",
      "slug": "my-post",
      "locale": "uk",
      "title": "My Post",
      "excerpt": "Short description...",
      "coverImage": "/uploads/image.jpg",
      "published": true,
      "publishedAt": "2026-04-15T10:00:00.000Z",
      "viewCount": 42,
      "authorName": "Admin",
      "createdAt": "2026-04-15T10:00:00.000Z"
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 5,
    "total": 12,
    "totalPages": 3
  }
}

POST /api/v1/posts

Створити новий пост. Потребує API ключ.

Тіло запиту (JSON)

ПолеТипОбов'язковеОпис
titlestringYesЗаголовок (до 200 символів)
slugstringYesURL slug (латиниця, дефіси)
localestringYes"uk" | "en"
contentstringYesHTML
excerptstringNoКороткий опис (до 500)
coverImagestringNoURL обкладинки
publishedbooleanNoОпублікувати одразу (false = чернетка)
publishedAtstringNoДата публікації ISO 8601 (можна заднім числом, напр. "2025-01-15T10:00:00Z")
tagsstring[]NoМасив slug'ів тегів

Приклад

curl -X POST https://www.vaibecod.com/api/v1/posts \
  -H "Authorization: Bearer vc_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Getting Started with AI Coding",
    "slug": "getting-started-ai-coding",
    "locale": "en",
    "content": "<h2>Introduction</h2><p>AI is changing how we code...</p>",
    "excerpt": "A guide to AI-assisted development",
    "published": true,
    "publishedAt": "2025-06-01T12:00:00Z",
    "tags": ["ai", "tutorial"]
  }'

Відповідь (201)

{
  "id": "abc-123-def",
  "slug": "getting-started-ai-coding",
  "locale": "en",
  "published": true,
  "url": "/en/blog/getting-started-ai-coding"
}

POST /api/v1/upload

Завантажити зображення або відео. Потребує API ключ.

Формат

multipart/form-data з полем file

ТипФорматиМакс. розмір
ЗображенняJPEG, PNG, WebP, GIF, AVIF50 MB
ВідеоMP4, WebM, OGG50 MB

Приклад

curl -X POST https://www.vaibecod.com/api/v1/upload \
  -H "Authorization: Bearer vc_your_key" \
  -F "file=@photo.jpg"

Відповідь (201)

{
  "url": "/uploads/1713200000-a1b2c3d4e5f6.jpg",
  "type": "image",
  "size": 245760,
  "name": "1713200000-a1b2c3d4e5f6.jpg"
}

Використовуйте повернений URL в полі coverImage або в HTML контенті поста.


GET /api/v1/tags

Отримати всі теги. Не потребує авторизації.

Приклад

curl https://www.vaibecod.com/api/v1/tags

Відповідь

{
  "tags": [
    { "id": 1, "slug": "react", "nameUk": "React", "nameEn": "React" },
    { "id": 2, "slug": "ai", "nameUk": "AI", "nameEn": "AI" }
  ]
}

Коди помилок

КодОпис
400Невалідні дані запиту
401Немає або невалідний API ключ
403Недостатньо прав
500Внутрішня помилка сервера

Ліміти

Наразі ліміти не встановлені. Просимо не перевищувати 60 запитів на хвилину.