Antalya Etkinlikleri · API v1

Etkinliğini doğrudan kaynağından bildir

Mekân, sanatçı, organizatör ve etkinlik yönetim sistemleri için içeri veri alma API'si. Etkinliğini oluştur, güncelle ve — en önemlisi — iptal edildiğinde anında bildir.

https://antalyaetkinlikleri.com.tr/api/v1

Neden bu API var

Etkinlik bilgisinin en doğru kaynağı, etkinliği düzenleyendir. Aracıdan aracıya taşınan bilgi eskiyor: saat değişiyor, mekân değişiyor, etkinlik iptal oluyor — ama internette hâlâ eski hâli duruyor. Bu API o zinciri kısaltır. Verini sen gönderirsin, sen güncellersin.

En değerli uç: iptal

Etkinlik oluşturmak kolaydır; asıl mesele iptal ve erteleme bilgisinin insana zamanında ulaşmasıdır. Kendi bildirdiğin etkinliği her zaman iptal edebilirsin — kapsam şartı aranmaz. Yanlış bilginin yayında kalması, geç yayından daha kötüdür.

Anahtarını nasıl alırsın

İki yol var. Hangisi olduğuna göre anahtarın kapsamı değişir.

1 · Kendi sayfanı yönetiyorsan — anahtarı kendin üret

Bir mekân, sanatçı veya organizatörsen: siteye üye ol, Sayfam bölümünden sayfanı sahiplen. Sahipliğin onaylandığı anda aynı ekranda API anahtarı düğmesi çıkar. Tek tıkla üretirsin — kimseden izin beklemene gerek yok.

Anahtarın ekseni = senin varlığın

Anahtarı bir sanatçı ürettiyse, o anahtarla gelen etkinlik sanatçıdan gelmiş sayılır ve otomatik olarak o sanatçıya bağlanır — başkasının mekânında sahne alsan bile. Mekân ürettiyse mekândan, organizatör ürettiyse organizatörden gelir. Yani "ben kimim" diye ayrıca belirtmene gerek yok: anahtar zaten söylüyor.

2 · Başkaları adına bildirim yapan bir sistemsen

Bir etkinlik yönetim ürünüysen (birden çok mekân/sanatçı müşterisi olan), sana platform anahtarı veririz. Bu anahtar başlangıçta boş kapsamla gelir; her müşteri için bir kez POST /baglanti ile bağlantı kurarsın (aşağıda). Yazman yeterli: [email protected]

Kimlik doğrulama

Her istekte API anahtarını Authorization başlığında gönder:

Authorization: Bearer ae_live_xxxxxxxxxxxxxxxxxxxx
Anahtarı tarayıcıda kullanma

Anahtar yalnızca sunucu-sunucu iletişimi içindir. Tarayıcıya, mobil uygulamaya veya herkese açık bir depoya koyma. Anahtarın tamamı yalnız üretildiği an gösterilir — sunucuda saklanmaz. Kaybedersen Sayfam ekranından yenilersin (eski anahtar anında geçersiz olur).

Yayın kapısı — nasıl çalışır

Her anahtar bir kapsama sahiptir: adına bildirim yapabileceği mekân, sanatçı ve organizatörlerin listesi. Kapsamındaki bir varlık için gönderdiğin etkinlik doğrudan yayına çıkar; kapsam dışına gönderirsen bildirim onay kuyruğuna düşer — kaybolmaz, incelenir.

Kendi sayfanı yönetiyorsan bu bölümü atlayabilirsin

Sayfam ekranından ürettiğin anahtarın kapsamı zaten doludur (kendi mekânın/sanatçı sayfan/organizatörün). Bağlantı kurmana gerek yok — doğrudan etkinlik bildirmeye geçebilirsin. Aşağısı, başkaları adına bildirim yapan platformlar içindir.

1
Mekânı bul GET /mekan-ara?q=... ile sistemdeki mekân id'sini al.
2
Bağlantı kur POST /baglanti ile o mekân adına konuşma yetkisi iste. Kiracının kurumsal e-posta alan adı mekânın resmî sitesiyle eşleşiyorsa (örn. [email protected]mekan.com) bağlantı otomatik onaylanır. Eşleşmiyorsa elle doğrularız.
3
Etkinlik bildir Kapsamındaki bir varlık için gönderdiğin etkinlik doğrudan yayına çıkar. Kapsam dışındaki bir mekâna gönderirsen bildirim onay kuyruğuna düşer — kaybolmaz, incelenir.
Neden böyle

