In this example, you will add a new domain to a project and check its configuration.
run.ts
import { Vercel } from '@vercel/sdk';
const VERCEL_TOKEN = process.env.VERCEL_TOKEN;
const vercel = new Vercel({
bearerToken: VERCEL_TOKEN,
});
async function addAndReviewDomain() {
const domain = 'www.example.com';
try {
// Add a new domain
const addDomainResponse = await vercel.projects.addProjectDomain({
idOrName: 'my-project', //The project name used in the deployment URL
requestBody: {
name: domain,
},
});
console.log(`Domain added: ${addDomainResponse.name}`);
console.log('Domain Details:', JSON.stringify(addDomainResponse, null, 2));
} catch (error) {
console.error(
error instanceof Error ? `Error: ${error.message}` : String(error),
);
}
}
addAndReviewDomain();
In this example, you will add a custom domain, verify it, and set up a redirect from a subdomain to the main domain.
run.ts
import { Vercel } from '@vercel/sdk';
const VERCEL_TOKEN = process.env.VERCEL_TOKEN;
const vercel = new Vercel({
bearerToken: VERCEL_TOKEN,
});
async function setupDomainWithRedirect() {
const mainDomain = 'example.com';
const subDomain = 'hello.example.com';
const projectName = 'my-project'; //The project name used in the deployment URL
try {
// Add main domain
const mainDomainResponse = await vercel.projects.addProjectDomain({
idOrName: projectName,
requestBody: {
name: mainDomain,
},
});
console.log(`Main domain added: ${mainDomainResponse.name}`);
const checkConfiguration = await vercel.domains.getDomainConfig({
domain: mainDomain,
});
if (mainDomainResponse.verified && !checkConfiguration.misconfigured) {
// Add subdomain with 301 redirect to main domain
const subDomainResponse = await vercel.projects.addProjectDomain({
idOrName: projectName,
requestBody: {
name: subDomain,
redirect: `https://${mainDomain}`,
redirectStatusCode: 301,
},
});
console.log(`Subdomain added and redirect set up: ${subDomain}`);
}
} catch (error) {
console.error(
error instanceof Error ? `Error: ${error.message}` : String(error),
);
}
}
setupDomainWithRedirect();