📚 API Documentation

Store Innovation Article - Webhook Endpoint

Endpoint Overview

Endpoint Overview

POST https://keloola.xyz/api/webhook/article

Deskripsi: Endpoint ini digunakan untuk membuat artikel inovasi baru dengan dukungan multi-bahasa (Indonesia dan English).

Authentication

Endpoint ini memerlukan Bearer Token authentication.

Authorization: Bearer eyalksjdlkoiwuoiucouozicx...
Request Parameters

Request Parameters

📌 Catatan: Semua field bertipe string kecuali disebutkan lain. Field dengan nested object contents harus dikirim dalam struktur JSON yang benar.

Top-Level Parameters

Parameter Type Status Deskripsi
project_name string Required Nama project atau kategori artikel
content string Required Konten utama artikel

Nested Object: contents

Object contents berisi detail artikel dalam format multi-bahasa:

Parameter Type Status Validasi Deskripsi
contents.date date Required Format: YYYY-MM-DD Tanggal publikasi artikel
contents.image_url url Required Valid URL URL gambar utama artikel
contents.title_en string Required Max: 255 karakter Judul artikel (English)
contents.title_id string Required Max: 255 karakter Judul artikel (Indonesia)
contents.summary_en string Required Max: 500 karakter Ringkasan artikel (English)
contents.summary_id string Required Max: 500 karakter Ringkasan artikel (Indonesia)
contents.description_en string Required - Deskripsi lengkap artikel (English)
contents.description_id string Required - Deskripsi lengkap artikel (Indonesia)
contents.meta_title_en string Optional Max: 255 karakter Meta title untuk SEO (English)
contents.meta_title_id string Optional Max: 255 karakter Meta title untuk SEO (Indonesia)
contents.meta_description_en string Optional Max: 500 karakter Meta description untuk SEO (English)
contents.meta_description_id string Optional Max: 500 karakter Meta description untuk SEO (Indonesia)
contents.meta_keywords_en string Optional Max: 255 karakter Meta keywords untuk SEO (English)
contents.meta_keywords_id string Optional Max: 255 karakter Meta keywords untuk SEO (Indonesia)
contents.custom_field string Required Max: 255 karakter Field custom untuk kebutuhan spesifik
Request Examples

Request Examples

curl -X POST https://keloola.xyz/api/webhook/article \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer eyalksjdlkoiwuoiucouozicx..." \
  -d '{
    "project_name": "Innovation Project 2024",
    "content": "Main content of the article",
    "contents": {
      "date": "2024-01-15",
      "image_url": "https://example.com/images/innovation.jpg",
      "title_en": "Revolutionary AI Technology in Healthcare",
      "title_id": "Teknologi AI Revolusioner dalam Kesehatan",
      "summary_en": "Discover how AI is transforming healthcare delivery",
      "summary_id": "Temukan bagaimana AI mengubah layanan kesehatan",
      "description_en": "Full detailed description in English...",
      "description_id": "Deskripsi lengkap dalam Bahasa Indonesia...",
      "meta_title_en": "AI Healthcare Innovation 2024",
      "meta_title_id": "Inovasi AI Kesehatan 2024",
      "meta_description_en": "Learn about the latest AI innovations",
      "meta_description_id": "Pelajari inovasi AI terbaru",
      "meta_keywords_en": "AI, healthcare, innovation, technology",
      "meta_keywords_id": "AI, kesehatan, inovasi, teknologi",
      "custom_field": "healthcare-ai-2024"
    }
  }'
const response = await fetch('https://keloola.xyz/api/webhook/article', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer eyalksjdlkoiwuoiucouozicx...'
  },
  body: JSON.stringify({
    project_name: "Innovation Project 2024",
    content: "Main content of the article",
    contents: {
      date: "2024-01-15",
      image_url: "https://example.com/images/innovation.jpg",
      title_en: "Revolutionary AI Technology in Healthcare",
      title_id: "Teknologi AI Revolusioner dalam Kesehatan",
      summary_en: "Discover how AI is transforming healthcare delivery",
      summary_id: "Temukan bagaimana AI mengubah layanan kesehatan",
      description_en: "Full detailed description in English...",
      description_id: "Deskripsi lengkap dalam Bahasa Indonesia...",
      meta_title_en: "AI Healthcare Innovation 2024",
      meta_title_id: "Inovasi AI Kesehatan 2024",
      meta_description_en: "Learn about the latest AI innovations",
      meta_description_id: "Pelajari inovasi AI terbaru",
      meta_keywords_en: "AI, healthcare, innovation, technology",
      meta_keywords_id: "AI, kesehatan, inovasi, teknologi",
      custom_field: "healthcare-ai-2024"
    }
  })
});

