x-api-key header, JSON in the body, structured JSON back.
Synchronous by default
By default the call holds until the job finishes and returns the job’s output as the response body. The status code tells you how the run went:
Synchronous calls fit jobs that finish in seconds to a couple of minutes. Desktop automations are slower than a database query; set your client timeout accordingly.
Asynchronous for long work
For long-running jobs, ask for an execution instead of holding the connection. Add?async=1 to the URL (or send the x-job-async: true header) and the call returns 202 immediately:
queued to running to a terminal state, with done: true and the output once it finishes. If you would rather be told than ask, status webhooks push events to your endpoint as the run progresses.