Skip to main content
By default, all verified domains are available to every project within your team. Project limits allow you to restrict a domain so that only specific projects can send emails from it.

When to Use Project Limits

Project limits are useful when you need to enforce boundaries between different parts of your organization:
Use CaseExample
Multi-brand separationRestrict mail.brand-a.com to only the Brand A project
Environment isolationPrevent staging projects from accidentally using production domains
Security boundariesLimit sensitive domains to specific applications
If all your projects share the same domains, you don’t need to configure project limits—the default unrestricted behavior works well for most teams.

How It Works

Domains can be in one of two states:
StateDescription
UnrestrictedDomain can be used by any project in your team (default)
RestrictedDomain can only be used by explicitly selected projects
When a project attempts to send an email using a restricted domain it doesn’t have access to, the API returns an error:
{
  "message": "The domain 'mail.acme.com' is not available for use by this project."
}

Configuring Project Limits

You can configure which projects have access to a domain from the domain settings page.
Domain project limits configuration

Restricting a Domain

  1. Navigate to Domains in your dashboard
  2. Click on the domain you want to restrict
  3. In the project limits section, select the projects that should have access
  4. Save your changes

Removing Restrictions

To make a domain available to all projects again, simply remove all project selections. An empty selection means the domain is unrestricted and available to all projects in your team.

Managing via API

You can manage project limits programmatically using the Team API.

Restrict a Domain to Specific Projects

curl -X PUT "https://api.lettermint.co/v1/domains/{domainId}/projects" \
  -H "Accept: application/json" \
  -H "Authorization: Bearer YOUR_TEAM_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "project_ids": ["project-uuid-1", "project-uuid-2"]
  }'

Remove All Restrictions

Pass an empty array to make the domain available to all projects:
curl -X PUT "https://api.lettermint.co/v1/domains/{domainId}/projects" \
  -H "Accept: application/json" \
  -H "Authorization: Bearer YOUR_TEAM_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "project_ids": []
  }'
Success Response:
{
  "data": {
    "id": "domain-uuid",
    "domain": "mail.acme.com",
    "verified_at": "2024-01-15T10:30:00.000Z"
  },
  "message": "Domain projects updated successfully."
}
See the Update Domain Projects endpoint for the full API reference.

Access Control

When a domain is restricted to specific projects, it affects who can manage the domain:
RoleCan Edit Domain?
Team OwnerAlways
Team MemberOnly if they have access to at least one of the restricted projects
Team members who don’t have access to any of the restricted projects will see the domain in the list but cannot modify its settings.

Troubleshooting

The domain is restricted to projects you don’t have access to. Contact your team owner to either:
  • Grant you access to one of the restricted projects, or
  • Add a project you have access to in the domain’s project limits
Remove all project selections in the dashboard, or via API, set project_ids to an empty array [].
No. An empty project list means the domain is unrestricted and available to all projects. To completely disable a domain, you would need to delete it instead.