Kimse başkasının sahnesine veri yazamasın diye. Doğrulanmış kaynak hızlı yayınlar; doğrulanmamış kaynak beklemeye alınır.

Uçlar

GET/api/v1/ben

Kimliğini, kapsamını ve günlük kotanı döner. Anahtarını test etmek için en hızlı yol.

GET/api/v1/kategoriler

Geçerli kategori, şehir ve etkinlik durumu listeleri. Sabit kodlamak yerine buradan oku.

GET/api/v1/mekan-ara?q=panda sahne

Mekân adından mekanId bulur. Etkinlik bildirmeden önce buradan doğru id'yi al.

POST/api/v1/baglanti

Bir mekân/sanatçı/organizatör adına bildirim yapma yetkisi ister. Onaylanınca kapsamına eklenir.

POST/api/v1/etkinlik

Etkinlik bildirir. Aynı kaynakId ile tekrar gönderirsen yeni kayıt açılmaz, mevcut kayıt güncellenir.

GET/api/v1/etkinlik/{kaynakId}

Bildirdiğin etkinliğin durumunu sorgular: yayında mı, kuyrukta mı.

POST/api/v1/etkinlik/{kaynakId}/iptal

Etkinliği iptal eder, erteler veya yeni tarihe taşır. Kendi etkinliğin için kapsam şartı yoktur.

Etkinlik bildirme

POST /api/v1/etkinlik
Authorization: Bearer ae_live_...
Content-Type: application/json

{
  "kaynakId":   "PL-1001",                          // senin sistemindeki id
  "baslik":     "Yaz Gecesi Konseri",
  "aciklama":   "Açık havada bir yaz akşamı.",
  "baslangic":  "2026-08-14T21:00:00+03:00",        // ISO 8601
  "sehir":      "antalya",
  "kategori":   "konser",
  "mekanId":    "ven-panda-sahne",                 // /mekan-ara ile bul
  "sanatcilar": ["Sanatçı Adı"],
  "biletUrl":   "https://pandasahne.com/bilet/1001",
  "fiyat":      450
}

Alanlar

AlanTipAçıklama
kaynakId zorunlumetin Senin sistemindeki etkinlik id'si. Kimlik anahtarıdır: aynı id ile tekrar gönderirsen kayıt çoğalmaz, güncellenir.
baslik zorunlumetinEtkinlik adı.
baslangic zorunluISO 8601 Saat dilimiyle birlikte: 2026-08-14T21:00:00+03:00. Geçmiş tarih kabul edilmez.
sehir zorunlumetin Şu an yalnız antalya. Diğer şehirler kabul edilmez.
kategori zorunlumetin konser · tiyatro · stand-up · dans-gösterisi · müzikal · festival · sahne · cocuk · spor
mekanId zorunlumetin/mekan-ara ile bulunan mekân id'si.
aciklama ops.metinEtkinlik metni.
sanatcilar ops.diziSahne alan isimler: ["Ad Soyad"]
biletUrl ops.URLBilet satış sayfan. Aşağıya bak.
fiyat ops.sayıTL cinsinden. Bilinmiyorsa alanı hiç gönderme.
sahip ops.nesne Kendi anahtarınla gönderiyorsan hiç gönderme — eksen zaten anahtarında kodlu. Sadece platform anahtarı kullanan sistemler, hangi müşterisi adına bildirdiğini burada belirtir: {"tip":"sanatci","entityId":"art-..."}. Belirtmezse mekân sahibi varsayılır.
Güncelleme sözleşmesi: gönderdiğin alan güncellenir, göndermediğin alan korunur.

Sadece saati düzeltmek için kaynakId, baslik, baslangic, sehir, kategori, mekanId göndermen yeter — açıklaman, bilet linkin ve sanatçı listen silinmez. Bir alanı silmek istiyorsan açıkça null gönder.

