canonical: https://jentic.com/apis/apideck.com/webhook

# Apideck Webhook API

The Apideck Webhook API manages webhook subscriptions and delivery for events emitted by Apideck Unified APIs. Ten endpoints cover subscription CRUD, manual webhook execution against a specific service, callback resolution paths used by connectors that push events back, and event log retrieval for debugging. A subscription is identified by ID and scoped to a service, with execute and resolve endpoints allowing replay or on-demand delivery. Authentication uses the Apideck Authorization header alongside x-apideck-app-id and x-apideck-consumer-id.

## For AI agents

Subscribe to events emitted by Apideck Unified APIs, replay deliveries, and inspect event logs across CRM, HRIS, accounting, and other connectors.

## Scope

Does not deliver inbound HTTP requests to your application directly, run workflow logic, or store custom field mappings - use only for managing webhook subscriptions, replaying deliveries, and inspecting event logs.

## Capabilities

- Create a webhook subscription pointed at your endpoint URL with selected event types
- List, retrieve, update, and delete webhook subscriptions per consumer
- Manually replay or execute a webhook for a given subscription and service via /execute or /x
- Resolve and execute connection-level webhooks via /webhook/w/{id}/{serviceId}
- Pull event logs through GET /webhook/logs to debug delivery failures
- Update a subscription's URL or filter criteria with PATCH /webhook/webhooks/{id}

## Use cases

### Real-Time Sync Across Unified APIs

Receive events when records change in a customer's connected CRM, HRIS, or accounting system without polling. POST /webhook/webhooks creates a subscription tied to a consumer and event types; Apideck delivers normalised event payloads to the configured URL. Useful for keeping a SaaS product's local cache in sync with a customer's source-of-truth system.

Example prompt: Create a webhook subscription for consumer 'cust_42' on the 'crm' Unified API for events 'contact.created' and 'contact.updated' pointed at 'https://example.com/hooks/crm'

### Webhook Replay and Backfill

Recover from downtime or a misconfigured handler by replaying missed webhooks. POST /webhook/webhooks/{id}/execute/{serviceId} fires a webhook on demand, and GET /webhook/logs surfaces past deliveries with their status. Useful for products that need a manual 'resync' button when an endpoint was returning errors.

Example prompt: List logs for subscription 'sub_42' filtered to status 'failed' in the last 24 hours and call POST /webhook/webhooks/sub_42/execute/{serviceId} for each to retry delivery

### Event Log Inspection

Inspect every webhook delivery - outbound URL, status code, response body - to debug why a customer's integration is misbehaving. GET /webhook/logs returns the recent event log; subscription IDs and service IDs are returned with each entry so the failure can be traced to a specific connection.

Example prompt: Get the last 100 entries from GET /webhook/logs, group by subscription_id, and return a count of successful versus failed deliveries per subscription

### AI Agent Webhook Setup via Jentic

An AI agent helps a customer wire up real-time sync. Through Jentic, the agent searches 'create a webhook subscription', loads the POST /webhook/webhooks operation, and executes it with the customer's URL and event filters. Jentic stores the Apideck Authorization, x-apideck-app-id, and x-apideck-consumer-id headers separately so the agent never holds raw credentials.

Example prompt: Through Jentic, search 'create a webhook subscription', load POST /webhook/webhooks, and create one for events 'contact.created' delivered to the URL the customer provides

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /webhook/webhooks | List webhook subscriptions |
| POST | /webhook/webhooks | Create a webhook subscription |
| PATCH | /webhook/webhooks/{id} | Update a webhook subscription |
| DELETE | /webhook/webhooks/{id} | Delete a webhook subscription |
| POST | /webhook/webhooks/{id}/execute/{serviceId} | Manually execute a webhook against a service |
| POST | /webhook/w/{id}/{serviceId} | Resolve and execute a connection webhook |
| GET | /webhook/logs | List webhook delivery event logs |

## Key resources

- **Webhooks** — List, create, get, update, and delete webhook subscriptions per consumer
- **Executions** — Manually execute or resolve-and-execute webhooks against a specific service
- **Logs** — Read recent webhook delivery logs for debugging

## Why Jentic

- **Setup:** Wiring the Apideck Webhook API by hand means setting up its API key headers, learning the subscription shape, and managing replays and event logs yourself. Through Jentic you install once, import Apideck Webhook from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** The Apideck Webhook API puts the webhook id in the URL path (/webhook/webhooks/{id}/...), so a rule can pin your agent to one webhook: it can update and replay that subscription and nothing else. You choose the operations it may call, so delete is not included unless you add it.
- **Credential handling:** Your Apideck 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 'create a webhook subscription' or 'replay a webhook delivery', and Jentic returns the matching Apideck Webhook operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Apideck Vault API** — Vault stores the consumer connections that webhook subscriptions are scoped to.
- **Apideck CRM Unified API** — CRM Unified API emits the events that webhook subscriptions deliver - contacts, deals, companies, etc.
- **Pipedream API** — Pipedream offers webhook-style triggers across thousands of apps with workflow execution attached.

## FAQ

### What authentication does the Apideck Webhook API use?

An apiKey scheme on the `Authorization` header with your Apideck application key, plus `x-apideck-app-id` and `x-apideck-consumer-id` headers. Through Jentic these are stored encrypted in the vault and injected at execution; the agent never sees the raw key.

### Can I subscribe to events from multiple Unified APIs with one subscription?

Each subscription is created against a specific Unified API and event-type list via POST /webhook/webhooks. Create separate subscriptions for CRM, HRIS, accounting, etc. - list them all with GET /webhook/webhooks and update or delete individually.

### What are the rate limits for the Apideck Webhook API?

The OpenAPI spec does not publish per-endpoint rate limits. Apideck applies plan-based limits at unify.apideck.com that cover both webhook management calls and outbound delivery throughput. See https://developers.apideck.com for your plan's gateway and event-delivery quotas.

### How do I replay a missed webhook through Jentic?

Install with `pip install jentic`, then run the search query 'replay apideck webhook'. Jentic returns POST /webhook/webhooks/{id}/execute/{serviceId} - load its schema, supply the subscription ID and service ID for the missed delivery, then execute to retrigger.

### How do I debug a webhook that is not arriving?

Call GET /webhook/logs to see recent delivery attempts with status codes and response bodies. If logs show 4xx/5xx responses from your endpoint, fix the handler and POST to /webhook/webhooks/{id}/execute/{serviceId} to replay. If no logs exist, double-check the subscription URL with GET /webhook/webhooks/{id}.

### What's the difference between /execute and /w endpoints?

POST /webhook/webhooks/{id}/execute/{serviceId} (and the alias /webhook/webhooks/{id}/x/{serviceId}) manually fires a configured subscription. POST/GET /webhook/w/{id}/{serviceId} resolves and executes a connection-level webhook - used by connectors that push events back through Apideck rather than relying on a stored subscription.

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

Yes. Because you run Jentic One yourself, your own rules decide which operations and credentials the agent may use, and you pick exactly which Apideck Webhook operations it can call. Since the webhook id sits in the URL path (/webhook/webhooks/{id}/...), you can pin the agent to a single subscription so it can update and replay that webhook via PATCH /webhook/webhooks/{id} and POST /webhook/webhooks/{id}/execute/{serviceId} and nothing else. Destructive operations like DELETE /webhook/webhooks/{id} stay out of reach unless you explicitly add them to the allowed set.
