1. API Reference
  2. Schedules
  3. Create a schedule
Website
  • API overview
  • API quickstart
  • Authentication
  • Project scoping
  • Requests and responses
  • Pagination and filtering
  • Errors
  • GETList supported database engines
  • POSTList projects
  • POSTCreate a project
  • GETGet a project
  • DELETEDelete a project
  • PATCHUpdate a project
  • POSTCreate a source
  • POSTList sources
  • GETGet source details
  • DELETEDelete a source
  • PATCHUpdate a source
  • POSTCreate secret metadata
  • POSTList secret metadata
  • GETGet secret metadata
  • DELETEDelete secret metadata
  • PATCHUpdate secret metadata
  • POSTCreate a schedule
  • POSTList schedules
  • POSTSummarize schedule statuses
  • GETGet a schedule
  • DELETEDelete a schedule
  • PATCHUpdate a schedule
  • DELETERemove a schedule gate
  • POSTActivate or pause a schedule
  • POSTQueue a manual check
  • POSTCreate an immutable report
  • POSTList reports
  • GETGet report details
  • DELETEDelete a report
  • POSTDownload a report
  • POSTGet the API-key scope catalog
  • POSTCreate an API key
  • POSTList API-key metadata
  • GETGet API-key metadata
  • DELETEDelete an API key
  • PATCHUpdate API-key metadata
  • POSTCreate a notification channel
  • POSTList notification channels
  • POSTResolve notification channels by ID
  • GETGet notification channel details
  • DELETEDelete a notification channel
  • PATCHUpdate a notification channel
  • POSTSend a test notification
  • POSTCreate a project worker
  • POSTList project workers
  • GETGet worker details
  • DELETEDelete a worker
  • PATCHUpdate a worker
  • POSTRead live worker agent logs
  • POSTList checks
  • POSTSummarize check statuses
  • GETGet check details
  • POSTGet check log sections
  • POSTDownload a check log
  • POSTDownload check audit evidence
  • POSTList notification messages
  • GETGet notification message details
POST/schedules

Create a schedule

Creates a recurring restore check definition for a same-project source and worker.

Send request

Use the documented inputs to call this endpoint directly.

API serverbase URL

Request body

application/jsonrequired
project_idrequired
namestringrequired
descriptionstringoptional
worker_idrequired
scratch_size_giintegerrequired

Size in GiB of the restore's scratch volume (a PVC on the worker's StorageClass). It holds the downloaded backup, the decoded dump and the restored database; the agent requests exactly this size.

database_resourcesoptional

Kubernetes requests and limits of the restore's database container (the sidecar that imports the dump and answers the health probes). Every value is optional and stands alone: nothing is derived, no default is applied. null or {} sets none (the container then has no requests or limits). A request must not exceed the limit of the same resource. With only a limit set, Kubernetes uses it as the request too. Database schedules only; a file schedule with values is rejected. If no node has the requested CPU or memory free for 300 s the check ends failed_infra with exit code 49.

sourcerequired
pathstringrequired

Folder relative to the source root (/ is the root). Only files directly in this folder are considered - no subfolders, and no folders that merely start with the same name. Date variables such as {{$yyyy}} are allowed; wildcards are not (use filename_pattern).

file_check_modeenumrequired

auto-latest checks the most recently modified file in the folder; filename-pattern checks the file matching filename_pattern.

Values: "auto-latest" · "filename-pattern"

filename_patternstringoptional

Required when file_check_mode is filename-pattern. Supports date variables and wildcards (*, ?, {{$*}}, {{$??}}).

filename_pattern_pick_latestbooleanoptional
file_max_age_enabledbooleanoptional
file_max_age_valueintegeroptional
file_max_age_unitenumoptional

Values: "minutes" · "hours" · "days"

file_min_size_enabledbooleanoptional
file_min_size_mbnumberoptional
file_max_size_enabledbooleanoptional
file_max_size_mbnumberoptional
backup_formatoptional

Database backup layers below the optional encryption envelope. File schedules do not accept an explicit backup format.

