CronJobFast
Developer docs
← Home Log in Sign up

Welcome to CronJobFast

CronJobFast is a premium HTTP cron platform: REST API, signed webhooks, DHRU Auto Sync, reseller flow with sub-accounts, and one-time security unlocks. This page is the complete developer reference — auth, endpoints, integrations, comparisons.

How it works

  1. Sign up for a free account at app.cronjobfast.com.
  2. Issue an API key from Sidebar → Integrations → API Keys. The cleartext token is shown only once; we store SHA-256 hashes.
  3. Create a cron job — manually from the panel, programmatically via POST /api/v1/jobs, or via the DHRU Other Script endpoint.
  4. Listen for results — register a webhook endpoint to get HMAC-signed delivery on every interesting event.

Authentication

The REST API uses Bearer tokens. Each request must include:

Authorization: Bearer cjf_live_<32-char-secret>

Rate limits

60 requests per minute per API key, sliding window backed by Redis. Every authenticated response carries:

X-RateLimit-Limit:     60
X-RateLimit-Remaining: 57
X-RateLimit-Reset:     32   # seconds until window resets

When the budget is exhausted you get HTTP 429 with the same headers; back off until Reset.

Envelopes & errors

Every response is wrapped:

{ "data": { ...handler-specific... } }
{ "error": { "code": "snake_case", "message": "Human", "details": { ... } } }
HTTPMeaning
200OK
400Bad request (validation)
401Missing or invalid bearer
403Insufficient scope
404No matching route
409Idempotency-Key reused with different body
422Domain failure (e.g. add-on not eligible)
429Rate limit hit
500Unexpected server error
Idempotency: on POST / PATCH / DELETE include an Idempotency-Key header (any unique string). We cache the response 24h so retries replay the original outcome — including caching errors and conflicts.

API · Account

GET /me

Current user, plan, balance, monthly add-on cost.

{ "data": {
  "user_id": 7, "email": "ops@example.com",
  "plan": "advanced", "balance": "12.50",
  "monthly_addon_cost": "1.99",
  "scopes": ["read","write"], "api_key_id": 4
}}

API · Balance & transactions

GET /balance

Lightweight; only the current balance.

GET /transactions?limit=50

Recent credit_transactions. limit clamped to [1..200].

POST /balance/topup (reseller-only)

Credit a sub-account from the reseller's balance. Atomic with paired ledger rows.

API · Plans

GET /plans

Catalogue: basic, starter, advanced, professional, dhru_premium.

Plan tiers at a glance:

Plan Price / mo Manual jobs Min interval Cap / day Run history DHRU Auto Sync
basic · Free $0 5 30 s 8,640 7 days
starter · Starter $2.99 20 5 s 86,400 14 days
advanced · Pro $4.99 60 2 s 259,200 90 days Included
dhru_premium · DHRU Premium $9.99 500 2 s 5,184,000 180 days Included · 3 domains

POST /plans/change

Switches the user's plan with automatic Stripe-style prorate. Requires write scope.

{ "plan": "advanced" }

Caps & throttling

The daily / monthly execution cap is a soft limit: executions over the cap keep running, no production breakage. The account enters a 7-day grace period the moment the cap is exceeded; during grace the dashboard surfaces a warning but throughput is unchanged.

Past 7 days, the engine flags the account and demotes new executions to a lower BullMQ priority lane (priority 3 vs the default 1). Jobs still execute — they just run behind compliant accounts. The state is exposed in the dashboard summary payload as:

{ "usage": {
  "cap_exceeded_since": "2026-05-01 14:22:11",
  "is_throttled":       true,
  "daily_state":        "exceeded"
}}

Upgrading the plan or adding a Power Pack returns the account to the fast lane immediately; the daily cap-flag cron clears the flag on the first compliant day.

API · Add-ons

GET /addons/catalog

Returns every add-on key with price, eligibility flags and benefit. Source of truth for the panel UI.

POST /addons

Activate a monthly add-on. Body: { "addon_key": "extra_manual_jobs", "quantity": 1 }.

DELETE /addons/{id}

Cancel an active add-on. Status transitions to cancelled; the row is preserved for history.

API · Jobs

GET /jobs

List manual jobs. Supports limit, offset, status, type query params.

POST /jobs

Create a new manual job.

{
  "name":     "Daily backup ping",
  "url":      "https://example.com/cron/backup",
  "method":   "GET",
  "interval": 86400,
  "headers":  { "X-Auth": "secret" },
  "body":     null
}

