Skip to content

Çalışma Alanları

Çalışma Alanları

GET /workspaces

Kimliği doğrulanmış kullanıcının erişebildiği çalışma alanlarını listeler.

Kimlik doğrulama: JWT Bearer belirteci

İstek

Yol, sorgu veya gövde parametresi yoktur.

Yanıt

Yanıt Örneği
json
{
  "data": [
    {
      "id": "ws-abcd-efgh",
      "name": "Ürün Geliştirme",
      "accountId": "acc-1234-5678",
      "isActive": true,
      "isDefault": true,
      "createdAt": "2026-01-20T09:00:00.000Z"
    },
    {
      "id": "ws-ijkl-mnop",
      "name": "Pazarlama",
      "accountId": "acc-1234-5678",
      "isActive": true,
      "isDefault": false,
      "createdAt": "2026-02-05T14:00:00.000Z"
    }
  ],
  "meta": {
    "total": 2
  },
  "error": null
}
Yanıt Alanları
AlanTürAçıklama
idstringÇalışma alanı kimliği
namestringÇalışma alanının görünen adı
accountIdstringBu çalışma alanının ait olduğu hesabın kimliği
isActivebooleanÇalışma alanının şu anda etkin olup olmadığı
isDefaultbooleanBunun kullanıcının varsayılan çalışma alanı olup olmadığı
createdAtstringÇalışma alanının oluşturulma anının ISO 8601 zaman damgası

Kod Örnekleri

bash
curl "https://api.chainabit.com/api/v1/workspaces" \
  -H "Authorization: Bearer $TOKEN"
javascript
const response = await fetch(
  `${BASE_URL}/workspaces`,
  {
    headers: {
      Authorization: `Bearer ${TOKEN}`,
    },
  }
);
const data = await response.json();
python
import requests

response = requests.get(
    f"{BASE_URL}/workspaces",
    headers={"Authorization": f"Bearer {TOKEN}"},
)
data = response.json()

POST /workspaces

Kimliği doğrulanmış hesap içinde yeni bir çalışma alanı oluşturur.

Kimlik doğrulama: JWT Bearer belirteci

İstek

AlanTürZorunluKısıtlarAçıklama
slugstringEvetURL için güvenli tanımlayıcıÇalışma alanı kısa adı
namestringEvetBoş olmayan metinÇalışma alanının görünen adı
descriptionstringHayırEn fazla 1024 karakterİsteğe bağlı açıklama
settingsobjectHayırJSON nesnesiİsteğe bağlı çalışma alanı ayarları

Yanıt

Yanıt Örneği
json
{
  "data": {
    "id": "ws-qrst-uvwx",
    "name": "Mühendislik",
    "accountId": "acc-1234-5678",
    "isActive": true,
    "isDefault": false,
    "createdAt": "2026-03-17T11:00:00.000Z"
  },
  "meta": null,
  "error": null
}
Yanıt Alanları
AlanTürAçıklama
idstringYeni oluşturulan çalışma alanının kimliği
namestringÇalışma alanının görünen adı
accountIdstringBu çalışma alanının ait olduğu hesabın kimliği
isActivebooleanOluşturmada her zaman true
isDefaultbooleanBunun varsayılan çalışma alanı olup olmadığı
createdAtstringÇalışma alanının oluşturulma anının ISO 8601 zaman damgası

Kod Örnekleri

bash
curl -X POST "https://api.chainabit.com/api/v1/workspaces" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "slug": "muhendislik",
    "name": "Mühendislik"
  }'
