Skip to content
getNodi

நொடி · nodi · Tamil for “a second”

Every run.
On the second.
On the record.

getNodi calls your endpoints on a schedule, retries them when they fail, and keeps the status, latency and response body of every single attempt — and lets you decide what counts as a pass, so an empty 200 is a failure if you say it is.

Create an accountWatch a runNo card. No sales call.
Local time · one tick per second--:--:--

01 — Visibility

You will never wonder whether it ran.

Every attempt is written down — the code, the latency, the retry that saved it. Failures reach you by email, Slack or webhook before your customers find them.

  • Mon 02:002001.18s
  • Tue 02:002001.09s
  • Wed 02:002001.24s
  • Thu 02:002001.16s
  • Fri 02:002000.97s
  • Sat 02:002001.21s

Six nights green. The report was empty every one of them.

The job ran. The request succeeded. Nothing ever looked at what came back.

Execution logsimulated feed

invoice-sweep

*/2 * * * * · every 2 minutes

waiting

sitemap-ping

0 * * * * · hourly

waiting

db-backup-trigger

0 3 * * * · daily at 03:00

waiting

Waiting for the first run…

02 — What you get

Six things cron never told you.

01

Projects, not a flat list

Group schedules by product, environment or client. Members, alert channels, API keys and retention are set per project.

02

Any endpoint, any auth

GET through DELETE with custom headers and a JSON body. Basic, bearer, API-key or HMAC-signed requests — credentials encrypted at rest with AES-256-GCM.

03

Success is what you define

A 200 is not automatically a pass. Match on status classes, response text or a regex, and fail runs that go over a latency budget.

04

Retries that make sense

Per-job attempt counts with fixed or exponential backoff. Alerts fire once the budget is spent, so a job that recovers on its own never wakes anyone.

05

Every run, kept

Status, latency, response headers and a body snippet for each attempt — with hourly rollups, so a 90-day chart still draws instantly.

06

Alerts and an API

Email, Slack and webhook notifications on failure, recovery or auto-pause. Scoped API keys for managing jobs programmatically.

03 — No SDK

It is just an HTTP request.

Nothing to install and no agent to run. getNodi identifies itself on every call and can sign the body with an HMAC shared secret, so your endpoint can prove the request came from your schedule and not from someone who guessed the URL.

Private, loopback and cloud-metadata addresses are refused by default — a scheduler that will call anything is a server-side request forgery engine.

Outbound request
POST /webhooks/nightly-report HTTP/1.1Host: api.yourapp.comUser-Agent: getNodi/1.0X-Nodi-Job-Id: 6f2a91c4e8b7d3a05f1c2e94X-Nodi-Run-Id: 01JDQ8ZK3M7XN2VW5RT9YBX-Nodi-Attempt: 1X-Nodi-Signature: t=1771243800,v1=9c1f4a…Content-Type: application/json

04 — How we compare

Sometimes the answer is one of the others.

Read from each vendor’s own documentation, including the rows we lose. If one of the three below fits you better, we would rather you found that out here than after paying us for a month.

CapabilitygetNodicron-job.orgEasyCronVercel Cron
PriceFree, then ₹399–₹4,999/moFree, funded by donationsFree, then $24–$240/yrIncluded in your Vercel plan
Free tier3 jobs · hourlyUnlimited jobs · every minute200 runs a day · every 20 min100 jobs · once a day (±59 min)
Finest schedule paidEvery 10 secondsn/a — the service is freeEvery minuteEvery minute (Pro)
Timezone per scheduleYesYesnot publishedNo — always UTC
Calls any URLYes, any hostYes, any hostYes, any hostNo — a path on your own deployment
HTTP methodsAll sevenAlmost allConfigurable on paid plansGET only
AuthorizationBasic, bearer, API key, HMAC-signedHTTP basic, custom headersCustom headers on paid plansA shared secret header
Automatic retriesYes, with backoffNonot publishedNo — documented as no retry
What counts as successStatus, body text, regex, latency budgetHTTP status, 3xx-as-success toggleRegex matching on paid plansWhatever your function returns
Failure alertsEmail, Slack, webhook — every tierEmailEmail free; Slack and webhook paidNone built in — read the logs
Run history7–365 days by tierLast 50 runs; bodies kept 2 days10–500 log entries by tierFunction logs, per Vercel plan
Longest single request5 minutes30 secondsUp to 12–24 hours on paid plansYour function timeout
Public status page & badgeYesYesnot publishedNo