encryptionoptional

Encrypted modes require an active matching secret from the same project.

archive_password_secretobjectoptional
db_typeenumoptional

Values: "file" · "postgresql" · "mysql" · "mariadb" · "mongodb"

db_versionstringoptional

Required for database schedules and must be in the supported catalog.

restore_paramsstringoptional
schedule_modeenumrequired

Values: "hourly" · "daily" · "weekly"

cronstringrequired

Five-field cron expression evaluated in UTC. A range in the minute field (for example 10-19 4 * * 1) is replaced by one minute chosen at random inside that range when the schedule is saved; the stored expression is what the API returns.

gatesarray<>optional

Empty or omitted for file schedules; database schedules require at least one gate.

notify_modeenumrequired

Values: "never" · "always" · "on-error"

notification_channelsarray<>optional
run_manual_check_after_createbooleanoptional

Responses

201application/json

Schedule created. data.manual_check is included when the optional first run was requested.

{
  "status": "success",
  "data": {
    "id": "65f0c7a9a7d6b4e2c1234567",
    "manual_check": {
      "id": "65f0c7a9a7d6b4e2c1234567"
    },
    "manual_check_error": "string"
  }
}
400application/json

The request body, parameter, filter, cursor, or project-scoping pattern is invalid.

{
  "status": "error",
  "message": "string",
  "code": "string",
  "detail": {},
  "quota": {
    "key": "string",
    "limit": 1,
    "used": 1
  },
  "feature": "string",
  "dependency": "string"
}
statusstringrequired
messagestringrequired
codestringoptional

Stable machine-readable code when the error defines one.

detailobjectoptional
quotaoptional
featurestringoptional
dependencystringoptional
401application/json

Authentication is missing or the credential is invalid, inactive, expired, or lacks the required scope.

{
  "status": "error",
  "message": "string",
  "code": "string",
  "detail": {},
  "quota": {
    "key": "string",
    "limit": 1,
    "used": 1
  },
  "feature": "string",
  "dependency": "string"
}
statusstringrequired
messagestringrequired
codestringoptional

Stable machine-readable code when the error defines one.

detailobjectoptional
quotaoptional
featurestringoptional
dependencystringoptional
403application/json

The authenticated caller is not allowed to perform this operation.

{
  "status": "error",
  "message": "string",
  "code": "string",
  "detail": {},
  "quota": {
    "key": "string",
    "limit": 1,
    "used": 1
  },
  "feature": "string",
  "dependency": "string"
}
statusstringrequired
messagestringrequired
codestringoptional

Stable machine-readable code when the error defines one.

detailobjectoptional
quotaoptional
featurestringoptional
dependencystringoptional
409application/json

The requested change conflicts with the resource's current state or dependencies.

{
  "status": "error",
  "message": "string",
  "code": "string",
  "detail": {},
  "quota": {
    "key": "string",
    "limit": 1,
    "used": 1
  },
  "feature": "string",
  "dependency": "string"
}
statusstringrequired
messagestringrequired
codestringoptional

Stable machine-readable code when the error defines one.

detailobjectoptional
quotaoptional
featurestringoptional
dependencystringoptional
503application/json

A required service is temporarily unavailable.

{
  "status": "error",
  "message": "string",
  "code": "string",
  "detail": {},
  "quota": {
    "key": "string",
    "limit": 1,
    "used": 1
  },
  "feature": "string",
  "dependency": "string"
}
statusstringrequired
messagestringrequired
codestringoptional

Stable machine-readable code when the error defines one.

detailobjectoptional
quotaoptional
featurestringoptional
dependencystringoptional
Update secret metadata< PreviousList schedulesNext >

Powered by heyo

curl --request POST \  '/v1/schedules' \  --header 'Content-Type: application/json' \  --data 'string'
{  "status": "success",  "data": {    "id": "65f0c7a9a7d6b4e2c1234567",    "manual_check": {      "id": "65f0c7a9a7d6b4e2c1234567"    },    "manual_check_error": "string"  }}