javascript
const response = await fetch(`${BASE_URL}/workspaces`, {
  method: "POST",
  headers: {
    Authorization: `Bearer ${TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    slug: "muhendislik",
    name: "Mühendislik"
  }),
});
const data = await response.json();
python
import requests

response = requests.post(
    f"{BASE_URL}/workspaces",
    headers={"Authorization": f"Bearer {TOKEN}"},
    json={"slug": "muhendislik", "name": "Mühendislik"},
)
data = response.json()

GET /workspaces/:id

Bir çalışma alanını kimliğine göre getirir. Kimliği doğrulanmış kullanıcının çalışma alanının üyesi olması gerekir.

Kimlik doğrulama: JWT Bearer belirteci (çalışma alanı üyesi olunmalıdır)

İstek

Aşağıdaki $WORKSPACE_ID değerini bir Çalışma Alanlarını Listeleme veya Çalışma Alanı Oluşturma yanıtındaki id ile değiştirin.

Yanıt

Yanıt Örneği
json
{
  "data": {
    "id": "ws-abcd-efgh",
    "name": "Ürün Geliştirme",
    "accountId": "acc-1234-5678",
    "isActive": true,
    "isDefault": true,
    "membersCount": 4,
    "createdAt": "2026-01-20T09:00:00.000Z"
  },
  "meta": null,
  "error": null
}
Yanıt Alanları
AlanTürAçıklama
idstringÇalışma alanı kimliği
namestringÇalışma alanının görünen adı
accountIdstringBu çalışma alanının ait olduğu hesabın kimliği
isActivebooleanÇalışma alanının şu anda etkin olup olmadığı
isDefaultbooleanBunun varsayılan çalışma alanı olup olmadığı
membersCountnumberBu çalışma alanındaki toplam üye sayısı
createdAtstringÇalışma alanının oluşturulma anının ISO 8601 zaman damgası

Kod Örnekleri

bash
curl "https://api.chainabit.com/api/v1/workspaces/$WORKSPACE_ID" \
  -H "Authorization: Bearer $TOKEN"
javascript
const WORKSPACE_ID = process.env.WORKSPACE_ID; // listeleme veya oluşturma yanıtındaki id

const response = await fetch(`${BASE_URL}/workspaces/${WORKSPACE_ID}`, {
  headers: {
    Authorization: `Bearer ${TOKEN}`,
  },
});
const data = await response.json();
python
import os
import requests

workspace_id = os.environ["WORKSPACE_ID"]  # listeleme veya oluşturma yanıtındaki id

response = requests.get(
    f"{BASE_URL}/workspaces/{workspace_id}",
    headers={"Authorization": f"Bearer {TOKEN}"},
)
data = response.json()

PATCH /workspaces/:id

Bir çalışma alanının adını veya ayarlarını günceller. Owner veya admin rolü gerektirir.

Kimlik doğrulama: JWT Bearer belirteci + Owner/Admin rolü gerekir

İstek

Aşağıdaki $WORKSPACE_ID değerini bir Çalışma Alanlarını Listeleme veya Çalışma Alanı Oluşturma yanıtındaki id ile değiştirin.

AlanTürZorunluKısıtlarAçıklama
namestringHayırBoş olmayan metinÇalışma alanı için yeni görünen ad

Yanıt

Yanıt Örneği
json
{
  "data": {
    "id": "ws-abcd-efgh",
    "name": "Ürün ve Tasarım",
    "updatedAt": "2026-03-17T11:00:00.000Z"
  },
  "meta": null,
  "error": null
}
Yanıt Alanları
AlanTürAçıklama
idstringÇalışma alanı kimliği
namestringGüncellenmiş çalışma alanı görünen adı
updatedAtstringBu güncellemenin ISO 8601 zaman damgası

Kod Örnekleri

bash
curl -X PATCH "https://api.chainabit.com/api/v1/workspaces/$WORKSPACE_ID" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Ürün ve Tasarım"
  }'
javascript
const WORKSPACE_ID = process.env.WORKSPACE_ID; // listeleme veya oluşturma yanıtındaki id

const response = await fetch(`${BASE_URL}/workspaces/${WORKSPACE_ID}`, {
  method: "PATCH",
  headers: {
    Authorization: `Bearer ${TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ name: "Ürün ve Tasarım" }),
});
const data = await response.json();
python
import os
import requests

workspace_id = os.environ["WORKSPACE_ID"]  # listeleme veya oluşturma yanıtındaki id

