Ekip Yönetimi
Ekip üyelerini davet edin, roller atayın ve çalışma alanınızdaki izinleri yönetin
Üyeleri çalışma alanınıza davet ederek ekibinizle iş birliği yapın. Her üyeye izinlerini belirleyen bir rol atanır.
Roller
| Rol | Değer | Açıklama |
|---|---|---|
Owner | 0 | Tam erişim, faturalandırma, sahiplik devri yapabilir |
Admin | 1 | Faturalandırma ve sahiplik devri dışında tam erişim |
Member | 2 | E-posta gönderme, alan adlarını yönetme, analizleri görüntüleme |
Viewer | 3 | Tüm kaynaklara salt okunur erişim |
Rol İzinleri
Member salt okunur değildir ve anahtar yönetiminden hariç tutulmamıştır: neredeyse her şeyi oluşturabilir ve düzenleyebilir. Yalnızca API anahtarlarını, alan adlarını ve webhook'ları silmek, ayrıca ekip/sahiplik yönetimi Admin'e özeldir.
| İzin | Owner | Admin | Member | Viewer |
|---|---|---|---|---|
| E-posta gönderme | Evet | Evet | Evet | Hayır |
| Alan adlarını yönetme | Evet | Evet | Evet | Hayır |
| Aboneleri yönetme | Evet | Evet | Evet | Hayır |
| Analizleri görüntüleme | Evet | Evet | Evet | Evet |
| API anahtarları oluşturma/döndürme | Evet | Evet | Evet | Hayır |
| API anahtarlarını / alan adlarını / webhook'ları silme | Evet | Evet | Hayır | Hayır |
| Webhook oluşturma/düzenleme | Evet | Evet | Evet | Hayır |
| Ayarları düzenleme (izleme dahil) | Evet | Evet | Evet | Hayır |
| Üye davet etme | Evet | Evet | Hayır | Hayır |
| Üye kaldırma | Evet | Evet | Hayır | Hayır |
| Rol güncelleme | Evet | Evet | Hayır | Hayır |
| Faturalandırmayı yönetme | Evet | Hayır | Hayır | Hayır |
| Sahiplik devri | Evet | Hayır | Hayır | Hayır |
| Çalışma alanını silme | Evet | Hayır | Hayır | Hayır |
Ekip Genel Bakış
Mevcut ekip üyelerini ve bekleyen davetleri alın:
GET https://api.mail.land/v1/account/teamcurl https://api.mail.land/v1/account/team \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."{
"members": [
{
"publicId": "mbr_a1b2c3d4e5",
"email": "[email protected]",
"fullName": "John Doe",
"role": "owner",
"status": "active",
"joinedAt": "2026-01-15T08:00:00Z",
"invitedByEmail": null,
"isCurrentUser": true
},
{
"publicId": "mbr_f6g7h8i9j0",
"email": "[email protected]",
"fullName": "Jane Smith",
"role": "admin",
"status": "active",
"joinedAt": "2026-01-20T10:00:00Z",
"invitedByEmail": "[email protected]",
"isCurrentUser": false
}
],
"pendingInvitations": [
{
"publicId": "inv_k1l2m3n4o5",
"email": "[email protected]",
"role": "member",
"status": "pending",
"createdAt": "2026-02-17T08:00:00Z",
"expiresAt": "2026-02-24T08:00:00Z",
"invitedByEmail": "[email protected]",
"invitedByName": "John Doe",
"isExpired": false
}
],
"totalMembers": 2,
"totalPendingInvitations": 1,
"maxMembers": 10
}Bu yanıtta id, userId, firstName/lastName, roleName/statusName, invitedBy, memberCount veya invitationCount yoktur: bunun yerine yukarıdaki alan adlarını kullanın. maxMembers workspace'in planını yansıtır: Free ve Pro'da 10, Max'te sınırsız. Bir koltuk, aktif bir üye (owner dahil) veya süresi dolmamış, bekleyen bir davettir; askıya alınmış üyeler ile süresi dolmuş, iptal edilmiş veya kabul edilmiş davetler koltuk saymaz. Limitteyken davet etme, kabul etme, yeniden etkinleştirme ve ilk SSO girişi 400 PLAN_LIMIT_REACHED döner. Plan düşürüldüğünde kimse çıkarılmaz veya askıya alınmaz: bu yalnızca workspace yeni limitin üzerindeyken yeni katılımları engeller.
Üye Durumları
| Durum | Açıklama |
|---|---|
active | Aktif ekip üyesi |
suspended | Bir yönetici tarafından askıya alındı |
Davet Durumları
Küçük harfli dizeler olarak döner:
| Durum | Açıklama |
|---|---|
pending | Kabul bekleniyor |
accepted | Davet kabul edildi |
expired | Davet süresi doldu (7 gün) |
revoked | Davet iptal edildi ("cancelled" değil) |
Ekip Üyesi Davet Etme
POST https://api.mail.land/v1/account/team/invite{
"email": "[email protected]",
"role": 2
}| Alan | Tür | Zorunlu | Açıklama |
|---|---|---|---|
email | string | Evet | Davet edilecek e-posta adresi |
role | int | Evet | Atanacak rol (1–3, Owner olarak davet edilemez) |
curl -X POST https://api.mail.land/v1/account/team/invite \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \
-H "Content-Type: application/json" \
-d '{ "email": "[email protected]", "role": 2 }'Davet edilen kullanıcı, daveti kabul etmek için bir bağlantı içeren e-posta alır. Davetler 7 gün sonra sona erer.
Daveti Kabul Etme
Bir daveti kabul etmek için tek bir genel rota vardır: sürümlenmemiştir (/v1 yolun bir parçası değildir) ve bir id yerine davet tokenıyla anahtarlanır:
POST https://api.mail.land/invitations/{token}/acceptMevcut bir MailLand kullanıcısı için önce davet edilen e-posta adresiyle oturum açın, ardından bu rotayı boş veya minimal bir gövdeyle çağırın, firstName/lastName/password gerekmez. Tamamen yeni bir kullanıcı için, hesabı oluşturmak ve tek adımda kabul etmek üzere aynı çağrıda fullName ve password gönderin.
{
"fullName": "New Member",
"password": "SecureP@ssw0rd!"
}curl -X POST https://api.mail.land/invitations/invitation-token-from-email/accept \
-H "Content-Type: application/json" \
-d '{"fullName": "New Member", "password": "SecureP@ssw0rd!"}'POST /v1/account/team/invitations/{id}/accept, ayrı bir /accept-public rotası veya GET /v1/team/invitations/{id}?token= yoktur. Hem "mevcut kullanıcı" hem de "yeni kullanıcı" kabulü, bu tek genel /invitations/{token}/accept uç noktasından geçer (Controllers/Public/InvitationsController.cs).
Davet Bilgilerini Alma
Kabul etmeden önce davet ayrıntılarını alın (genel, kimlik doğrulama gerekmez, token ile anahtarlanır, /v1 değil):
GET https://api.mail.land/invitations/{token}curl "https://api.mail.land/invitations/invitation-token-from-email"{
"tenantName": "My Company",
"role": "member",
"invitedByName": "John Doe",
"expiresAt": "2026-02-24T08:00:00Z",
"isExpired": false,
"alreadyAccepted": false,
"existingUserEmail": "[email protected]"
}Davetleri Yönetme
Daveti İptal Etme
DELETE https://api.mail.land/v1/account/team/invitations/{id}curl -X DELETE https://api.mail.land/v1/account/team/invitations/{id} \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."Başarılı olursa 204 No Content döner.
Daveti Yeniden Gönderme
POST https://api.mail.land/v1/account/team/invitations/{id}/resendcurl -X POST https://api.mail.land/v1/account/team/invitations/{id}/resend \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."Daveti yeniden göndermek, 7 günlük son kullanma süresini sıfırlar.
Üye Rolünü Güncelleme
PATCH https://api.mail.land/v1/account/team/members/{id}/role{
"role": 1
}curl -X PATCH https://api.mail.land/v1/account/team/members/{id}/role \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \
-H "Content-Type: application/json" \
-d '{ "role": 1 }'Rolleri yalnızca Sahipler ve Yöneticiler güncelleyebilir. Kendi rolünüzü değiştiremez veya birini Sahip olarak terfi ettiremezsiniz (bunun yerine sahiplik devrini kullanın).
Adminler yalnızca Member/Viewer rollerini yönetebilir: bir üyeyi Admin'e yükseltemez veya başka bir Admin'in rolünü değiştiremezler. Bunu yalnızca Owner yapabilir.
Askıya Alma ve Askıyı Kaldırma
Bir üyenin erişimini geçici olarak askıya alın:
POST https://api.mail.land/v1/account/team/members/{id}/suspendBir { reason?, credentialDecision?, transferToMemberId? } gövdesi, askıya alma sırasında o üyenin API anahtarlarına ne olacağını kontrol eder. credentialDecision, yalnızca üyenin en az bir canlı API anahtarı varsa zorunludur: bu durumda gönderilmezse çağrı, açığa çıkan anahtarları details içinde listeleyerek 400 CREDENTIAL_DECISION_REQUIRED döner. Aksi hâlde gövdenin tamamı atlanabilir.
| Alan | Değerler |
|---|---|
reason | offboarding, compromise, abuse, other |
credentialDecision | revoke, keep, transfer |
transferToMemberId | credentialDecision değeri transfer olduğunda zorunludur |
curl -X POST https://api.mail.land/v1/account/team/members/{id}/suspend \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."Askıya alınan bir üyeyi geri yükleyin:
POST https://api.mail.land/v1/account/team/members/{id}/reactivatecurl -X POST https://api.mail.land/v1/account/team/members/{id}/reactivate \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."Askıya alınan üyeler çalışma alanında oturum açamaz; API anahtarları, askıya alma sırasında verilen kimlik bilgisi kararını izler: keep ile üyenin anahtarları çalışmaya devam eder.
Üye Kaldırma
DELETE https://api.mail.land/v1/account/team/members/{id}Kaldırma işlemi aynı kimlik bilgisi kararını sorgu parametreleri olarak kabul eder:
DELETE https://api.mail.land/v1/account/team/members/{id}?reason=offboarding&credentialDecision=revoke&transferToMemberId=mbr_f6g7h8i9j0Askıya almada olduğu gibi, üye canlı bir API anahtarına sahipse credentialDecision zorunludur; aksi hâlde çağrı 400 CREDENTIAL_DECISION_REQUIRED döner.
curl -X DELETE https://api.mail.land/v1/account/team/members/{id} \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."Üye, çalışma alanından kaldırılır ve tüm çalışma alanı kaynaklarına erişimi anında sona erer.
Sahiplik Devri
Çalışma alanı sahipliğini başka bir üyeye devredin:
POST https://api.mail.land/v1/account/team/transfer-ownership{
"newOwnerMemberId": "mbr_f6g7h8i9j0"
}curl -X POST https://api.mail.land/v1/account/team/transfer-ownership \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \
-H "Content-Type: application/json" \
-d '{ "newOwnerMemberId": "mbr_f6g7h8i9j0" }'Sahiplik devri geri alınamaz. Mevcut sahip Yöneticiye düşürülür ve hedef üye yeni Sahip olur.
Hedef, aktif bir Admin olmalıdır (bir Member veya Viewer değil).
Hata Yanıtları
| Durum | Kod | Açıklama |
|---|---|---|
400 | VALIDATION_FAILED | Geçersiz e-posta veya rol |
400 | INVALID_REQUEST | Bu çalışma alanı için 50'den fazla bekleyen davet |
400 | CREDENTIAL_DECISION_REQUIRED | Askıya alma/kaldırma hedefinin canlı API anahtarları var ve credentialDecision gönderilmedi |
400 | CREDENTIAL_TRANSFER_TARGET_INVALID | Eksik veya geçersiz transferToMemberId ile credentialDecision: transfer |
403 | FORBIDDEN | Bu eylem için yetersiz izinler |
404 | RESOURCE_NOT_FOUND | Üye veya davet bulunamadı |
400 | PLAN_LIMIT_REACHED | Workspace planının koltuk limitine ulaştı (davet etme, kabul etme, yeniden etkinleştirme veya ilk SSO girişi) |
409 | CONFLICT | Kullanıcı zaten üye veya zaten bekleyen bir daveti var |
MEMBER_ALREADY_EXISTS diye bir kod yoktur: hem "zaten üye" hem de "davet zaten var" 409 CONFLICT döner.
POST /v1/account/team/leave (çalışma alanından kendiniz ayrılma) ve GET /v1/account/team/me (kendi üyelik kaydınız) da mevcuttur ve bu sayfanın başka bir yerinde belgelenmemiştir.
Sonraki Adımlar
- Çalışma Alanları: çalışma alanı ayarlarını yönetin
- Kimlik Doğrulama: kimlik doğrulama ve oturumlar
- Faturalandırma: abonelik ve ödeme yönetimi