Webhooks vs REST API
The REST API and Webhooks solve opposite problems. The REST API is request-driven — you ask, the platform answers. Webhooks are event-driven — the platform tells you the moment something changes. Most production integrations use both.
REST API
You pull data on demand. Best when your system needs an answer right now — looking up a user, enrolling a learner, updating a course.
- Synchronous request / response
- You control the timing and the query
- Subject to rate limits — see Rate Limits
- Stateless — every call is independent
Webhooks
The platform pushes events to your URL the moment they happen. Best for keeping downstream systems in sync without polling.
- Asynchronous, fire-and-forget delivery
- HMAC-SHA256 signed payloads
- 24-hour exponential-backoff retry on failure
- You provide a public HTTPS endpoint
When to use which
| Scenario | Use | Why |
|---|---|---|
| Provision a user from your CRM | REST API | You need confirmation of success before continuing the workflow. |
| Sync course completions to an HRIS | Webhooks | Avoid polling — react the instant a learner finishes. |
| Build a custom learner dashboard | REST API | Read on-demand to render the latest state. |
| Trigger a Slack alert on enrollment | Webhooks | Real-time push to a notification system. |
| Nightly data warehouse export | REST API | Bulk pagination over a defined window. |
| Update billing on subscription change | Webhooks | Stay in lock-step with platform state changes. |
| Verify a user's certification status | REST API | Point-in-time lookup with a deterministic response. |
| Mirror catalog changes to a marketing site | Webhooks | Push the delta instead of re-crawling the catalog. |
Use them together
The most resilient integrations combine both. Webhooks notify you of change; the REST API hydrates the full record. Webhook payloads are intentionally lean — treat them as a signal, then fetch authoritative data from the API.
1. Learner finishes a course 2. Platform fires course.completed webhook → your endpoint 3. Your handler reads userId + courseId from the payload 4. Your service calls GET /v2/users/:id (full profile) 5. Your service calls GET /v2/content/course/:id (course metadata) 6. Downstream system (HRIS, CRM, warehouse) is updated
At a glance
| REST API | Webhooks | |
|---|---|---|
| Direction | Client → Platform | Platform → Client |
| Timing | On demand | Real-time on event |
| Transport | HTTPS request/response | HTTPS POST to your URL |
| Auth | Bearer API key | HMAC-SHA256 signature |
| Failure handling | You retry | 24h exponential backoff |
| Best for | Reads, writes, lookups | State sync, notifications |