Skip to main content
Use this endpoint to retrieve signals for a specific account, contact, or time range. You can combine multiple query parameters to narrow results — for example, pulling every signal tied to a particular domain within a given week, or fetching all form_submit events from a single integration source.

Endpoint

GET https://api.stairoids.com/v1/signals

Authentication

Include your API key as a Bearer token in the Authorization header of every request.
Authorization: Bearer <api-key>

Query Parameters

account_domain
string
Filter signals by account domain. Returns only signals attributed to the account matching this domain, e.g. acme.com.
contact_email
string
Filter signals by contact email. Returns only signals attributed to the contact with this email address, e.g. alice@acme.com.
type
string
Filter by signal type. Returns only signals whose type field exactly matches this value, e.g. page_visit.
source
string
Filter by originating source. Returns only signals whose source field exactly matches this value, e.g. activecampaign.
from
string
ISO 8601 start of the date range (inclusive), e.g. 2024-06-01T00:00:00Z. Filters by occurred_at.
to
string
ISO 8601 end of the date range (inclusive), e.g. 2024-06-30T23:59:59Z. Filters by occurred_at.
limit
integer
Maximum number of signals to return per page. Defaults to 50. Maximum allowed value is 200.
cursor
string
Pagination cursor returned in the previous response as meta.next_cursor. Pass this value to retrieve the next page of results.
Combine account_domain with from and to to pull all signals for a given account within a specific week — ideal for building per-account activity reports or weekly digest automations.

Code Examples

curl --request GET \
  --url 'https://api.stairoids.com/v1/signals?account_domain=acme.com&type=page_visit&from=2024-06-01T00:00:00Z&to=2024-06-30T23:59:59Z&limit=50' \
  --header 'Authorization: Bearer <api-key>'

Response

A successful request returns HTTP 200 OK with a paginated list of signal objects inside the data array.
Signals are returned in reverse chronological order — newest first. Use the cursor parameter to page through results when meta.next_cursor is non-null.

Response Fields

data
array
An array of signal objects matching your query filters.
meta
object
Pagination and request metadata.

Example Response

{
  "data": [
    {
      "id": "sig_abc123",
      "type": "page_visit",
      "account": {
        "id": "acc_xyz789",
        "domain": "acme.com",
        "name": "Acme Corp",
        "score": 84
      },
      "contact": {
        "id": "con_def456",
        "email": "alice@acme.com",
        "score": 42
      },
      "score": 12,
      "source": "my-website",
      "properties": {
        "page": "/pricing",
        "duration_seconds": 45
      },
      "created_at": "2024-06-15T14:23:01Z"
    },
    {
      "id": "sig_bcd234",
      "type": "page_visit",
      "account": {
        "id": "acc_xyz789",
        "domain": "acme.com",
        "name": "Acme Corp",
        "score": 84
      },
      "contact": null,
      "score": 8,
      "source": "my-website",
      "properties": {
        "page": "/features",
        "duration_seconds": 20
      },
      "created_at": "2024-06-14T09:11:44Z"
    }
  ],
  "meta": {
    "next_cursor": "cur_gghhiijj",
    "total": 134,
    "request_id": "req_33eeff44gghh",
    "timestamp": "2024-06-30T08:00:00Z"
  }
}

Error Responses

Returned when the Authorization header is missing or your API key is invalid.
{
  "error": {
    "code": "unauthorized",
    "message": "Invalid or missing API key.",
    "request_id": "req_99qqrr00sstt"
  }
}