Skip to main content

Getting Started

Create your first scheduled task in 5 minutes.

1

Create an account

Sign up at runlater.eu with your email. No credit card required for the free tier.

2

Get your API key

Go to Settings → API Keys and create a new key. Keep this safe - the secret part is only shown once.

pk_live_abc123.sk_live_xyz789
3

Create your first schedule

Create a recurring schedule that calls your endpoint every hour:

curl -X POST https://runlater.eu/api/v1/schedules \
  -H "Authorization: Bearer pk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Hourly sync",
    "url": "https://myapp.com/api/sync",
    "cron": "0 * * * *"
  }'
~

Or queue a task for immediate execution

Don't need scheduling? Use /tasks to run a request right away:

curl -X POST https://runlater.eu/api/v1/tasks \
  -H "Authorization: Bearer pk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://myapp.com/api/process",
    "body": "{\"user_id\": 123}"
  }'
~

Or use a lane for serial execution

Add a lane to ensure tasks run one at a time. Tasks in the same lane within your organization won't overlap — each one waits for the previous to finish:

curl -X POST https://runlater.eu/api/v1/tasks \
  -H "Authorization: Bearer pk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://myapp.com/api/charge",
    "body": "{\"user_id\": 42}",
    "lane": "payments"
  }'
4

Create your endpoint

Runlater will POST to your URL. Just return a 2xx status:

// Next.js API route example
export async function POST(request) {
  // Do your work here
  await syncData();

  return Response.json({ ok: true });
}
That's it! Runlater will call your endpoint on schedule, retry on failures, and alert you if something goes wrong.

What's next?