Geliştiriciler

API başvurusu

REST API’nin tamamı: her uç nokta, parametre ve yanıt, dokuz dilde hazır örneklerle. Örnekler anahtarını TODIX_TOKEN ortam değişkeninden okur.

Taban adreshttps://todix.com.tr/api/v1Sürüm 1.0.0OpenAPI (JSON) indirGeliştirici sayfası

Örnek dili

Seçtiğin dil sayfadaki bütün örneklerde kullanılır ve bu cihazda hatırlanır.

Örnek dili

Her istek bir kişisel erişim anahtarıyla gelir: Authorization: Bearer tdx_…. Anahtarı Todix’te Entegrasyonlar → API sayfasından oluşturursun.

  • Her anahtar bir kişiye ve bir çalışma alanına bağlıdır, o kişinin uygulamadaki yetkileriyle çalışır. Uygulamada göremediğin bir görevi API de göstermez.
  • İzinler (scope) anahtarın neye dokunabileceğini sınırlar, yetki vermez. Yalnız ihtiyacın olanları seç.
  • Anahtar yoksa, biçimsizse, süresi dolmuşsa ya da iptal edildiyse yanıt hep aynıdır: 401 invalid_token.
  • Anahtarı koda yazma; örneklerdeki gibi TODIX_TOKEN ortam değişkeninde tut. Bir anahtar kendini DELETE /api/v1/token ile iptal edebilir.
  • API tarayıcıdan başka sitelerden çağrılamaz (CORS kapalı). İstekleri kendi sunucundan gönder.

İzinler

İzinNeye izin verir
tasks:readGörevleri oku · Görevler, yorumlar, etiketler ve üyeler
tasks:writeGörev yaz · Oluştur, güncelle, tamamla, çöpe at, ata, etiketle
projects:readProjeleri oku · Projeler ve bölümleri
projects:writeProje yaz · Proje ve bölüm oluştur, güncelle
comments:writeYorum yaz · Görev sohbetine yorum gönder
webhooks:manageWebhook yönet · Yalnız yöneticiler için çalışır
mcpAsistan bağlantısı (MCP) · Claude, ChatGPT gibi asistanlar için
hooksAnında tetikleyiciler · Bir şey olunca adresine haber gelsin (Zapier, Make)
GET/api/v1/me
curl https://todix.com.tr/api/v1/me \
  -H "Authorization: Bearer $TODIX_TOKEN"
Yanıt200Başarılı
{
  "data": {
    "user": {
      "id": "9dbbdf02-54b2-4454-b632-f672236bc076",
      "name": "Ersin Kaya",
      "email": "ersin@springstore.com.tr",
      "locale": "tr"
    },
    "workspace": {
      "id": "db3e1c31-eed8-4f7d-b0bf-531218511aee",
      "name": "SpringStore",
      "slug": "springstore",
      "timezone": "Europe/Istanbul",
      "today": "2026-10-15",
      "role": "member"
    },
    "token": {
      "id": "e1a9fcd8-973c-4f5c-b664-10a40fb0583a",
      "scopes": [
        "tasks:read",
        "tasks:write",
        "projects:read"
      ]
    }
  }
}

Üç adımda ilk görevin: anahtar oluştur, ortam değişkenine koy, isteği gönder.

  1. Todix’te Entegrasyonlar → API’den tasks:write izinli bir anahtar oluştur.
  2. Anahtarı TODIX_TOKEN ortam değişkenine koy: export TODIX_TOKEN=tdx_…
  3. Yandaki isteği gönder. Yanıtta yeni görevin numarası ve adresi gelir.
POST/api/v1/tasks
curl -X POST https://todix.com.tr/api/v1/tasks \
  -H "Authorization: Bearer $TODIX_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 5f1c2a9e-7b3d-4e8f-a0c6-2d9b4e7f1a38" \
  -d '{
    "title": "Kargo etiketlerini yazdır",
    "priority": "high",
    "due_date": "2026-10-20",
    "assignee_ids": [
      "9dbbdf02-54b2-4454-b632-f672236bc076"
    ],
    "project_id": "38b4ef00-de3c-41ea-bfca-eb30a9b54d8a"
  }'
Yanıt201Oluşturuldu
{
  "data": {
    "id": "18962c5b-6ac7-4891-abce-179e8517f916",
    "number": 42,
    "title": "Kargo etiketlerini yazdır",
    "description": "Kasım kampanyası siparişlerinin etiketlerini yazdır ve paketlere yapıştır.",
    "status": "open",
    "stage": "doing",
    "priority": "high",
    "due_date": "2026-10-20",
    "due_time": "17:00",
    "start_date": "2026-10-16",
    "deadline": "2026-10-24",
    "estimate_minutes": 45,
    "recurrence": null,
    "is_overdue": false,
    "project": {
      "id": "38b4ef00-de3c-41ea-bfca-eb30a9b54d8a",
      "name": "Kasım kampanyası",
      "color": "#1F4FEB"
    },
    "section_id": "c42e1c20-99a3-40da-8817-0c38c4f506da",
    "parent_id": null,
    "assignees": [
      {
        "id": "9dbbdf02-54b2-4454-b632-f672236bc076",
        "name": "Ersin Kaya"
      }
    ],
    "labels": [
      {
        "id": "4126c9fb-f32e-44e7-948e-fbd68d51fa16",
        "name": "Acil",
        "color": "#E5484D"
      }
    ],
    "created_by": {
      "id": "dade1044-8acc-4384-9af3-404a04966916",
      "name": "Burak Beşli"
    },
    "assigned_by": {
      "id": "dade1044-8acc-4384-9af3-404a04966916",
      "name": "Burak Beşli"
    },
    "completed_at": null,
    "completed_by": null,
    "comment_count": 3,
    "attachment_count": 1,
    "checklist": {
      "total": 4,
      "done": 1
    },
    "created_at": "2026-10-15T09:12:44.512+03:00",
    "updated_at": "2026-10-15T09:12:44.512+03:00",
    "url": "https://todix.com.tr/springstore/g/42"
  }
}

Başarısız her istek aynı biçimde döner: { "error": { "code", "message" } }. code makineler içindir ve değişmez; message geliştiriciye kısa bir İngilizce ipucudur.

HTTP durum kodları

DurumAnlamı
400İstek hatalı: gövde ya da sorgu şemaya uymuyor, filtre ya da imleç geçersiz.
401Anahtar yok, biçimsiz, süresi dolmuş ya da iptal edilmiş.
403Anahtarın izni ya da uygulamadaki yetkin bu işe yetmiyor.
404Kayıt yok ya da göremiyorsun; ya da böyle bir yol yok.
405Bu yol bu yöntemi desteklemiyor (yanıttaki Allow başlığına bak).
409Çakışma: aynı Idempotency-Key ile istek sürüyor ya da kayıt zaten var.
413Gövde 64 KB’tan büyük.
415Gövde JSON değil: Content-Type: application/json gönder.
422Bu Idempotency-Key başka bir gövdeyle kullanılmış.
429Hız sınırı aşıldı; Retry-After saniye kadar bekle.
5xxBizde geçici bir sorun var; biraz sonra yeniden dene.

Sık karşılaşılan kodlar

KodAnlamı
invalid_tokenAnahtar yok, biçimsiz, süresi dolmuş ya da iptal edilmiş.
insufficient_scopeAnahtarın bu uç noktanın istediği izni yok.
rate_limitedÇok fazla istek. X-RateLimit-Reset zamanına kadar bekle.
not_foundBulunamadı.
route_not_foundBöyle bir uç nokta yok.
method_not_allowedBu uç nokta bu yöntemi desteklemiyor.
bad_requestİstek hatalı.
invalid_bodyJSON gövdesi yok ya da şemaya uymuyor.
invalid_queryBir sorgu parametresi geçersiz.
invalid_filterAkıllı filtre ifadesi çözümlenemedi.
invalid_cursorİmleç geçersiz. İmleçsiz, baştan başla.
idempotency_key_invalidIdempotency-Key 1–100 karakter olmalı: A–Z, a–z, 0–9 ve _ . : -
idempotency_key_reusedBu Idempotency-Key başka bir istekle kullanıldı.
idempotency_in_progressBu Idempotency-Key ile gelen istek hâlâ sürüyor.
payload_too_largeGövde çok büyük (en çok 64 KB).
unsupported_media_typeJSON gönder (Content-Type: application/json).
unavailableHizmet geçici olarak kullanılamıyor. Biraz sonra yeniden dene.
unknownİstek tamamlanamadı.
not_a_memberBu çalışma alanının üyesi değilsin.
admin_requiredBunu yalnız çalışma alanı yöneticileri yapabilir.
task_not_foundGörev yok ya da göremiyorsun.
assign_not_allowedBu kişiye görev atayamazsın.
forbiddenBunu yapamazsın.
webhook_url_invalidWebhook adresi HTTPS olmalı ve herkese açık bir ada çıkmalı.
webhook_address_blockedWebhook adresi özel ya da ayrılmış bir IP’ye çıkıyor.
webhook_events_invalidBilinmeyen webhook olayı.
webhook_limitBir çalışma alanında en çok 20 webhook olabilir.
webhook_not_foundWebhook bulunamadı.
webhook_disabledWebhook kapalı. Önce aç.
project_not_foundProje bulunamadı ya da onu göremiyorsun.
hook_not_foundTetikleyici bulunamadı; zaten kaldırılmış olabilir.
hook_event_invalidBu olay için tetikleyici kurulamaz.
hook_limitBir çalışma alanında en çok 100 etkin tetikleyicin olabilir.
hook_needs_apiTetikleyiciler yalnız API anahtarı ya da Zapier / Make bağlantısıyla kurulur.
Hata yanıtı
{
  "error": {
    "code": "assign_not_allowed",
    "message": "You may not assign tasks to this person."
  }
}

Listeler sayfalıdır: { "data": [...], "next_cursor": "…" }. Sonraki sayfa için next_cursor değerini ?cursor= ile gönder; null gelince liste biter.

  • limit 1–200 arası, varsayılan 50.
  • Görevler görev numarasına göre yeniden eskiye sıralanır; arada yeni görev açılsa bile sayfalar kaymaz.
  • Akıllı filtreyle bir sayfa limit’ten az görev içerebilir, hatta boş gelebilir. Sayfa boyuna değil next_cursor’a bak.
  • İmleç şeffaf değildir; içini çözme, olduğu gibi geri gönder.
Sonraki sayfa
curl -G https://todix.com.tr/api/v1/tasks \
  -H "Authorization: Bearer $TODIX_TOKEN" \
  --data-urlencode "limit=50" \
  --data-urlencode "cursor=eyJiIjo0MX0"
Yanıt200Başarılı
{
  "data": [
    {
      "id": "18962c5b-6ac7-4891-abce-179e8517f916",
      "number": 42,
      "title": "Kargo etiketlerini yazdır",
      "description": "Kasım kampanyası siparişlerinin etiketlerini yazdır ve paketlere yapıştır.",
      "status": "open",
      "stage": "doing",
      "priority": "high",
      "due_date": "2026-10-20",
      "due_time": "17:00",
      "start_date": "2026-10-16",
      "deadline": "2026-10-24",
      "estimate_minutes": 45,
      "recurrence": null,
      "is_overdue": false,
      "project": {
        "id": "38b4ef00-de3c-41ea-bfca-eb30a9b54d8a",
        "name": "Kasım kampanyası",
        "color": "#1F4FEB"
      },
      "section_id": "c42e1c20-99a3-40da-8817-0c38c4f506da",
      "parent_id": null,
      "assignees": [
        {
          "id": "9dbbdf02-54b2-4454-b632-f672236bc076",
          "name": "Ersin Kaya"
        }
      ],
      "labels": [
        {
          "id": "4126c9fb-f32e-44e7-948e-fbd68d51fa16",
          "name": "Acil",
          "color": "#E5484D"
        }
      ],
      "created_by": {
        "id": "dade1044-8acc-4384-9af3-404a04966916",
        "name": "Burak Beşli"
      },
      "assigned_by": {
        "id": "dade1044-8acc-4384-9af3-404a04966916",
        "name": "Burak Beşli"
      },
      "completed_at": null,
      "completed_by": null,
      "comment_count": 3,
      "attachment_count": 1,
      "checklist": {
        "total": 4,
        "done": 1
      },
      "created_at": "2026-10-15T09:12:44.512+03:00",
      "updated_at": "2026-10-15T09:12:44.512+03:00",
      "url": "https://todix.com.tr/springstore/g/42"
    }
  ],
  "next_cursor": "eyJiIjo0MX0"
}

Anahtar başına dakikada 120 istek. Her yanıt kalan hakkını söyler.

  • X-RateLimit-Limit: dakikadaki hak · X-RateLimit-Remaining: kalan · X-RateLimit-Reset: pencerenin sıfırlandığı unix zamanı.
  • Sınırı aşınca 429 rate_limited ve Retry-After (saniye) döner; o kadar bekleyip yeniden dene.
  • Geçersiz anahtarla gelen istekler IP başına dakikada 30 ile sınırlıdır.
  • MCP bağlantısı aynı sayacı kullanır.
