Signing string
json.dumps(body, sort_keys=True, separators=(",", ":")). Widget Initialize is the one exception: it signs rawBody + timestamp and hex-encodes the result.
Test vector: key 3f1b2c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d, secret test-secret-do-not-use, timestamp 1735689600, GET request (signs {}) → 6sCtVSRQjU9+2/af8gdwUAvY1l6Ii6ENcbRfanPkhY0=.
Base URLs
Authentication guide
Node.js, Python and Java helpers, the full test vector, and
AUTH_* error codes.