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
- Sign up for a free account at app.cronjobfast.com.
- Issue an API key from Sidebar → Integrations → API Keys. The cleartext token is shown only once; we store SHA-256 hashes.
- Create a cron job — manually from the panel, programmatically via
POST /api/v1/jobs, or via the DHRU Other Script endpoint. - 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>
- Format:
cjf_live_prefix + 32 alphanumeric characters. - Storage: only the SHA-256 hash is persisted; the cleartext is shown once at issuance.
- Scopes:
read,write, plus optionaldhru_otherscriptfor the DHRU integration. - Revocation: instant. The hash row is marked
revoked_atand every subsequent request returns 401.
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": { ... } } }
| HTTP | Meaning |
|---|---|
200 | OK |
400 | Bad request (validation) |
401 | Missing or invalid bearer |
403 | Insufficient scope |
404 | No matching route |
409 | Idempotency-Key reused with different body |
422 | Domain failure (e.g. add-on not eligible) |
429 | Rate limit hit |
500 | Unexpected server error |
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
- From the panel: Sidebar → Account → Reseller Panel → DHRU Connect. Generate an API key (auto-scoped to
dhru_otherscript). - In your DHRU admin: API Settings → Add Other Script with:
Name→CronJobFastAPI KEY→ the cleartext key you just generatedUsername→ your numeric user id (shown next to the key)API url→https://app.cronjobfast.com/dhru-syncCurrency→USD
- Click Synchronize. DHRU will pull our service catalog and surface our products under your shop.
Actions catalog
| Action | What we do |
|---|---|
accountinfo | Returns your spendable credits (balance + remaining overdraft) plus account email. |
imeiservicelist | Returns the catalog: 1 generic credit + plans (Starter / Pro / DHRU Premium, monthly + yearly). |
placeimeiorder | Atomic credit/plan delivery to a customer email; auto-creates the sub-account if missing. |
getimeiorder | Status lookup by reference id. |
imeiorderstatus | Recent orders list. |
Order flow
When a customer of yours buys from your DHRU storefront, DHRU calls our placeimeiorder. We:
- Resolve (or create) the customer's sub-account by email.
- Debit the agreed credits from your reseller balance and credit them to the sub.
- If the order is a plan, run
changePlanWithProrate()on the sub — full Stripe-style upgrade math. - Email the customer a "set your password" link if the sub-account is brand new.
- Emit
dhru.order.completedwebhook to your registered endpoints.
Webhooks · Event types
| Event | Trigger |
|---|---|
webhook.test | You hit POST /webhooks/{id}/test |
payment_intent.confirmed | Top-up confirmed |
payment_intent.cancelled | Top-up cancelled before confirm |
payment_intent.expired | Top-up expired with no action |
addon.activated | Add-on row created |
addon.cancelled | Add-on cancelled |
addon.expired | Renewal failed (insufficient balance) |
balance.low | Balance crosses your threshold |
plan.changed | Plan switch (with prorate metadata) |
job.auto_paused | Job hit the consecutive-failure threshold |
reseller.account.created | Sub-account provisioned |
reseller.account.suspended | Sub-account paused |
reseller.account.reactivated | Sub-account resumed |
reseller.transfer.completed | Credits moved to a sub-account |
reseller.credit_limit_warning | Overdraft used ≥ 80% |
reseller.credit_limit_exhausted | Overdraft used == 100% |
dhru.order.completed | DHRU placeimeiorder succeeded |
dhru.order.failed | DHRU 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
- 2-second minimum interval from the Pro tier and up — most general-purpose providers cap at 60 seconds.
- HMAC-signed webhooks on 18 event types with 24-hour double-signing during secret rotation, exponential retry to 12 hours, and auto-disable after 12 consecutive failures.
- Idempotency-Key caching (24h) on every write endpoint — retries never double-charge.
- Native DHRU vertical: Auto Sync of 260+ endpoint catalog, DHRU "Other Script" provider, and a reseller flow with sub-account management built into the API.
- Crypto + stablecoin top-ups live (USDT, USDC, BTC, ETH on BEP-20 / TRC-20). Card / PayPal / Astropay rolling out.
- One-time security unlocks — pay once for a personalised Cloudflare WAF rule that blocks foreign cron services from triggering your URLs (Endpoint Protection · 1.99 credits).
- Reseller program with overdraft, atomic credit transfers, DHRU Other Script API, and a public directory at /resellers.
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 | |||
| 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.
- FastCron — solid choice if you already run on AWS regions covered by their nodes and don't need DHRU or sub-second precision.
- cron-job.org — generous free tier if you're happy with minute-precision and don't need a reseller layer.
- EasyCron — long-running history retention on the enterprise tier if you just need a UI to schedule URLs.
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:
- User-Agent:
CronJobFast/1.0 - IPv4:
204.168.252.11 - IPv6:
2a01:4f9:c014:bce4::1
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
- Sign up + buy the Endpoint Protection unlock (optional but recommended).
- Replicate your jobs via
POST /jobsor by importing JSON in the panel. - Apply the WAF rule we email so the old service stops triggering double-executions.
- Cancel the old subscription. Done.
FAQ · Domain & job quotas
| Plan | Manual jobs | Min interval | DHRU domains |
|---|---|---|---|
| Free | 5 | 30s | 0 |
| Starter | 20 | 5s | 0 |
| Pro | 60 | 2s | 1 |
| DHRU Premium | 500 | 2s | 3 |
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:
- 2026-05 · Phase 6.3 ships — DHRU Other Script, reseller overdraft, public listing, Endpoint Protection one-time unlock.
- 2026-04 · TOTP 2FA, full REST API v1, signed webhooks (15 events).
- 2026-03 · Reseller v1 — sub-accounts, atomic credit transfers, public profile.
- 2026-02 · DHRU Auto Sync — 260+ endpoint catalog, Smart Speed scheduling.