Çalışma Alanları
Farklı projeler veya müşteriler için birden fazla çalışma alanı oluşturun ve yönetin
Çalışma alanları (tenant'lar), e-posta operasyonlarınız için izole edilmiş ortamlardır. Her çalışma alanının kendi alan adları, aboneleri, API anahtarları ve faturalandırması vardır. Tek bir kullanıcı hesabı birden fazla çalışma alanına ait olabilir.
Bu sayfa /v1/account/tenants altındaki tenant API'sini kapsar: bu sayfadaki "çalışma alanı" bir tenanttır (faturalandırma/alan adı izolasyon sınırı). /v1/account/workspaces farklı, ayrı bir özelliktir: bir tenant içindeki kaynakları düzenlemek için kullanılan alt çalışma alanlarıdır ve bu sayfada belgelenmemiştir.
Alt çalışma alanları düzenler, tenant'lar ayırır
Bir alt çalışma alanı (/v1/account/workspaces) kaynakları yalnızca tek bir tenant içinde, mevcut rollerle düzenler. Faturalandırma, teslim edilebilirlik veya güvenlik sınırı değildir. Aşağıdakiler her zaman tenant'a aittir:
- Faturalandırma: plan, abonelik ve faturalar
- Bastırma (suppression) listesi
- Gönderim limitleri ve kotalar
- Gönderim IP'leri ve gönderici itibarı
- API anahtarı güvenliği
Bağımsız bir işletme yürütüyorsanız veya ayrı bir müşteriye hizmet veriyorsanız, bunun için alt çalışma alanı değil, ayrı bir tenant oluşturun. Aksi halde o müşteri, tenant içindeki herkesle bastırma listesini, gönderim limitlerini ve itibarı paylaşır.
Doğrulama Seviyeleri
Her çalışma alanının gönderim yeteneklerini belirleyen bir doğrulama seviyesi vardır:
| Seviye | Değer | Açıklama |
|---|---|---|
Restricted | -1 | Gönderim devre dışı (ihlal tespit edildi) |
Sandbox | 0 | Yeni çalışma alanları için varsayılan: yalnızca çalışma alanının sandbox izin listesine gönderim yapılabilir |
BasicVerified | 1 | E-posta, telefon ve 2FA hepsi doğrulandı, orta düzeyde sınırlar |
SenderVerified | 2 | Alan adı kimlik doğrulaması veya doğrulanmış tek bir gönderen, standart sınırlar |
BusinessVerified | 3 | İş doğrulama tamamlandı: tam sınırlar |
Yeni çalışma alanları, gönderimin çalışma alanına özel bir izin listesiyle sınırlı olduğu Sandbox seviyesinde başlar. BasicVerified, yalnızca e-posta değil, e-posta, telefon ve iki faktörlü kimlik doğrulamanın birlikte olmasını gerektirir. SenderVerified, alan adı kimlik doğrulaması (SPF+DKIM+DMARC) veya doğrulanmış tek bir gönderen gerektirir: ikisinden biri, özellikle alan adı doğrulaması değil.
Çalışma Alanlarını Listeleme
Mevcut kullanıcının ait olduğu tüm çalışma alanlarını görüntülemek için:
GET https://api.mail.land/v1/account/tenantscurl https://api.mail.land/v1/account/tenants \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."[
{
"publicId": "k3m9x2p7qw4rtz",
"name": "My Company",
"role": "owner",
"isActive": true,
"status": "active"
},
{
"publicId": "t2p9k4m7x1n6w3",
"name": "Client Project",
"role": "member",
"isActive": true,
"status": "active"
}
]Yanıt, { "tenants": [...] } değil, düz bir dizidir. Burada roleName, verificationLevel, verificationLevelName, isCurrent veya createdAt yoktur, isActive ve status, isCurrent'ın yerini alır ve doğrulama seviyesi ayrıca alınır (bkz. Faturalandırma). id, tenantın dahili sayısal tanımlayıcısıdır; publicId, API çağrılarında ve arayüzlerde kullanılması gereken değerdir (sayısal id alanı yalnızca mevcut API bunu döndürdüğü için burada gösterilmektedir: bunun etrafında istemci mantığı kurmayın, çünkü istemciye yönelik yanıtlardan kaldırılmaktadır).
Çalışma Alanı Oluşturma
POST https://api.mail.land/v1/account/tenants{
"name": "New Project",
"description": "Optional workspace description"
}| Alan | Tip | Zorunlu | Açıklama |
|---|---|---|---|
name | string | Evet | Çalışma alanı adı, 1-255 karakter |
description | string | Hayır | İsteğe bağlı açıklama, en fazla 500 karakter |
curl -X POST https://api.mail.land/v1/account/tenants \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \
-H "Content-Type: application/json" \
-d '{ "name": "New Project" }'Yanıt
Çalışma Alanını Değiştir yanıtıyla aynı şekilde 201 Created döner: yeni çalışma alanına özel yeni tokenlar, artı tenant altında iç içe geçmiş çalışma alanı kaydı:
{
"accessToken": "eyJhbGciOiJIUzI1NiIs...",
"refreshToken": "rt_new_token...",
"expiresAt": "2026-02-17T13:00:00Z",
"tenant": {
"publicId": "u6w1m8k3p5x9n2",
"name": "New Project",
"role": "owner",
"isActive": true,
"status": "active"
}
}Oluşturan kullanıcıya otomatik olarak Owner rolü atanır. Bu yanıtta verificationLevel/verificationLevelName yoktur: doğrulama/politika durumu için Faturalandırma sayfasına bakın.
Çalışma Alanı Değiştirme
Sonraki API çağrılarında aktif çalışma alanını değiştirin:
POST https://api.mail.land/v1/account/tenants/switch{
"tenantId": "t2p9k4m7x1n6w3",
"refreshToken": "rt_a1b2c3d4e5..."
}refreshToken isteğe bağlıdır: atlanırsa, bunun yerine refresh token çerezindeki değer kullanılır. tenantId, Çalışma Alanlarını Listele'den gelen çalışma alanının publicId değeridir.
curl -X POST https://api.mail.land/v1/account/tenants/switch \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \
-H "Content-Type: application/json" \
-d '{ "tenantId": "t2p9k4m7x1n6w3" }'{
"accessToken": "eyJhbGciOiJIUzI1NiIs...",
"refreshToken": "rt_new_token...",
"expiresAt": "2026-09-25T15:00:00Z",
"tenant": {
"publicId": "t2p9k4m7x1n6w3",
"name": "Client Project",
"role": "member",
"isActive": true,
"status": "active"
}
}Çalışma alanı değiştirmek, hedef çalışma alanına kapsamlandırılmış yeni token'lar verir. Tenant alanları, Çalışma alanlarını listele yanıtıyla aynı şekle sahiptir; tenantId/tenantName/role olarak düz değil, tenant altında iç içedir.
Çalışma Alanını Güncelleme
Mevcut çalışma alanı ayarlarını güncelleyin:
PUT https://api.mail.land/v1/account/tenants/current{
"name": "Updated Project Name",
"description": "Optional workspace description"
}name 2-100 karakter uzunluğundadır; description isteğe bağlıdır, en fazla 500 karakter.
curl -X PUT https://api.mail.land/v1/account/tenants/current \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." \
-H "Content-Type: application/json" \
-d '{ "name": "Updated Project Name" }'Çalışma alanını yalnızca Owner ve Admin güncelleyebilir. Member, Viewer ve API anahtarları tipli bir 403 INSUFFICIENT_PERMISSIONS alır (eksik izin tenant.edit, details.permission içinde).
Yanıt
200 OK döner:
{
"publicId": "t2p9k4m7x1n6w3",
"name": "Updated Project Name",
"description": "Optional workspace description",
"status": "Active",
"createdAt": "2026-01-15T08:00:00Z"
}Çalışma Alanı Bağlamı
Tüm API istekleri aktif çalışma alanına kapsamlandırılmıştır. Çalışma alanı, token'ın aktif çalışma alanı talebi tarafından belirlenir. Kaynaklar (alan adları, aboneler, kampanyalar, API anahtarları) çalışma alanları arasında izole edilmiştir.
API anahtarları kullanıldığında, her anahtar tek bir çalışma alanına kapsamlandırılmıştır. Çalışma alanı değiştirmeye gerek yoktur, anahtar otomatik olarak bağlamı belirler.
Hata Yanıtları
| Durum | Kod | Açıklama |
|---|---|---|
400 | VALIDATION_FAILED | Geçersiz çalışma alanı adı |
403 | FORBIDDEN | Hedef çalışma alanının üyesi değil |
403 | INSUFFICIENT_PERMISSIONS | Yalnızca güncellemede: çağıran Member, Viewer veya bir API anahtarı, hiçbiri tenant.edit iznine sahip değil |
404 | TENANT_NOT_FOUND | Çalışma alanı bulunamadı (yalnızca güncellemede: bilinmeyen veya başka bir kiracıya ait çalışma alanına geçiş her zaman 403 FORBIDDEN döner, 404 değil) |
Sonraki Adımlar
- Ekip Yönetimi: çalışma alanınıza üye davet edin
- Faturalandırma: çalışma alanı aboneliğini yönetin
- Kimlik Doğrulama: token ve oturum yönetimi
- API Anahtarları: çalışma alanına kapsamlı API anahtarları oluşturun