API Dokümantasyonu
Public JSON API ile kategori listesini alabilir ve firma başvurusu gönderebilirsiniz. Kimlik doğrulama gerekmez; tüm başvurular admin onayından sonra yayınlanır.
Genel bilgiler
- Base URL:
https://turkiyekobirehberi.com - Format: JSON (
Content-Type: application/json) - Karakter seti: UTF-8
- Auth: Yok (public)
- Rate limit: Firma gönderiminde IP başına saatlik sınır uygulanır (aşımda
429) - Konum: İl ve ilçe metin olarak gönderilir ve metin olarak saklanır
GET
/api/categories
Aktif kategori listesini döner. Firma gönderirken category_id için bu listedeki id değerlerini kullanın.
Örnek istek
curl -s https://turkiyekobirehberi.com/api/categories
Örnek yanıt 200
{
"success": true,
"data": [
{
"id": 1,
"name": "Yazılım ve Teknoloji",
"slug": "yazilim-ve-teknoloji"
}
]
}
POST
/api/companies
Yeni firma başvurusu oluşturur. Kayıt pending durumunda başlar; onay sonrası sitede görünür. İl/ilçe alanları metin saklanır.
İstek gövdesi (JSON)
| Alan | Zorunlu | Açıklama |
|---|---|---|
name | Evet | Firma adı |
category_id | Evet | GET /api/categories içinden |
city | Evet | İl adı metin (ör. İstanbul). Eşdeğer: il, city_name |
district | Evet | İlçe adı metin (ör. Kadıköy). Eşdeğer: ilce, district_name |
description | Evet | En az 10 karakter |
phone | Koşullu* | Telefon |
email | Koşullu* | E-posta |
website | Hayır | Web sitesi URL |
address | Hayır | Açık adres |
logo_url | Hayır | Logo URL; sunucu güvenli şekilde locale indirir |
* phone veya email alanlarından en az biri zorunludur. İl/ilçe her zaman metin olarak kaydedilir.
Örnek istek
curl -s -X POST https://turkiyekobirehberi.com/api/companies \
-H "Content-Type: application/json" \
-d '{
"name": "Örnek Yazılım Ltd.",
"category_id": 1,
"city": "İstanbul",
"district": "Kadıköy",
"description": "Kurumsal yazılım ve dijital dönüşüm hizmetleri.",
"phone": "05551234567",
"email": "[email protected]",
"website": "https://ornek.example",
"logo_url": "https://ornek.example/logo.png"
}'
Başarı yanıtı 201
{
"success": true,
"message": "Başvurunuz alındı; onay sonrası yayınlanacaktır.",
"data": {
"id": 123,
"status": "pending"
}
}
Doğrulama hatası 422
{
"success": false,
"message": "Doğrulama hatası.",
"errors": {
"city": "Geçerli bir il girin (ör. \"İstanbul\")."
}
}
Rate limit 429
{
"success": false,
"message": "Rate limit aşıldı."
}
Notlar
application/x-www-form-urlencodedgövde de kabul edilir; JSON önerilir.- Geçersiz veya güvensiz
logo_urlbaşvuruyu engellemez; logo boş bırakılır. - Özel IP, localhost ve metadata adreslerine logo indirme engellenir (SSRF koruması).
- İl/ilçe metinleri tercihen rehberdeki isimlerle gönderilir (örn.
İstanbul,Kadıköy); bilinen isimler kanonik forma çevrilir.
Canlı kategori listesi: https://turkiyekobirehberi.com/api/categories