Skip to main content

Get a Sales Signals run

Poll an organization-scoped Sales Signals background run by its run, task, preview, or persisted record ID.

GET/api/sales-signals/runs/{run_id}
HTTP referenceScope signals:read OR companies:readUpdated October 20, 2026

This page documents the canonical HTTP contract for this endpoint.

This endpoint reads a run in the authenticated organization and current runtime namespace; a run belonging to another organization is indistinguishable from a missing run and returns 404. Poll only a run identity actually returned by the initiating path, such as previewRunId for a provider that admits an initial preview, runId/taskId from run-creation routes, or config.last_run_id recorded on a subscription. LinkedIn employee-post enrollment does not promise a previewRunId: its first and recurring checks use per-Company subscription execution. See subscription progress.

Criteria-discovery run IDs belong to a separate store. Poll discovery monitor status for those checks; this route cannot read them.

A successful GET only reads current persisted run state. It does not refresh previews, unlock signal rows, or start recurring polling. Persisted statuses observed in the producer/worker are queued, enqueue_failed, running, completed, and failed. The run worker treats enqueue_failed as claimable/retryable. This run-record path does not write cancelled. Enrollment returns saved subscriptions and scheduling counts. Read subscription state for LinkedIn checks and provider coverage; those counts confirm scheduling rather than completed collection. Native run progress applies only when a native run identity is actually returned or recorded on the subscription. Do not infer completion from queued or running.

SignalBase and LinkedIn provider results can include run.result.held_delivery_count. This counts deliveries held for insufficient organization credits when delivery billing is enabled; they have not published the corresponding event/link, scoring, or webhook. A completed provider run can therefore contain held deliveries. The scheduler can later recover them from stored evidence after credits become available while billing remains enabled, without purchasing provider results again. Read deliveryBillingPolicy for the selected server’s current policy.

The response serializer converts the record ObjectId to id and removes internal schedule/lease fields. Other persisted run fields may be present, including outcome counts, completion timestamps, or an error on enqueue failure. The response example is abridged and illustrative; status reflects asynchronous worker progress.

Path parameters

  • run_idrequired

    string

    Run identifier. The lookup accepts run_id, task_id, or the persisted record ObjectId.

Errors

StatusMeaning
401Authentication is missing or invalid, or the authenticated user lacks email/user identity.
400Organization context is missing.
403The caller lacks signals:read or legacy companies:read.
404No run with this identifier is visible in the authenticated organization and runtime namespace.

Docs