Skip to main content
GET
/
v1
/
api
/
get_schedules_paginated
curl -X GET "https://api.hookpulse.io/v1/api/get_schedules_paginated/?filter_status=active&page=1" \
  -H "x-hookpulse-api-key: {{x-hookpulse-api-key}}" \
  -H "x-brand-uuid: {{x-brand-uuid}}"
{
  "data": [
    {
      "reason": "Webhook execution time exhausted",
      "status": "paused",
      "type": "webhook",
      "model_uuid": "{{model_uuid}}",
      "driver_type": "interval",
      "last_run_at": "{{last_run_at}}",
      "next_run_at": null,
      "total_schedule_triggered": 146,
      "locale_timezone_converted_details": {
        "preferred_timezone": "Asia/Kolkata",
        "time_left_to_trigger": null,
        "last_run_at_by_preferred_timezone": "{{last_run_at_by_preferred_timezone}}",
        "next_run_at_by_preferred_timezone": null
      },
      "schedule_uuid": "{{schedule_uuid}}"
    }
  ],
  "meta": {
    "page": {{page}},
    "total_count": {{total_count}},
    "per_page": {{per_page}},
    "total_pages": {{total_pages}},
    "has_next": {{has_next}},
    "has_prev": {{has_prev}}
  },
  "success": true,
  "timezone": "{{timezone}}"
}
Retrieve a paginated list of schedules filtered by status. Use this endpoint to get all active, inactive, paused, completed, or expired schedules.

Base URL

All API requests should be made to:
https://api.hookpulse.io

Example request

curl -X GET "https://api.hookpulse.io/v1/api/get_schedules_paginated/?filter_status=active&page=1" \
  -H "x-hookpulse-api-key: {{x-hookpulse-api-key}}" \
  -H "x-brand-uuid: {{x-brand-uuid}}"

Query parameters

ParameterTypeRequiredDescription
filter_statusstringYesFilter schedules by status: "active", "inactive", "paused", "completed", or "expired"
pageintegerNoPage number to retrieve (starts from 1, default: 1)

Example response

{
  "data": [
    {
      "reason": "Webhook execution time exhausted",
      "status": "paused",
      "type": "webhook",
      "model_uuid": "{{model_uuid}}",
      "driver_type": "interval",
      "last_run_at": "{{last_run_at}}",
      "next_run_at": null,
      "total_schedule_triggered": 146,
      "locale_timezone_converted_details": {
        "preferred_timezone": "Asia/Kolkata",
        "time_left_to_trigger": null,
        "last_run_at_by_preferred_timezone": "{{last_run_at_by_preferred_timezone}}",
        "next_run_at_by_preferred_timezone": null
      },
      "schedule_uuid": "{{schedule_uuid}}"
    }
  ],
  "meta": {
    "page": {{page}},
    "total_count": {{total_count}},
    "per_page": {{per_page}},
    "total_pages": {{total_pages}},
    "has_next": {{has_next}},
    "has_prev": {{has_prev}}
  },
  "success": true,
  "timezone": "{{timezone}}"
}

Response fields

Data array

FieldTypeDescription
reasonstring | nullReason for the schedule status (e.g., “Webhook execution time exhausted”)
statusstringCurrent status of the schedule: "active", "inactive", "paused", "completed", or "expired"
typestringType of schedule target: "webhook" or "workflow"
model_uuidstringUUID of the webhook or workflow template being scheduled
driver_typestringSchedule driver type: "interval", "cron", "clocked", "solar", or "debounce"
last_run_atstring | nullISO 8601 timestamp of the last execution (UTC)
next_run_atstring | nullISO 8601 timestamp of the next scheduled execution (UTC)
total_schedule_triggeredintegerTotal number of times the schedule has been triggered
locale_timezone_converted_detailsobjectTimezone-converted details for the preferred timezone
schedule_uuidstringUnique identifier for the schedule

Locale Timezone Converted Details

FieldTypeDescription
preferred_timezonestringIANA timezone identifier used for conversion
time_left_to_triggerstring | nullHuman-readable time until next execution (e.g., “2 hours 30 minutes”)
last_run_at_by_preferred_timezonestring | nullLast run time converted to preferred timezone (ISO 8601 with offset)
next_run_at_by_preferred_timezonestring | nullNext run time converted to preferred timezone (ISO 8601 with offset)

Meta object

FieldTypeDescription
pageintegerCurrent page number
total_countintegerTotal number of schedules matching the filter
per_pageintegerNumber of items per page
total_pagesintegerTotal number of pages
has_nextbooleanWhether there is a next page
has_prevbooleanWhether there is a previous page

Root fields

FieldTypeDescription
successbooleanIndicates if the request was successful
dataarrayArray of schedule objects
metaobjectPagination metadata
timezonestringIANA timezone identifier indicating the timezone used for all timestamps in the response (matches your brand’s selected timezone)

Error Responses

If the page is out of range, you will receive:
{
  "success": false,
  "timezone": "{{timezone}}",
  "error": "Page out of range",
  "meta": {
    "page": {{page}},
    "total_count": {{total_count}},
    "per_page": {{per_page}},
    "total_pages": {{total_pages}},
    "has_next": {{has_next}},
    "has_prev": {{has_prev}}
  }
}

Status Filter Options

StatusDescription
"active"Schedule is running and executing according to its configuration
"inactive"Schedule is disabled and will not execute
"paused"Schedule is temporarily paused (may include a reason)
"completed"Schedule has completed (typically for one-off tasks)
"expired"Schedule has expired (termination rule met or past expiration date)

Driver Types

Driver TypeDescription
"interval"Interval-based schedule (every N seconds/minutes/hours)
"cron"Cron expression-based schedule
"clocked"One-time scheduled task at specific date/time
"solar"Solar event-based schedule (sunrise, sunset, etc.)
"debounce"Debounce-based schedule

Use Cases

  • Monitor Active Schedules: Get all currently running schedules
  • Check Paused Schedules: Identify schedules that are paused and why
  • View Completed Tasks: Review completed one-off tasks
  • Audit Expired Schedules: See schedules that have expired
  • Track Schedule Status: Monitor the status of all your schedules

Examples

Get All Active Schedules

GET /v1/api/get_schedules_paginated/?filter_status=active&page=1

Get All Paused Schedules

GET /v1/api/get_schedules_paginated/?filter_status=paused&page=1

Get All Completed Schedules

GET /v1/api/get_schedules_paginated/?filter_status=completed&page=1

Get All Inactive Schedules

GET /v1/api/get_schedules_paginated/?filter_status=inactive&page=1

Get All Expired Schedules

GET /v1/api/get_schedules_paginated/?filter_status=expired&page=1

Authorizations

x-hookpulse-api-key
string
header
required

API key for authentication. Get this from your dashboard by selecting a brand and going to API Keys section.

x-brand-uuid
string
header
required

Brand UUID for authentication. Get this from your dashboard after adding a brand - it will be displayed in the UI.

Query Parameters

filter_status
enum<string>
required

Filter schedules by status

Available options:
active,
inactive,
paused,
completed,
expired
page
integer<int32>
default:1

Page number to retrieve (starts from 1)

Required range: x >= 1

Response

Successful response

data
object[]

Array of schedule objects

meta
object
success
boolean

Indicates if the request was successful

timezone
string

IANA timezone identifier indicating the timezone used for all timestamps in the response (matches your brand's selected timezone)