Connect WatchTraderHub to
your own systems
Run inventory and orders through your own platform via REST API and outbound webhooks. Built for dealers who already have a tech stack and need WatchTraderHub as the source of truth.
What the Custom Integration includes
Every capability you need to build a reliable, production-grade sync between WatchTraderHub and your own platform.
REST API for inventory and orders
Read listings and write orders via a versioned HTTP API
- GET /v1/listings (cursor-paginated)
- GET /v1/listings/:id
- POST /v1/customers and /v1/customers/bulk
- POST /v1/orders and GET /v1/orders
- POST /v1/orders/:id/cancel
- GET /v1/me (authenticated identity)
Outbound webhooks
10 event types across four namespaces, with wildcard subscription support
- listing.* (published, updated, unpublished, sold, in_stock)
- order.* (received, fulfilled, cancelled)
- customer.matched
- integration.test_event
- Wildcard * or namespace.* subscriptions
HMAC-SHA256 signing
Every delivery is signed; rotate secrets without dropping deliveries
- WTH-Signature header on every request
- Format: t=timestamp,v1=hmac_hex
- 5-minute replay-attack window
- Dual-secret grace period on rotation
- Previous secret stays valid during cutover
Test mode
Sandbox-isolated keys and events to verify your integration safely
- Separate test API key, same dashboard
- Test rows flagged in API responses
- POST /v1/test/webhook_ping fires a live test event
- No impact on production inventory data
- On by default until you flip to live mode
Delivery log
Full audit trail for every webhook delivery attempt
- HTTP status code per attempt
- Response body preview
- Timestamps and retry counts
- Manual retry from the dashboard
- Visible in the Delivery Log tab
OpenAPI spec
Machine-readable surface for code generation and documentation
- OpenAPI 3.1 JSON at /api/v1/openapi.json
- Postman collection at /openapi/v1.postman.json
- All webhook events registered as OpenAPI webhooks
- Import directly into any API client
How to get started
From zero to a verified live integration in four steps.
Generate an API key
From your dealer dashboard, open Channels > Custom Integration and generate an API key. The key has the shape wth_ + 32 base62 characters. Only the first 12 characters and a SHA-256 hash are stored; the full key is shown once. Treat it like a password and keep it server-side only.
Configure your webhook URL and signing secret
In the Settings tab, enter the HTTPS URL where WatchTraderHub should POST events. Generate a signing secret. Select which event types to receive, or use * for all events.
Verify in test mode
While test mode is active, call POST /api/v1/test/webhook_ping to fire an integration.test_event to your receiver. Check the Delivery Log to confirm delivery and verify that your HMAC signature validation passes.
Flip to live mode
Once your end-to-end tests pass, disable test mode. Real inventory events will begin flowing to your webhook endpoint. The Delivery Log remains available for ongoing monitoring.
Authenticated request
curl -X GET https://www.watchtraderhub.com/api/v1/listings \
-H "Authorization: Bearer wth_YOUR_API_KEY" \
-H "Accept: application/json"Signed webhook delivery
POST https://your-server.example.com/webhooks/wth HTTP/1.1
Content-Type: application/json
WTH-Signature: t=1716120000,v1=3b4c5d...
{
"event": "listing.published",
"data": {
"id": "inv_abc123",
"brand": "Rolex",
"model": "Submariner",
"asking_price_eur": 14500
}
}Verify the WTH-Signature header by computing HMAC-SHA256(secret, "{timestamp}.{rawBody}") and comparing with the v1= value. Full recipes in the webhook docs.
Common questions
Ready to connect your own systems?
The Custom Integration is available on the Business tier at EUR 249/month (EUR 199/month billed annually). Includes 250 inventory items, all marketplace channels, 500 AI descriptions/month, and priority support.
Business tier • EUR 249/month or EUR 199/month annual • No setup fees