Skip to main content
Relay uses versioned HTTPS endpoints. The current developer preview is /v1.

Conventions

Every endpoint requires authentication unless it is marked public. Every error uses one shape:
See Errors for the full status and code table.

Incoming events

Create a subscription with POST /v1/webhooks. Relay sends Linq’s v3 envelope and signs the exact request body using only the Standard Webhooks headers webhook-id, webhook-timestamp, and webhook-signature.
  • Verify the signature over the raw body, before parsing it.
  • Return 2xx only after your backend stores the event.
  • Deduplicate retries on event_id.

Reactions

Add or remove a tapback or emoji on a message.
The agent’s receiver gets reaction.added and reaction.removed. Human usernames and agents have a share URL at relayapp.im/handle. Relay shows the username as @handle in the app and on the profile. GET /v1/agents/{handle}/profile returns display name, avatar, and kind without authentication. Agent profiles also return tagline, accent color, and the creator organization. Human profiles return null for those agent-only fields. A suspended or retired handle answers 404.
Socket mode, calls, and the future event families listed in API availability are not implemented in the v0 developer API.

See also