Nilovon Hetzner Cloud SDK
API

Actions API

Monitor and retrieve action status

Actions API

The Actions API allows you to monitor and retrieve action status.

:::warning The list() method may return a 410 error as the Hetzner Cloud API has removed the ability to list arbitrary actions. Use resource-specific action endpoints instead (e.g., client.servers.listActions(serverId)). :::

Get Action

Returns a specific Action object.

const action = await client.actions.get(12345);

Example

const action = await client.actions.get(12345);

console.log(`Command: ${action.action.command}`);
console.log(`Status: ${action.action.status}`);
console.log(`Progress: ${action.action.progress}%`);

if (action.action.status === 'success') {
  console.log(`Completed in ${action.action.finished}`);
} else if (action.action.status === 'error') {
  console.error(`Error: ${action.action.error?.message}`);
}

// Show resources affected by this action
action.action.resources.forEach(resource => {
  console.log(`  - ${resource.type} #${resource.id}`);
});

Getting Action IDs

Action IDs are returned when you perform operations on resources. For example:

// Creating a server returns an action
const server = await client.servers.create({...});
const actionId = server.action.id;

// Monitor the action
const action = await client.actions.get(actionId);

Resource-Specific Actions

Most resources provide their own action endpoints:

// List actions for a server
const actions = await client.servers.listActions(12345);

// List actions for a network
const actions = await client.networks.listActions(12345);

// Get a specific action for a server
const action = await client.servers.getAction(12345, 67890);

Types

type ActionStatus = 'running' | 'success' | 'error';

interface Action {
  id: number;
  command: string;
  status: ActionStatus;
  progress: number;
  started: string;
  finished: string | null;
  resources: Array<{
    id: number;
    type: string;
  }>;
  error: {
    code: string;
    message: string;
  } | null;
}

On this page