Skip to content
BACKGROUND JOBS

Slow work, off your request.
Results on a webhook.

Give us a URL to call. We queue the run, call it, wait for the answer, retry on errors and POST the result back to you. Your users never wait on a spinner.

Runs up to 60 minutes Cron schedules Signed webhooks
BACKGROUND JOBS · LIVE
0 9 * * *CRON · TIME ZONEQUEUEDRUNNINGDONE≤ 60 MINRETRIES 0-5ATTEMPT 1/4YOUR SERVERPOST /runsWEBHOOK · HMAC-SHA256POST /api/jobs-webhook
60 minlongest run on Pro, 5 on Free
50,000runs a month on Free, at no charge
500,000run-seconds a month per project included on Pro
WHAT YOU GET

Everything included.
Nothing to wire up.

Run long API calls and AI workflows in the background, with retries, schedules and signed webhooks.

Long runs, no timeouts

We call your URL and wait for the full answer, for up to 5 minutes on Free and 60 on Pro. Your own request returns at once with a run id.

Retries built in

A network error, 429 or 5xx is tried again, up to 5 extra times. Set retries to 0 for work that is not safe to run twice.

Cron schedules

Five-field cron with an IANA time zone, daylight saving included. Each time it comes due, a normal run starts with its own id.

Signed webhooks

We POST the finished run to your callbackUrl or the dashboard webhook. Every request carries an HMAC-SHA256 signature made with your key.

Run it later

Start a run after a delay or at an exact time, up to 7 days ahead. Good for reminders and follow-ups.

Poll, list and cancel

Read any run by id, list recent runs by status, or cancel one. The Runs page in the dashboard shows the last 100.

HOW IT WORKS

Three steps
to production.

  1. 01
    Deploy

    Click Deploy on the Jobs card. You get JOBS_API_URL and JOBS_API_KEY. Keep the key on your server.

  2. 02
    Start a run

    POST the URL to call, with its method, headers and body. You get the run's id back at once, status queued.

  3. 03
    Get the result

    Poll the run by id, or receive it on a webhook route that checks x-cloudhike-signature.

Read the Background jobs guide
start-run.ts
const res = await fetch(`${process.env.JOBS_API_URL}/runs`, {
  method: "POST",
  headers: {
    "content-type": "application/json",
    "x-api-key": process.env.JOBS_API_KEY!,
  },
  body: JSON.stringify({
    url: "https://api.example.com/generate-report",
    body: { reportId: 42 },
    retries: 3,
    callbackUrl: "https://example.com/api/jobs-webhook",
  }),
});
const { id, status } = await res.json(); // 202, status "queued"
BETTER TOGETHER

One project.
Every service connected.

Same project, same .env, same bill.

FAQ

Questions about
Background jobs.

How long can a run take?
Up to 5 minutes on Free and 60 minutes on Pro. Set timeoutSeconds per run; the default is 300.
What gets retried?
Network errors, 429 and 5xx answers, up to retries extra tries (0 to 5, default 3). A timeout or any other answer, such as 400, is final.
Can my URL be called twice for one run?
Rarely, yes. Runs are delivered at least once, for example after a worker restart mid-run. Use the x-cloudhike-run-id header to skip a run you already handled.
How much does it cost?
Background jobs are free on Free, within its limits. On Pro, each project includes 500,000 run-seconds a month, then $0.01 per 1,000 run-seconds, counted as the time we wait on your URL.

Add Background jobs to your project.
Free to start.

Postgres, auth, storage, Redis, email and AI models. One API key.