const data = await response.json();
console.log(data);
$data = [
    'project_name' => 'Innovation Project 2024',
    'content' => 'Main content of the article',
    'contents' => [
        'date' => '2024-01-15',
        'image_url' => 'https://example.com/images/innovation.jpg',
        'title_en' => 'Revolutionary AI Technology in Healthcare',
        'title_id' => 'Teknologi AI Revolusioner dalam Kesehatan',
        'summary_en' => 'Discover how AI is transforming healthcare delivery',
        'summary_id' => 'Temukan bagaimana AI mengubah layanan kesehatan',
        'description_en' => 'Full detailed description in English...',
        'description_id' => 'Deskripsi lengkap dalam Bahasa Indonesia...',
        'meta_title_en' => 'AI Healthcare Innovation 2024',
        'meta_title_id' => 'Inovasi AI Kesehatan 2024',
        'meta_description_en' => 'Learn about the latest AI innovations',
        'meta_description_id' => 'Pelajari inovasi AI terbaru',
        'meta_keywords_en' => 'AI, healthcare, innovation, technology',
        'meta_keywords_id' => 'AI, kesehatan, inovasi, teknologi',
        'custom_field' => 'healthcare-ai-2024'
    ]
];

$ch = curl_init('https://keloola.xyz/api/webhook/article');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json',
    'Authorization: Bearer eyalksjdlkoiwuoiucouozicx...'
]);

$response = curl_exec($ch);
curl_close($ch);

$result = json_decode($response, true);
print_r($result);
import requests
import json

url = "https://keloola.xyz/api/webhook/article"
headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer eyalksjdlkoiwuoiucouozicx..."
}

data = {
    "project_name": "Innovation Project 2024",
    "content": "Main content of the article",
    "contents": {
        "date": "2024-01-15",
        "image_url": "https://example.com/images/innovation.jpg",
        "title_en": "Revolutionary AI Technology in Healthcare",
        "title_id": "Teknologi AI Revolusioner dalam Kesehatan",
        "summary_en": "Discover how AI is transforming healthcare delivery",
        "summary_id": "Temukan bagaimana AI mengubah layanan kesehatan",
        "description_en": "Full detailed description in English...",
        "description_id": "Deskripsi lengkap dalam Bahasa Indonesia...",
        "meta_title_en": "AI Healthcare Innovation 2024",
        "meta_title_id": "Inovasi AI Kesehatan 2024",
        "meta_description_en": "Learn about the latest AI innovations",
        "meta_description_id": "Pelajari inovasi AI terbaru",
        "meta_keywords_en": "AI, healthcare, innovation, technology",
        "meta_keywords_id": "AI, kesehatan, inovasi, teknologi",
        "custom_field": "healthcare-ai-2024"
    }
}

response = requests.post(url, headers=headers, json=data)
print(response.json())
Response Examples

Response Examples

Success Response (201 Created)

{
  "innovation": {
    "id": 123,
    "date": "2024-01-15",
    "photo": "https://example.com/images/innovation.jpg",
    "custom": "healthcare-ai-2024",
    "user_id": 1,
    "created_at": "2024-01-15T10:30:00.000000Z",
    "updated_at": "2024-01-15T10:30:00.000000Z"
  },
  "message": "Innovation created successfully"
}

Validation Error Response (422 Unprocessable Entity)

{
  "errors": {
    "contents.title_en": [
      "The contents.title_en field is required."
    ],
    "contents.date": [
      "The contents.date field must be a valid date."
    ],
    "contents.image_url": [
      "The contents.image_url field must be a valid URL."
    ]
  }
}

Server Error Response (500 Internal Server Error)

{
  "message": "Failed to create innovation: Database connection error"
}
Important Notes

Catatan Penting

⚠️ Perhatian:
  • Pastikan struktur JSON request sesuai dengan format yang ditentukan, terutama nested object contents
  • Field contents.date harus dalam format YYYY-MM-DD
  • Field contents.image_url harus berupa URL yang valid dan dapat diakses
  • Semua field dengan suffix _en dan _id harus diisi untuk mendukung multi-bahasa
  • Bearer token harus valid dan memiliki permission yang sesuai
💡 Tips:
  • Gunakan meta fields (meta_title, meta_description, meta_keywords) untuk optimasi SEO
  • Field custom_field dapat digunakan untuk kategorisasi atau tagging artikel
  • Pastikan gambar yang di-upload memiliki resolusi yang baik untuk tampilan optimal
  • Summary sebaiknya tidak lebih dari 500 karakter untuk tampilan yang optimal
Test Form

Test Endpoint

Gunakan form di bawah ini untuk menguji endpoint secara langsung:

Contents Object