Use the jobs API to run workflows and inspect results, and use the logs API to fetch executor logs for recent jobs.
x-api-key.POST /v1/jobs/create starts a run and returns a job_id. It does not return the data the workflow collected.returns is stored on the completed job as result. That object matches the workflow output schema.POST /v1/jobs/get until the job finishes, then read result. A job.completed webhook delivers the same field. See Webhooks.12345678curl -X POST "https://api.libretto.sh/v1/jobs/get" \ -H "x-api-key: $LIBRETTO_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "json": { "id": "<job-id>" } }'
12345678{ "job_id": "<job-id>", "workflow": "scrape-page", "status": "completed", "result": { "title": "Example Domain" } }
jobs namespace is reserved for workflows deployed by your tenant:123libretto cloud jobs create check-eligibility --params '{"member_id":"123"}' libretto cloud jobs status <job-id> libretto cloud jobs status <job-id> --watch
libretto cloud catalogue instead when discovering or running a
workflow publicly shared by another tenant./v1/jobs/createworkflow: deployed workflow nameparams: workflow input objectnonce: optional idempotency-style noncetimeout_seconds: optional timeout, default 1800, max 3600headless: optional boolean browser mode overridestart_url: optional start URL override for browser launchgpu: optional boolean GPU overrideviewport: optional { width, height } viewport overridecallback_url: optional callback URLcallback_secret: optional callback secretskip_callbacks: optional booleanresidential_proxy: optional residential proxy location objectdisable_default_proxy: optional boolean; Kernel only. Disables Kernel's default residential stealth proxy so traffic uses direct egress. Mutually exclusive with residential_proxy. Use when sites fail with ERR_TUNNEL_CONNECTION_FAILED on the default proxy.callback_url, you must also set callback_secret.startUrl, gpu, and viewport on the workflow definition so they travel with the deploy artifact. Use the job-level fields when you need a one-off override, or until the hosted executor applies workflow launch metadata automatically.residential_proxy for location-sensitive runs that need traffic to originate from a specific residential proxy country, US state, city, ZIP code, or ASN. See Residential proxy locations for the supported fields and combination rules.disable_default_proxy when the default managed proxy cannot reach the target (for example ERR_TUNNEL_CONNECTION_FAILED). It cannot be combined with residential_proxy.callback_url and callback_secret, Libretto Cloud delivers only to that per-job callback.skip_callbacks is true, Libretto Cloud does not deliver callbacks or stored webhooks.callback_url for one-off or environment-specific result delivery. Use stored webhook endpoints for long-lived production destinations. See Webhooks for payload fields and signature headers.successjob_idstatus: always runningmessageresult. See Get the workflow output./v1/jobs/liststatus: optional status filterlimit: optional page size, default 20, max 100cursor: optional pagination cursor from next_cursorjobsnext_cursorjob_iddeployment_idworkflow_idworkflowstatuscreated_atcompleted_at/v1/jobs/getid: job idjob_iddeployment_iddeployment_versionworkflow_idworkflowparamsstatuscreated_atstarted_atcompleted_atresult: the workflow handler return value after the job completes. Matches schemas.output.errormapped_stack/v1/jobs/debugReportid: job idjob_iddebug_agent_statusdebug_agent_modeerrortldrhandoff_promptscreenshot_urldom_snapshot_urlautofix_summaryautofix_deployment_idemail_sent_atjob_errorjob_mapped_stackjob_paramsjob_workflow/v1/jobs/cancelid: job idsuccessmessage/v1/logs/listjobId: optional job idworkflow: optional workflow-name filterlevel: optional info, warn, or errorpageToken: optional next-page tokenlimit: optional page size, default 100, max 1000logsnextPageTokenjobIdworkflowlevelmessagetimestamp1234567891011121314curl -X POST "https://api.libretto.sh/v1/jobs/create" \ -H "x-api-key: $LIBRETTO_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "json": { "workflow": "check-eligibility", "params": { "memberId": "12345" }, "timeout_seconds": 300, "callback_url": "https://example.com/libretto/job-callback", "callback_secret": "replace-with-your-secret" } }'