response = requests.patch(
    f"{BASE_URL}/workspaces/{workspace_id}",
    headers={"Authorization": f"Bearer {TOKEN}"},
    json={"name": "Ürün ve Tasarım"},
)
data = response.json()

PATCH /workspaces/:id/activation

Bir çalışma alanını etkinleştirir veya devre dışı bırakır. Owner veya admin rolü gerektirir.

Kimlik doğrulama: JWT Bearer belirteci + Owner/Admin rolü gerekir

İstek

Aşağıdaki $WORKSPACE_ID değerini bir Çalışma Alanlarını Listeleme veya Çalışma Alanı Oluşturma yanıtındaki id ile değiştirin.

AlanTürZorunluKısıtlarAçıklama
isActivebooleanEvettrue veya falseÇalışma alanının etkin olup olmayacağı

Yanıt

Yanıt Örneği
json
{
  "data": {
    "id": "ws-abcd-efgh",
    "isActive": false,
    "updatedAt": "2026-03-17T12:00:00.000Z"
  },
  "meta": null,
  "error": null
}
Yanıt Alanları
AlanTürAçıklama
idstringÇalışma alanı kimliği
isActivebooleanGüncellenmiş etkinlik durumu
updatedAtstringBu güncellemenin ISO 8601 zaman damgası

Kod Örnekleri

bash
curl -X PATCH "https://api.chainabit.com/api/v1/workspaces/$WORKSPACE_ID/activation" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "isActive": false
  }'
javascript
const WORKSPACE_ID = process.env.WORKSPACE_ID; // listeleme veya oluşturma yanıtındaki id

