List Webhook Subscriptions
Retrieves a paginated list of webhook subscriptions for the authenticated user.
Endpoint
GET /v1/webhook-subscriptions
Authentication
API key required. Include it in the Authorization header:
Authorization: Bearer YOUR_API_KEY
Query Parameters
| Parameter | Type | Description |
|---|---|---|
page | integer | Page number for pagination. Default is 1. |
per_page | integer | Number of items per page. Default is 15. Maximum is 100. |
Available Events
| Event | Description |
|---|---|
shipping_channel.created | Fires when a new shipping channel is created |
shipping_channel.updated | Fires when a shipping channel is updated |
shipping_channel.deleted | Fires when a shipping channel is deleted |
shipping_channel.validated | Fires when a shipping channel is successfully validated |
shipping_channel.status_changed | Fires when a shipping channel's status changes |
tracking_parcel.created | Fires when a new tracking parcel is created |
tracking_parcel.updated | Fires when a tracking parcel is updated |
tracking_parcel.deleted | Fires when a tracking parcel is deleted |
tracking_parcel.status_changed | Fires when a tracking parcel's status changes |
Response
200 OK
{
"data": [
{
"id": "wh_123456",
"url": "https://example.com/webhooks/shipping-channels",
"events": [
"shipping_channel.created",
"shipping_channel.updated",
"shipping_channel.deleted",
"shipping_channel.status_changed"
],
"status": "active",
"secret": "••••••••••••••••",
"created_at": "2025-03-29T16:00:00Z",
"updated_at": "2025-03-29T16:00:00Z"
},
{
"id": "wh_234567",
"url": "https://example.com/webhooks/tracking-parcels",
"events": [
"tracking_parcel.created",
"tracking_parcel.status_changed"
],
"status": "active",
"secret": "••••••••••••••••",
"created_at": "2025-03-29T17:00:00Z",
"updated_at": "2025-03-29T17:00:00Z"
}
],
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"path": "https://api.shipping-channels.com/v1/webhook-subscriptions",
"per_page": 15,
"to": 2,
"total": 2
},
"links": {
"first": "https://api.shipping-channels.com/v1/webhook-subscriptions?page=1",
"last": "https://api.shipping-channels.com/v1/webhook-subscriptions?page=1",
"next": null,
"prev": null
}
}
Error Responses
| Status Code | Description |
|---|---|
| 401 | Unauthorized - Invalid or missing API key |
| 429 | Too Many Requests - Rate limit exceeded |
| 500 | Server Error - Something went wrong on our end |
Example Request
cURL
curl -X GET \
https://api.shipping-channels.com/v1/webhook-subscriptions \
-H "Authorization: Bearer YOUR_API_KEY"
PHP
<?php
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://api.shipping-channels.com/v1/webhook-subscriptions', [
'headers' => [
'Authorization' => 'Bearer YOUR_API_KEY',
'Accept' => 'application/json',
],
]);
$data = json_decode($response->getBody(), true);
JavaScript
fetch('https://api.shipping-channels.com/v1/webhook-subscriptions', {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Accept': 'application/json'
}
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
Security Considerations
- Webhook secrets are never returned in full; they are masked with dots (••••)
- You can only view webhook subscriptions that belong to your account
- All requests should be made over HTTPS to ensure data security