Sınır aşılınca
HTTP/1.1 429 Too Many Requests
Retry-After: 18
X-RateLimit-Limit: 120
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1792040460

{
  "error": {
    "code": "rate_limited",
    "message": "Too many requests. Wait until X-RateLimit-Reset and try again."
  }
}

Her POST isteği bir Idempotency-Key başlığı alabilir. Ağ koptuğunda aynı isteği aynı anahtarla yeniden gönder: iş iki kez yapılmaz.

  • Anahtar 1–100 karakter: A–Z, a–z, 0–9 ve _ . : -. Her yeni iş için yeni bir değer (ör. UUID) üret.
  • Aynı anahtar ve aynı gövde: ilk yanıt aynen döner, Idempotent-Replayed: true başlığıyla.
  • Aynı anahtar, farklı gövde: 422 idempotency_key_reused. İlk istek sürerken: 409 idempotency_in_progress.
  • Anahtarlar 24 saat saklanır. 5xx yanıtında anahtar serbest kalır, yeniden deneyebilirsin.
Güvenli yeniden deneme
curl -X POST https://todix.com.tr/api/v1/tasks/42/complete \
  -H "Authorization: Bearer $TODIX_TOKEN" \
  -H "Idempotency-Key: 5f1c2a9e-7b3d-4e8f-a0c6-2d9b4e7f1a38"

GET /tasks isteğinin filter parametresi, uygulamadaki akıllı filtre ifadesini alır. Türkçe ya da İngilizce anahtar sözcükler, büyük-küçük harf ve aksan fark etmez.

İfadeler

İfadeAnlamı
p1 · p2 · p3Yüksek, orta, düşük öncelik (!yüksek, !high da olur)
bugün · yarın · gecikmişHedef tarihe göre (today, tomorrow, overdue)
bu hafta · gelecek hafta · bu ay · 7 gün · tarihsizTarih aralıkları
başlangıç:bu hafta · son:yarınBaşlangıç tarihi ya da son tarih
@ersin · @benSorumlu (@me)
atayan:@burak · oluşturan:@benGörevi veren ya da oluşturan
#"Kasım kampanyası" · #yokProje ya da projesiz
etiket:acilEtiket (label:acil)
durum:yapılıyorAşama: yapılacak, yapılıyor, bekliyor, bitti
tahmin>2s · tahmin<=30dkSüre tahmini
"kargo"Başlıkta ya da açıklamada geçen metin
& | ! ( )ve, veya, değil, gruplama (boşluk da “ve” demektir)

Filtre diğer parametrelerle VE ile birleşir. Çözümlenemeyen ifade 400 invalid_filter döner.

Bugün biten yüksek öncelikli işlerim
curl -G https://todix.com.tr/api/v1/tasks \
  -H "Authorization: Bearer $TODIX_TOKEN" \
  --data-urlencode "filter=p1 & bugün & @ben"

Webhook’lar her isteği imzalar: Todix-Signature: t=<zaman>, v1=<imza>. İmza, “zaman.gövde” metninin webhook’un imza anahtarıyla HMAC-SHA256 özetidir (hex).

  • İmzayı ham gövdeyle hesapla (JSON’u çözüp yeniden yazma), sabit zamanlı karşılaştır.
  • Zamanı 5 dakikadan eski istekleri reddet: tekrar oynatmaya karşı korur.
  • Anahtar yenilenirken bir başlıkta birden çok v1 gelebilir; biri eşleşmesi yeter.
  • 2xx yanıt teslim demektir. Başarısızlar 1 dk, 5 dk, 30 dk, 2 sa ve 8 sa sonra yeniden denenir; art arda 15 hatada webhook kapanır.
  • Diğer başlıklar: Todix-Event (olay türü), Todix-Delivery (teslim kimliği). Aynı teslim yeniden denenirse aynı gövde gelir.

Olaylar

OlayAnlamı
task.createdGörev oluşturuldu
task.updatedGörev güncellendi
task.completedGörev tamamlandı
task.deletedGörev çöpe atıldı
comment.createdYorum yazıldı
project.createdProje oluşturuldu
import { createHmac, timingSafeEqual } from 'node:crypto'

// Express: app.post('/todix', express.raw({ type: 'application/json' }), handler)
export function verifyTodix(rawBody, header, secret, toleranceSeconds = 300) {
  const parts = Object.fromEntries(
    String(header ?? '').split(',').map((p) => p.trim().split('=')),
  )
  const t = Number(parts.t)
  if (!t || Math.abs(Date.now() / 1000 - t) > toleranceSeconds) return false
  const expected = createHmac('sha256', secret).update(`${t}.${rawBody}`).digest()
  const given = Buffer.from(parts.v1 ?? '', 'hex')
  return given.length === expected.length && timingSafeEqual(given, expected)
}
Örnek gövde
{
  "id": "5f0c…",
  "type": "task.completed",
  "created_at": "2026-10-15T09:12:44.512+00:00",
  "workspace": { "id": "b000…", "slug": "springstore", "name": "SpringStore" },
  "actor": { "id": "a000…", "name": "Ersin Kaya" },
  "data": {
    "task": {
      "id": "e000…", "number": 42, "title": "Kampanya görselleri",
      "status": "done", "priority": "high", "due_date": "2026-10-15",
      "assignee_ids": ["a000…"], "label_ids": [],
      "url": "https://todix.com.tr/springstore/g/42"
    }
  }
}

Todix’in uzak MCP sunucusu Claude, ChatGPT, Claude Code, Cursor ve VS Code gibi yapay zekâ asistanlarını görevlerine bağlar.

Sunucu adresihttps://todix.com.tr/api/mcp

  • Claude ve ChatGPT OAuth ile bağlanır: adresi “özel bağlayıcı” olarak ekle, Todix’te çalışma alanını seç ve onayla. Anahtar kopyalamazsın.
  • Cursor ve VS Code mcp izinli bir anahtarla bağlanır. Todix’te Entegrasyonlar → MCP hazır yapılandırmayı anahtarınla birlikte verir.
  • Araçlar: çalışma alanları, günüm, görev ara, getir, oluştur, güncelle, tamamla, yorum yaz, projeler, üyeler. Yalnız okuma bağlantısında yazma araçları görünmez.
  • MCP de senin yetkilerinle çalışır ve REST API ile aynı dakikalık sınırı paylaşır.
claude mcp add --transport http todix https://todix.com.tr/api/mcp

2 uç nokta

Anahtarın kime ve hangi çalışma alanına bağlı olduğu.

Anahtarın kişisi, çalışma alanı ve izinleri.

Alanlar

  • userobject

    Anahtarın kişisi.

    4 alt alanı göster
    • iduuid

      Kimlik (uuid).

    • namestring

      Ad.

    • emailemail

      E-posta adresi.

    • localeenum

      Kişinin arayüz dili.

      tren
  • workspaceobject

    Anahtarın bağlı olduğu çalışma alanı.

    6 alt alanı göster
    • iduuid

      Kimlik (uuid).

    • namestring

      Ad.

    • slugstring

      Çalışma alanının adresteki kısa adı.

    • timezonestring

      Çalışma alanının saat dilimi.

    • todaydate

      Çalışma alanının saatine göre bugünün tarihi.

    • roleenumnull olabilir

      Rol: admin yönetici, member üye.

      adminmember
  • tokenobject

    Kullanılan anahtar.

    2 alt alanı göster
    • iduuid

      Kimlik (uuid).

    • scopesenum[]

      Anahtarın izinleri.

      tasks:readtasks:writeprojects:readprojects:writecomments:writewebhooks:managemcphooks
Anahtar bilgisi
{
  "user": {
    "id": "9dbbdf02-54b2-4454-b632-f672236bc076",
    "name": "Ersin Kaya",
    "email": "ersin@springstore.com.tr",
    "locale": "tr"
  },
  "workspace": {
    "id": "db3e1c31-eed8-4f7d-b0bf-531218511aee",
    "name": "SpringStore",
    "slug": "springstore",
    "timezone": "Europe/Istanbul",
    "today": "2026-10-15",
    "role": "member"
  },
  "token": {
    "id": "e1a9fcd8-973c-4f5c-b664-10a40fb0583a",
    "scopes": [
      "tasks:read",
      "tasks:write",
      "projects:read"
    ]
  }
}

Saat dilimi ve o günün tarihiyle birlikte.

Alanlar

  • iduuid

    Kimlik (uuid).

  • namestring

    Ad.

  • slugstring

    Çalışma alanının adresteki kısa adı.

  • timezonestring

    Çalışma alanının saat dilimi.

  • todaydate

    Çalışma alanının saatine göre bugünün tarihi.

  • roleenumnull olabilir

    Rol: admin yönetici, member üye.

    adminmember
Çalışma alanı nesnesi
{
  "id": "db3e1c31-eed8-4f7d-b0bf-531218511aee",
  "name": "SpringStore",
  "slug": "springstore",
  "timezone": "Europe/Istanbul",
  "today": "2026-10-15",
  "role": "member"
}
/api/v1/me
İzin: Her anahtar

Anahtarın bağlı olduğu kişiyi, çalışma alanını (saat dilimi ve bugünün tarihi dahil) ve izinlerini döner. Bağlantıyı denemenin en kolay yolu.

Yanıtlar

  • 200

    Başarılı

    Döner: Anahtar bilgisi

  • 4xx

    Başarısız isteklerde tek biçimli hata nesnesi döner. Hatalar

    400 · 401 · 403 · 404 · 429

GET/api/v1/me
curl https://todix.com.tr/api/v1/me \
  -H "Authorization: Bearer $TODIX_TOKEN"
Yanıt200Başarılı
{
  "data": {
    "user": {
      "id": "9dbbdf02-54b2-4454-b632-f672236bc076",
      "name": "Ersin Kaya",
      "email": "ersin@springstore.com.tr",
      "locale": "tr"
    },
    "workspace": {
      "id": "db3e1c31-eed8-4f7d-b0bf-531218511aee",
      "name": "SpringStore",
      "slug": "springstore",
      "timezone": "Europe/Istanbul",
      "today": "2026-10-15",
      "role": "member"
    },
    "token": {
      "id": "e1a9fcd8-973c-4f5c-b664-10a40fb0583a",
      "scopes": [
        "tasks:read",
        "tasks:write",
        "projects:read"
      ]
    }
  }
}
/api/v1/workspaces
İzin: Her anahtar

Anahtarın ulaşabildiği çalışma alanları. Bir anahtar tek bir çalışma alanına bağlı olduğundan liste tek kayıttır.

Yanıtlar

  • 200

    Başarılı

    Sayfalı liste döner: Çalışma alanı nesnesi

  • 4xx

    Başarısız isteklerde tek biçimli hata nesnesi döner. Hatalar

    400 · 401 · 403 · 404 · 429

GET/api/v1/workspaces
curl https://todix.com.tr/api/v1/workspaces \
  -H "Authorization: Bearer $TODIX_TOKEN"
Yanıt200Başarılı
{
  "data": [
    {
      "id": "db3e1c31-eed8-4f7d-b0bf-531218511aee",
      "name": "SpringStore",
      "slug": "springstore",
      "timezone": "Europe/Istanbul",
      "today": "2026-10-15",
      "role": "member"
    }
  ],
  "next_cursor": "eyJiIjo0MX0"
}

9 uç nokta

Görev oluştur, oku, güncelle, tamamla; sorumluları ve etiketleri yönet. Yollardaki {ref} görev numarası (42) ya da kimliğidir.

Listelerde ve tek görevde aynı alanlar; açıklama listelerde kısaltılır.

