Skip to main content
POST
/
v1
/
api
/
add_solar_schedule
curl -X POST "https://api.hookpulse.io/v1/api/add_solar_schedule/" \
  -H "x-hookpulse-api-key: {{x-hookpulse-api-key}}" \
  -H "x-brand-uuid: {{x-brand-uuid}}" \
  -H "Content-Type: application/json" \
  -d '{
    "solar_event": "sunrise",
    "solar_lat": "{{solar_lat}}",
    "solar_long": "{{solar_long}}",
    "solar_offset_seconds": 5,
    "is_one_off_task": false,
    "schedule_to": "webhook",
    "model_to_schedule_uuid": "{{model_to_schedule_uuid}}",
    "initial_context_template": {
      "key": "value"
    }
  }'
{
  "success": true,
  "details": "Schedule added successfully"
}
Create a solar event-based schedule that executes a webhook or workflow based on sunrise, sunset, or other solar events at specific geographic coordinates.

Base URL

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

Example request

curl -X POST "https://api.hookpulse.io/v1/api/add_solar_schedule/" \
  -H "x-hookpulse-api-key: {{x-hookpulse-api-key}}" \
  -H "x-brand-uuid: {{x-brand-uuid}}" \
  -H "Content-Type: application/json" \
  -d '{
    "solar_event": "sunrise",
    "solar_lat": "{{solar_lat}}",
    "solar_long": "{{solar_long}}",
    "solar_offset_seconds": 5,
    "is_one_off_task": false,
    "schedule_to": "webhook",
    "model_to_schedule_uuid": "{{model_to_schedule_uuid}}",
    "initial_context_template": {
      "key": "value"
    }
  }'

Request body

FieldTypeRequiredDescription
solar_eventstringYesSolar event type: "sunrise", "sunset", "civil_dawn", "civil_dusk", "nautical_dawn", "nautical_dusk", "astronomical_dawn", "astronomical_dusk"
solar_latstringYesLatitude in decimal degrees (e.g., "40.7128" for New York)
solar_longstringYesLongitude in decimal degrees (e.g., "-74.0060" for New York)
solar_offset_secondsintegerNoOffset in seconds to adjust timing (e.g., 5 for 5 seconds after, -300 for 5 minutes before)
is_one_off_taskbooleanYesSet to true if the schedule should run only once, false for recurring execution
schedule_tostringYesTarget type: "webhook" or "workflow"
model_to_schedule_uuidstringYesUUID of the webhook or workflow template to schedule (as per schedule_to)
initial_context_templateobjectNoKey-value pairs passed as {{ initial.key }} variables to the webhook/workflow

Example response

{
  "success": true,
  "details": "Schedule added successfully"
}

Response fields

FieldTypeDescription
successbooleanIndicates if the schedule was created successfully
detailsstringSuccess message

Solar Event Types

EventDescription
"sunrise"When the sun appears above the horizon
"sunset"When the sun disappears below the horizon
"civil_dawn"Morning when the sun is 6° below the horizon (bright enough for most activities)
"civil_dusk"Evening when the sun is 6° below the horizon (still bright enough for most activities)
"nautical_dawn"Morning when the sun is 12° below the horizon (horizon visible at sea)
"nautical_dusk"Evening when the sun is 12° below the horizon (horizon visible at sea)
"astronomical_dawn"Morning when the sun is 18° below the horizon (dark enough for astronomical observations)
"astronomical_dusk"Evening when the sun is 18° below the horizon (dark enough for astronomical observations)

Geographic Coordinates

Provide latitude and longitude as decimal degrees:
  • Latitude: Range from -90 to +90 (negative for Southern Hemisphere)
  • Longitude: Range from -180 to +180 (negative for Western Hemisphere)
  • Format: String representation of decimal number (e.g., "40.7128", "-74.0060")

Example Coordinates