const response = await fetch(
  `${BASE_URL}/workspaces/${WORKSPACE_ID}/activation`,
  {
    method: "PATCH",
    headers: {
      Authorization: `Bearer ${TOKEN}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({ isActive: false }),
  }
);
const data = await response.json();
python
import os
import requests

workspace_id = os.environ["WORKSPACE_ID"]  # listeleme veya oluşturma yanıtındaki id

response = requests.patch(
    f"{BASE_URL}/workspaces/{workspace_id}/activation",
    headers={"Authorization": f"Bearer {TOKEN}"},
    json={"isActive": False},
)
data = response.json()

PUT /workspaces/:id/default

Bir çalışma alanını varsayılan çalışma alanı olarak ayarlar. Owner veya admin rolü gerektirir.

Kimlik doğrulama: JWT Bearer belirteci + Owner/Admin rolü gerekir

İstek

Aşağıdaki $WORKSPACE_ID değerini bir Çalışma Alanlarını Listeleme veya Çalışma Alanı Oluşturma yanıtındaki id ile değiştirin.

Yanıt

Yanıt Örneği
json
{
  "data": {
    "id": "ws-abcd-efgh",
    "name": "Ürün Geliştirme",
    "isDefault": true,
    "updatedAt": "2026-03-17T12:00:00.000Z"
  },
  "meta": null,
  "error": null
}
Yanıt Alanları
AlanTürAçıklama
idstringÇalışma alanı kimliği
namestringÇalışma alanının görünen adı
isDefaultbooleanBu işlemden sonra her zaman true
updatedAtstringBu güncellemenin ISO 8601 zaman damgası

Kod Örnekleri

bash
curl -X PUT "https://api.chainabit.com/api/v1/workspaces/$WORKSPACE_ID/default" \
  -H "Authorization: Bearer $TOKEN"
javascript
const WORKSPACE_ID = process.env.WORKSPACE_ID; // listeleme veya oluşturma yanıtındaki id

const response = await fetch(`${BASE_URL}/workspaces/${WORKSPACE_ID}/default`, {
  method: "PUT",
  headers: {
    Authorization: `Bearer ${TOKEN}`,
  },
});
const data = await response.json();
python
import os
import requests

workspace_id = os.environ["WORKSPACE_ID"]  # listeleme veya oluşturma yanıtındaki id

response = requests.put(
    f"{BASE_URL}/workspaces/{workspace_id}/default",
    headers={"Authorization": f"Bearer {TOKEN}"},
)
data = response.json()

PUT /workspaces/:id/active

Bir çalışma alanını, çağıranın şu anda etkin çalışma alanı olarak işaretler. Bu bir erişim denetimi kontrolü değil, bir kullanıcı deneyimi ipucudur — oturum açmış diğer cihazların veya oturumların, bir sonraki yüklemelerinde şu anda hangi çalışma alanına baktığınızı algılamasını sağlar. isDefault değerini, üyeliği veya izinleri etkilemez.

Kimlik doğrulama: JWT Bearer belirteci (çalışma alanı üyesi olunmalıdır)

İstek

Aşağıdaki $WORKSPACE_ID değerini bir Çalışma Alanlarını Listeleme veya Çalışma Alanı Oluşturma yanıtındaki id ile değiştirin.

Gövde yoktur.

Yanıt

Yanıt Örneği
json
{
  "data": {
    "id": "ws-abcd-efgh",
    "name": "Ürün Geliştirme",
    "accountId": "acc-1234-5678",
    "isActive": true,
    "isDefault": true,
    "createdAt": "2026-01-20T09:00:00.000Z"
  },
  "meta": null,
  "error": null
}
Yanıt Alanları
AlanTürAçıklama
idstringÇalışma alanı kimliği
namestringÇalışma alanının görünen adı
accountIdstringBu çalışma alanının ait olduğu hesabın kimliği
isActivebooleanÇalışma alanının şu anda etkin olup olmadığı
isDefaultbooleanBunun kullanıcının varsayılan çalışma alanı olup olmadığı
createdAtstringÇalışma alanının oluşturulma anının ISO 8601 zaman damgası

Kod Örnekleri

bash
curl -X PUT "https://api.chainabit.com/api/v1/workspaces/$WORKSPACE_ID/active" \
  -H "Authorization: Bearer $TOKEN"
javascript
const WORKSPACE_ID = process.env.WORKSPACE_ID; // listeleme veya oluşturma yanıtındaki id

const response = await fetch(`${BASE_URL}/workspaces/${WORKSPACE_ID}/active`, {
  method: "PUT",
  headers: {
    Authorization: `Bearer ${TOKEN}`,
  },
});
const data = await response.json();
python
import os
import requests

workspace_id = os.environ["WORKSPACE_ID"]  # listeleme veya oluşturma yanıtındaki id

response = requests.put(
    f"{BASE_URL}/workspaces/{workspace_id}/active",
    headers={"Authorization": f"Bearer {TOKEN}"},
)
data = response.json()

Çalışma Alanı Üyeleri

GET /workspaces/:id/members

Bir çalışma alanının tüm üyelerini listeler.

Kimlik doğrulama: JWT Bearer belirteci (çalışma alanı üyesi olunmalıdır)

İstek

Aşağıdaki $WORKSPACE_ID değerini bir Çalışma Alanlarını Listeleme veya Çalışma Alanı Oluşturma yanıtındaki id ile değiştirin.

Yanıt

Yanıt Örneği
json
{
  "data": [
    {
      "chainerId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "username": "ayse_y",
      "fullName": "Ayşe Yılmaz",
      "role": "owner",
      "joinedAt": "2026-01-20T09:00:00.000Z"
    },
    {
      "chainerId": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
      "username": "burak_dev",
      "fullName": "Burak Demir",
      "role": "admin",
      "joinedAt": "2026-02-25T16:00:00.000Z"
    }
  ],
  "meta": {
    "total": 2
  },
  "error": null
}
Yanıt Alanları
AlanTürAçıklama
chainerIdstringÜyenin kullanıcı kimliği
usernamestringÜyenin kullanıcı adı
fullNamestringÜyenin tam adı
rolestringÜyenin bu çalışma alanındaki rolü (owner, admin, member)
joinedAtstringÜyenin katıldığı anın ISO 8601 zaman damgası

Kod Örnekleri

bash
curl "https://api.chainabit.com/api/v1/workspaces/$WORKSPACE_ID/members" \
  -H "Authorization: Bearer $TOKEN"
javascript
const WORKSPACE_ID = process.env.WORKSPACE_ID; // listeleme veya oluşturma yanıtındaki id

const response = await fetch(`${BASE_URL}/workspaces/${WORKSPACE_ID}/members`, {
  headers: {
    Authorization: `Bearer ${TOKEN}`,
  },
});
const data = await response.json();
python
import os
import requests

workspace_id = os.environ["WORKSPACE_ID"]  # listeleme veya oluşturma yanıtındaki id

response = requests.get(
    f"{BASE_URL}/workspaces/{workspace_id}/members",
    headers={"Authorization": f"Bearer {TOKEN}"},
)
data = response.json()

POST /workspaces/:id/members

Bir çalışma alanına üye ekler. Owner veya admin rolü gerektirir.

Kimlik doğrulama: JWT Bearer belirteci + Owner/Admin rolü gerekir

İstek

Aşağıdaki $WORKSPACE_ID değerini bir Çalışma Alanlarını Listeleme veya Çalışma Alanı Oluşturma yanıtındaki id ile değiştirin. chainerId kullanıcının kendi kimliğidir — bu değeri Identity / Chainers sayfasından edinin.

AlanTürZorunluKısıtlarAçıklama
chainerIdstringEvetGeçerli kullanıcı kimliğiEklenecek kullanıcının kimliği. Bu değeri Identity / Chainers uç noktasından edinin.
rolestringEvet"member" veya "admin"Çalışma alanı içinde atanacak rol

Yanıt

Yanıt Örneği
json
{
  "data": {
    "chainerId": "c3d4e5f6-a7b8-9012-cdef-123456789012",
    "role": "member",
    "joinedAt": "2026-03-17T11:10:00.000Z"
  },
  "meta": null,
  "error": null
}
Yanıt Alanları
AlanTürAçıklama
chainerIdstringEklenen üyenin kullanıcı kimliği
rolestringAtanan rol (member veya admin)
joinedAtstringÜyenin eklendiği anın ISO 8601 zaman damgası

Kod Örnekleri

bash
curl -X POST "https://api.chainabit.com/api/v1/workspaces/$WORKSPACE_ID/members" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "chainerId": "<kullanici-kimligi>",
    "role": "member"
  }'
javascript
const WORKSPACE_ID = process.env.WORKSPACE_ID; // listeleme veya oluşturma yanıtındaki id

const response = await fetch(`${BASE_URL}/workspaces/${WORKSPACE_ID}/members`, {
  method: "POST",
  headers: {
    Authorization: `Bearer ${TOKEN}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    chainerId: "<kullanici-kimligi>",
    role: "member",
  }),
});
const data = await response.json();
python
import os
import requests