Alanlar

  • iduuid

    Kimlik (uuid).

  • numberinteger

    Çalışma alanındaki görev numarası (#42).

  • titlestring

    Görevin başlığı.

  • descriptionstring

    Görevin açıklaması. Listelerde ilk 280 karakter, tek görevde tamamı gelir.

  • statusenum

    open açık, done tamamlandı.

    opendone
  • stageenumnull olabilir

    Aşama: todo yapılacak, doing yapılıyor, waiting beklemede.

    tododoingwaiting
  • priorityenum

    Öncelik: high yüksek, medium orta, low düşük.

    highmediumlow
  • due_datedatenull olabilir

    Hedef tarih (YYYY-AA-GG).

  • due_timestringnull olabilir

    Hedef saati (SS:DD), çalışma alanının saatine göre.

  • start_datedatenull olabilir

    Başlangıç tarihi.

  • deadlinedatenull olabilir

    Son tarih: hedefin kaçırılamayacak sınırı.

  • estimate_minutesintegernull olabilir

    Süre tahmini, dakika.

  • recurrencestringnull olabilir

    Tekrar kuralı (yoksa null).

  • is_overdueboolean

    Hedef tarihi geçmiş ve hâlâ açık.

  • projectobjectnull olabilir

    Görevin projesi.

    3 alt alanı göster
    • iduuid

      Kimlik (uuid).

    • namestringnull olabilir

      Ad.

    • colorstringnull olabilir

      Renk, #RRGGBB.

  • section_iduuidnull olabilir

    Proje içindeki bölüm.

  • parent_iduuidnull olabilir

    Üst görev (alt işse).

  • assigneesobject[]

    Sorumlular; ilk kişi ana sorumlu.

    2 alt alanı göster
    • iduuid

      Kimlik (uuid).

    • namestringnull olabilir

      Ad.

  • labelsobject[]

    Etiketler.

    3 alt alanı göster
    • iduuid

      Kimlik (uuid).

    • namestring

      Ad.

    • colorstringnull olabilir

      Renk, #RRGGBB.

  • created_byobject

    Oluşturan kişi.

    2 alt alanı göster
    • iduuid

      Kimlik (uuid).

    • namestringnull olabilir

      Ad.

  • assigned_byobjectnull olabilir

    Görevi veren kişi.

    2 alt alanı göster
    • iduuid

      Kimlik (uuid).

    • namestringnull olabilir

      Ad.

  • completed_atdate-timenull olabilir

    Tamamlanma zamanı.

  • completed_byobjectnull olabilir

    Tamamlayan kişi.

    2 alt alanı göster
    • iduuid

      Kimlik (uuid).

    • namestringnull olabilir

      Ad.

  • comment_countinteger

    Yorum sayısı.

  • attachment_countinteger

    Dosya sayısı.

  • checklistobject

    Kontrol listesi özeti.

    2 alt alanı göster
    • totalinteger

      Madde sayısı.

    • doneinteger

      İşaretlenen madde sayısı.

  • created_atdate-time

    Oluşturulma zamanı (ISO 8601).

  • updated_atdate-time

    Son değişiklik zamanı (ISO 8601).

  • urluri

    Görevin Todix’teki adresi.

Görev nesnesi
{
  "id": "18962c5b-6ac7-4891-abce-179e8517f916",
  "number": 42,
  "title": "Kargo etiketlerini yazdır",
  "description": "Kasım kampanyası siparişlerinin etiketlerini yazdır ve paketlere yapıştır.",
  "status": "open",
  "stage": "doing",
  "priority": "high",
  "due_date": "2026-10-20",
  "due_time": "17:00",
  "start_date": "2026-10-16",
  "deadline": "2026-10-24",
  "estimate_minutes": 45,
  "recurrence": null,
  "is_overdue": false,
  "project": {
    "id": "38b4ef00-de3c-41ea-bfca-eb30a9b54d8a",
    "name": "Kasım kampanyası",
    "color": "#1F4FEB"
  },
  "section_id": "c42e1c20-99a3-40da-8817-0c38c4f506da",
  "parent_id": null,
  "assignees": [
    {
      "id": "9dbbdf02-54b2-4454-b632-f672236bc076",
      "name": "Ersin Kaya"
    }
  ],
  "labels": [
    {
      "id": "4126c9fb-f32e-44e7-948e-fbd68d51fa16",
      "name": "Acil",
      "color": "#E5484D"
    }
  ],
  "created_by": {
    "id": "dade1044-8acc-4384-9af3-404a04966916",
    "name": "Burak Beşli"
  },
  "assigned_by": {
    "id": "dade1044-8acc-4384-9af3-404a04966916",
    "name": "Burak Beşli"
  },
  "completed_at": null,
  "completed_by": null,
  "comment_count": 3,
  "attachment_count": 1,
  "checklist": {
    "total": 4,
    "done": 1
  },
  "created_at": "2026-10-15T09:12:44.512+03:00",
  "updated_at": "2026-10-15T09:12:44.512+03:00",
  "url": "https://todix.com.tr/springstore/g/42"
}
/api/v1/tasks
İzin: tasks:read

Görevler en yeni numaradan geriye sıralanır. Filtreler VE ile birleşir; filter uygulamadaki akıllı filtre ifadesini alır. Bir sayfa limit’ten az görev içerebilir: next_cursor null olana kadar devam et.

Sorgu parametreleri

  • statusenum

    Hangi görevler: open açık (varsayılan), done tamamlanan, any hepsi.

    opendoneany

    Varsayılan: open

  • assigneeuuid | "me"

    Sorumlu: kişi kimliği ya da kendin için me.

  • projectuuid | "none"

    Proje kimliği; projesiz görevler için none.

  • sectionuuid

    Bölüm kimliği.

  • labeluuid

    Etiket kimliği.

  • priorityenum

    Öncelik.

    highmediumlow
  • stageenum

    Aşama.

    tododoingwaiting
  • dueenum

    Hedef tarih: today bugün, week bu hafta, later sonra, none tarihsiz.

    todayweeklaternone
  • overdueenum

    true: yalnız gecikenler.

    01truefalse
  • parentuuid

    Bu görevin alt işleri.

  • top_levelenum

    true: alt işler hariç.

    01truefalse
  • qstring

    Başlıkta ya da açıklamada geçen metin.

    1–200 karakter

  • filterstring

    Akıllı filtre ifadesi, ör. p1 & bugün & @ben (Akıllı filtre bölümü).

    1–600 karakter

  • numberinteger

    Çalışma alanındaki görev numarası (#42).

    1–9.999.999.999 arası

  • sortenum

    Sıralama: number en yeni görev önce (varsayılan), updated son değişen önce, completed son tamamlanan önce (status=any değilse yalnız tamamlananlar).

    numberupdatedcompleted

    Varsayılan: number

  • created_sincedate-time

    Yalnız bu zamandan sonra oluşturulan görevler (ISO 8601).

  • updated_sincedate-time

    Yalnız bu zamandan sonra değişen görevler (ISO 8601).

  • completed_sincedate-time

    Yalnız bu zamandan sonra tamamlanan görevler (ISO 8601).

  • limitinteger

    Sayfadaki en çok kayıt.

    Varsayılan: 50 · 1–200 arası

  • cursorstring

    Önceki yanıttaki next_cursor.

    En çok 200 karakter

Yanıtlar

  • 200

    Başarılı

    Sayfalı liste döner: Görev nesnesi

  • 4xx

    Başarısız isteklerde tek biçimli hata nesnesi döner. Hatalar

    400 · 401 · 403 · 404 · 429

GET/api/v1/tasks
curl -G https://todix.com.tr/api/v1/tasks \
  -H "Authorization: Bearer $TODIX_TOKEN" \
  --data-urlencode "assignee=me" \
  --data-urlencode "due=week"
Yanıt200Başarılı
{
  "data": [
    {
      "id": "18962c5b-6ac7-4891-abce-179e8517f916",
      "number": 42,
      "title": "Kargo etiketlerini yazdır",
      "description": "Kasım kampanyası siparişlerinin etiketlerini yazdır ve paketlere yapıştır.",
      "status": "open",
      "stage": "doing",
      "priority": "high",
      "due_date": "2026-10-20",
      "due_time": "17:00",
      "start_date": "2026-10-16",
      "deadline": "2026-10-24",
      "estimate_minutes": 45,
      "recurrence": null,
      "is_overdue": false,
      "project": {
        "id": "38b4ef00-de3c-41ea-bfca-eb30a9b54d8a",
        "name": "Kasım kampanyası",
        "color": "#1F4FEB"
      },
      "section_id": "c42e1c20-99a3-40da-8817-0c38c4f506da",
      "parent_id": null,
      "assignees": [
        {
          "id": "9dbbdf02-54b2-4454-b632-f672236bc076",
          "name": "Ersin Kaya"
        }
      ],
      "labels": [
        {
          "id": "4126c9fb-f32e-44e7-948e-fbd68d51fa16",
          "name": "Acil",
          "color": "#E5484D"
        }
      ],
      "created_by": {
        "id": "dade1044-8acc-4384-9af3-404a04966916",
        "name": "Burak Beşli"
      },
      "assigned_by": {
        "id": "dade1044-8acc-4384-9af3-404a04966916",
        "name": "Burak Beşli"
      },
      "completed_at": null,
      "completed_by": null,
      "comment_count": 3,
      "attachment_count": 1,
      "checklist": {
        "total": 4,
        "done": 1
      },
      "created_at": "2026-10-15T09:12:44.512+03:00",
      "updated_at": "2026-10-15T09:12:44.512+03:00",
      "url": "https://todix.com.tr/springstore/g/42"
    }
  ],
  "next_cursor": "eyJiIjo0MX0"
}
/api/v1/tasks
İzin: tasks:writeIdempotency-KeyAynı isteği Idempotency-Key ile güvenle yeniden deneyebilirsin.

Sorumlu vermezsen görev sana atanır. Atama yetkilerin uygulamadakiyle aynıdır: uygulamada atayamadığın birine API de atayamaz.

İstek gövdesi

  • titlestringzorunlu

    Görevin başlığı.

    1–500 karakter

  • descriptionstring

    Açıklama (düz metin).

    En çok 20.000 karakter

  • assignee_idsuuid[]

    Sorumlular; ilk kişi ana sorumlu. Boşsa sen.

    En çok 20 öğe

  • priorityenum

    Öncelik: high yüksek, medium orta, low düşük.

    highmediumlow
  • due_datedate

    Hedef tarih (YYYY-AA-GG).

  • due_timestring

    Hedef saati (SS:DD), çalışma alanının saatine göre.

  • start_datedate

    Başlangıç tarihi.

  • deadlinedate

    Son tarih: hedefin kaçırılamayacak sınırı.

  • estimate_minutesinteger

    Süre tahmini, dakika.

    1–100.000 arası

  • project_iduuid

    Proje kimliği; null projeden çıkarır.

  • section_iduuid

    Proje içindeki bölüm.

  • label_idsuuid[]

    Etiket kimlikleri.

    En çok 30 öğe

Yanıtlar

  • 201

    Oluşturuldu

    Döner: Görev nesnesi

  • 4xx

    Başarısız isteklerde tek biçimli hata nesnesi döner. Hatalar

    400 · 401 · 403 · 404 · 429

POST/api/v1/tasks
curl -X POST https://todix.com.tr/api/v1/tasks \
  -H "Authorization: Bearer $TODIX_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 5f1c2a9e-7b3d-4e8f-a0c6-2d9b4e7f1a38" \
  -d '{
    "title": "Kargo etiketlerini yazdır",
    "priority": "high",
    "due_date": "2026-10-20",
    "assignee_ids": [
      "9dbbdf02-54b2-4454-b632-f672236bc076"
    ],
    "project_id": "38b4ef00-de3c-41ea-bfca-eb30a9b54d8a"
  }'
Yanıt201Oluşturuldu
{
  "data": {
    "id": "18962c5b-6ac7-4891-abce-179e8517f916",
    "number": 42,
    "title": "Kargo etiketlerini yazdır",
    "description": "Kasım kampanyası siparişlerinin etiketlerini yazdır ve paketlere yapıştır.",
    "status": "open",
    "stage": "doing",
    "priority": "high",
    "due_date": "2026-10-20",
    "due_time": "17:00",
    "start_date": "2026-10-16",
    "deadline": "2026-10-24",
    "estimate_minutes": 45,
    "recurrence": null,
    "is_overdue": false,
    "project": {
      "id": "38b4ef00-de3c-41ea-bfca-eb30a9b54d8a",
      "name": "Kasım kampanyası",
      "color": "#1F4FEB"
    },
    "section_id": "c42e1c20-99a3-40da-8817-0c38c4f506da",
    "parent_id": null,
    "assignees": [
      {
        "id": "9dbbdf02-54b2-4454-b632-f672236bc076",
        "name": "Ersin Kaya"
      }
    ],
    "labels": [
      {
        "id": "4126c9fb-f32e-44e7-948e-fbd68d51fa16",
        "name": "Acil",
        "color": "#E5484D"
      }
    ],
    "created_by": {
      "id": "dade1044-8acc-4384-9af3-404a04966916",
      "name": "Burak Beşli"
    },
    "assigned_by": {
      "id": "dade1044-8acc-4384-9af3-404a04966916",
      "name": "Burak Beşli"
    },
    "completed_at": null,
    "completed_by": null,
    "comment_count": 3,
    "attachment_count": 1,
    "checklist": {
      "total": 4,
      "done": 1
    },
    "created_at": "2026-10-15T09:12:44.512+03:00",
    "updated_at": "2026-10-15T09:12:44.512+03:00",
    "url": "https://todix.com.tr/springstore/g/42"
  }
}
/api/v1/tasks/{ref}
İzin: tasks:read

Görevi numarasıyla (42) ya da kimliğiyle getirir. Tam açıklama ve created_at yalnız burada gelir.

Yol parametreleri

  • refstringzorunlu

    Görev numarası (42) ya da görev kimliği (uuid).

Yanıtlar

  • 200

    Başarılı

    Döner: Görev nesnesi

  • 4xx

    Başarısız isteklerde tek biçimli hata nesnesi döner. Hatalar

    400 · 401 · 403 · 404 · 429

GET/api/v1/tasks/{ref}
curl https://todix.com.tr/api/v1/tasks/42 \
  -H "Authorization: Bearer $TODIX_TOKEN"
Yanıt200Başarılı
{
  "data": {
    "id": "18962c5b-6ac7-4891-abce-179e8517f916",
    "number": 42,
    "title": "Kargo etiketlerini yazdır",
    "description": "Kasım kampanyası siparişlerinin etiketlerini yazdır ve paketlere yapıştır.",
    "status": "open",
    "stage": "doing",
    "priority": "high",
    "due_date": "2026-10-20",
    "due_time": "17:00",
    "start_date": "2026-10-16",
    "deadline": "2026-10-24",
    "estimate_minutes": 45,
    "recurrence": null,
    "is_overdue": false,
    "project": {
      "id": "38b4ef00-de3c-41ea-bfca-eb30a9b54d8a",
      "name": "Kasım kampanyası",
      "color": "#1F4FEB"
    },
    "section_id": "c42e1c20-99a3-40da-8817-0c38c4f506da",
    "parent_id": null,
    "assignees": [
      {
        "id": "9dbbdf02-54b2-4454-b632-f672236bc076",
        "name": "Ersin Kaya"
      }
    ],
    "labels": [
      {
        "id": "4126c9fb-f32e-44e7-948e-fbd68d51fa16",
        "name": "Acil",
        "color": "#E5484D"
      }
    ],
    "created_by": {
      "id": "dade1044-8acc-4384-9af3-404a04966916",
      "name": "Burak Beşli"
    },
    "assigned_by": {
      "id": "dade1044-8acc-4384-9af3-404a04966916",
      "name": "Burak Beşli"
    },
    "completed_at": null,
    "completed_by": null,
    "comment_count": 3,
    "attachment_count": 1,
    "checklist": {
      "total": 4,
      "done": 1
    },
    "created_at": "2026-10-15T09:12:44.512+03:00",
    "updated_at": "2026-10-15T09:12:44.512+03:00",
    "url": "https://todix.com.tr/springstore/g/42"
  }
}
/api/v1/tasks/{ref}
İzin: tasks:write

Yalnız değiştirmek istediğin alanları gönder. Bir tarihi temizlemek için null gönder.

Yol parametreleri

  • refstringzorunlu

    Görev numarası (42) ya da görev kimliği (uuid).

İstek gövdesi

  • titlestring

    Görevin başlığı.

    1–500 karakter

  • descriptionstring

    Açıklama (düz metin).

    En çok 20.000 karakter

  • priorityenum

    Öncelik: high yüksek, medium orta, low düşük.

    highmediumlow
  • stageenum

    Aşama: todo yapılacak, doing yapılıyor, waiting beklemede.

    tododoingwaiting
  • due_datedatenull olabilir

    Hedef tarih (YYYY-AA-GG).

  • due_timestringnull olabilir

    Hedef saati (SS:DD), çalışma alanının saatine göre.

  • start_datedatenull olabilir

    Başlangıç tarihi.

  • deadlinedatenull olabilir

    Son tarih: hedefin kaçırılamayacak sınırı.

  • estimate_minutesintegernull olabilir

    Süre tahmini, dakika.

    1–100.000 arası

  • project_iduuidnull olabilir

    Proje kimliği; null projeden çıkarır.

  • section_iduuid

    Proje içindeki bölüm.

Yanıtlar

  • 200

    Başarılı

    Döner: Görev nesnesi

  • 4xx

    Başarısız isteklerde tek biçimli hata nesnesi döner. Hatalar

    400 · 401 · 403 · 404 · 429

PATCH/api/v1/tasks/{ref}
curl -X PATCH https://todix.com.tr/api/v1/tasks/42 \
  -H "Authorization: Bearer $TODIX_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "stage": "doing",
    "due_date": "2026-10-22"
  }'
