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
- Authenticate to the API.
- Request the bundle.
- 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.