PATCH /jobs/{id}

Partial update. Only the fields you send change.

POST /jobs/{id}/run-now

Force an out-of-band execution of a job. Returns the job_runs row id.

GET /jobs/{id}/runs?limit=50

Recent execution log for one job.

API · Webhooks

Full CRUD for outbound webhook endpoints — see the Webhooks section below for event types and HMAC verification details.

API · Reseller (gated)

Available only to accounts flagged is_reseller=1. The full reseller namespace under /api/v1/reseller/* covers sub-account CRUD, credit transfers, suspension/reactivation, public profile, and aggregate usage.

POST   /api/v1/reseller/accounts                — create sub-account
POST   /api/v1/reseller/accounts/{id}/topup     — atomic credit transfer
POST   /api/v1/reseller/accounts/{id}/suspend   — suspend
POST   /api/v1/reseller/accounts/{id}/reactivate
GET    /api/v1/reseller/usage                   — fleet aggregates

DHRU Integration · Other Script endpoint

CronJobFast speaks the DHRU Fusion API standards (v6.1) so resellers can plug it into their DHRU panel as an "Other Script" provider. The endpoint lives at:

https://app.cronjobfast.com/dhru-sync

DHRU appends /api/index.php automatically; no need to suffix the URL.

Setup

  1. From the panel: Sidebar → Account → Reseller Panel → DHRU Connect. Generate an API key (auto-scoped to dhru_otherscript).
  2. In your DHRU admin: API Settings → Add Other Script with:
    • NameCronJobFast
    • API KEY → the cleartext key you just generated
    • Username → your numeric user id (shown next to the key)
    • API urlhttps://app.cronjobfast.com/dhru-sync
    • CurrencyUSD
  3. Click Synchronize. DHRU will pull our service catalog and surface our products under your shop.

Actions catalog

ActionWhat we do
accountinfoReturns your spendable credits (balance + remaining overdraft) plus account email.
imeiservicelistReturns the catalog: 1 generic credit + plans (Starter / Pro / DHRU Premium, monthly + yearly).
placeimeiorderAtomic credit/plan delivery to a customer email; auto-creates the sub-account if missing.
getimeiorderStatus lookup by reference id.
imeiorderstatusRecent orders list.

Order flow

When a customer of yours buys from your DHRU storefront, DHRU calls our placeimeiorder. We:

  1. Resolve (or create) the customer's sub-account by email.
  2. Debit the agreed credits from your reseller balance and credit them to the sub.
  3. If the order is a plan, run changePlanWithProrate() on the sub — full Stripe-style upgrade math.
  4. Email the customer a "set your password" link if the sub-account is brand new.
  5. Emit dhru.order.completed webhook to your registered endpoints.
Pricing is 1 credit = 1 unit on the backend. You set your fiat margin from your DHRU panel.

Webhooks · Event types

EventTrigger
webhook.testYou hit POST /webhooks/{id}/test
payment_intent.confirmedTop-up confirmed
payment_intent.cancelledTop-up cancelled before confirm
payment_intent.expiredTop-up expired with no action
addon.activatedAdd-on row created
addon.cancelledAdd-on cancelled
addon.expiredRenewal failed (insufficient balance)
balance.lowBalance crosses your threshold
plan.changedPlan switch (with prorate metadata)
job.auto_pausedJob hit the consecutive-failure threshold
reseller.account.createdSub-account provisioned
reseller.account.suspendedSub-account paused
reseller.account.reactivatedSub-account resumed
reseller.transfer.completedCredits moved to a sub-account
reseller.credit_limit_warningOverdraft used ≥ 80%
reseller.credit_limit_exhaustedOverdraft used == 100%
dhru.order.completedDHRU placeimeiorder succeeded
dhru.order.failedDHRU placeimeiorder rejected

Signature verification

Every delivery includes:

Cronjobfast-Signature: t=1700000000,v1=<hex>

Where v1 is hmac_sha256(secret, "{t}.{body}"). Verify on your side:

// Node
const crypto = require('crypto');
const [_, ts, sig] = req.headers['cronjobfast-signature'].match(/t=(\d+),v1=([a-f0-9]+)/);
const expected = crypto.createHmac('sha256', SECRET)
                       .update(ts + '.' + req.rawBody).digest('hex');
const valid = crypto.timingSafeEqual(Buffer.from(sig), Buffer.from(expected));

Retries & backoff

Up to 6 attempts at 1m → 5m → 30m → 2h → 6h → 12h. After 12 consecutive failures the endpoint is auto-disabled and we emit nothing else until you flip it back to active. During key rotation we double-sign with both old and new secrets for 24 hours, so you can rotate without downtime.

Why CronJobFast

A factual breakdown of where CronJobFast leads compared to popular alternatives. All numbers reflect publicly published specs at the time of writing — verify with each provider before final selection.

Headline differentiators

Pricing parity

CronJobFast lists in credits (1 credit ≈ $1 USD on top-ups, no expiry). Equivalents in monthly USD for like-for-like tiers:

Tier CronJobFast FastCron cron-job.org EasyCron
Free $0 · 5 jobs · 30s $0 · 5 jobs · 60s $0 · 50 jobs · 60s $0 · 20 jobs · 600s
Entry paid $2.99 · 20 jobs · 5s $5 · ~20 jobs · 60s $5 · 200 jobs · 60s $5.95 · 30 jobs · 60s
Mid tier $4.99 · 60 jobs · 2s $15 · 60 jobs · 60s $15 · 1,000 jobs · 60s $15.95 · 100 jobs · 60s
Top tier $9.99 DHRU Premium · 500 jobs · 2s · 50k logs $30 · 200 jobs · 60s $25 · 5,000 jobs · 60s $39.95 · 500 jobs · 60s

Snapshot as of May 2026. Sub-second-precision execution and DHRU integration are unique to CronJobFast at any of these tiers.

Feature matrix

Capability CronJobFast FastCron cron-job.org EasyCron
Minimum interval 2s (Pro+) 60s 60s 60s
REST API (CRUD + reseller + webhooks) 30+ endpoints, idempotent Read-mostly Limited CRUD Yes
HMAC-signed webhooks 18 events · key rotation grace Basic Failure notifications only Email + URL
Idempotency keys Yes (24h cache)
Run-log retention Up to 15 days (paid tiers) ~30-90 days 14 days 30-180 days
DHRU Auto Sync (260+ endpoints) Native
DHRU "Other Script" reseller endpoint Native
Reseller / sub-accounts Built-in (overdraft, atomic transfers, public listing)
Crypto / stablecoin top-ups USDT · USDC · BTC · ETH
Endpoint Protection (anti-double-execution) 1.99 credits one-time
2FA (TOTP) Yes · 10 backup codes Yes Yes
Telegram + email failure alerts Yes Email Email Email
Per-job retry & auto-pause Configurable + threshold-based auto-pause Limited Threshold-based pause Limited
Plan-change prorate (Stripe-style) Atomic with refund-as-credit Manual Manual

When to pick a different provider

To stay factual: each alternative has its own strengths and we want you to choose based on what your project needs, not a sales pitch.

If your stack involves DHRU panels, GSM tools, sub-second timing, reseller management or stablecoin payments, none of the alternatives match what CronJobFast ships today.

In-depth · vs cron-job.org

cron-job.org publishes a free, generous-jobs-count tier limited to 60-second precision and offers basic failure email alerts. CronJobFast adds: sub-second timing on Pro+, idempotent writes, signed webhooks across 18 events, sub-account API, DHRU vertical, and credits that never expire.

In-depth · vs EasyCron

EasyCron's UI focuses on URL scheduling with email notifications and Telegram on higher tiers. CronJobFast prices its mid tier ~3× cheaper for 30× more execution capacity, retains up to 50,000 run-log rows on DHRU Premium (vs ~10,000 on EasyCron's plus tier), and adds a programmable reseller layer with overdraft and prorate billing.

FAQ · Cloudflare WAF blocks

If your origin sits behind Cloudflare and the cron URL returns 403, allowlist our worker:

The full setup ships with the Cron Endpoint Protection add-on (1.99 credits, one-time): we email a tailored Cloudflare Custom rule that blocks every other source.

FAQ · Migrating from another service

  1. Sign up + buy the Endpoint Protection unlock (optional but recommended).
  2. Replicate your jobs via POST /jobs or by importing JSON in the panel.
  3. Apply the WAF rule we email so the old service stops triggering double-executions.
  4. Cancel the old subscription. Done.

FAQ · Domain & job quotas

PlanManual jobsMin intervalDHRU domains
Free530s0
Starter205s0
Pro602s1
DHRU Premium5002s3

Need more? Buy the corresponding add-ons (stackable per slot/domain) or upgrade tier.

Changelog

Source-of-truth changelog lives in the GitHub repo. Highlights:

Need help? Email support@cronjobfast.com or open an issue at the GitHub repo.