Yanıt200Başarılı
{
  "data": {
    "id": "18962c5b-6ac7-4891-abce-179e8517f916",
    "number": 42,
    "title": "Kargo etiketlerini yazdır",
    "description": "Kasım kampanyası siparişlerinin etiketlerini yazdır ve paketlere yapıştır.",
    "status": "open",
    "stage": "doing",
    "priority": "high",
    "due_date": "2026-10-20",
    "due_time": "17:00",
    "start_date": "2026-10-16",
    "deadline": "2026-10-24",
    "estimate_minutes": 45,
    "recurrence": null,
    "is_overdue": false,
    "project": {
      "id": "38b4ef00-de3c-41ea-bfca-eb30a9b54d8a",
      "name": "Kasım kampanyası",
      "color": "#1F4FEB"
    },
    "section_id": "c42e1c20-99a3-40da-8817-0c38c4f506da",
    "parent_id": null,
    "assignees": [
      {
        "id": "9dbbdf02-54b2-4454-b632-f672236bc076",
        "name": "Ersin Kaya"
      }
    ],
    "labels": [
      {
        "id": "4126c9fb-f32e-44e7-948e-fbd68d51fa16",
        "name": "Acil",
        "color": "#E5484D"
      }
    ],
    "created_by": {
      "id": "dade1044-8acc-4384-9af3-404a04966916",
      "name": "Burak Beşli"
    },
    "assigned_by": {
      "id": "dade1044-8acc-4384-9af3-404a04966916",
      "name": "Burak Beşli"
    },
    "completed_at": null,
    "completed_by": null,
    "comment_count": 3,
    "attachment_count": 1,
    "checklist": {
      "total": 4,
      "done": 1
    },
    "created_at": "2026-10-15T09:12:44.512+03:00",
    "updated_at": "2026-10-15T09:12:44.512+03:00",
    "url": "https://todix.com.tr/springstore/g/42"
  }
}
/api/v1/tasks/{ref}
İzin: tasks:write

Görev çöp kutusuna taşınır; 30 gün içinde uygulamadan geri getirilebilir.

Yol parametreleri

  • refstringzorunlu

    Görev numarası (42) ya da görev kimliği (uuid).

Yanıtlar

  • 200

    Başarılı

    Yanıt gövdesi aşağıdaki örnekteki gibidir.

  • 4xx

    Başarısız isteklerde tek biçimli hata nesnesi döner. Hatalar

    400 · 401 · 403 · 404 · 429

DELETE/api/v1/tasks/{ref}
curl -X DELETE https://todix.com.tr/api/v1/tasks/42 \
  -H "Authorization: Bearer $TODIX_TOKEN"
Yanıt200Başarılı
{
  "data": {
    "id": "53002ed3-1aca-4f4d-8d7a-77c294cd2dbe",
    "number": 42
  }
}
/api/v1/tasks/{ref}/complete
İzin: tasks:writeIdempotency-KeyAynı isteği Idempotency-Key ile güvenle yeniden deneyebilirsin.

Görevi tamamlandı olarak işaretler; görevin kişilerine uygulamadaki gibi bildirim gider.

Yol parametreleri

  • refstringzorunlu

    Görev numarası (42) ya da görev kimliği (uuid).

Yanıtlar

  • 200

    Başarılı

    Döner: Görev nesnesi

  • 4xx

    Başarısız isteklerde tek biçimli hata nesnesi döner. Hatalar

    400 · 401 · 403 · 404 · 429

POST/api/v1/tasks/{ref}/complete
curl -X POST https://todix.com.tr/api/v1/tasks/42/complete \
  -H "Authorization: Bearer $TODIX_TOKEN" \
  -H "Idempotency-Key: 5f1c2a9e-7b3d-4e8f-a0c6-2d9b4e7f1a38"
Yanıt200Başarılı
{
  "data": {
    "id": "18962c5b-6ac7-4891-abce-179e8517f916",
    "number": 42,
    "title": "Kargo etiketlerini yazdır",
    "description": "Kasım kampanyası siparişlerinin etiketlerini yazdır ve paketlere yapıştır.",
    "status": "open",
    "stage": "doing",
    "priority": "high",
    "due_date": "2026-10-20",
    "due_time": "17:00",
    "start_date": "2026-10-16",
    "deadline": "2026-10-24",
    "estimate_minutes": 45,
    "recurrence": null,
    "is_overdue": false,
    "project": {
      "id": "38b4ef00-de3c-41ea-bfca-eb30a9b54d8a",
      "name": "Kasım kampanyası",
      "color": "#1F4FEB"
    },
    "section_id": "c42e1c20-99a3-40da-8817-0c38c4f506da",
    "parent_id": null,
    "assignees": [
      {
        "id": "9dbbdf02-54b2-4454-b632-f672236bc076",
        "name": "Ersin Kaya"
      }
    ],
    "labels": [
      {
        "id": "4126c9fb-f32e-44e7-948e-fbd68d51fa16",
        "name": "Acil",
        "color": "#E5484D"
      }
    ],
    "created_by": {
      "id": "dade1044-8acc-4384-9af3-404a04966916",
      "name": "Burak Beşli"
    },
    "assigned_by": {
      "id": "dade1044-8acc-4384-9af3-404a04966916",
      "name": "Burak Beşli"
    },
    "completed_at": null,
    "completed_by": null,
    "comment_count": 3,
    "attachment_count": 1,
    "checklist": {
      "total": 4,
      "done": 1
    },
    "created_at": "2026-10-15T09:12:44.512+03:00",
    "updated_at": "2026-10-15T09:12:44.512+03:00",
    "url": "https://todix.com.tr/springstore/g/42"
  }
}
/api/v1/tasks/{ref}/reopen
İzin: tasks:writeIdempotency-KeyAynı isteği Idempotency-Key ile güvenle yeniden deneyebilirsin.

Tamamlanmış bir görevi yeniden açar.

Yol parametreleri

  • refstringzorunlu

    Görev numarası (42) ya da görev kimliği (uuid).

Yanıtlar

  • 200

    Başarılı

    Döner: Görev nesnesi

  • 4xx

    Başarısız isteklerde tek biçimli hata nesnesi döner. Hatalar

    400 · 401 · 403 · 404 · 429

POST/api/v1/tasks/{ref}/reopen
curl -X POST https://todix.com.tr/api/v1/tasks/42/reopen \
  -H "Authorization: Bearer $TODIX_TOKEN" \
  -H "Idempotency-Key: 5f1c2a9e-7b3d-4e8f-a0c6-2d9b4e7f1a38"
Yanıt200Başarılı
{
  "data": {
    "id": "18962c5b-6ac7-4891-abce-179e8517f916",
    "number": 42,
    "title": "Kargo etiketlerini yazdır",
    "description": "Kasım kampanyası siparişlerinin etiketlerini yazdır ve paketlere yapıştır.",
    "status": "open",
    "stage": "doing",
    "priority": "high",
    "due_date": "2026-10-20",
    "due_time": "17:00",
    "start_date": "2026-10-16",
    "deadline": "2026-10-24",
    "estimate_minutes": 45,
    "recurrence": null,
    "is_overdue": false,
    "project": {
      "id": "38b4ef00-de3c-41ea-bfca-eb30a9b54d8a",
      "name": "Kasım kampanyası",
      "color": "#1F4FEB"
    },
    "section_id": "c42e1c20-99a3-40da-8817-0c38c4f506da",
    "parent_id": null,
    "assignees": [
      {
        "id": "9dbbdf02-54b2-4454-b632-f672236bc076",
        "name": "Ersin Kaya"
      }
    ],
    "labels": [
      {
        "id": "4126c9fb-f32e-44e7-948e-fbd68d51fa16",
        "name": "Acil",
        "color": "#E5484D"
      }
    ],
    "created_by": {
      "id": "dade1044-8acc-4384-9af3-404a04966916",
      "name": "Burak Beşli"
    },
    "assigned_by": {
      "id": "dade1044-8acc-4384-9af3-404a04966916",
      "name": "Burak Beşli"
    },
    "completed_at": null,
    "completed_by": null,
    "comment_count": 3,
    "attachment_count": 1,
    "checklist": {
      "total": 4,
      "done": 1
    },
    "created_at": "2026-10-15T09:12:44.512+03:00",
    "updated_at": "2026-10-15T09:12:44.512+03:00",
    "url": "https://todix.com.tr/springstore/g/42"
  }
}
/api/v1/tasks/{ref}/assignees
İzin: tasks:write

Sorumlu listesinin tamamını değiştirir; ilk kişi ana sorumludur.

Yol parametreleri

  • refstringzorunlu

    Görev numarası (42) ya da görev kimliği (uuid).

İstek gövdesi

  • user_idsuuid[]zorunlu

    Yeni sorumlular; ilk kişi ana sorumlu.

    1–20 öğe

Yanıtlar

  • 200

    Başarılı

    Döner: Görev nesnesi

  • 4xx

    Başarısız isteklerde tek biçimli hata nesnesi döner. Hatalar

    400 · 401 · 403 · 404 · 429

PUT/api/v1/tasks/{ref}/assignees
curl -X PUT https://todix.com.tr/api/v1/tasks/42/assignees \
  -H "Authorization: Bearer $TODIX_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "user_ids": [
      "9dbbdf02-54b2-4454-b632-f672236bc076",
      "dade1044-8acc-4384-9af3-404a04966916"
    ]
  }'
