Create a pull endpoint
const url = 'https://api.hookbridge.io/v1/pull-endpoints';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"name":"Stripe Order Events","description":"example","retention_days":30,"event_type_source":"body","event_type_path":"type","verify_static_token":false,"token_header_name":"example","token_query_param":"example","token_value":"example","verify_hmac":false,"hmac_header_name":"example","hmac_secret":"example","timestamp_header_name":"example","timestamp_ttl_seconds":1,"verify_ip_allowlist":false,"allowed_cidrs":["example"],"idempotency_header_names":["example"],"ingest_response_code":202}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.hookbridge.io/v1/pull-endpoints \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "name": "Stripe Order Events", "description": "example", "retention_days": 30, "event_type_source": "body", "event_type_path": "type", "verify_static_token": false, "token_header_name": "example", "token_query_param": "example", "token_value": "example", "verify_hmac": false, "hmac_header_name": "example", "hmac_secret": "example", "timestamp_header_name": "example", "timestamp_ttl_seconds": 1, "verify_ip_allowlist": false, "allowed_cidrs": [ "example" ], "idempotency_header_names": [ "example" ], "ingest_response_code": 202 }'Creates a new pull mode endpoint. Pull endpoints receive webhooks from external providers and store events for consumer-controlled retrieval via the API, instead of forwarding them.
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”object
Human-readable name
Example
Stripe Order EventsDescription of this endpoint’s purpose
Per-endpoint retention override (default is plan default)
Example
30Where to extract the event type from incoming webhooks
JSON path for body extraction (e.g., “type”) or header name (e.g., “X-GitHub-Event”)
Example
typeResponses
Section titled “Responses”Pull endpoint created
object
object
URL to give to your webhook provider. Does not include the secret token suffix.
Whether the endpoint is active (not deleted).
Event counts (only on single-endpoint GET, not list)
object
Secret token for the ingestion URL. Shown only once at creation time.
Full ingestion URL including the secret token suffix.
object
Unique identifier for this request (useful for support)
Example
{ "data": { "mode": "pull", "event_type_source": "body" }, "meta": { "request_id": "req_xyz123" }}Invalid request
object
object
Machine-readable error code
Human-readable error message
object
Unique identifier for this request (useful for support)
Examples
Endpoint not found
{ "error": { "code": "ENDPOINT_NOT_FOUND", "message": "endpoint not found" }, "meta": { "request_id": "req_xyz123" }}Invalid endpoint ID format
{ "error": { "code": "INVALID_REQUEST", "message": "endpoint_id must be in format ep_xxx" }, "meta": { "request_id": "req_xyz123" }}Invalid payload
{ "error": { "code": "INVALID_REQUEST", "message": "payload must be valid JSON" }, "meta": { "request_id": "req_xyz123" }}Invalid headers
{ "error": { "code": "INVALID_HEADERS", "message": "header 'Host' is forbidden and cannot be overridden" }, "meta": { "request_id": "req_xyz123" }}Unauthorized - Invalid or missing API key
object
object
Machine-readable error code
Human-readable error message
object
Unique identifier for this request (useful for support)
Example
{ "error": { "code": "UNAUTHORIZED", "message": "Invalid or missing API key" }, "meta": { "request_id": "req_xyz123" }}Enter your credentials to populate code examples throughout the docs.