Quickstart
Create an endpoint, trigger delivery, and inspect the result.
This flow creates a webhook endpoint and then creates an immediate Task Run for delivery.
Endpoint
01
Trigger
02
Task Run
03
Delivery Attempt
04
Retry Job
05
Dead Letter
06
1. Create an endpoint
An Endpoint is where EdgeCron sends callbacks. In production, use HTTPS and verify your own webhook secret in your service.
curl -X POST 'https://api.edgecron.com/v1/endpoints' \
-H 'X-Key-ID: ak_your_key_id' \
-H 'X-Timestamp: 1782873600' \
-H 'X-Signature: your_lowercase_hex_signature' \
-H 'Content-Type: application/json' \
--data '{
"name": "billing-webhook",
"url": "https://example.com/webhooks/edgecron",
"method": "POST",
"timeout_ms": 5000
}'2. Create a one-off task run
Direct Task Runs are useful for immediate delivery, delayed one-off delivery, or compensation work. Set run_at to 0 for immediate execution.
curl -X POST 'https://api.edgecron.com/v1/tasks' \
-H 'X-Key-ID: ak_your_key_id' \
-H 'X-Timestamp: 1782873600' \
-H 'X-Signature: your_lowercase_hex_signature' \
-H 'Content-Type: application/json' \
--data '{
"endpoint_id": 101,
"payload": "{\"invoice_id\":\"inv_123\",\"status\":\"paid\"}",
"run_at": 0
}'3. Inspect delivery attempts
A Delivery Attempt is the result of one real HTTP call. If it fails and policy allows retrying, EdgeCron creates Retry Jobs afterward.
curl 'https://api.edgecron.com/v1/deliveries?page=1&page_size=20' \
-H 'X-Key-ID: ak_your_key_id' \
-H 'X-Timestamp: 1782873600' \
-H 'X-Signature: your_lowercase_hex_signature'Production tip
In production, verify your own webhook secret at the target endpoint and return a 2xx response within the configured timeout.
Another common path: publish an event
Events are best when you want business names such as orders, invoices, or account state changes. EdgeCron matches endpoint subscriptions and fans out.
curl -X POST 'https://api.edgecron.com/v1/events' \
-H 'X-Key-ID: ak_your_key_id' \
-H 'X-Timestamp: 1782873600' \
-H 'X-Signature: your_lowercase_hex_signature' \
-H 'Content-Type: application/json' \
--data '{
"event_name": "invoice.paid",
"event_key": "inv_123",
"payload": {
"invoice_id": "inv_123",
"status": "paid"
}
}'