Yanıt200Başarılı
{
  "data": {
    "id": "18962c5b-6ac7-4891-abce-179e8517f916",
    "number": 42,
    "title": "Kargo etiketlerini yazdır",
    "description": "Kasım kampanyası siparişlerinin etiketlerini yazdır ve paketlere yapıştır.",
    "status": "open",
    "stage": "doing",
    "priority": "high",
    "due_date": "2026-10-20",
    "due_time": "17:00",
    "start_date": "2026-10-16",
    "deadline": "2026-10-24",
    "estimate_minutes": 45,
    "recurrence": null,
    "is_overdue": false,
    "project": {
      "id": "38b4ef00-de3c-41ea-bfca-eb30a9b54d8a",
      "name": "Kasım kampanyası",
      "color": "#1F4FEB"
    },
    "section_id": "c42e1c20-99a3-40da-8817-0c38c4f506da",
    "parent_id": null,
    "assignees": [
      {
        "id": "9dbbdf02-54b2-4454-b632-f672236bc076",
        "name": "Ersin Kaya"
      }
    ],
    "labels": [
      {
        "id": "4126c9fb-f32e-44e7-948e-fbd68d51fa16",
        "name": "Acil",
        "color": "#E5484D"
      }
    ],
    "created_by": {
      "id": "dade1044-8acc-4384-9af3-404a04966916",
      "name": "Burak Beşli"
    },
    "assigned_by": {
      "id": "dade1044-8acc-4384-9af3-404a04966916",
      "name": "Burak Beşli"
    },
    "completed_at": null,
    "completed_by": null,
    "comment_count": 3,
    "attachment_count": 1,
    "checklist": {
      "total": 4,
      "done": 1
    },
    "created_at": "2026-10-15T09:12:44.512+03:00",
    "updated_at": "2026-10-15T09:12:44.512+03:00",
    "url": "https://todix.com.tr/springstore/g/42"
  }
}
/api/v1/tasks/{ref}/labels
İzin: tasks:write

Görevin etiketlerini gönderdiğin listeyle değiştirir. Boş liste tüm etiketleri kaldırır.

Yol parametreleri

  • refstringzorunlu

    Görev numarası (42) ya da görev kimliği (uuid).

İstek gövdesi

  • label_idsuuid[]zorunlu

    Etiket kimlikleri.

    En çok 30 öğe

Yanıtlar

  • 200

    Başarılı

    Döner: Görev nesnesi

  • 4xx

    Başarısız isteklerde tek biçimli hata nesnesi döner. Hatalar

    400 · 401 · 403 · 404 · 429

PUT/api/v1/tasks/{ref}/labels
curl -X PUT https://todix.com.tr/api/v1/tasks/42/labels \
  -H "Authorization: Bearer $TODIX_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "label_ids": [
      "4126c9fb-f32e-44e7-948e-fbd68d51fa16"
    ]
  }'
Yanıt200Başarılı
{
  "data": {
    "id": "18962c5b-6ac7-4891-abce-179e8517f916",
    "number": 42,
    "title": "Kargo etiketlerini yazdır",
    "description": "Kasım kampanyası siparişlerinin etiketlerini yazdır ve paketlere yapıştır.",
    "status": "open",
    "stage": "doing",
    "priority": "high",
    "due_date": "2026-10-20",
    "due_time": "17:00",
    "start_date": "2026-10-16",
    "deadline": "2026-10-24",
    "estimate_minutes": 45,
    "recurrence": null,
    "is_overdue": false,
    "project": {
      "id": "38b4ef00-de3c-41ea-bfca-eb30a9b54d8a",
      "name": "Kasım kampanyası",
      "color": "#1F4FEB"
    },
    "section_id": "c42e1c20-99a3-40da-8817-0c38c4f506da",
    "parent_id": null,
    "assignees": [
      {
        "id": "9dbbdf02-54b2-4454-b632-f672236bc076",
        "name": "Ersin Kaya"
      }
    ],
    "labels": [
      {
        "id": "4126c9fb-f32e-44e7-948e-fbd68d51fa16",
        "name": "Acil",
        "color": "#E5484D"
      }
    ],
    "created_by": {
      "id": "dade1044-8acc-4384-9af3-404a04966916",
      "name": "Burak Beşli"
    },
    "assigned_by": {
      "id": "dade1044-8acc-4384-9af3-404a04966916",
      "name": "Burak Beşli"
    },
    "completed_at": null,
    "completed_by": null,
    "comment_count": 3,
    "attachment_count": 1,
    "checklist": {
      "total": 4,
      "done": 1
    },
    "created_at": "2026-10-15T09:12:44.512+03:00",
    "updated_at": "2026-10-15T09:12:44.512+03:00",
    "url": "https://todix.com.tr/springstore/g/42"
  }
}

3 uç nokta

Görevin sohbeti: yorumlar uygulamadaki sohbet mesajlarıdır, bildirimleri de aynıdır.

Görevin sohbetindeki bir mesaj.

Alanlar

  • iduuid

    Kimlik (uuid).

  • task_iduuid

    Yorumun görevi.

  • bodystring

    Mesajın metni.

  • authorobject

    Yazan kişi.

    2 alt alanı göster
    • iduuid

      Kimlik (uuid).

    • namestringnull olabilir

      Ad.

  • reply_touuidnull olabilir

    Yanıtlanan yorum.

  • internalboolean

    true: iç not — misafirler görmez.

  • created_atdate-time

    Oluşturulma zamanı (ISO 8601).

  • edited_atdate-timenull olabilir

    Son düzenleme zamanı.

Yorum nesnesi
{
  "id": "3bbcb474-f78e-4e64-b254-e1480063261a",
  "task_id": "18962c5b-6ac7-4891-abce-179e8517f916",
  "body": "Etiketler hazır, yarın sabah kargoya veriyoruz.",
  "author": {
    "id": "9dbbdf02-54b2-4454-b632-f672236bc076",
    "name": "Ersin Kaya"
  },
  "reply_to": null,
  "internal": false,
  "created_at": "2026-10-15T09:12:44.512+03:00",
  "edited_at": null
}

Yorum ve yazıldığı görevin numarası, başlığı ve adresi.

Alanlar

  • iduuid

    Kimlik (uuid).

  • task_iduuid

    Yorumun görevi.

  • bodystring

    Mesajın metni.

  • authorobject

    Yazan kişi.

    2 alt alanı göster
    • iduuid

      Kimlik (uuid).

    • namestringnull olabilir

      Ad.

  • reply_touuidnull olabilir

    Yanıtlanan yorum.

  • internalboolean

    true: iç not — misafirler görmez.

  • created_atdate-time

    Oluşturulma zamanı (ISO 8601).

  • edited_atdate-timenull olabilir

    Son düzenleme zamanı.

  • taskobject

    Yorumun yazıldığı görev.

    4 alt alanı göster
    • iduuid

      Kimlik (uuid).

    • numberinteger

      Çalışma alanındaki görev numarası (#42).

    • titlestring

      Görevin başlığı.

    • urluri

      Adres.

Göreviyle yorum
{
  "id": "0115c0ed-f217-4e6f-af55-00f21ab6c03e",
  "task_id": "18962c5b-6ac7-4891-abce-179e8517f916",
  "body": "Etiketler hazır, yarın sabah kargoya veriyoruz.",
  "author": {
    "id": "9dbbdf02-54b2-4454-b632-f672236bc076",
    "name": "Ersin Kaya"
  },
  "reply_to": null,
  "internal": false,
  "created_at": "2026-10-15T09:12:44.512+03:00",
  "edited_at": null,
  "task": {
    "id": "4ae07943-b178-400b-a273-8176ef42815e",
    "number": 42,
    "title": "Kargo etiketlerini yazdır",
    "url": "https://hooks.springstore.com.tr/todix"
  }
}
/api/v1/tasks/{ref}/comments
İzin: tasks:read

Görevin sohbetindeki yorumlar, yeniden eskiye.

Yol parametreleri

  • refstringzorunlu

    Görev numarası (42) ya da görev kimliği (uuid).

Sorgu parametreleri

  • limitinteger

    Sayfadaki en çok kayıt.

    Varsayılan: 50 · 1–200 arası

  • cursorstring

    Önceki yanıttaki next_cursor.

    En çok 200 karakter

Yanıtlar

  • 200

    Başarılı

    Sayfalı liste döner: Yorum nesnesi

  • 4xx

    Başarısız isteklerde tek biçimli hata nesnesi döner. Hatalar

    400 · 401 · 403 · 404 · 429

GET/api/v1/tasks/{ref}/comments
curl -G https://todix.com.tr/api/v1/tasks/42/comments \
  -H "Authorization: Bearer $TODIX_TOKEN" \
  --data-urlencode "limit=20"
Yanıt200Başarılı
{
  "data": [
    {
      "id": "3bbcb474-f78e-4e64-b254-e1480063261a",
      "task_id": "18962c5b-6ac7-4891-abce-179e8517f916",
      "body": "Etiketler hazır, yarın sabah kargoya veriyoruz.",
      "author": {
        "id": "9dbbdf02-54b2-4454-b632-f672236bc076",
        "name": "Ersin Kaya"
      },
      "reply_to": null,
      "internal": false,
      "created_at": "2026-10-15T09:12:44.512+03:00",
      "edited_at": null
    }
  ],
  "next_cursor": "eyJiIjo0MX0"
}
/api/v1/tasks/{ref}/comments
İzin: comments:writeIdempotency-KeyAynı isteği Idempotency-Key ile güvenle yeniden deneyebilirsin.

Görevin sohbetine mesaj gönderir; görevin kişilerine sohbet mesajındaki gibi bildirim gider.

Yol parametreleri

  • refstringzorunlu

    Görev numarası (42) ya da görev kimliği (uuid).

İstek gövdesi

  • bodystringzorunlu

    Mesajın metni.

    1–10.000 karakter

  • reply_touuid

    Yanıtlanan yorum.

  • internalboolean

    true: iç not — misafirler görmez.

Yanıtlar

  • 201

    Oluşturuldu

    Döner: Yorum nesnesi

  • 4xx

    Başarısız isteklerde tek biçimli hata nesnesi döner. Hatalar

    400 · 401 · 403 · 404 · 429

POST/api/v1/tasks/{ref}/comments
curl -X POST https://todix.com.tr/api/v1/tasks/42/comments \
  -H "Authorization: Bearer $TODIX_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 5f1c2a9e-7b3d-4e8f-a0c6-2d9b4e7f1a38" \
  -d '{
    "body": "Etiketler hazır, yarın sabah kargoya veriyoruz."
  }'
Yanıt201Oluşturuldu
{
  "data": {
    "id": "3bbcb474-f78e-4e64-b254-e1480063261a",
    "task_id": "18962c5b-6ac7-4891-abce-179e8517f916",
    "body": "Etiketler hazır, yarın sabah kargoya veriyoruz.",
    "author": {
      "id": "9dbbdf02-54b2-4454-b632-f672236bc076",
      "name": "Ersin Kaya"
    },
    "reply_to": null,
    "internal": false,
    "created_at": "2026-10-15T09:12:44.512+03:00",
    "edited_at": null
  }
}
/api/v1/comments
İzin: tasks:read

Çalışma alanında görebildiğin son yorumlar, en yenisi önce; her biri göreviyle. "Yeni yorum" tetikleyicileri için: since yalnız daha yenilerini getirir, project ve task listeyi daraltır.

Sorgu parametreleri

  • projectuuid

    Proje kimliği; projesiz görevler için none.

  • taskstring

    Görev numarası (42) ya da görev kimliği.

    En çok 64 karakter

  • sincedate-time

    Yalnız bu zamandan sonra yazılan yorumlar (ISO 8601).

  • limitinteger

    Sayfadaki en çok kayıt.

    Varsayılan: 50 · 1–200 arası

  • cursorstring

    Önceki yanıttaki next_cursor.

    En çok 200 karakter

Yanıtlar

  • 200

    Başarılı

    Sayfalı liste döner: Göreviyle yorum

  • 4xx

    Başarısız isteklerde tek biçimli hata nesnesi döner. Hatalar

    400 · 401 · 403 · 404 · 429

GET/api/v1/comments
curl https://todix.com.tr/api/v1/comments \
  -H "Authorization: Bearer $TODIX_TOKEN"
Yanıt200Başarılı
{
  "data": [
    {
      "id": "0115c0ed-f217-4e6f-af55-00f21ab6c03e",
      "task_id": "18962c5b-6ac7-4891-abce-179e8517f916",
      "body": "Etiketler hazır, yarın sabah kargoya veriyoruz.",
      "author": {
        "id": "9dbbdf02-54b2-4454-b632-f672236bc076",
        "name": "Ersin Kaya"
      },
      "reply_to": null,
      "internal": false,
      "created_at": "2026-10-15T09:12:44.512+03:00",
      "edited_at": null,
      "task": {
        "id": "4ae07943-b178-400b-a273-8176ef42815e",
        "number": 42,
        "title": "Kargo etiketlerini yazdır",
        "url": "https://hooks.springstore.com.tr/todix"
      }
    }
  ],
  "next_cursor": "eyJiIjo0MX0"
}

6 uç nokta

Projeler ve bölümleri.

Sayaçları ve ilerlemesiyle bir proje.

