VibeCode API Documentation
REST API для публікації постів програмно. Отримайте API ключ в адмін-панелі.
Автентифікація
Всі запити на створення контенту потребують API ключ в заголовку:
Authorization: Bearer vc_your_api_key_hereСтворити API ключ можна в адмін-панелі.
GET /api/v1/posts
Отримати список опублікованих постів. Не потребує авторизації.
Параметри запиту
| Параметр | Тип | За замовч. | Опис |
|---|---|---|---|
locale | string | "uk" | uk | en |
page | number | 1 | Номер сторінки |
limit | number | 10 | 1-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)
| Поле | Тип | Обов'язкове | Опис |
|---|---|---|---|
title | string | Yes | Заголовок (до 200 символів) |
slug | string | Yes | URL slug (латиниця, дефіси) |
locale | string | Yes | "uk" | "en" |
content | string | Yes | HTML |
excerpt | string | No | Короткий опис (до 500) |
coverImage | string | No | URL обкладинки |
published | boolean | No | Опублікувати одразу (false = чернетка) |
publishedAt | string | No | Дата публікації ISO 8601 (можна заднім числом, напр. "2025-01-15T10:00:00Z") |
tags | string[] | 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, AVIF | 50 MB |
| Відео | MP4, WebM, OGG | 50 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 запитів на хвилину.