Read off each vendor’s own documentation on 18 August 2026. “Not published” means we could not confirm it from their public docs that day — not that it is missing. Sources: Vercel cron docs, Vercel cron usage & pricing, cron-job.org FAQ, cron-job.org API docs, EasyCron pricing. Limits change; if we have any of this wrong, tell us and we will fix it.

Where they beat us

cron-job.org

Free, unlimited jobs, minute-level, open source, and running for over fifteen years. If you want a lot of simple jobs with email alerts, it is a better deal than our Free tier and probably a better deal than our paid ones. We would use it too.

Vercel Cron

If the thing you want to run is already a route in an app you deploy to Vercel, it is four lines of vercel.json and no new vendor, no new bill and no new password. That is hard to beat — until you need a timezone, a retry, or an alert.

EasyCron

Paid plans allow a single request to run for twelve to twenty-four hours. We cut every request off at five minutes. If your job is genuinely a long-running task rather than a trigger, we are the wrong tool.

05 — Pricing

Start on the free tier.

Free

₹0forever

Hourly checks for a couple of endpoints, with nothing held back.

  • 3 jobs · 2 projects
  • Hourly schedules
  • 7 days of history
  • 2 channels · 1 API key
Start free

Solo

₹399per month

incl. GST

Five-minute checks for one person running their own things.

  • 10 jobs · unlimited projects
  • Every 5 minutes
  • 30 days of history
  • 5 channels · 3 API keys
Start free, upgrade later

Team

most teams

₹1,499per month

incl. GST

Minute-level checks, 90 days of history and five seats.

  • 50 jobs · 5 seats
  • Every minute
  • 90 days of history
  • 15 channels · 10 API keys
Start free, upgrade later

Agency

₹4,999per month

incl. GST

Thirty-second checks across hundreds of jobs, for monitoring on behalf of clients.

  • 300 jobs · 20 seats
  • Every 30 seconds
  • 365 days of history
  • 30 channels · 25 API keys
Start free, upgrade later

Enterprise

Talk to us

Ten-second checks, SSO, a DPA and an SLA. Priced against what you actually run.

  • Unlimited jobs and seats
  • Every 10 seconds
  • Retention you choose
  • SSO · DPA · SLA · annual invoicing
Contact sales

On every plan, including Free

  • Basic, bearer, API-key and HMAC authorization
  • Custom headers, bodies and success criteria
  • Automatic retries with backoff
  • REST API and API keys
  • Email, Slack and webhook alerts
  • Unlimited manual runs

Plans differ by how many jobs you run, how often they run, and how long history is kept — not by which features you are allowed to use. Every new job also fires once immediately, and you can trigger any job by hand as often as you like.

Inclusive of 18% GST · billed through Razorpay · cancel from the dashboard · outside India, billed in USD at $5 / $19 / $59 per month

06 — Questions

Asked before signing up.

What is getNodi?

A hosted cron service. You give it a URL, a schedule and a definition of success; it calls the endpoint on time, retries when a call fails, and keeps the status, latency and response of every attempt. There is nothing to install — if your code can answer an HTTP request, it can be scheduled.

How do I run a cron job without a server?

Expose the work as an HTTP endpoint — a serverless function, a webhook, a route in your app — and let getNodi call it on schedule. The scheduling, retries and history live here, so nothing of yours has to stay running between calls. The free plan does this for hourly jobs with no card.

Is there a free plan?

Yes: 3 jobs across 2 projects on hourly schedules, with 7 days of run history, free forever. Every feature is included — retries, HMAC signing, custom success criteria, the API, Slack alerts. Paid plans start at ₹399 a month and raise the quotas and the frequency, not the feature list.

What happens when a job fails?

It is retried with fixed or exponential backoff, up to the attempt count you set, and an alert goes out by email, Slack or webhook once the retries are spent — with a second one when the job recovers. Every attempt stays in the history, so you can read the exact status and body that failed.

Can it call endpoints that need authentication?

Yes — basic, bearer and API-key headers, or an HMAC signature computed per request so your endpoint can verify the call came from your schedule. Credentials are encrypted at rest with AES-256-GCM and never rendered back once saved.

Is a 200 response always a success?

Only if you say so. Success criteria are set per job: status classes, text or a regex the response body must match, and a latency budget. An endpoint that returns an empty 200 in under a second can be marked a failure — which is exactly the failure cron itself never notices.