canonical: https://jentic.com/apis/posthook.io/posthook

# Posthook API

Jentic publishes the only available OpenAPI specification for Posthook API, keeping it validated and agent-ready. Posthook API provides scheduled webhook delivery with configurable retry policies. It allows scheduling hooks for delivery at specific UTC timestamps, local times with timezone awareness, or relative delays up to 365 days. The API includes bulk operations for retrying failed hooks, replaying completed deliveries, and cancelling pending hooks, plus per-hook retry configuration with fixed or exponential backoff strategies.

## For AI agents

Schedule webhook deliveries at specific times or relative delays, manage hook lifecycle with bulk retry, replay, and cancel operations, and configure per-hook retry strategies.

## Scope

Does not handle webhook receiving, URL verification, or event source management - use for scheduling outbound webhook deliveries only.

## Capabilities

- Schedule webhook deliveries at exact UTC timestamps, local times with timezone, or relative delays
- Configure per-hook retry policies with fixed or exponential backoff up to 15 attempts
- Retry failed hooks individually or in bulk using ID lists or time-range filters
- Replay completed webhook deliveries to re-trigger downstream processing
- Cancel pending hooks individually or in bulk before their scheduled delivery time
- Filter and paginate hook lists by status, scheduled time, and creation date

## Use cases

### Scheduled Reminder and Notification Delivery

Schedule webhook callbacks at precise future times to trigger reminders, notifications, or time-delayed actions. Posthook supports UTC timestamps, timezone-aware local times, and relative delays (e.g., '2h30m'), with each hook carrying an arbitrary JSON payload. Hooks scheduled for past timestamps are delivered immediately.

Example prompt: Schedule a hook to POST to `/webhooks/reminder` with data containing user_id 123 at postAt 2026-07-01T09:00:00Z

### Reliable Webhook Delivery with Retry

Ensure critical webhooks reach their destination by configuring per-hook retry strategies. Choose between fixed-delay and exponential backoff with up to 15 retry attempts, customizable delay (5-60 seconds), backoff factor (1.1-4.0), and optional jitter to prevent thundering herd issues when multiple hooks retry simultaneously.

Example prompt: Schedule a hook with retryOverride set to exponential strategy, 5 minRetries, 10 delaySecs, and backoffFactor 2.0

### Bulk Recovery from Webhook Failures

Recover from outages by bulk-retrying failed hooks across a time range or by specific IDs. The bulk retry endpoint accepts up to 1000 hook IDs or a startTime/endTime filter with a limit, and returns the count of affected hooks. Similarly, bulk replay re-delivers completed hooks for reprocessing after downstream fixes.

Example prompt: Bulk retry all failed hooks between 2026-06-14T00:00:00Z and 2026-06-15T00:00:00Z with a limit of 500 using the `/hooks/bulk/retry` endpoint

### AI Agent Webhook Scheduling via Jentic

AI agents use Jentic to discover Posthook operations by intent, such as 'schedule a delayed webhook' or 'retry failed webhooks'. Jentic returns the operation schema with parameters for scheduling modes (postAt, postAtLocal with timezone, or postIn for relative delay), then handles X-API-Key injection for authenticated delivery.

Example prompt: Search Jentic for 'schedule a delayed webhook', load the post_hooks schema, and execute with path '/callback', postIn '1h', and data payload

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/hooks` | Schedule a new hook for future delivery |
| GET | `/hooks` | List hooks with filtering by status and time |
| GET | `/hooks/{id}` | Retrieve a single hook by ID |
| DELETE | `/hooks/{id}` | Cancel a pending hook |
| POST | `/hooks/bulk/retry` | Bulk retry failed hooks |
| POST | `/hooks/bulk/replay` | Bulk replay completed hooks |
| POST | `/hooks/bulk/cancel` | Bulk cancel pending hooks |

## Key resources

- **Hooks** — Schedule, list, retrieve, cancel, and manage webhook deliveries with retry configuration
- **Bulk Actions** — Retry, replay, or cancel hooks in bulk by ID list or time-range filter

## AI readiness

This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.

- **Score:** 66 / 100
- **Maturity:** AI-Aware
- **Dimensions:**
  - Foundational Compliance: 87 / 100
  - Developer Experience & Jentic Compatibility: 59 / 100
  - AI-Readiness & Agent Experience: 53 / 100
  - Agent Usability: 94 / 100
  - Security: 50 / 100
  - AI Discoverability: 77 / 100
- **View full report:** https://jentic.com/apis/posthook.io/posthook/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** Wiring the Posthook API by hand means handling its X-API-Key header and formatting scheduling requests across its UTC, local-time, and relative-delay modes yourself. Through Jentic you install once, import the Posthook API from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** Posthook puts the hook id in the URL path (`/hooks/{id}`), so a rule can pin your agent to reading and scheduling hooks: you choose the operations it may call, so destructive ones like deleting a hook or bulk cancel are not included unless you add them.
- **Credential handling:** Your Posthook API key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'schedule a webhook for later' or 'retry failed hooks', and Jentic returns the matching Posthook operation with its scheduling-mode parameters so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Svix API** — Enterprise webhook sending platform with message queuing and endpoint management
- **Hookdeck API** — Webhook gateway for receiving, routing, and managing inbound webhooks
- **Zapier NLA API** — Workflow automation triggered by events including webhooks

## FAQ

### Why is there no official OpenAPI spec for Posthook API?

Posthook does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Posthook API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Posthook API use?

The Posthook API uses an API key passed in the X-API-Key request header. Through Jentic, this key is stored in the encrypted credential vault and injected into headers automatically so agents never handle the raw key.

### Can I schedule webhooks using relative time delays with the Posthook API?

Yes. The postIn parameter accepts a duration string such as '5m', '2h', '1d12h' combining days, hours, minutes, and seconds. The minimum delay is 1 second and maximum is 365 days. This is mutually exclusive with the postAt and postAtLocal parameters.

### What are the rate limits for the Posthook API?

Posthook provides quota information in response headers: Posthook-HookQuota-Limit shows your billing period maximum, Posthook-HookQuota-Usage shows current usage, Posthook-HookQuota-Remaining shows remaining hooks, and Posthook-HookQuota-Resets-At indicates when the quota resets.

### How do I configure retry behavior for individual webhooks?

Include a retryOverride object when scheduling a hook. Specify minRetries (1-15 attempts), delaySecs (5-60 seconds between attempts), and strategy ('fixed' or 'exponential'). For exponential backoff, set backoffFactor (1.1-4.0), maxDelaySecs (60-3600), and optionally enable jitter to randomize delays.

### How do I bulk retry failed hooks through the Posthook API with Jentic?

Install the SDK with pip install jentic, then search for 'retry failed webhooks in bulk'. Jentic returns the post_hooks_bulk_retry operation schema. You can provide either a hookIDs array (up to 1000 IDs) or a time-range filter with startTime, endTime, and limit parameters to select which failed hooks to retry.

### Can I limit what my agent is allowed to do with the Posthook API?

Yes. Jentic One is self-hosted, so you run your own instance and your own rules decide which Posthook operations and credentials the agent may use. Because Posthook puts the hook id in the URL path (`/hooks/{id}`), you can pin the agent to scheduling and reading hooks, such as POST /hooks and GET `/hooks/{id}`, while leaving out destructive calls like DELETE `/hooks/{id}` or the bulk cancel and bulk retry endpoints. Those operations are only available to the agent if you explicitly add them to its allowed set.
