> ## Documentation Index
> Fetch the complete documentation index at: https://docs.plyne.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Account Signals

> Read signal observations from monitored accounts.

Account Signals are observations generated when Plyne checks your monitored accounts against Custom Signals.

<RequestExample>
  ```bash cURL theme={null}
  curl --request POST \
    --url 'https://api.plyne.ai/v1/monitor/signals' \
    --header 'Authorization: Bearer plyne_...' \
    --header 'Content-Type: application/json' \
    --data '{
      "account_ids": ["d8companyid"],
      "signals": ["d8signaldefinitionid"],
      "statuses": ["detected"],
      "cursor": { "limit": 50 }
    }'
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "data": [
      {
        "id": "d8signalid",
        "account": {
          "id": "d8companyid",
          "name": "Current Electric",
          "domain": "currentelectric.com",
          "profile": {
            "platform": "linkedin",
            "url": "https://linkedin.com/company/current-electric"
          },
          "country_code": "US"
        },
        "signal": {
          "id": "d8signaldefinitionid",
          "name": "Tech stack migration",
          "question": "Did {company} recently adopt ServiceTitan?"
        },
        "status": "detected",
        "score": 88,
        "summary": "Moved to ServiceTitan, detected 2 days ago.",
        "reason": "Public implementation evidence points to a recent ServiceTitan migration.",
        "observed_at": "2026-06-15T08:00:00Z",
        "references": []
      }
    ],
    "cursor": {
      "next": "",
      "has_more": false
    }
  }
  ```
</ResponseExample>

```http theme={null}
POST /v1/monitor/signals
```

<div className="plyne-api-meta">
  <section className="plyne-api-section">
    <h2>Body</h2>

    <div className="plyne-param">
      <div className="plyne-param-title">
        <span className="plyne-param-name">signal\_ids</span>
        <span className="plyne-pill">string\[]</span>
      </div>

      <p>Return specific signal observations by ID.</p>
    </div>

    <div className="plyne-param">
      <div className="plyne-param-title">
        <span className="plyne-param-name">account\_ids</span>
        <span className="plyne-pill">string\[]</span>
      </div>

      <p>Return signal observations for specific monitored accounts.</p>
    </div>

    <div className="plyne-param">
      <div className="plyne-param-title">
        <span className="plyne-param-name">signals</span>
        <span className="plyne-pill">string\[]</span>
      </div>

      <p>Filter by Custom Signal definition IDs.</p>
    </div>

    <div className="plyne-param">
      <div className="plyne-param-title">
        <span className="plyne-param-name">statuses</span>
        <span className="plyne-pill">string\[]</span>
      </div>

      <p>Filter by account signal status.</p>
      <p className="plyne-param-example">Example: <code>\["detected"]</code></p>
    </div>

    <div className="plyne-param">
      <div className="plyne-param-title">
        <span className="plyne-param-name">observed\_at</span>
        <span className="plyne-pill">object</span>
      </div>

      <p>Restrict signals by observed timestamp.</p>
    </div>

    <div className="plyne-param">
      <div className="plyne-param-title">
        <span className="plyne-param-name">cursor.limit</span>
        <span className="plyne-pill">integer</span>
      </div>

      <p>Number of signal observations to return. Maximum value is <code>100</code>.</p>
    </div>

    <div className="plyne-param">
      <div className="plyne-param-title">
        <span className="plyne-param-name">cursor.after</span>
        <span className="plyne-pill">string</span>
      </div>

      <p>Opaque cursor returned as <code>cursor.next</code> from the previous response.</p>
    </div>
  </section>
</div>