Yanıt

{
  "ok": true,
  "durum": "yayinda",          // kapsamındaysa
  "kaynakId": "PL-1001",
  "etkinlikId": "evt-yaz-gecesi-konseri-2026-08-14",
  "url": "https://antalyaetkinlikleri.com.tr/etkinlik/evt-yaz-gecesi-konseri-2026-08-14/"
}

Kapsamın dışındaki bir mekâna gönderdiysen "durum": "kuyrukta" döner ve bir talepId alırsın — bildirim kaybolmaz, incelenmeye alınır.

İptal ve erteleme

POST /api/v1/etkinlik/PL-1001/iptal

{ "durum": "EventCancelled", "not": "Sanatçı rahatsızlığı" }

Erteleyip yeni tarih vermek için:

{
  "durum": "EventRescheduled",
  "yeniBaslangic": "2026-10-05T21:00:00+03:00"
}
DurumAnlamı
EventScheduledNormal — planlandığı gibi (varsayılan).
EventCancelledİptal edildi.
EventPostponedErtelendi, yeni tarih henüz belli değil.
EventRescheduledYeni tarihe alındı — yeniBaslangic ile birlikte gönder.
EventMovedOnlineÇevrim içine taşındı.

Bilet linki

biletUrl gönderirsen, sitedeki Bilet Al butonu kendi yönlendirme ucumuzdan (/bilet/<id>) geçerek senin sayfana çıkar. Kullanıcı için fark yoktur: tek tıkla senin bilet sayfandadır.

Bu yönlendirme bize tıklama sayısını verir — hangi etkinliğe ne kadar ilgi geldiğini ölçebiliriz. Kişisel veri toplanmaz; yalnız etkinlik, kaynak ve zaman kaydedilir.

Hatalar

Her hata aynı biçimde döner: makine için hata kodu, insan için mesaj, ve çoğu zaman ne yapman gerektiğini söyleyen bir ipucu.

{
  "ok": false,
  "hata": "dogrulama",
  "mesaj": "Etkinlik kabul edilmedi.",
  "eksikler": [
    "kategori geçersiz: \"rock\" · geçerli: konser, tiyatro, stand-up, ..."
  ]
}
KodAnlamı
400Doğrulama hatası — eksikler dizisinde tek tek yazar.
401Anahtar geçersiz veya eksik.
404Mekân, etkinlik veya uç bulunamadı.
429Hız sınırı (dakikada 60) veya günlük kota aşıldı.
Eksik veriyi tamamlamayız

Bilmediğimiz bir bilgiyi tahmin etmek yerine reddederiz. Doğru olmayan bir etkinlik kaydı, hiç olmayan bir kayıttan kötüdür.

Hızlı başlangıç

# 1 · anahtarını test et
curl -H "Authorization: Bearer $ANAHTAR" \
  https://antalyaetkinlikleri.com.tr/api/v1/ben

# 2 · mekânını bul
curl -H "Authorization: Bearer $ANAHTAR" \
  "https://antalyaetkinlikleri.com.tr/api/v1/mekan-ara?q=panda sahne"

# 3 · bağlantı kur (bir kez)
curl -X POST -H "Authorization: Bearer $ANAHTAR" -H "Content-Type: application/json" \
  https://antalyaetkinlikleri.com.tr/api/v1/baglanti \
  -d '{"tip":"mekan","entityId":"ven-panda-sahne","eposta":"[email protected]"}'

# 4 · etkinliğini bildir
curl -X POST -H "Authorization: Bearer $ANAHTAR" -H "Content-Type: application/json" \
  https://antalyaetkinlikleri.com.tr/api/v1/etkinlik \
  -d '{"kaynakId":"PL-1001","baslik":"Yaz Gecesi","baslangic":"2026-08-14T21:00:00+03:00",
       "sehir":"antalya","kategori":"konser","mekanId":"ven-panda-sahne"}'

Sınırlar

Anahtar almak için

Mekân, sanatçı, organizatör ya da bir etkinlik yönetim sistemiysen yaz: [email protected]. Kim olduğunu ve hangi mekân/sanatçı adına bildirim yapacağını belirt.