workspace_id = os.environ["WORKSPACE_ID"]  # listeleme veya oluşturma yanıtındaki id

response = requests.post(
    f"{BASE_URL}/workspaces/{workspace_id}/members",
    headers={"Authorization": f"Bearer {TOKEN}"},
    json={"chainerId": "<kullanici-kimligi>", "role": "member"},
)
data = response.json()

PATCH /workspaces/:id/members/:chainerId

Bir çalışma alanı üyesinin rolünü günceller. Owner veya admin rolü gerektirir.

Kimlik doğrulama: JWT Bearer belirteci + Owner/Admin rolü gerekir

Rol değişiklikleri anında geçerli olur; çünkü etkilenen kullanıcının önbelleğe alınmış oturumları sunucu tarafında geçersiz kılınır.

İstek

$WORKSPACE_ID değerini çalışma alanının id değeriyle, $CHAINER_ID değerini ise bir Üyeleri Listeleme yanıtındaki üyenin chainerId değeriyle değiştirin.

AlanTürZorunluKısıtlarAçıklama
rolestringEvet"member" veya "admin"Üye için yeni rol

Yanıt

Yanıt Örneği
json
{
  "data": {
    "chainerId": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
    "role": "admin",
    "updatedAt": "2026-03-17T11:15:00.000Z"
  },
  "meta": null,
  "error": null
}
Yanıt Alanları
AlanTürAçıklama
chainerIdstringÜyenin kullanıcı kimliği
rolestringGüncellenmiş rol (member veya admin)
updatedAtstringBu güncellemenin ISO 8601 zaman damgası

