> ## 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.

# Signal Agents

> Read dashboard-configured Signal Agents.

Signal Agents are always-on discovery setups created in the dashboard.
Each agent has a product type and belongs to a dashboard sheet.

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

<ResponseExample>
  ```json 200 theme={null}
  {
    "data": [
      {
        "id": "d8m13il8samas88tvoq0",
        "type": "intent_signals",
        "name": "Intent Signals",
        "status": "active",
        "schedule": "4x daily",
        "next_check_at": "2026-06-17T02:03:00Z",
        "sheet": {
          "id": "d8m13il8samas88tvop0",
          "name": "AI infrastructure buyers"
        }
      },
      {
        "id": "d8cln7t8sam5q17hnr9g",
        "type": "intent_signals",
        "name": "Intent Signals",
        "status": "paused",
        "schedule": "4x daily",
        "sheet": {
          "id": "d8cln7t8sam5q17hnr8g",
          "name": "FinOps hiring signals"
        }
      }
    ],
    "cursor": {
      "next": "",
      "has_more": false
    }
  }
  ```
</ResponseExample>

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

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

    <div className="plyne-param">
      <div className="plyne-param-title">
        <span className="plyne-param-name">Authorization</span>
        <span className="plyne-pill">string</span>
        <span className="plyne-pill">header</span>
        <span className="plyne-pill plyne-pill-required">required</span>
      </div>

      <p>Bearer authentication header of the form <code>Bearer \<token></code>, where <code>\<token></code> is your API key.</p>
    </div>
  </section>

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

    <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 Agents to return. Maximum value is <code>100</code>.</p>
      <p className="plyne-param-example">Example: <code>50</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>

    <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 agent status, such as <code>active</code> or <code>paused</code>.</p>
    </div>

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

      <p>Return specific Signal Agents by ID.</p>
    </div>
  </section>
</div>

Use `POST /v1/signals/leads` with `sheet_ids` and `signals` to read leads from a specific sheet or buying signal.
