Tenants API
Manage tenants (organizations) in Vyntech Account. Tenants are the top-level isolation boundary — each tenant has its own users, roles, sessions, settings, and policies.
Base URL: https://id.vyntech.com.au/api/v1 — Tenant creation requires platform-level access. Other operations require authentication within the tenant or platform scope for cross-tenant access.
Create Tenant
Creates a new tenant with default settings. Requires platform-level API key or admin token. The slug must be unique and URL-safe.
/api/v1/tenants🔒 AuthCreate a new tenant (platform admin only).
{
"name": "Acme Corporation",
"slug": "acme-corp",
"plan": "pro",
"contact_email": "admin@acme-corp.com"
}Register Tenant (Self-Service)
Self-service tenant registration — creates a tenant and its first admin user in one call. This is the endpoint you use for "Sign up your organization" flows.
/api/v1/tenants/registerPublicRegister a new tenant with an admin user (public).
{
"tenant_name": "Beta Inc",
"tenant_slug": "beta-inc",
"admin_email": "founder@beta-inc.com",
"admin_password": "SecureP@ss2024!",
"admin_display_name": "Alex Founder"
}List Tenants
Returns a paginated list of all tenants. Requires platform-level access.
/api/v1/tenants🔒 AuthList all tenants (platform admin only).
Get Tenant
Returns a specific tenant by ID. Users can access their own tenant; platform admins can access any.
/api/v1/tenants/:id🔒 AuthGet a tenant by ID.
Get Tenant by Slug
Looks up a tenant by its URL-safe slug. Useful for resolving tenant context from subdomains or URL paths in your frontend.
/api/v1/tenants/by-slug/:slug🔒 AuthGet a tenant by slug.
Update Tenant
Updates a tenant's name, contact email, or plan. Requires settings:write permission within the tenant, or platform-level access.
/api/v1/tenants/:id🔒 AuthUpdate tenant details (partial update).
{
"name": "Acme Corp International",
"contact_email": "support@acme-corp.com"
}Check Slug Availability
Checks whether a slug is available for use. Useful for real-time validation in registration forms. This is a public endpoint — no authentication required.
/api/v1/tenants/check-slug/:slugPublicCheck if a tenant slug is available.