Use the Request Scheduling API to create and manage recurring HTTP requests driven by cron expressions. Schedules persist across container restarts and execute their configured request payload at the configured cadence. Use these endpoints to build monitoring, reporting, and synchronization jobs without manual intervention.
Two states are supported for every schedule:
Enabled — Active and will execute at the next scheduled time.
Disabled — Paused; does not execute but can be re-enabled.
List every recurring schedule, sorted by creation time with the newest first. Each entry includes its cron expression, request configuration, and execution state.
Name In Type Required Description pagequery integer No 1-based page number limitquery integer No Items per page; current handler returns all items when omitted
" id " : " a1b2c3d4-e5f6-7890-abcd-ef1234567890 " ,
" name " : " API health monitor " ,
" created_at " : " 2026-01-15T10:30:00Z " ,
" next_run " : " 2026-01-15T10:35:00Z " ,
" last_run " : " 2026-01-15T10:30:00Z " ,
" url " : " https://api.example.com/health " ,
" error " : " STORAGE_ERROR " ,
" message " : " Failed to read schedules "
Error Code Title Description Resolution STORAGE_ERRORStorage read failed Unable to read schedules from persistent storage Check storage directory permissions and disk availability
curl https://{projectId}-{containerId}-curl-1.{server}.containers.hoody.com/api/v1/curl/schedule?page= 1 & limit = 20
import { HoodyClient } from ' hoody-sdk ' ;
const client = new HoodyClient ({
baseURL : ' https://{projectId}-{containerId}-curl-1.{server}.containers.hoody.com ' ,
token : process . env . HOODY_TOKEN ,
const page = await client . curl . schedules . listIterator ({ page : 1 , limit : 20 });
for await ( const schedule of page ) {
console . log ( schedule . id , schedule . cron );
Retrieve complete details for a single schedule, including its cron expression, request configuration, and last/next execution timestamps.
Name In Type Required Description idpath string Yes Unique schedule identifier (UUID format)
" id " : " a1b2c3d4-e5f6-7890-abcd-ef1234567890 " ,
" name " : " API health monitor " ,
" created_at " : " 2026-01-15T10:30:00Z " ,
" next_run " : " 2026-01-15T10:35:00Z " ,
" last_run " : " 2026-01-15T10:30:00Z " ,
" url " : " https://api.example.com/health " ,
" error " : " SCHEDULE_NOT_FOUND " ,
" message " : " Schedule not found "
Error Code Title Description Resolution SCHEDULE_NOT_FOUNDSchedule does not exist No schedule found with the provided ID Verify schedule ID using GET /api/v1/curl/schedule
" error " : " STORAGE_ERROR " ,
" message " : " Failed to read schedule "
Error Code Title Description Resolution STORAGE_ERRORStorage read failed Failed to read schedule data from storage Check storage integrity and retry
curl https://{projectId}-{containerId}-curl-1.{server}.containers.hoody.com/api/v1/curl/schedule/a1b2c3d4-e5f6-7890-abcd-ef1234567890
import { HoodyClient } from ' hoody-sdk ' ;
const client = new HoodyClient ({
baseURL : ' https://{projectId}-{containerId}-curl-1.{server}.containers.hoody.com ' ,
token : process . env . HOODY_TOKEN ,
const schedule = await client . curl . schedules . get ( ' a1b2c3d4-e5f6-7890-abcd-ef1234567890 ' );
Create a new cron-based schedule that executes an HTTP request repeatedly at specified intervals. Schedules are persistent and survive server restarts.
Common use cases:
Periodic API data collection
Regular health checks and monitoring
Scheduled report generation
Automated backups or synchronization
Name Type Required Description cronstring Yes Six-field cron expression: second minute hour day month weekday requestobject Yes The HTTP request to execute on each tick. url is required; see curl_CurlRequest for the full field list
" url " : " https://api.example.com/health " ,
" id " : " a1b2c3d4-e5f6-7890-abcd-ef1234567890 " ,
" created_at " : " 2026-01-15T10:30:00Z " ,
" next_run " : " 2026-01-15T10:35:00Z " ,
" url " : " https://api.example.com/health " ,
" error " : " INVALID_CRON_EXPRESSION " ,
" message " : " Invalid cron expression: invalid field "
Error Code Title Description Resolution INVALID_CRON_EXPRESSIONMalformed cron expression The provided cron expression is invalid or incorrectly formatted Use 6-field format: second minute hour day month weekday. Example: 0 0 9 * * MON-FRI INVALID_PARAMETERInvalid request configuration The embedded request contains invalid parameters Verify request.url is valid and all parameters match expected types
" error " : " SCHEDULE_CREATION_FAILED " ,
" message " : " Failed to create schedule "
Error Code Title Description Resolution SCHEDULE_CREATION_FAILEDSchedule creation failed Unable to create schedule in persistent storage Check storage permissions and disk space, then retry
curl -X POST https://{projectId}-{containerId}-curl-1.{server}.containers.hoody.com/api/v1/curl/schedule \
-H " Content-Type: application/json " \
"url": "https://api.example.com/health",
"headers": { "X-Monitor": "hoody" },
import { HoodyClient } from ' hoody-sdk ' ;
const client = new HoodyClient ({
baseURL : ' https://{projectId}-{containerId}-curl-1.{server}.containers.hoody.com ' ,
token : process . env . HOODY_TOKEN ,
const schedule = await client . curl . schedules . create ({
url : ' https://api.example.com/health ' ,
headers : { ' X-Monitor ' : ' hoody ' },
Toggle a schedule between enabled and disabled without deleting it.
Name In Type Required Description idpath string Yes Unique schedule identifier
Name Type Required Description enabledboolean Yes true to enable the schedule, false to disable it
" id " : " a1b2c3d4-e5f6-7890-abcd-ef1234567890 " ,
" error " : " SCHEDULE_NOT_FOUND " ,
" message " : " Schedule not found "
Error Code Title Description Resolution SCHEDULE_NOT_FOUNDSchedule does not exist Cannot toggle schedule that doesn’t exist Verify schedule ID using GET /api/v1/curl/schedule
" error " : " STORAGE_ERROR " ,
" message " : " Failed to toggle schedule "
Error Code Title Description Resolution STORAGE_ERRORStorage update failed Schedule exists but state could not be updated in storage Check storage permissions and retry operation
curl -X PATCH https://{projectId}-{containerId}-curl-1.{server}.containers.hoody.com/api/v1/curl/schedule/a1b2c3d4-e5f6-7890-abcd-ef1234567890/toggle \
-H " Content-Type: application/json " \
import { HoodyClient } from ' hoody-sdk ' ;
const client = new HoodyClient ({
baseURL : ' https://{projectId}-{containerId}-curl-1.{server}.containers.hoody.com ' ,
token : process . env . HOODY_TOKEN ,
await client . curl . schedules . toggle ( ' a1b2c3d4-e5f6-7890-abcd-ef1234567890 ' , { enabled : false });
Permanently delete a recurring schedule. The schedule immediately stops executing and all configuration is removed.
Name In Type Required Description idpath string Yes Unique schedule identifier
" id " : " a1b2c3d4-e5f6-7890-abcd-ef1234567890 " ,
" error " : " SCHEDULE_NOT_FOUND " ,
" message " : " Schedule not found "
Error Code Title Description Resolution SCHEDULE_NOT_FOUNDSchedule does not exist Cannot delete schedule that doesn’t exist Verify schedule ID using GET /api/v1/curl/schedule
" error " : " STORAGE_ERROR " ,
" message " : " Failed to delete schedule "
Error Code Title Description Resolution STORAGE_ERRORStorage delete failed Schedule exists but could not be deleted from storage Check storage permissions and retry operation
curl -X DELETE https://{projectId}-{containerId}-curl-1.{server}.containers.hoody.com/api/v1/curl/schedule/a1b2c3d4-e5f6-7890-abcd-ef1234567890
import { HoodyClient } from ' hoody-sdk ' ;
const client = new HoodyClient ({
baseURL : ' https://{projectId}-{containerId}-curl-1.{server}.containers.hoody.com ' ,
token : process . env . HOODY_TOKEN ,
await client . curl . schedules . delete ( ' a1b2c3d4-e5f6-7890-abcd-ef1234567890 ' );