HookDeploy

The Usage API returns current consumption and plan limits for the authenticated organization.

Get usage

GET /v1/usage
curl -s "https://api.hookdeploy.dev/v1/usage" \
  -H "Authorization: Bearer hd_live_YOUR_KEY"

Response:

{
  "data": {
    "requests_this_month": 42,
    "endpoint_count": 3,
    "member_count": 2,
    "limits": {
      "max_endpoints": "5",
      "max_users": "1",
      "max_requests_per_month": "500",
      "max_payload_bytes": "262144",
      "retention_days": "7"
    }
  }
}

Response fields

Current usage

FieldDescription
requests_this_monthWebhooks captured this calendar month across all endpoints
endpoint_countActive endpoints in the organization
member_countOrganization members (including owner)

Limits

All limit values are strings. -1 means unlimited.

FieldDescription
max_endpointsMaximum endpoints allowed
max_usersMaximum team members
max_requests_per_monthMonthly webhook ingestion quota
max_payload_bytesMaximum request body size in bytes
retention_daysDays before captured requests are deleted

Plan limit reference

Planmax_usersmax_endpointsmax_requests_per_monthmax_payload_bytesretention_days
Free15500262144 (256 KB)7
Starter225250001048576 (1 MB)30
Team-15050000026214400 (25 MB)90
Enterprise-1-1-1104857600 (100 MB)365

Using usage data

Before creating an endpoint — check if you’re at the limit:

USAGE=$(curl -s "https://api.hookdeploy.dev/v1/usage" \
  -H "Authorization: Bearer hd_live_YOUR_KEY")

ENDPOINTS=$(echo $USAGE | jq -r '.data.endpoint_count')
MAX=$(echo $USAGE | jq -r '.data.limits.max_endpoints')

echo "Using $ENDPOINTS of $MAX endpoints"

Monitoring ingestion — poll usage in CI or cron jobs to alert before hitting monthly limits:

REQUESTS=$(curl -s "https://api.hookdeploy.dev/v1/usage" \
  -H "Authorization: Bearer hd_live_YOUR_KEY" \
  | jq -r '.data.requests_this_month')

LIMIT=$(curl -s "https://api.hookdeploy.dev/v1/usage" \
  -H "Authorization: Bearer hd_live_YOUR_KEY" \
  | jq -r '.data.limits.max_requests_per_month')

if [ "$REQUESTS" -ge "$LIMIT" ]; then
  echo "Monthly request limit reached"
fi

What counts toward limits

ActionCounts as request?Counts as endpoint?
Incoming webhook to hookdeploy.dev/h/*Yes
API replayNo
Auto-forwardNo (same ingestion event)
API health checkNo
Create endpoint via API/dashboardYes

Usage counters reset at the start of each calendar month (UTC).

When limits are exceeded

  • Max endpointsPOST /v1/endpoints returns 429 plan_limit
  • Max requests/month — Incoming webhooks return 429 with {"error":"plan limit reached"}
  • Max payload — Incoming webhooks return 413 Payload Too Large
  • Max users — Invitations fail in the dashboard (not via this API)

No overage charges on self-serve plans. Upgrade via the dashboard Billing page.

Next steps