Skip to content

Jobs

Async work units. Prefer runs for application capabilities; use jobs when you need direct control over job type and infrastructure targets.

POST /v1/jobs

Returns 202 with job_ id and status: queued.

LLM job

bash
curl -s -X POST https://api.skilleo.org/v1/jobs \
  -H "Authorization: Bearer $SKILLEO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"type":"llm","input":{"objective":"Write a headline about Kenya wildlife"},"options":{"provider":"minimax","optimize_for":"cost"}}'

GPU image job — requires compute_id or endpoint_id:

bash
curl -s -X POST https://api.skilleo.org/v1/jobs \
  -H "Authorization: Bearer $SKILLEO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"type":"image","compute_id":"cmp_...","input":{"prompt":"a red cube","steps":8,"width":512,"height":512}}'

Provide either compute_id or endpoint_id for type=image, not both.

Job types

typeCapabilityTarget requiredProvider routing
imageimage.generateYes (compute_id or endpoint_id)RunPod
researchresearch.gatherNoOptional LLM for synthesis
compositioncomposition.layoutNo
llm, textllm.generate / text.generateNoAny connected LLM
speechspeech.generateNoMiniMax or ElevenLabs
voice_clonevoice.cloneNoMiniMax or ElevenLabs

options on the job (or on the parent run) may include provider, optimize_for, compute_id, and endpoint_id.

TargetBackend
compute_idPod /generate (pod must already serve inference)
endpoint_idServerless /run + poll

GET /v1/jobs/{id}

Poll until status is completed, failed, or cancelled.

bash
curl -s https://api.skilleo.org/v1/jobs/job_abc123 \
  -H "Authorization: Bearer $SKILLEO_API_KEY"

Failed jobs keep HTTP 200 with error.code set on the envelope.

Completed output (no filesystem paths): data.output includes filename, content_type, and download (e.g. /v1/jobs/job_abc123/output). Content type follows job type (image/png, application/json, audio/mpeg, etc.).

GET /v1/jobs/{id}/output

Returns job output bytes. Media type matches the job (image/png, audio/mpeg, application/json, …). Same ownership as the job.

bash
curl -s -o output.mp3 https://api.skilleo.org/v1/jobs/job_abc123/output \
  -H "Authorization: Bearer $SKILLEO_API_KEY"
CodeWhen
OUTPUT_NOT_READYJob still running
OUTPUT_UNAVAILABLEJob failed
OUTPUT_MISSINGFile not on server

Job states

queuedrunningcompleted | failed

Skilleo — /v1 at api.skilleo.org