Skip to content

Create a customer webhook

POST
/webhooks
curl --request POST \
--url https://api.proxyrequest.com/api/v1/webhooks \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "type": "user", "endpoint": "https://developer.example.com/webhooks/proxy-events", "read_timeout": 5, "write_timeout": 5, "retries": 3, "retry_timeout": 10 }'

Registers an HTTPS destination for a supported event type. Private, loopback, and otherwise unsafe destinations are rejected.

object
type
required
  • user - User * reseller - Reseller * system - System
string
Allowed values: user reseller system
endpoint
required
string format: uri
>= 1 characters <= 500 characters
read_timeout
integer
default: 5 >= 1 <= 60
write_timeout
integer
default: 5 >= 1 <= 60
retries
integer
default: 3 <= 10
retry_timeout
integer
default: 10 >= 1 <= 300
Examples
ExampleCreateDeliveryEndpoint

Create delivery endpoint

{
"type": "user",
"endpoint": "https://developer.example.com/webhooks/proxy-events",
"read_timeout": 5,
"write_timeout": 5,
"retries": 3,
"retry_timeout": 10
}

The resource or action result was created successfully.

Media typeapplication/json
object
id
string
<= 36 characters
type

Context in which this webhook operates. Determines which events are delivered. User events scoped to the associated user account Reseller events scoped to the reseller and their sub-accounts System platform-wide system events * user - User * reseller - Reseller * system - System

string
Allowed values: user reseller system
endpoint
required
Endpoint URL

HTTPS URL that receives webhook POST requests when events are triggered. https://example.com/webhooks/proxy The endpoint must be publicly accessible and respond within the configured read timeout.

string format: uri
<= 500 characters
secret
Signing Secret

Secret used to sign each webhook payload. The receiving endpoint should verify the signature to confirm the request originated from this platform. Auto-generated if left blank. Store this value securely on the receiving end.

string
<= 255 characters
read_timeout
Read Timeout (seconds)

Maximum time to wait for the endpoint to return a response. Requests that exceed this limit are treated as failed and may be retried.

integer
>= 1 <= 60
write_timeout
Write Timeout (seconds)

Maximum time to wait while sending the payload to the endpoint. Requests that exceed this limit are treated as failed and may be retried.

integer
>= 1 <= 60
retries

Number of additional delivery attempts after an initial failure. Set to 0 to disable retries. 3 → up to 4 total delivery attempts

integer
<= 10
retry_timeout
Retry Interval (seconds)

How long to wait before each retry attempt after a failed delivery. 10 → retry after 10 seconds

integer
>= 1 <= 300
created
required
string format: date-time
Examples
Exampleexample

Example response

{
"id": "550e8400-e29b-41d4-a716-446655440001",
"type": "user",
"endpoint": "https://developer.example.com/webhooks/proxy-events",
"secret": "secret",
"read_timeout": 1,
"write_timeout": 1,
"retries": 1,
"retry_timeout": 1,
"created": "2026-07-01T12:30:00Z"
}

The request is malformed or violates a business rule.

Media typeapplication/json

Validation and API error payload. Field names may be added dynamically; field errors are returned as arrays of human-readable messages.

object
detail
string
non_field_errors
Array<string>
translation

Stable translation key suitable for client localisation.

string
key
additional properties
One of:
string
Examples
ExampleValidationError

Validation error

{
"non_field_errors": [
"The request could not be processed."
],
"translation": "errors.request.invalid"
}

Authentication credentials are missing, expired, or invalid.

Media typeapplication/json

Validation and API error payload. Field names may be added dynamically; field errors are returned as arrays of human-readable messages.

object
detail
string
non_field_errors
Array<string>
translation

Stable translation key suitable for client localisation.

string
key
additional properties
One of:
string
Examples
ExampleAuthenticationRequired

Authentication required

{
"detail": "Authentication credentials were not provided."
}

The authenticated account cannot perform this operation.

Media typeapplication/json

Validation and API error payload. Field names may be added dynamically; field errors are returned as arrays of human-readable messages.

object
detail
string
non_field_errors
Array<string>
translation

Stable translation key suitable for client localisation.

string
key
additional properties
One of:
string
Examples
ExamplePermissionDenied

Permission denied

{
"detail": "You do not have permission to perform this action."
}