Alanlar

  • iduuid

    Kimlik (uuid).

  • namestring

    Ad.

  • descriptionstringnull olabilir

    Açıklama (düz metin).

  • colorstringnull olabilir

    Renk, #RRGGBB.

  • iconstringnull olabilir

    Simge adı (küçük harf, rakam, tire).

  • statusstring

    Projenin durumu.

  • ownerobjectnull olabilir

    Proje sahibi.

    2 alt alanı göster
    • iduuid

      Kimlik (uuid).

    • namestringnull olabilir

      Ad.

  • parent_iduuidnull olabilir

    Üst proje.

  • folder_iduuidnull olabilir

    Projenin klasörü.

  • start_datedatenull olabilir

    Başlangıç tarihi.

  • end_datedatenull olabilir

    Bitiş tarihi.

  • archived_atdate-timenull olabilir

    Arşivlenme zamanı (arşivde değilse null).

  • countsobject

    Görev sayıları.

    4 alt alanı göster
    • openinteger

      Açık görevler.

    • doneinteger

      Tamamlanan görevler.

    • overdueinteger

      Geciken görevler.

    • totalinteger

      Tüm görevler.

  • progressinteger

    İlerleme yüzdesi (0–100).

  • created_atdate-time

    Oluşturulma zamanı (ISO 8601).

  • updated_atdate-time

    Son değişiklik zamanı (ISO 8601).

Proje nesnesi
{
  "id": "38b4ef00-de3c-41ea-bfca-eb30a9b54d8a",
  "name": "Kasım kampanyası",
  "description": "Kasım indirim haftasının hazırlıkları.",
  "color": "#1F4FEB",
  "icon": "rocket",
  "status": "active",
  "owner": {
    "id": "dade1044-8acc-4384-9af3-404a04966916",
    "name": "Burak Beşli"
  },
  "parent_id": null,
  "folder_id": null,
  "start_date": "2026-10-16",
  "end_date": "2026-11-30",
  "archived_at": null,
  "counts": {
    "open": 12,
    "done": 30,
    "overdue": 2,
    "total": 42
  },
  "progress": 71,
  "created_at": "2026-10-15T09:12:44.512+03:00",
  "updated_at": "2026-10-15T09:12:44.512+03:00"
}

Projenin içindeki bir bölüm.

Alanlar

  • iduuid

    Kimlik (uuid).

  • namestring

    Ad.

  • positioninteger

    Projedeki sırası.

Bölüm nesnesi
{
  "id": "c42e1c20-99a3-40da-8817-0c38c4f506da",
  "name": "Paketleme",
  "position": 2
}
/api/v1/projects
İzin: projects:read

Arşivlenmiş projeler yalnız archived=true ile gelir.

Sorgu parametreleri

  • archivedenum

    true: arşivlenmiş projeler de gelir.

    01truefalse
  • qstring

    Başlıkta ya da açıklamada geçen metin.

    1–120 karakter

Yanıtlar

  • 200

    Başarılı

    Sayfalı liste döner: Proje nesnesi

  • 4xx

    Başarısız isteklerde tek biçimli hata nesnesi döner. Hatalar

    400 · 401 · 403 · 404 · 429

GET/api/v1/projects
curl https://todix.com.tr/api/v1/projects \
  -H "Authorization: Bearer $TODIX_TOKEN"
Yanıt200Başarılı
{
  "data": [
    {
      "id": "38b4ef00-de3c-41ea-bfca-eb30a9b54d8a",
      "name": "Kasım kampanyası",
      "description": "Kasım indirim haftasının hazırlıkları.",
      "color": "#1F4FEB",
      "icon": "rocket",
      "status": "active",
      "owner": {
        "id": "dade1044-8acc-4384-9af3-404a04966916",
        "name": "Burak Beşli"
      },
      "parent_id": null,
      "folder_id": null,
      "start_date": "2026-10-16",
      "end_date": "2026-11-30",
      "archived_at": null,
      "counts": {
        "open": 12,
        "done": 30,
        "overdue": 2,
        "total": 42
      },
      "progress": 71,
      "created_at": "2026-10-15T09:12:44.512+03:00",
      "updated_at": "2026-10-15T09:12:44.512+03:00"
    }
  ],
  "next_cursor": "eyJiIjo0MX0"
}
/api/v1/projects
İzin: projects:writeIdempotency-KeyAynı isteği Idempotency-Key ile güvenle yeniden deneyebilirsin.

Yeni bir proje açar. Proje açma yetkin uygulamadakiyle aynıdır.

İstek gövdesi

  • namestringzorunlu

    Ad.

    1–120 karakter

  • descriptionstring

    Açıklama (düz metin).

    En çok 5.000 karakter

  • colorstring

    Renk, #RRGGBB.

  • iconstring

    Simge adı (küçük harf, rakam, tire).

  • owner_iduuid

    Proje sahibinin kimliği.

  • start_datedate

    Başlangıç tarihi.

  • end_datedate

    Bitiş tarihi.

Yanıtlar

  • 201

    Oluşturuldu

    Döner: Proje nesnesi

  • 4xx

    Başarısız isteklerde tek biçimli hata nesnesi döner. Hatalar

    400 · 401 · 403 · 404 · 429

POST/api/v1/projects
curl -X POST https://todix.com.tr/api/v1/projects \
  -H "Authorization: Bearer $TODIX_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 5f1c2a9e-7b3d-4e8f-a0c6-2d9b4e7f1a38" \
  -d '{
    "name": "Kasım kampanyası",
    "color": "#1F4FEB",
    "start_date": "2026-11-01",
    "end_date": "2026-11-30"
  }'
Yanıt201Oluşturuldu
{
  "data": {
    "id": "38b4ef00-de3c-41ea-bfca-eb30a9b54d8a",
    "name": "Kasım kampanyası",
    "description": "Kasım indirim haftasının hazırlıkları.",
    "color": "#1F4FEB",
    "icon": "rocket",
    "status": "active",
    "owner": {
      "id": "dade1044-8acc-4384-9af3-404a04966916",
      "name": "Burak Beşli"
    },
    "parent_id": null,
    "folder_id": null,
    "start_date": "2026-10-16",
    "end_date": "2026-11-30",
    "archived_at": null,
    "counts": {
      "open": 12,
      "done": 30,
      "overdue": 2,
      "total": 42
    },
    "progress": 71,
    "created_at": "2026-10-15T09:12:44.512+03:00",
    "updated_at": "2026-10-15T09:12:44.512+03:00"
  }
}
/api/v1/projects/{id}
İzin: projects:read

Projeyi sayaçları ve ilerlemesiyle getirir.

Yol parametreleri

  • iduuidzorunlu

    Kaydın kimliği (uuid).

Yanıtlar

  • 200

    Başarılı

    Döner: Proje nesnesi

  • 4xx

    Başarısız isteklerde tek biçimli hata nesnesi döner. Hatalar

    400 · 401 · 403 · 404 · 429

GET/api/v1/projects/{id}
curl https://todix.com.tr/api/v1/projects/38b4ef00-de3c-41ea-bfca-eb30a9b54d8a \
  -H "Authorization: Bearer $TODIX_TOKEN"
Yanıt200Başarılı
{
  "data": {
    "id": "38b4ef00-de3c-41ea-bfca-eb30a9b54d8a",
    "name": "Kasım kampanyası",
    "description": "Kasım indirim haftasının hazırlıkları.",
    "color": "#1F4FEB",
    "icon": "rocket",
    "status": "active",
    "owner": {
      "id": "dade1044-8acc-4384-9af3-404a04966916",
      "name": "Burak Beşli"
    },
    "parent_id": null,
    "folder_id": null,
    "start_date": "2026-10-16",
    "end_date": "2026-11-30",
    "archived_at": null,
    "counts": {
      "open": 12,
      "done": 30,
      "overdue": 2,
      "total": 42
    },
    "progress": 71,
    "created_at": "2026-10-15T09:12:44.512+03:00",
    "updated_at": "2026-10-15T09:12:44.512+03:00"
  }
}
/api/v1/projects/{id}
İzin: projects:write

Yalnız değiştirmek istediğin alanları gönder; null açıklamayı, sahibi ya da bir tarihi temizler.

Yol parametreleri

  • iduuidzorunlu

    Kaydın kimliği (uuid).

İstek gövdesi

  • namestring

    Ad.

    1–120 karakter

  • descriptionstringnull olabilir

    Açıklama (düz metin).

    En çok 5.000 karakter

  • colorstring

    Renk, #RRGGBB.

  • iconstring

    Simge adı (küçük harf, rakam, tire).

  • owner_iduuidnull olabilir

    Proje sahibinin kimliği.

  • start_datedatenull olabilir

    Başlangıç tarihi.

  • end_datedatenull olabilir

    Bitiş tarihi.

Yanıtlar

  • 200

    Başarılı

    Döner: Proje nesnesi

  • 4xx

    Başarısız isteklerde tek biçimli hata nesnesi döner. Hatalar

    400 · 401 · 403 · 404 · 429

PATCH/api/v1/projects/{id}
curl -X PATCH https://todix.com.tr/api/v1/projects/38b4ef00-de3c-41ea-bfca-eb30a9b54d8a \
  -H "Authorization: Bearer $TODIX_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "end_date": "2026-12-05"
  }'
Yanıt200Başarılı
{
  "data": {
    "id": "38b4ef00-de3c-41ea-bfca-eb30a9b54d8a",
    "name": "Kasım kampanyası",
    "description": "Kasım indirim haftasının hazırlıkları.",
    "color": "#1F4FEB",
    "icon": "rocket",
    "status": "active",
    "owner": {
      "id": "dade1044-8acc-4384-9af3-404a04966916",
      "name": "Burak Beşli"
    },
    "parent_id": null,
    "folder_id": null,
    "start_date": "2026-10-16",
    "end_date": "2026-11-30",
    "archived_at": null,
    "counts": {
      "open": 12,
      "done": 30,
      "overdue": 2,
      "total": 42
    },
    "progress": 71,
    "created_at": "2026-10-15T09:12:44.512+03:00",
    "updated_at": "2026-10-15T09:12:44.512+03:00"
  }
}
/api/v1/projects/{id}/sections
İzin: projects:read

Projenin bölümleri, sıralarıyla.

Yol parametreleri

  • iduuidzorunlu

    Kaydın kimliği (uuid).

Yanıtlar

  • 200

    Başarılı

    Sayfalı liste döner: Bölüm nesnesi

  • 4xx

    Başarısız isteklerde tek biçimli hata nesnesi döner. Hatalar

    400 · 401 · 403 · 404 · 429

GET/api/v1/projects/{id}/sections
curl https://todix.com.tr/api/v1/projects/38b4ef00-de3c-41ea-bfca-eb30a9b54d8a/sections \
  -H "Authorization: Bearer $TODIX_TOKEN"
Yanıt200Başarılı
{
  "data": [
    {
      "id": "c42e1c20-99a3-40da-8817-0c38c4f506da",
      "name": "Paketleme",
      "position": 2
    }
  ],
  "next_cursor": "eyJiIjo0MX0"
}
/api/v1/projects/{id}/sections
İzin: projects:writeIdempotency-KeyAynı isteği Idempotency-Key ile güvenle yeniden deneyebilirsin.

Projenin sonuna yeni bir bölüm ekler.

Yol parametreleri

  • iduuidzorunlu

    Kaydın kimliği (uuid).

İstek gövdesi

  • namestringzorunlu

    Ad.

    1–80 karakter

Yanıtlar

  • 201

    Oluşturuldu

    Döner: Bölüm nesnesi

  • 4xx

    Başarısız isteklerde tek biçimli hata nesnesi döner. Hatalar

    400 · 401 · 403 · 404 · 429

POST/api/v1/projects/{id}/sections
curl -X POST https://todix.com.tr/api/v1/projects/38b4ef00-de3c-41ea-bfca-eb30a9b54d8a/sections \
  -H "Authorization: Bearer $TODIX_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 5f1c2a9e-7b3d-4e8f-a0c6-2d9b4e7f1a38" \
  -d '{
    "name": "Paketleme"
  }'
Yanıt201Oluşturuldu
{
  "data": {
    "id": "c42e1c20-99a3-40da-8817-0c38c4f506da",
    "name": "Paketleme",
    "position": 2
  }
}

2 uç nokta

Çalışma alanının etiketleri.

Adı ve rengiyle bir etiket.

Alanlar

  • iduuid

    Kimlik (uuid).

  • namestring

    Ad.

  • colorstringnull olabilir

    Renk, #RRGGBB.

Etiket nesnesi
{
  "id": "4126c9fb-f32e-44e7-948e-fbd68d51fa16",
  "name": "Acil",
  "color": "#E5484D"
}
/api/v1/labels
İzin: tasks:read

Çalışma alanının etiketleri.

Yanıtlar

  • 200

    Başarılı

    Sayfalı liste döner: Etiket nesnesi

  • 4xx

    Başarısız isteklerde tek biçimli hata nesnesi döner. Hatalar

    400 · 401 · 403 · 404 · 429

GET/api/v1/labels
curl https://todix.com.tr/api/v1/labels \
  -H "Authorization: Bearer $TODIX_TOKEN"
Yanıt200Başarılı
{
  "data": [
    {
      "id": "4126c9fb-f32e-44e7-948e-fbd68d51fa16",
      "name": "Acil",
      "color": "#E5484D"
    }
  ],
  "next_cursor": "eyJiIjo0MX0"
}
/api/v1/labels
İzin: tasks:writeIdempotency-KeyAynı isteği Idempotency-Key ile güvenle yeniden deneyebilirsin.

Çalışma alanına yeni bir etiket ekler.

İstek gövdesi

  • namestringzorunlu

    Ad.

    1–40 karakter

  • colorstring

    Renk, #RRGGBB.

