Cronbolt

API reference

Public API endpoints, errors, idempotency, and machine-readable schemas.

The public API base URL is:

https://api.cronbolt.com/api/v1

Send X-API-Key on every request.

Public endpoints

MethodPathPurpose
GET/contextCheck key access and plan limits
POST/jobs/previewPreview a recurring schedule
GET/jobsList jobs
POST/jobsCreate a recurring or one-time job
GET/jobs/{job_id}Get one job
PATCH/jobs/{job_id}Update supplied fields
DELETE/jobs/{job_id}Delete a job
POST/jobs/{job_id}/pausePause a recurring job
POST/jobs/{job_id}/resumeResume a recurring job
POST/jobs/{job_id}/run-nowQueue a manual run
GET/jobs/{job_id}/runsList run history
GET/jobs/{job_id}/runs/{run_id}Get run attempts
POST/jobs/{job_id}/runs/{run_id}/retryRetry an eligible recurring run

Browser auth, projects, API-key administration, Paddle webhooks, and billing are internal app APIs. They are intentionally excluded from the public schema.

OpenAPI

Django Ninja generates the public schema from the same request and response types used by the API.

Errors

Public API errors use one envelope:

{
  "code": "validation_error",
  "message": "Request validation failed.",
  "request_id": "req_123",
  "action_url": null,
  "retry_after_seconds": null,
  "errors": [
    {
      "field": "body.url",
      "message": "Field required",
      "type": "missing"
    }
  ]
}

Log the request_id when reporting a problem. If action_url is present, give it to the person who owns the account. Respect HTTP 429 and Retry-After.

Idempotency

Send Idempotency-Key when creating a job, starting a manual run, or retrying a run.

  • Repeating the same request with the same key returns the original resource.
  • Reusing the key with different input returns a conflict.
  • Use a stable key for one intended operation, not a random key for every network retry.