Skip to main content
POST
/
api
/
v1
/
webhooks
Create a new webhook
curl --request POST \
  --url https://api.engagefabric.com/api/v1/webhooks \
  --header 'Content-Type: application/json' \
  --data '
{
  "projectId": "proj_123abc",
  "name": "Player Events Webhook",
  "url": "https://api.yourapp.com/webhooks/engagefabric",
  "events": [
    "player.level_up",
    "player.xp_granted",
    "quest.completed"
  ],
  "description": "Sends player level-up events to our rewards service",
  "headers": {
    "X-Custom-Header": "value"
  },
  "maxConsecutiveFailures": 10,
  "rateLimit": 1000,
  "maxRetries": 3,
  "retryDelaySeconds": 60
}
'
{
  "id": "wh_123abc",
  "projectId": "proj_456def",
  "name": "Player Events Webhook",
  "url": "https://api.yourapp.com/webhooks/engagefabric",
  "events": [
    "player.level_up",
    "quest.completed"
  ],
  "isActive": true,
  "maxConsecutiveFailures": 10,
  "rateLimit": 1000,
  "maxRetries": 3,
  "retryDelaySeconds": 60,
  "consecutiveFailures": 0,
  "totalDeliveries": 1500,
  "successfulDeliveries": 1480,
  "failedDeliveries": 20,
  "createdAt": "2024-01-01T00:00:00Z",
  "updatedAt": "2024-01-15T10:30:00Z",
  "description": "Sends player level-up events to our rewards service",
  "headers": {
    "X-Custom-Header": "value"
  },
  "lastTriggeredAt": "2024-01-15T10:30:00Z",
  "lastSuccessAt": "2024-01-15T10:30:00Z",
  "lastFailureAt": "2024-01-14T08:00:00Z"
}

Body

application/json
projectId
string
required

Project ID this webhook belongs to

Example:

"proj_123abc"

name
string
required

Webhook name for identification

Maximum string length: 255
Example:

"Player Events Webhook"

url
string
required

URL to deliver webhook payloads to

Maximum string length: 500
Example:

"https://api.yourapp.com/webhooks/engagefabric"

events
array[]
required

Event types to subscribe to

Example:
[
"player.level_up",
"player.xp_granted",
"quest.completed"
]
description
string

Description of the webhook purpose

Example:

"Sends player level-up events to our rewards service"

headers
object

Custom headers to include in webhook requests

Example:
{ "X-Custom-Header": "value" }
maxConsecutiveFailures
number
default:10

Maximum consecutive failures before auto-disable (0 = never)

Example:

10

rateLimit
number
default:1000

Rate limit in requests per hour (0 = unlimited)

Example:

1000

maxRetries
number
default:3

Maximum retry attempts for failed deliveries

Example:

3

retryDelaySeconds
number
default:60

Delay in seconds between retry attempts

Example:

60

Response

201 - application/json
id
string
required
Example:

"wh_123abc"

projectId
string
required
Example:

"proj_456def"

name
string
required
Example:

"Player Events Webhook"

url
string
required
Example:

"https://api.yourapp.com/webhooks/engagefabric"

events
array[]
required
Example:
["player.level_up", "quest.completed"]
isActive
boolean
required
Example:

true

maxConsecutiveFailures
number
required
Example:

10

rateLimit
number
required
Example:

1000

maxRetries
number
required
Example:

3

retryDelaySeconds
number
required
Example:

60

consecutiveFailures
number
required
Example:

0

totalDeliveries
number
required
Example:

1500

successfulDeliveries
number
required
Example:

1480

failedDeliveries
number
required
Example:

20

createdAt
string
required
Example:

"2024-01-01T00:00:00Z"

updatedAt
string
required
Example:

"2024-01-15T10:30:00Z"

description
string
Example:

"Sends player level-up events to our rewards service"

headers
object
Example:
{ "X-Custom-Header": "value" }
lastTriggeredAt
string
Example:

"2024-01-15T10:30:00Z"

lastSuccessAt
string
Example:

"2024-01-15T10:30:00Z"

lastFailureAt
string
Example:

"2024-01-14T08:00:00Z"