Skip to main content

Variable API

VariableClient manages n8n environment variables.

Access​

const variable = client.variables();

Methods​

list(params?)​

List variables with optional filters.

const { data, nextCursor } = await client.variables().list({
limit: 50,
projectId: 'proj-1',
state: 'empty',
});

get(id, params?)​

Get a variable by ID. The n8n API has no direct GET /variables/{id} endpoint, so this method paginates through all results to find the matching variable. On instances with many variables this is an O(n) scan across pages.

const variable = await client.variables().get('var-123', { projectId: 'proj-1' });

create(data)​

Create a new variable.

await client.variables().create({
key: 'MY_API_KEY',
value: 'secret-value',
projectId: 'proj-1',
});

update(id, data)​

Update a variable.

await client.variables().update('var-123', {
key: 'MY_API_KEY',
value: 'new-value',
});

delete(id)​

Delete a variable.

await client.variables().delete('var-123');

VariableResource​

Use getResource() or listResources() to get a bound VariableResource instance.

const resource = await client.variables().getResource('var-123', { projectId: 'proj-1' });

Properties​

PropertyTypeDescription
idstringVariable ID
keystringVariable key
valuestringVariable value

Methods​

MethodReturnsDescription
refresh()thisRe-fetch the variable from the API via paginated list
update(data)thisUpdate the variable — merges local snapshot
patch(data)thisConvenience update — merges partial fields into the current variable snapshot before updating
delete()voidDelete the variable

Snapshot management​

refresh() calls replaceSnapshot() with the fresh variable data. update() and patch() call mergeSnapshot() locally since the n8n API returns no body on update.