Every call to Minion Agent's Api returns one of the codes below. This page is the one place they're explained -- each individual endpoint page just lists which of these it can actually return, and links back here instead of re-explaining what each one means.
| Code | Name | What it means |
|---|---|---|
| 200 | OK | The call succeeded and the body has what you asked for. |
| 201 | Created | Something new was created; the body describes it. |
| 202 | Accepted | The request was accepted and queued -- it hasn't necessarily finished yet. Used by anything that hands work off to run in the background (starting a job, for example); check back with the matching status call to see how it turned out. |
| 204 | No Content | The call succeeded. There's nothing to hand back. |
| 400 | Bad Request | The request itself was invalid -- missing or malformed input, or (as of this version) a missing X-App-Name header. The body is a plain-text message saying what was wrong. |
| 401 | Unauthorized | Signing in failed -- wrong username/password, or an expired/invalid session token. |
| 403 | Forbidden | You're signed in fine, but not allowed to do this specific thing. The body is JSON: { "error": "<reason>" }. |
| 404 | Not Found | Whatever you asked for doesn't exist -- or, for a status check on something still running, just hasn't produced a result yet. That second case is normal, not a failure. |
| 409 | Conflict | The action can't happen right now because something else has to be resolved first (a name that's already in use, a thing that's still referenced elsewhere and has to be detached before it can be removed). |
| 500 | Internal Server Error | Something went wrong on the server's end. |
Two things worth knowing if you're building against this for real
X-App-Name is required on every call, no matter what. Leave it out and you get a 400 before anything else even runs -- see Calling the API From Your Own Code for why and how to set it.
Deserializing responses in C#? The Api sends JSON as camelCase (runCorrelationId, not RunCorrelationId). A plain PascalCase C# record won't match that by default -- fields silently come back null instead of throwing, which is a much harder bug to notice. Every C# example in this guide sets this once and reuses it:
var jsonOptions = new JsonSerializerOptions(JsonSerializerDefaults.Web);
...and passes jsonOptions into every ReadFromJsonAsync/GetFromJsonAsync/PostAsJsonAsync call. PowerShell's Invoke-RestMethod doesn't have this problem -- its property access is already case-insensitive.