Collects diagnostics for only the box you call this on -- Api and Worker logs, appsettings, and service status -- and returns them as a zip, in one call, no polling. This is also what a fleet-wide bundle pulls from each peer under the hood; call it directly when you only need this one server's info. For every server in the fleet at once, see Request a Fleet Support Bundle.

Having trouble reaching the API, or logging in from another machine? See Network Access & Authentication Security -- by default the Api only answers localhost, and PowerShell needs an extra flag once it does answer elsewhere.

Order of Operations

  1. Authenticate to the API.
  2. Request the bundle.
  3. Save the response body as a zip file.

The call

GET /api/diagnostics/support-bundle

No route parameters, no query parameters, no request body.

Permission needed: Support.Collect.

C# example

// Step 1: Authenticate to the API.
using var handler = new HttpClientHandler { UseDefaultCredentials = true };
using var client = new HttpClient(handler) { BaseAddress = new Uri("http://your-minion-agent-server:5443") };
client.DefaultRequestHeaders.Add("X-App-Name", "MyIntegration");

// Step 2: Request the bundle.
var response = await client.GetAsync("/api/diagnostics/support-bundle");
response.EnsureSuccessStatusCode();

// Step 3: Save it as a zip file.
var fileName = response.Content.Headers.ContentDisposition?.FileName ?? "SupportBundle.zip";
await using var fileStream = File.Create(fileName);
await response.Content.CopyToAsync(fileStream);
Console.WriteLine($"Saved {fileName}");

Not on a domain machine? Swap in the app-account login from Calling the API From Your Own Code.

PowerShell example

# Step 1: Authenticate to the API.
$headers = @{ "X-App-Name" = "MyIntegration" }

# Steps 2 & 3: Request the bundle and save it as a zip file. (-AllowUnencryptedAuthentication: PowerShell requires this for Windows auth over plain http to anything but localhost -- see "Network Access & Authentication Security".)
Invoke-WebRequest -Uri "http://your-minion-agent-server:5443/api/diagnostics/support-bundle" `
    -UseDefaultCredentials -AllowUnencryptedAuthentication -Headers $headers -OutFile "SupportBundle.zip"

What you get back

200 OK, Content-Type: application/zip -- the response body is the zip file itself, not JSON.

Codes this call can return

See API Response Codes for what each one means in general. For this specific call:

  • 200 -- the bundle.
  • 403 -- you don't have Support.Collect.

Not audited -- it's a read, and nothing is persisted (the zip is a temp file, collected fresh on every call).

See also: Request a Fleet Support Bundle.