In this example, you will add new environment variables to a project and list the details of the added values.
run.ts
import { Vercel } from '@vercel/sdk';
const VERCEL_TOKEN = process.env.VERCEL_TOKEN;
const vercel = new Vercel({
bearerToken: VERCEL_TOKEN,
});
const projectName = 'my-project'; //The project name used in the deployment URL
async function addAndListEnvVars() {
try {
// Add new environment variables
const addResponse = await vercel.projects.createProjectEnv({
idOrName: projectName,
upsert: 'true',
requestBody: [
{
key: 'API_KEY',
value: 'secret_value',
target: ['production', 'preview'],
type: 'encrypted',
},
{
key: 'DEBUG',
value: 'true',
target: ['development'],
type: 'plain',
},
],
});
console.log(
'Added environment variables:',
JSON.stringify(addResponse, null, 2),
);
} catch (error) {
console.error(
error instanceof Error ? `Error: ${error.message}` : String(error),
);
}
}
addAndListEnvVars();
In this example, you manage environment variables across multiple projects and environments.
run.ts
import { Vercel } from '@vercel/sdk';
import { OneTarget } from '@vercel/sdk/models/operations/createprojectenv';
const PROJECTS = ['project-id-1', 'project-id-2', 'project-id-3'];
const environments = ['development', 'preview', 'production'];
const VERCEL_TOKEN = process.env.VERCEL_TOKEN;
const vercel = new Vercel({
bearerToken: VERCEL_TOKEN,
});
async function manageEnvironmentVariables() {
try {
const variables = [
{ key: 'API_URL', value: 'https://api.example.com' },
{ key: 'DEBUG', value: 'true', environments: ['development', 'preview'] },
{
key: 'SECRET_KEY',
value: 'super-secret-key',
encrypt: true,
environments: ['production', 'preview'],
},
];
for (const projectId of PROJECTS) {
console.log(`Managing environment variables for project: ${projectId}`);
for (const variable of variables) {
const targets =
(variable.environments as OneTarget[]) ||
(environments as OneTarget[]);
const addEnv = await vercel.projects.createProjectEnv({
idOrName: projectId,
upsert: 'true',
requestBody: {
key: variable.key,
value: variable.value,
target: targets,
type: variable.encrypt ? 'encrypted' : 'plain',
},
});
console.log(addEnv.created);
}
const readEnvs = await vercel.projects.filterProjectEnvs({
idOrName: projectId,
});
console.log(
'Env Details for ',
projectId,
':',
JSON.stringify(readEnvs, null, 2),
);
}
} catch (error) {
console.error('Error:', error.response?.data || error.message);
}
}
manageEnvironmentVariables();