Workspace authentication
Send an organization-bound Auth0 API access token for the workspace’s configured audience usingAuthorization: Bearer YOUR_ACCESS_TOKEN. An ID token or a token
for another organization/audience will not work. The workspace hostname routes
the request; caller-supplied tenant IDs cannot select a different database.
Browser sessions can use the production __Host-signal_session cookie. Read
csrf_token from GET /v1/me using that browser session; browser mutations must send X-CSRF-Token and an
Origin exactly matching the workspace. Bearer-only mutations do not require
session CSRF. HubSpot OAuth initiation additionally requires a browser session;
omit the Authorization header for that flow. Authorization takes precedence over
cookies, and a bearer-authenticated /v1/me response has csrf_token: null.
Permissions are checked per request and constrained by current user access.
Provider grants, source purpose/expiry, tenant lifecycle and delivery policy apply
separately. Access to one operation does not authorize every operation.
Review and publish a rule
- Create a draft with
POST /v1/signal-setsor stage a revision throughPUT /v1/builder/signal-sets/{identifier}/draftusingexpected_version. - Queue
POST /v1/backtests/{identifier}for that version and a timezone-aware cutoff. PollGET /v1/jobs/{identifier}until it completes. - Inspect
GET /v1/builder/previews/{identifier}for named matches and evidence. These retrospective previews send no actions and use current account mappings and latest source revisions, rather than complete point-in-time history. - Publish using
POST /v1/builder/signal-sets/{identifier}/publishwith the same expected version andpreview_job_id. A successful preview must be less than one hour old. A stale/concurrent version needs another test. - Create a paused workflow through the workspace UI. Customer API workflow
creation is not published in this preview. Enable the existing workflow using
POST /v1/builder/workflows/{identifier}/enableafter reviewing its applicable signal version. Publication can cause already enabled workflows to execute.
GET /v1/writebacks. A queued job is not proof of delivery. Pausing a workflow
can clear managed values when no other rule qualifies. Stopping provider writeback
retains existing remote values; it is a different action.
Ingest and inspect observations
POST /v1/events requires a 1–160 character Idempotency-Key. Retrying the same
key requires the same body; changed content returns 409. Batches hold 1–1,000
events, require timezone-aware occurrence times and cannot supply a tenant or
canonical account directly. The src_ namespace is reserved for governed sources.
A 202 response acknowledges durable input and a job, not completed processing.
GET /v1/observations is the governed raw feed; GET /v1/signals contains scored
rule matches. Neither automatically creates an opportunity or CRM deal.
Observation pagination uses next_cursor bound to its filters and initial cutoff.
Follow a non-null cursor even after a short page. Current withdrawal, expiry or
mapping corrections can change visible results between pages.