API Dokümantasyonu
BlogGenerator API ile yayınlanmış blog yazılarınızı listeleyin, tekil içerik çekin ve uygulamanıza entegre edin.
Genel Bakış
BlogGenerator API, yayınladığınız blog yazılarını programatik olarak almanızı sağlar. REST API ile içerikleri uygulamanıza, sitenize veya otomasyon sistemlerinize entegre edebilirsiniz.
- İçerik teslimi: Yayınlanmış blog yazılarını REST API ile çekin
- Esnek sorgulama: Durum, dil veya slug ile filtreleme
- Zengin metadata: SEO verisi, etiketler, yazar bilgisi
- Güvenli erişim: API anahtarı ile kimlik doğrulama
Base URL: https://api.blogenerate.com
Önerilen endpoint: /v1/api/blog (cursor tabanlı sayfalama)
Hızlı Başlangıç
- Dashboard'a giriş yapın ve API Docs bölümünden çalışma alanınız için API anahtarı oluşturun.
- İsteklerde
Authorization: Bearer YOUR_API_KEYheader'ını kullanın. - Yayınlanmış yazıları listelemek için
GET /v1/api/blog?status=publishedendpoint'ini çağırın.
curl -X GET "https://api.blogenerate.com/v1/api/blog?status=published&limit=10" \
-H "Authorization: Bearer YOUR_API_KEY"Başarılı yanıt: { success: true, data: [...], meta: { next_cursor, has_more } }
Kimlik Doğrulama
API anahtarı çalışma alanına özeldir; ilgili çalışma alanındaki içeriklere erişim sağlar. Anahtar formatı: bg_<64-karakter-hex>
Önerilen: Bearer token
Authorization: Bearer bg_your_api_key_hereAlternatif: X-API-Key: bg_your_api_key_here header'ı da kullanılabilir. Anahtarı asla URL query parametresi olarak göndermeyin.
API Referansı
Blog listeleme
GET /v1/api/blog — Cursor tabanlı sayfalama (önerilen).
| Parametre | Tip | Açıklama |
|---|---|---|
| status | string | draft, generated, review, published |
| limit | number | Varsayılan 50, max 100 |
| cursor | string | Önceki yanıttan meta.next_cursor |
Tekil yazı (ID)
GET /v1/api/blog/:id — Tam içerik (HTML, markdown, SEO, TOC, FAQ).
Tekil yazı (slug)
GET /v1/api/blog/slug/:slug — Slug ile tam içerik.
Giriş yaptıktan sonra dashboard'taki API Docs sayfasında tüm endpoint detayları ve anahtar yönetimi bulunur.
Hata Yönetimi
Tüm hata yanıtları aynı yapıdadır:
{
"success": false,
"message": "Hata mesajı",
"error": "Detaylı açıklama"
}| Kod | Anlam | Açıklama |
|---|---|---|
| 200 | OK | Başarılı |
| 400 | Bad Request | Geçersiz parametre |
| 401 | Unauthorized | Eksik veya geçersiz API anahtarı |
| 404 | Not Found | Kaynak bulunamadı |
| 429 | Too Many Requests | Rate limit aşıldı |
| 500 | Internal Server Error | Sunucu hatası |
Limitler ve Kota
Planınıza göre dakikalık/günlük istek limitleri uygulanır. Yanıt header'larında limit bilgisi döner:
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 95
X-RateLimit-Reset: 1641024000Limit aşımında 429 Too Many Requests döner. Üstel geri çekilme (exponential backoff) ve önbellek kullanımı önerilir.
Kod Örnekleri
JavaScript (cursor ile sayfalama):
const API_BASE = 'https://api.blogenerate.com';
const API_KEY = process.env.BLOG_API_KEY;
async function listPosts(cursor = null) {
const params = new URLSearchParams({ status: 'published', limit: '50' });
if (cursor) params.append('cursor', cursor);
const res = await fetch(`${API_BASE}/v1/api/blog?${params}`, {
headers: { 'Authorization': `Bearer ${API_KEY}` }
});
const data = await res.json();
return { posts: data.data || [], meta: data.meta || {} };
}
// Tüm sayfaları çek
async function getAllPosts() {
const all = [];
let cursor = null;
let hasMore = true;
while (hasMore) {
const { posts, meta } = await listPosts(cursor);
all.push(...posts);
hasMore = meta.has_more ?? false;
cursor = meta.next_cursor;
if (!cursor && !hasMore) break;
}
return all;
}Destek
Teknik sorularınız veya entegrasyon desteği için iletişim sayfamızdan bize ulaşabilirsiniz. Dashboard içindeki API Docs sayfasında canlı örnekler ve API anahtar yönetimi bulunur.