Reference
API reference related to Multi Tenant Projects
Custom blocks
Start with our Custom Blocks and Actions that speed up your usage of the Vercel API.
Domain API reference
Add domain
Add a domain to your Vercel project programmatically using the create or transfer domain API.
SDK:
import { Vercel } from "@vercel/sdk";
const vercel = new Vercel({
  bearerToken: "<YOUR_BEARER_TOKEN_HERE>",
});
async function run() {
  const result = await vercel.domains.createOrTransferDomain({
    teamId: "team_1a2b3c4d5e6f7g8h9i0j1k2l",
    slug: "my-team-url-slug",
    requestBody: {
      name: "example.com",
      method: "add",
      token: "fdhfr820ad#@FAdlj$$",
    },
  });
  console.log(result);
}
run();Get domain status
Check domain configuration and verification status using the check domain API.
SDK:
import { Vercel } from "@vercel/sdk";
const vercel = new Vercel({
  bearerToken: "<YOUR_BEARER_TOKEN_HERE>",
});
async function run() {
  const result = await vercel.domains.getDomain({
    domain: "example.com",
    teamId: "team_1a2b3c4d5e6f7g8h9i0j1k2l",
    slug: "my-team-url-slug",
  });
  console.log(result);
}
run();Verify domain
Trigger domain ownership verification using the domain configuration API.
SDK:
import { Vercel } from "@vercel/sdk";
const vercel = new Vercel({
  bearerToken: "<YOUR_BEARER_TOKEN_HERE>",
});
async function run() {
  const result = await vercel.domains.getDomainConfig({
    domain: "example.com",
    teamId: "team_1a2b3c4d5e6f7g8h9i0j1k2l",
    slug: "my-team-url-slug",
  });
  console.log(result);
}
run();Remove domain
Remove a domain from your project using the remove domain API.
SDK:
import { Vercel } from "@vercel/sdk";
const vercel = new Vercel({
  bearerToken: "<YOUR_BEARER_TOKEN_HERE>",
});
async function run() {
  const result = await vercel.domains.deleteDomain({
    domain: "example.com",
    teamId: "team_1a2b3c4d5e6f7g8h9i0j1k2l",
    slug: "my-team-url-slug",
  });
  console.log(result);
}
run();List domains
Get all domains for a project using the list domains API.
REST API:
import { Vercel } from "@vercel/sdk";
const vercel = new Vercel({
  bearerToken: "<YOUR_BEARER_TOKEN_HERE>",
});
async function run() {
  const result = await vercel.domains.getDomains({
    limit: 20,
    since: 1609499532000,
    until: 1612264332000,
    teamId: "team_1a2b3c4d5e6f7g8h9i0j1k2l",
    slug: "my-team-url-slug",
  });
  console.log(result);
}
run();Error codes
| Code | Description | Solution | 
|---|---|---|
domain_already_in_use | Domain is used by another project | Verify domain ownership with TXT record | 
invalid_domain | Domain format is invalid | Check domain spelling and format | 
forbidden | Insufficient permissions | Check API token permissions | 
rate_limit_exceeded | Too many requests | Wait and retry with exponential backoff |