Yanıtlar

  • 201

    Oluşturuldu

    Döner: Etiket nesnesi

  • 4xx

    Başarısız isteklerde tek biçimli hata nesnesi döner. Hatalar

    400 · 401 · 403 · 404 · 429

POST/api/v1/labels
curl -X POST https://todix.com.tr/api/v1/labels \
  -H "Authorization: Bearer $TODIX_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 5f1c2a9e-7b3d-4e8f-a0c6-2d9b4e7f1a38" \
  -d '{
    "name": "Acil",
    "color": "#E5484D"
  }'
Yanıt201Oluşturuldu
{
  "data": {
    "id": "4126c9fb-f32e-44e7-948e-fbd68d51fa16",
    "name": "Acil",
    "color": "#E5484D"
  }
}

1 uç nokta

Çalışma alanındaki kişiler ve onlara görev atayıp atayamayacağın.

Çalışma alanındaki bir kişi.

Alanlar

  • user_iduuid

    Kişinin kimliği.

  • namestring

    Ad.

  • emailemail

    E-posta adresi.

  • titlestringnull olabilir

    Kişinin unvanı.

  • roleenum

    Rol: admin yönetici, member üye.

    adminmember
  • statusenum

    active etkin, disabled devre dışı.

    activedisabled
  • can_assignboolean

    Bu kişiye görev atayabilir misin.

Üye nesnesi
{
  "user_id": "9dbbdf02-54b2-4454-b632-f672236bc076",
  "name": "Ersin Kaya",
  "email": "ersin@springstore.com.tr",
  "title": "Operasyon sorumlusu",
  "role": "member",
  "status": "active",
  "can_assign": true
}
/api/v1/members
İzin: tasks:read

Çalışma alanının üyeleri. can_assign bu kişiye görev atayıp atayamayacağını söyler.

Sorgu parametreleri

  • emailemail

    E-posta adresi.

    En çok 200 karakter

  • qstring

    Başlıkta ya da açıklamada geçen metin.

    1–120 karakter

Yanıtlar

  • 200

    Başarılı

    Sayfalı liste döner: Üye nesnesi

  • 4xx

    Başarısız isteklerde tek biçimli hata nesnesi döner. Hatalar

    400 · 401 · 403 · 404 · 429

GET/api/v1/members
curl https://todix.com.tr/api/v1/members \
  -H "Authorization: Bearer $TODIX_TOKEN"
Yanıt200Başarılı
{
  "data": [
    {
      "user_id": "9dbbdf02-54b2-4454-b632-f672236bc076",
      "name": "Ersin Kaya",
      "email": "ersin@springstore.com.tr",
      "title": "Operasyon sorumlusu",
      "role": "member",
      "status": "active",
      "can_assign": true
    }
  ],
  "next_cursor": "eyJiIjo0MX0"
}

8 uç nokta

Çalışma alanında bir şey olunca seçtiğin adrese imzalı istek. Yalnız yöneticiler yönetir; anahtarın webhooks:manage izni olmalı.

Adresi, olayları ve son teslim durumuyla.

Alanlar

  • iduuid

    Kimlik (uuid).

  • urluri

    İsteklerin gönderildiği HTTPS adresi.

  • descriptionstringnull olabilir

    Açıklama (düz metin).

  • eventsenum[]

    Dinlenen olaylar.

    task.createdtask.updatedtask.completedtask.deletedcomment.createdproject.created
  • enabledboolean

    Açık mı; true art arda hata sayacını sıfırlar.

  • failure_countinteger

    Art arda başarısız teslim sayısı.

  • disabled_reason"failing"null olabilir

    failing: art arda hatalar yüzünden kapandı.

  • last_delivery_atdate-timenull olabilir

    Son teslim denemesi.

  • last_success_atdate-timenull olabilir

    Son başarılı teslim.

  • secret_hintstring

    İmza anahtarının son 4 karakteri.

  • created_atdate-time

    Oluşturulma zamanı (ISO 8601).

Webhook nesnesi
{
  "id": "d164961a-2c53-4224-9866-5df6c010f6fe",
  "url": "https://hooks.springstore.com.tr/todix",
  "description": "Zapier – yeni görevler",
  "events": [
    "task.created",
    "task.completed"
  ],
  "enabled": true,
  "failure_count": 0,
  "disabled_reason": null,
  "last_delivery_at": "2026-10-15T09:12:44.512+03:00",
  "last_success_at": "2026-10-15T09:12:44.512+03:00",
  "secret_hint": "9f2c",
  "created_at": "2026-10-15T09:12:44.512+03:00"
}

Oluştururken ve anahtarı yenilerken dönen webhook: secret yalnız bu yanıtlarda gelir.

Alanlar

  • iduuid

    Kimlik (uuid).

  • urluri

    İsteklerin gönderildiği HTTPS adresi.

  • descriptionstringnull olabilir

    Açıklama (düz metin).

  • eventsenum[]

    Dinlenen olaylar.

    task.createdtask.updatedtask.completedtask.deletedcomment.createdproject.created
  • enabledboolean

    Açık mı; true art arda hata sayacını sıfırlar.

  • failure_countinteger

    Art arda başarısız teslim sayısı.

  • disabled_reason"failing"null olabilir

    failing: art arda hatalar yüzünden kapandı.

  • last_delivery_atdate-timenull olabilir

    Son teslim denemesi.

  • last_success_atdate-timenull olabilir

    Son başarılı teslim.

  • secret_hintstring

    İmza anahtarının son 4 karakteri.

  • created_atdate-time

    Oluşturulma zamanı (ISO 8601).

  • secretstring

    İmza anahtarı (whsec_…); yalnız bu yanıtta bir kez.

İmza anahtarıyla webhook
{
  "id": "d164961a-2c53-4224-9866-5df6c010f6fe",
  "url": "https://hooks.springstore.com.tr/todix",
  "description": "Zapier – yeni görevler",
  "events": [
    "task.created",
    "task.completed"
  ],
  "enabled": true,
  "failure_count": 0,
  "disabled_reason": null,
  "last_delivery_at": "2026-10-15T09:12:44.512+03:00",
  "last_success_at": "2026-10-15T09:12:44.512+03:00",
  "secret_hint": "9f2c",
  "created_at": "2026-10-15T09:12:44.512+03:00",
  "secret": "whsec_Q2hhbmdlTWVJbkEgc2VjcmV0IHBsYWNlLjlmMmM"
}

Bir webhook isteği ve sonucu.

Alanlar

  • iduuid

    Kimlik (uuid).

  • eventstring

    Olay türü.

  • statusenum

    pending sırada, sending gönderiliyor, delivered teslim edildi, failed başarısız, canceled iptal.

    pendingsendingdeliveredfailedcanceled
  • attemptsinteger

    Deneme sayısı.

  • response_statusintegernull olabilir

    Alıcının HTTP yanıt kodu.

  • errorstringnull olabilir

    Hata nedeni (başarılıysa null).

  • duration_msintegernull olabilir

    Süre, milisaniye.

  • created_atdate-time

    Oluşturulma zamanı (ISO 8601).

  • last_attempt_atdate-timenull olabilir

    Son deneme zamanı.

  • delivered_atdate-timenull olabilir

    Teslim zamanı.

  • next_attempt_atdate-timenull olabilir

    Sıradaki deneme zamanı.

Teslim nesnesi
{
  "id": "b21e4eaf-cd82-4fdb-9ed7-f71e0627144e",
  "event": "task.completed",
  "status": "delivered",
  "attempts": 1,
  "response_status": 200,
  "error": null,
  "duration_ms": 184,
  "created_at": "2026-10-15T09:12:44.512+03:00",
  "last_attempt_at": "2026-10-15T09:12:44.512+03:00",
  "delivered_at": "2026-10-15T09:12:44.512+03:00",
  "next_attempt_at": null
}
/api/v1/webhooks
İzin: webhooks:manage

Çalışma alanının webhook’ları. Yalnız yöneticiler.

Yanıtlar

  • 200

    Başarılı

    Sayfalı liste döner: Webhook nesnesi

  • 4xx

    Başarısız isteklerde tek biçimli hata nesnesi döner. Hatalar

    400 · 401 · 403 · 404 · 429

GET/api/v1/webhooks
curl https://todix.com.tr/api/v1/webhooks \
  -H "Authorization: Bearer $TODIX_TOKEN"
Yanıt200Başarılı
{
  "data": [
    {
      "id": "d164961a-2c53-4224-9866-5df6c010f6fe",
      "url": "https://hooks.springstore.com.tr/todix",
      "description": "Zapier – yeni görevler",
      "events": [
        "task.created",
        "task.completed"
      ],
      "enabled": true,
      "failure_count": 0,
      "disabled_reason": null,
      "last_delivery_at": "2026-10-15T09:12:44.512+03:00",
      "last_success_at": "2026-10-15T09:12:44.512+03:00",
      "secret_hint": "9f2c",
      "created_at": "2026-10-15T09:12:44.512+03:00"
    }
  ],
  "next_cursor": "eyJiIjo0MX0"
}
/api/v1/webhooks
İzin: webhooks:manageIdempotency-KeyAynı isteği Idempotency-Key ile güvenle yeniden deneyebilirsin.

İmza anahtarı (secret) yalnız bu yanıtta bir kez döner; hemen kaydet. Adres herkese açık bir HTTPS adresi olmalı.

İstek gövdesi

  • urlurizorunlu

    İsteklerin gönderileceği herkese açık HTTPS adresi.

    En çok 500 karakter

  • eventsenum[]zorunlu

    Dinlenen olaylar.

    task.createdtask.updatedtask.completedtask.deletedcomment.createdproject.created

    1–6 öğe

  • descriptionstring

    Açıklama (düz metin).

    En çok 200 karakter

Yanıtlar

POST/api/v1/webhooks
curl -X POST https://todix.com.tr/api/v1/webhooks \
  -H "Authorization: Bearer $TODIX_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 5f1c2a9e-7b3d-4e8f-a0c6-2d9b4e7f1a38" \
  -d '{
    "url": "https://hooks.springstore.com.tr/todix",
    "events": [
      "task.created",
      "task.completed"
    ],
    "description": "Zapier – yeni görevler"
  }'
Yanıt201Oluşturuldu
{
  "data": {
    "id": "d164961a-2c53-4224-9866-5df6c010f6fe",
    "url": "https://hooks.springstore.com.tr/todix",
    "description": "Zapier – yeni görevler",
    "events": [
      "task.created",
      "task.completed"
    ],
    "enabled": true,
    "failure_count": 0,
    "disabled_reason": null,
    "last_delivery_at": "2026-10-15T09:12:44.512+03:00",
    "last_success_at": "2026-10-15T09:12:44.512+03:00",
    "secret_hint": "9f2c",
    "created_at": "2026-10-15T09:12:44.512+03:00",
    "secret": "whsec_Q2hhbmdlTWVJbkEgc2VjcmV0IHBsYWNlLjlmMmM"
  }
}
/api/v1/webhooks/{id}
İzin: webhooks:manage

Webhook’un ayarları ve son teslim durumu.

Yol parametreleri

  • iduuidzorunlu

    Kaydın kimliği (uuid).

Yanıtlar

  • 200

    Başarılı

    Döner: Webhook nesnesi

  • 4xx

    Başarısız isteklerde tek biçimli hata nesnesi döner. Hatalar

    400 · 401 · 403 · 404 · 429

GET/api/v1/webhooks/{id}
curl https://todix.com.tr/api/v1/webhooks/d164961a-2c53-4224-9866-5df6c010f6fe \
  -H "Authorization: Bearer $TODIX_TOKEN"
Yanıt200Başarılı
{
  "data": {
    "id": "d164961a-2c53-4224-9866-5df6c010f6fe",
    "url": "https://hooks.springstore.com.tr/todix",
    "description": "Zapier – yeni görevler",
    "events": [
      "task.created",
      "task.completed"
    ],
    "enabled": true,
    "failure_count": 0,
    "disabled_reason": null,
    "last_delivery_at": "2026-10-15T09:12:44.512+03:00",
    "last_success_at": "2026-10-15T09:12:44.512+03:00",
    "secret_hint": "9f2c",
    "created_at": "2026-10-15T09:12:44.512+03:00"
  }
}
/api/v1/webhooks/{id}
İzin: webhooks:manage

enabled: true art arda hata sayacını sıfırlar ve kapanmış bir webhook’u yeniden açar.

Yol parametreleri

  • iduuidzorunlu

    Kaydın kimliği (uuid).

İstek gövdesi

  • urluri

    Yeni HTTPS adresi.

    En çok 500 karakter

  • eventsenum[]

    Dinlenen olaylar.

    task.createdtask.updatedtask.completedtask.deletedcomment.createdproject.created

    1–6 öğe

  • descriptionstringnull olabilir

    Açıklama (düz metin).

    En çok 200 karakter

  • enabledboolean

    Açık mı; true art arda hata sayacını sıfırlar.

Yanıtlar

  • 200

    Başarılı

    Döner: Webhook nesnesi

  • 4xx

    Başarısız isteklerde tek biçimli hata nesnesi döner. Hatalar

    400 · 401 · 403 · 404 · 429