LocationLatitudeLongitude
New York, USA40.7128-74.0060
London, UK51.5074-0.1278
Tokyo, Japan35.6762139.6503
Mumbai, India19.076072.8777
Sydney, Australia-33.8688151.2093

Solar Offset

The solar_offset_seconds field allows you to adjust the execution time relative to the solar event:
  • Positive values: Execute after the event (e.g., 1800 = 30 minutes after sunrise)
  • Negative values: Execute before the event (e.g., -300 = 5 minutes before sunset)
  • Zero or omitted: Execute exactly at the solar event time

Initial Context Template

The initial_context_template object allows you to pass variables to your webhook or workflow that can be accessed using {{ initial.key }} syntax:
  • In request body: {{ initial.key }} will be replaced with the value
  • In headers: {{ initial.key }} can be used in header values
  • In query params: {{ initial.key }} can be used in query parameters
  • In path: {{ initial.key }} can be used in URL paths
You can also combine with:
  • System secrets: {{ #secret_key }} for vault secrets
  • Workflow step responses: {{ step.response.variable }} in workflows

Use Cases

  • Outdoor Lighting: Turn lights on at sunset and off at sunrise
  • Solar Panel Management: Optimize solar panel operations based on sun position
  • Agricultural Systems: Schedule irrigation or operations based on daylight
  • Weather-Dependent Operations: Trigger operations based on natural light
  • Location-Based Automation: Automate based on solar events at specific locations
  • Smart Home: Control devices based on natural light cycles

Examples

Sunrise Trigger - Recurring

{
  "solar_event": "sunrise",
  "solar_lat": "{{solar_lat}}",
  "solar_long": "{{solar_long}}",
  "solar_offset_seconds": 0,
  "is_one_off_task": false,
  "schedule_to": "webhook",
  "model_to_schedule_uuid": "{{model_to_schedule_uuid}}"
}

Sunset with 30-Minute Offset - Recurring

{
  "solar_event": "sunset",
  "solar_lat": "{{solar_lat}}",
  "solar_long": "{{solar_long}}",
  "solar_offset_seconds": 1800,
  "is_one_off_task": false,
  "schedule_to": "webhook",
  "model_to_schedule_uuid": "{{model_to_schedule_uuid}}"
}

Civil Dawn for Outdoor Operations - Recurring

{
  "solar_event": "civil_dawn",
  "solar_lat": "{{solar_lat}}",
  "solar_long": "{{solar_long}}",
  "solar_offset_seconds": 0,
  "is_one_off_task": false,
  "schedule_to": "workflow",
  "model_to_schedule_uuid": "{{model_to_schedule_uuid}}",
  "initial_context_template": {
    "location": "London",
    "operation": "outdoor_lighting"
  }
}

One-Time Solar Event Trigger

{
  "solar_event": "sunrise",
  "solar_lat": "{{solar_lat}}",
  "solar_long": "{{solar_long}}",
  "solar_offset_seconds": 0,
  "is_one_off_task": true,
  "schedule_to": "webhook",
  "model_to_schedule_uuid": "{{model_to_schedule_uuid}}"
}

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.

Body

application/json

Solar schedule configuration

solar_event
enum<string>
required

Solar event type

Available options:
sunrise,
sunset,
civil_dawn,
civil_dusk,
nautical_dawn,
nautical_dusk,
astronomical_dawn,
astronomical_dusk
solar_lat
string
required

Latitude in decimal degrees

solar_long
string
required

Longitude in decimal degrees

schedule_to
enum<string>
required

Target type: 'webhook' or 'workflow'

Available options:
webhook,
workflow
model_to_schedule_uuid
string
required

UUID of the webhook or workflow template to schedule

solar_offset_seconds
integer

Offset in seconds to adjust timing (e.g., 5 for 5 seconds after, -300 for 5 minutes before)

initial_context_template
object

Key-value pairs passed as {{ initial.key }} variables to the webhook/workflow

Response

Schedule created successfully

success
boolean

Indicates if the schedule was created successfully

details
string

Success message