Kod Örnekleri

bash
curl -X PATCH "https://api.chainabit.com/api/v1/workspaces/$WORKSPACE_ID/members/$CHAINER_ID" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "role": "admin"
  }'
javascript
const WORKSPACE_ID = process.env.WORKSPACE_ID; // listeleme veya oluşturma yanıtındaki id
const CHAINER_ID = process.env.CHAINER_ID; // üye listeleme yanıtındaki chainerId

const response = await fetch(
  `${BASE_URL}/workspaces/${WORKSPACE_ID}/members/${CHAINER_ID}`,
  {
    method: "PATCH",
    headers: {
      Authorization: `Bearer ${TOKEN}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({ role: "admin" }),
  }
);
const data = await response.json();
python
import os
import requests

workspace_id = os.environ["WORKSPACE_ID"]  # listeleme veya oluşturma yanıtındaki id
chainer_id = os.environ["CHAINER_ID"]  # üye listeleme yanıtındaki chainerId

response = requests.patch(
    f"{BASE_URL}/workspaces/{workspace_id}/members/{chainer_id}",
    headers={"Authorization": f"Bearer {TOKEN}"},
    json={"role": "admin"},
)
data = response.json()

DELETE /workspaces/:id/members/:chainerId

Bir üyeyi çalışma alanından çıkarır. Owner veya admin rolü gerektirir.

Kimlik doğrulama: JWT Bearer belirteci + Owner/Admin rolü gerekir

Çıkarma işlemleri de etkilenen kullanıcının önbelleğe alınmış oturumlarını anında geçersiz kılar; böylece erişim bir sonraki istekte kaldırılır.

İstek

$WORKSPACE_ID değerini çalışma alanının id değeriyle, $CHAINER_ID değerini ise bir Üyeleri Listeleme yanıtındaki üyenin chainerId değeriyle değiştirin.

Yanıt

Yanıt Örneği
json
{
  "data": {
    "chainerId": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
    "removedAt": "2026-03-17T11:20:00.000Z"
  },
  "meta": null,
  "error": null
}
Yanıt Alanları
AlanTürAçıklama
chainerIdstringÇıkarılan üyenin kullanıcı kimliği
removedAtstringÜyenin çıkarıldığı anın ISO 8601 zaman damgası

Kod Örnekleri

bash
curl -X DELETE "https://api.chainabit.com/api/v1/workspaces/$WORKSPACE_ID/members/$CHAINER_ID" \
  -H "Authorization: Bearer $TOKEN"
javascript
const WORKSPACE_ID = process.env.WORKSPACE_ID; // listeleme veya oluşturma yanıtındaki id
const CHAINER_ID = process.env.CHAINER_ID; // üye listeleme yanıtındaki chainerId

const response = await fetch(
  `${BASE_URL}/workspaces/${WORKSPACE_ID}/members/${CHAINER_ID}`,
  {
    method: "DELETE",
    headers: {
      Authorization: `Bearer ${TOKEN}`,
    },
  }
);
const data = await response.json();
python
import os
import requests

workspace_id = os.environ["WORKSPACE_ID"]  # listeleme veya oluşturma yanıtındaki id
chainer_id = os.environ["CHAINER_ID"]  # üye listeleme yanıtındaki chainerId

response = requests.delete(
    f"{BASE_URL}/workspaces/{workspace_id}/members/{chainer_id}",
    headers={"Authorization": f"Bearer {TOKEN}"},
)
data = response.json()

Built with purpose.