PATCH/api/v1/webhooks/{id}
curl -X PATCH https://todix.com.tr/api/v1/webhooks/d164961a-2c53-4224-9866-5df6c010f6fe \
  -H "Authorization: Bearer $TODIX_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "enabled": true
  }'
Yanıt200Başarılı
{
  "data": {
    "id": "d164961a-2c53-4224-9866-5df6c010f6fe",
    "url": "https://hooks.springstore.com.tr/todix",
    "description": "Zapier – yeni görevler",
    "events": [
      "task.created",
      "task.completed"
    ],
    "enabled": true,
    "failure_count": 0,
    "disabled_reason": null,
    "last_delivery_at": "2026-10-15T09:12:44.512+03:00",
    "last_success_at": "2026-10-15T09:12:44.512+03:00",
    "secret_hint": "9f2c",
    "created_at": "2026-10-15T09:12:44.512+03:00"
  }
}
/api/v1/webhooks/{id}
İzin: webhooks:manage

Webhook ve teslim geçmişi silinir. Gövdesiz 204 döner.

Yol parametreleri

  • iduuidzorunlu

    Kaydın kimliği (uuid).

Yanıtlar

  • 204

    İçerik yok

    Başarılı olunca gövde dönmez.

  • 4xx

    Başarısız isteklerde tek biçimli hata nesnesi döner. Hatalar

    400 · 401 · 403 · 404 · 429

DELETE/api/v1/webhooks/{id}
curl -X DELETE https://todix.com.tr/api/v1/webhooks/d164961a-2c53-4224-9866-5df6c010f6fe \
  -H "Authorization: Bearer $TODIX_TOKEN"
Yanıt204İçerik yok
/api/v1/webhooks/{id}/test
İzin: webhooks:manageIdempotency-KeyAynı isteği Idempotency-Key ile güvenle yeniden deneyebilirsin.

Hemen bir ping teslimi kuyruğa alır (202). Test teslimleri yeniden denenmez.

Yol parametreleri

  • iduuidzorunlu

    Kaydın kimliği (uuid).

Yanıtlar

  • 202

    Kuyruğa alındı

    Yanıt gövdesi aşağıdaki örnekteki gibidir.

  • 4xx

    Başarısız isteklerde tek biçimli hata nesnesi döner. Hatalar

    400 · 401 · 403 · 404 · 429

POST/api/v1/webhooks/{id}/test
curl -X POST https://todix.com.tr/api/v1/webhooks/d164961a-2c53-4224-9866-5df6c010f6fe/test \
  -H "Authorization: Bearer $TODIX_TOKEN" \
  -H "Idempotency-Key: 5f1c2a9e-7b3d-4e8f-a0c6-2d9b4e7f1a38"
Yanıt202Kuyruğa alındı
{
  "data": {
    "id": "53002ed3-1aca-4f4d-8d7a-77c294cd2dbe"
  }
}
/api/v1/webhooks/{id}/rotate-secret
İzin: webhooks:manageIdempotency-KeyAynı isteği Idempotency-Key ile güvenle yeniden deneyebilirsin.

Yeni anahtar bir kez döner; eskisi hemen geçersiz olur.

Yol parametreleri

  • iduuidzorunlu

    Kaydın kimliği (uuid).

Yanıtlar

  • 200

    Başarılı

    Yanıt gövdesi aşağıdaki örnekteki gibidir.

  • 4xx

    Başarısız isteklerde tek biçimli hata nesnesi döner. Hatalar

    400 · 401 · 403 · 404 · 429

POST/api/v1/webhooks/{id}/rotate-secret
curl -X POST https://todix.com.tr/api/v1/webhooks/d164961a-2c53-4224-9866-5df6c010f6fe/rotate-secret \
  -H "Authorization: Bearer $TODIX_TOKEN" \
  -H "Idempotency-Key: 5f1c2a9e-7b3d-4e8f-a0c6-2d9b4e7f1a38"
Yanıt200Başarılı
{
  "data": {
    "secret": "whsec_Q2hhbmdlTWVJbkEgc2VjcmV0IHBsYWNlLjlmMmM"
  }
}
/api/v1/webhooks/{id}/deliveries
İzin: webhooks:manage

Webhook’un son 50 teslimi, durum ve süreleriyle.

Yol parametreleri

  • iduuidzorunlu

    Kaydın kimliği (uuid).

Yanıtlar

  • 200

    Başarılı

    Sayfalı liste döner: Teslim nesnesi

  • 4xx

    Başarısız isteklerde tek biçimli hata nesnesi döner. Hatalar

    400 · 401 · 403 · 404 · 429

GET/api/v1/webhooks/{id}/deliveries
curl https://todix.com.tr/api/v1/webhooks/d164961a-2c53-4224-9866-5df6c010f6fe/deliveries \
  -H "Authorization: Bearer $TODIX_TOKEN"
Yanıt200Başarılı
{
  "data": [
    {
      "id": "b21e4eaf-cd82-4fdb-9ed7-f71e0627144e",
      "event": "task.completed",
      "status": "delivered",
      "attempts": 1,
      "response_status": 200,
      "error": null,
      "duration_ms": 184,
      "created_at": "2026-10-15T09:12:44.512+03:00",
      "last_attempt_at": "2026-10-15T09:12:44.512+03:00",
      "delivered_at": "2026-10-15T09:12:44.512+03:00",
      "next_attempt_at": null
    }
  ],
  "next_cursor": "eyJiIjo0MX0"
}

3 uç nokta

Kendi adresine anında, imzalı olay bildirimi; Zapier ve Make bunu kullanır. Her üye kurabilir, yalnız görebildiğin işler gelir. Anahtarın hooks izni olmalı.

Olayı, hedef adresi, süzgeçleri ve son teslim durumuyla bir abonelik.

Alanlar

  • iduuid

    Kimlik (uuid).

  • eventenum

    Olay türü.

    task.createdtask.updatedtask.completedtask.assignedcomment.createdproject.created
  • target_urluri

    Olayların gönderildiği HTTPS adresi.

  • project_iduuidnull olabilir

    Yalnız bu projenin görevleri ve yorumları.

  • assigned_to_meboolean

    true: yalnız sana atanan görevler (task.assigned zaten öyle).

  • enabledboolean

    Açık mı; true art arda hata sayacını sıfırlar.

  • failure_countinteger

    Art arda başarısız teslim sayısı.

  • disabled_reason"failing"null olabilir

    failing: art arda hatalar yüzünden kapandı.

  • last_delivery_atdate-timenull olabilir

    Son teslim denemesi.

  • last_success_atdate-timenull olabilir

    Son başarılı teslim.

  • created_atdate-time

    Oluşturulma zamanı (ISO 8601).

Tetikleyici nesnesi
{
  "id": "4b8bb322-c648-47c0-a12a-df2417965de2",
  "event": "task.completed",
  "target_url": "https://todix.com.tr/springstore",
  "project_id": "38b4ef00-de3c-41ea-bfca-eb30a9b54d8a",
  "assigned_to_me": false,
  "enabled": true,
  "failure_count": 0,
  "disabled_reason": null,
  "last_delivery_at": "2026-10-15T09:12:44.512+03:00",
  "last_success_at": "2026-10-15T09:12:44.512+03:00",
  "created_at": "2026-10-15T09:12:44.512+03:00"
}

Kurarken dönen tetikleyici: secret yalnız bu yanıtta bir kez gelir.

Alanlar

  • iduuid

    Kimlik (uuid).

  • eventenum

    Olay türü.

    task.createdtask.updatedtask.completedtask.assignedcomment.createdproject.created
  • target_urluri

    Olayların gönderildiği HTTPS adresi.

  • project_iduuidnull olabilir

    Proje kimliği; null projeden çıkarır.

  • assigned_to_meboolean

    true: yalnız sana atanan görevler (task.assigned zaten öyle).

  • enabledboolean

    Açık mı; true art arda hata sayacını sıfırlar.

  • failure_countinteger

    Art arda başarısız teslim sayısı.

  • disabled_reason"failing"null olabilir

    failing: art arda hatalar yüzünden kapandı.

  • last_delivery_atdate-timenull olabilir

    Son teslim denemesi.

  • last_success_atdate-timenull olabilir

    Son başarılı teslim.

  • created_atdate-time

    Oluşturulma zamanı (ISO 8601).

  • secretstring

    İmza anahtarı (whsec_…); yalnız bu yanıtta bir kez.

İmza anahtarıyla tetikleyici
{
  "id": "ec84049e-de73-4b24-9d69-63687bee00aa",
  "event": "task.completed",
  "target_url": "https://todix.com.tr/springstore",
  "project_id": "38b4ef00-de3c-41ea-bfca-eb30a9b54d8a",
  "assigned_to_me": false,
  "enabled": true,
  "failure_count": 0,
  "disabled_reason": null,
  "last_delivery_at": "2026-10-15T09:12:44.512+03:00",
  "last_success_at": "2026-10-15T09:12:44.512+03:00",
  "created_at": "2026-10-15T09:12:44.512+03:00",
  "secret": "whsec_Q2hhbmdlTWVJbkEgc2VjcmV0IHBsYWNlLjlmMmM"
}
/api/v1/hooks
İzin: hooks

Bu anahtarın ya da bağlantının kurduğu tetikleyiciler.

Yanıtlar

  • 200

    Başarılı

    Sayfalı liste döner: Tetikleyici nesnesi

  • 4xx

    Başarısız isteklerde tek biçimli hata nesnesi döner. Hatalar

    400 · 401 · 403 · 404 · 429

GET/api/v1/hooks
curl https://todix.com.tr/api/v1/hooks \
  -H "Authorization: Bearer $TODIX_TOKEN"
Yanıt200Başarılı
{
  "data": [
    {
      "id": "4b8bb322-c648-47c0-a12a-df2417965de2",
      "event": "task.completed",
      "target_url": "https://todix.com.tr/springstore",
      "project_id": "38b4ef00-de3c-41ea-bfca-eb30a9b54d8a",
      "assigned_to_me": false,
      "enabled": true,
      "failure_count": 0,
      "disabled_reason": null,
      "last_delivery_at": "2026-10-15T09:12:44.512+03:00",
      "last_success_at": "2026-10-15T09:12:44.512+03:00",
      "created_at": "2026-10-15T09:12:44.512+03:00"
    }
  ],
  "next_cursor": "eyJiIjo0MX0"
}
/api/v1/hooks
İzin: hooksIdempotency-KeyAynı isteği Idempotency-Key ile güvenle yeniden deneyebilirsin.

Bir olaya adres abone eder; imza anahtarı (secret) yalnız bu yanıtta bir kez döner. Yalnız uygulamada görebildiklerin gelir. task.* ve comment.created için tasks:read, project.created için projects:read gerekir. Kişi ve çalışma alanı başına en çok 100 tetikleyici; hedef 410 Gone dönerse tetikleyici silinir.

İstek gövdesi

  • eventenumzorunlu

    Olay türü.

    task.createdtask.updatedtask.completedtask.assignedcomment.createdproject.created
  • target_urlurizorunlu

    Olayların gönderildiği HTTPS adresi.

    En çok 500 karakter

  • project_iduuid

    Yalnız bu projenin görevleri ve yorumları.

  • assigned_to_meboolean

    true: yalnız sana atanan görevler (task.assigned zaten öyle).

Yanıtlar

POST/api/v1/hooks
curl -X POST https://todix.com.tr/api/v1/hooks \
  -H "Authorization: Bearer $TODIX_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 5f1c2a9e-7b3d-4e8f-a0c6-2d9b4e7f1a38" \
  -d '{
    "event": "task.completed",
    "target_url": "https://todix.com.tr/springstore"
  }'
Yanıt201Oluşturuldu
{
  "data": {
    "id": "ec84049e-de73-4b24-9d69-63687bee00aa",
    "event": "task.completed",
    "target_url": "https://todix.com.tr/springstore",
    "project_id": "38b4ef00-de3c-41ea-bfca-eb30a9b54d8a",
    "assigned_to_me": false,
    "enabled": true,
    "failure_count": 0,
    "disabled_reason": null,
    "last_delivery_at": "2026-10-15T09:12:44.512+03:00",
    "last_success_at": "2026-10-15T09:12:44.512+03:00",
    "created_at": "2026-10-15T09:12:44.512+03:00",
    "secret": "whsec_Q2hhbmdlTWVJbkEgc2VjcmV0IHBsYWNlLjlmMmM"
  }
}
/api/v1/hooks/{id}
İzin: hooks

Aboneliği siler; bu andan sonra istek gelmez.

Yol parametreleri

  • iduuidzorunlu

    Kaydın kimliği (uuid).

Yanıtlar

  • 204

    İçerik yok

    Başarılı olunca gövde dönmez.

  • 4xx

    Başarısız isteklerde tek biçimli hata nesnesi döner. Hatalar

    400 · 401 · 403 · 404 · 429

DELETE/api/v1/hooks/{id}
curl -X DELETE https://todix.com.tr/api/v1/hooks/79412475-96f7-4e47-b579-46723801a22e \
  -H "Authorization: Bearer $TODIX_TOKEN"
Yanıt204İçerik yok