Check the Status of an Async Crawl or Transcription Job API

Returns the status of an asynchronous job started by crawl_profile or request_transcript: pending, processing, completed or failed. Free to call: polling must never cost credits. Poll every 10–30 seconds; jobs typically complete within a few minutes.

A free polling endpoint for the asynchronous skills. When crawl_profile, request_transcript or download_post_media returns a job reference, get_job_status is how you find out whether that work is still pending, processing, done or failed. It never costs credits, so an agent is never punished for checking carefully.

FreeRead-only

How to call it

GET /api/v1/jobs/{jobRef}. Authenticate with your API key. Same call in three languages:

cURL

curl -X GET "https://viraloutliers.com/api/v1/jobs/EXAMPLE_ID" \
  -H "Authorization: Bearer so_live_YOUR_KEY"

Python (requests)

import requests

r = requests.get(
"https://viraloutliers.com/api/v1/jobs/EXAMPLE_ID",
    headers={"Authorization": "Bearer so_live_YOUR_KEY"},
)
print(r.json())

JavaScript (fetch)

const res = await fetch("https://viraloutliers.com/api/v1/jobs/EXAMPLE_ID", {
  method: "GET",
  headers: { "Authorization": "Bearer so_live_YOUR_KEY" },
});
const data = await res.json();
console.log(data);

Parameters

NameTypeDescription
jobRef*string (path)Job reference returned by an async skill.

What it does

Given a job reference from an async skill, it returns the current state: pending, processing, completed or failed. That is the signal an agent waits on before collecting a result, the transcript via get_post, the crawled profile via search, or the finished adaptation via get_remix_result.

Polling is free by design. Checking a job's progress should never cost money, so you can poll as often as your backoff allows without touching your balance. Only the underlying work (the crawl or transcription) was billed, and that spend is refunded automatically if the job ultimately fails.

When to use it

Use it in the wait loop after every async submission: submit the job, then poll get_job_status every 10-30 seconds with backoff until it reports completed or failed, and branch accordingly. Jobs typically finish within a few minutes, so a short interval keeps latency low without hammering the endpoint.

Because it is free and read-only, it is also the safe way to reconcile state after a restart or timeout: hand it a job reference you stored earlier and it tells you whether the work already finished, so you collect the result instead of paying to run it again.

Pricing

This skill is free and never spends credits.

Agent workflows

  • Poll loop: submit job → poll every 15s with backoff → fetch result on completion.

Frequently asked questions

How do agents handle long-running jobs without blocking?

Async skills return a job reference immediately. Poll get_job_status (free) until it reports completed, then fetch the result: get_post for transcripts, search for crawled profiles.

Does polling for job status cost credits?

No. get_job_status is free and unlimited by design, so an agent is never penalized for checking whether its work is done. Only the underlying billable job (a crawl or a transcription) costs credits, and that charge is refunded automatically if the job ends up failing.