Skip to main content
POST
Create a subscription

Authorizations

Authorization
string
header
required

A Surfais API key — an organisation key or a partner key. Issued by Surfais; shown once. Rotate by creating a new key, then revoking the old one.

Headers

Idempotency-Key
string

Optional. 1–255 characters, unique per intended write. Same key + same request → the stored response is replayed with Idempotent-Replayed: true; same key + different request → 409 idempotency_key_reuse; still running → 409 idempotency_key_in_flight. Outside that range → 400 validation_error (invalid_header).

Required string length: 1 - 255

Path Parameters

endpointId
string<uuid>
required

Webhook endpoint id owned by this partner key; another partner's id (or a never-issued one) is 404.

Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$

Body

application/json
event_type
enum<string>
required

Event type a subscription may name — every type except webhook.test.

Available options:
scan.completed,
score.threshold_crossed,
sentiment.threshold_crossed
org_id
string<uuid> | null

UUID.

Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
brand_id
string<uuid> | null

UUID.

Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
min_delta
number | null
Required range: x >= 0
direction
enum<string> | null

Which moves fire the delta rule. any = a drop or a rise (never a flat move).

Available options:
drop,
rise,
any
sentiment_floor
number | null
Required range: 0 <= x <= 100

Response

The subscription.

data
object
required