Ç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
{
"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ı
| Alan | Tür | Açıklama |
|---|---|---|
id | string | Çalışma alanı kimliği |
name | string | Çalışma alanının görünen adı |
accountId | string | Bu çalışma alanının ait olduğu hesabın kimliği |
isActive | boolean | Çalışma alanının şu anda etkin olup olmadığı |
isDefault | boolean | Bunun kullanıcının varsayılan çalışma alanı olup olmadığı |
createdAt | string | Çalışma alanının oluşturulma anının ISO 8601 zaman damgası |
Kod Örnekleri
curl "https://api.chainabit.com/api/v1/workspaces" \
-H "Authorization: Bearer $TOKEN"const response = await fetch(
`${BASE_URL}/workspaces`,
{
headers: {
Authorization: `Bearer ${TOKEN}`,
},
}
);
const data = await response.json();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
| Alan | Tür | Zorunlu | Kısıtlar | Açıklama |
|---|---|---|---|---|
slug | string | Evet | URL için güvenli tanımlayıcı | Çalışma alanı kısa adı |
name | string | Evet | Boş olmayan metin | Çalışma alanının görünen adı |
description | string | Hayır | En fazla 1024 karakter | İsteğe bağlı açıklama |
settings | object | Hayır | JSON nesnesi | İsteğe bağlı çalışma alanı ayarları |
Yanıt
Yanıt Örneği
{
"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ı
| Alan | Tür | Açıklama |
|---|---|---|
id | string | Yeni oluşturulan çalışma alanının kimliği |
name | string | Çalışma alanının görünen adı |
accountId | string | Bu çalışma alanının ait olduğu hesabın kimliği |
isActive | boolean | Oluşturmada her zaman true |
isDefault | boolean | Bunun varsayılan çalışma alanı olup olmadığı |
createdAt | string | Çalışma alanının oluşturulma anının ISO 8601 zaman damgası |
Kod Örnekleri
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"
}'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();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_IDdeğerini bir Çalışma Alanlarını Listeleme veya Çalışma Alanı Oluşturma yanıtındakiidile değiştirin.
Yanıt
Yanıt Örneği
{
"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ı
| Alan | Tür | Açıklama |
|---|---|---|
id | string | Çalışma alanı kimliği |
name | string | Çalışma alanının görünen adı |
accountId | string | Bu çalışma alanının ait olduğu hesabın kimliği |
isActive | boolean | Çalışma alanının şu anda etkin olup olmadığı |
isDefault | boolean | Bunun varsayılan çalışma alanı olup olmadığı |
membersCount | number | Bu çalışma alanındaki toplam üye sayısı |
createdAt | string | Çalışma alanının oluşturulma anının ISO 8601 zaman damgası |
Kod Örnekleri
curl "https://api.chainabit.com/api/v1/workspaces/$WORKSPACE_ID" \
-H "Authorization: Bearer $TOKEN"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();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_IDdeğerini bir Çalışma Alanlarını Listeleme veya Çalışma Alanı Oluşturma yanıtındakiidile değiştirin.
| Alan | Tür | Zorunlu | Kısıtlar | Açıklama |
|---|---|---|---|---|
name | string | Hayır | Boş olmayan metin | Çalışma alanı için yeni görünen ad |
Yanıt
Yanıt Örneği
{
"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ı
| Alan | Tür | Açıklama |
|---|---|---|
id | string | Çalışma alanı kimliği |
name | string | Güncellenmiş çalışma alanı görünen adı |
updatedAt | string | Bu güncellemenin ISO 8601 zaman damgası |
Kod Örnekleri
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"
}'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();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_IDdeğerini bir Çalışma Alanlarını Listeleme veya Çalışma Alanı Oluşturma yanıtındakiidile değiştirin.
| Alan | Tür | Zorunlu | Kısıtlar | Açıklama |
|---|---|---|---|---|
isActive | boolean | Evet | true veya false | Çalışma alanının etkin olup olmayacağı |
Yanıt
Yanıt Örneği
{
"data": {
"id": "ws-abcd-efgh",
"isActive": false,
"updatedAt": "2026-03-17T12:00:00.000Z"
},
"meta": null,
"error": null
}Yanıt Alanları
| Alan | Tür | Açıklama |
|---|---|---|
id | string | Çalışma alanı kimliği |
isActive | boolean | Güncellenmiş etkinlik durumu |
updatedAt | string | Bu güncellemenin ISO 8601 zaman damgası |
Kod Örnekleri
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
}'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();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_IDdeğerini bir Çalışma Alanlarını Listeleme veya Çalışma Alanı Oluşturma yanıtındakiidile değiştirin.
Yanıt
Yanıt Örneği
{
"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ı
| Alan | Tür | Açıklama |
|---|---|---|
id | string | Çalışma alanı kimliği |
name | string | Çalışma alanının görünen adı |
isDefault | boolean | Bu işlemden sonra her zaman true |
updatedAt | string | Bu güncellemenin ISO 8601 zaman damgası |
Kod Örnekleri
curl -X PUT "https://api.chainabit.com/api/v1/workspaces/$WORKSPACE_ID/default" \
-H "Authorization: Bearer $TOKEN"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();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_IDdeğerini bir Çalışma Alanlarını Listeleme veya Çalışma Alanı Oluşturma yanıtındakiidile değiştirin.
Gövde yoktur.
Yanıt
Yanıt Örneği
{
"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ı
| Alan | Tür | Açıklama |
|---|---|---|
id | string | Çalışma alanı kimliği |
name | string | Çalışma alanının görünen adı |
accountId | string | Bu çalışma alanının ait olduğu hesabın kimliği |
isActive | boolean | Çalışma alanının şu anda etkin olup olmadığı |
isDefault | boolean | Bunun kullanıcının varsayılan çalışma alanı olup olmadığı |
createdAt | string | Çalışma alanının oluşturulma anının ISO 8601 zaman damgası |
Kod Örnekleri
curl -X PUT "https://api.chainabit.com/api/v1/workspaces/$WORKSPACE_ID/active" \
-H "Authorization: Bearer $TOKEN"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();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_IDdeğerini bir Çalışma Alanlarını Listeleme veya Çalışma Alanı Oluşturma yanıtındakiidile değiştirin.
Yanıt
Yanıt Örneği
{
"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ı
| Alan | Tür | Açıklama |
|---|---|---|
chainerId | string | Üyenin kullanıcı kimliği |
username | string | Üyenin kullanıcı adı |
fullName | string | Üyenin tam adı |
role | string | Üyenin bu çalışma alanındaki rolü (owner, admin, member) |
joinedAt | string | Üyenin katıldığı anın ISO 8601 zaman damgası |
Kod Örnekleri
curl "https://api.chainabit.com/api/v1/workspaces/$WORKSPACE_ID/members" \
-H "Authorization: Bearer $TOKEN"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();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_IDdeğerini bir Çalışma Alanlarını Listeleme veya Çalışma Alanı Oluşturma yanıtındakiidile değiştirin.chainerIdkullanıcının kendi kimliğidir — bu değeri Identity / Chainers sayfasından edinin.
| Alan | Tür | Zorunlu | Kısıtlar | Açıklama |
|---|---|---|---|---|
chainerId | string | Evet | Geçerli kullanıcı kimliği | Eklenecek kullanıcının kimliği. Bu değeri Identity / Chainers uç noktasından edinin. |
role | string | Evet | "member" veya "admin" | Çalışma alanı içinde atanacak rol |
Yanıt
Yanıt Örneği
{
"data": {
"chainerId": "c3d4e5f6-a7b8-9012-cdef-123456789012",
"role": "member",
"joinedAt": "2026-03-17T11:10:00.000Z"
},
"meta": null,
"error": null
}Yanıt Alanları
| Alan | Tür | Açıklama |
|---|---|---|
chainerId | string | Eklenen üyenin kullanıcı kimliği |
role | string | Atanan rol (member veya admin) |
joinedAt | string | Üyenin eklendiği anın ISO 8601 zaman damgası |
Kod Örnekleri
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"
}'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();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_IDdeğerini çalışma alanınıniddeğeriyle,$CHAINER_IDdeğerini ise bir Üyeleri Listeleme yanıtındaki üyeninchainerIddeğeriyle değiştirin.
| Alan | Tür | Zorunlu | Kısıtlar | Açıklama |
|---|---|---|---|---|
role | string | Evet | "member" veya "admin" | Üye için yeni rol |
Yanıt
Yanıt Örneği
{
"data": {
"chainerId": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
"role": "admin",
"updatedAt": "2026-03-17T11:15:00.000Z"
},
"meta": null,
"error": null
}Yanıt Alanları
| Alan | Tür | Açıklama |
|---|---|---|
chainerId | string | Üyenin kullanıcı kimliği |
role | string | Güncellenmiş rol (member veya admin) |
updatedAt | string | Bu güncellemenin ISO 8601 zaman damgası |
Kod Örnekleri
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"
}'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();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_IDdeğerini çalışma alanınıniddeğeriyle,$CHAINER_IDdeğerini ise bir Üyeleri Listeleme yanıtındaki üyeninchainerIddeğeriyle değiştirin.
Yanıt
Yanıt Örneği
{
"data": {
"chainerId": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
"removedAt": "2026-03-17T11:20:00.000Z"
},
"meta": null,
"error": null
}Yanıt Alanları
| Alan | Tür | Açıklama |
|---|---|---|
chainerId | string | Çıkarılan üyenin kullanıcı kimliği |
removedAt | string | Üyenin çıkarıldığı anın ISO 8601 zaman damgası |
Kod Örnekleri
curl -X DELETE "https://api.chainabit.com/api/v1/workspaces/$WORKSPACE_ID/members/$CHAINER_ID" \
-H "Authorization: Bearer $TOKEN"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();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()