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

# Issuer Monitoring

> Monitor listed companies through filings, board changes, dividends, and issuer-scoped event feeds.

Use this workflow when you need to:

* track filings for a watchlist of companies
* surface dividend and board-change signals
* route issuer events into internal review workflows
* load company history and receive new events for tracked issuers

## What Rangler gives you

The issuer workflow package is built from:

* `GET /v1/companies`
* `GET /v1/companies/{company_id}`
* `GET /v1/companies/{company_id}/filings`
* `GET /v1/companies/{company_id}/events`
* `GET /v1/events?type=filing.new&type=board_change.detected&type=dividend.declared`
* webhook subscriptions filtered by issuer event type and company scope

In the portal, the matching preset is **Issuer monitoring**.

## Start with webhooks

Start with webhooks when issuer updates should drive a customer-facing product, alert, or internal review workflow.

### Company watchlist sync

Fetch the current company directory:

```bash theme={null}
curl -s "https://sandbox-api.rangler.co/v1/companies?limit=100" \
  -H "X-API-Key: rgl_test_your_key_here" | python3 -m json.tool
```

Use the company IDs in your own watchlist table.

### Filings for one issuer

```bash theme={null}
curl -s "https://sandbox-api.rangler.co/v1/companies/{company_id}/filings?limit=25" \
  -H "X-API-Key: rgl_test_your_key_here" | python3 -m json.tool
```

### Check issuer events for missed deliveries

```bash theme={null}
curl -s "https://sandbox-api.rangler.co/v1/events?type=filing.new&type=board_change.detected&type=dividend.declared&limit=25" \
  -H "X-API-Key: rgl_test_your_key_here" | python3 -m json.tool
```

Or narrow to one company:

```bash theme={null}
curl -s "https://sandbox-api.rangler.co/v1/companies/{company_id}/events?limit=25" \
  -H "X-API-Key: rgl_test_your_key_here" | python3 -m json.tool
```

With `ranglerpy`:

```python theme={null}
from ranglerpy import RanglerClient

client = RanglerClient(api_key="rgl_test_your_key_here", environment="sandbox")

for event in client.v1.events.auto_paging_iter(
    event_types=["filing.new", "board_change.detected", "dividend.declared"],
    limit=100,
):
    print(event.type, event.company_id, event.title)
```

### Recommended rule

In the portal:

1. Create a webhook endpoint
2. Choose the **Issuer monitoring** preset
3. Keep event types:
   * `filing.new`
   * `board_change.detected`
   * `dividend.declared`
4. Add company IDs for your tracked issuer set
5. Leave fund IDs empty

### Partner payload pattern

Receiver flow:

1. receive a matched issuer event
2. verify the webhook signature
3. use `company_id`, `source_kind`, `source_id`, and `source_url` to record where the event came from
4. fetch richer company or filing detail through the API if needed
5. fan the event out to your own alerting or internal review systems

See [Webhooks](/webhooks) for delivery rules and [Events](/events) for the event format.

### Example issuer webhook payload

```json theme={null}
{
  "id": "6f1a36c1-d7b7-4700-a2e5-6fd1ac9f2748",
  "type": "filing.new",
  "occurred_at": "2026-04-12T10:00:00Z",
  "created_at": "2026-04-12T10:00:00.412991Z",
  "entity_kind": "filing",
  "entity_id": "3bff7f59-8e0d-4105-a4c5-9f2a12c98b2c",
  "company_id": "b2f9ed97-3036-4f08-b6b0-b2a8265f93f4",
  "fund_id": null,
  "source_kind": "filing",
  "source_id": "3bff7f59-8e0d-4105-a4c5-9f2a12c98b2c",
  "title": "Issuer Plc FY 2025 Results",
  "summary": "New results filing published.",
  "severity": "info",
  "source_url": "https://example.com/issuer-results.pdf",
  "source_published_at": "2026-04-12T09:58:00Z",
  "data": {
    "company": {
      "id": "b2f9ed97-3036-4f08-b6b0-b2a8265f93f4",
      "name": "Issuer Plc",
      "ticker": "ISSUER",
      "sector": "Financial Services",
      "logo_url": null
    },
    "filing": {
      "id": "3bff7f59-8e0d-4105-a4c5-9f2a12c98b2c",
      "company_id": "b2f9ed97-3036-4f08-b6b0-b2a8265f93f4",
      "filing_type": "results",
      "title": "Issuer Plc FY 2025 Results",
      "period": "FY 2025",
      "published_at": "2026-04-12T09:58:00Z",
      "url": "https://example.com/issuer-results.pdf",
      "has_tables": false
    }
  }
}
```

## Source-backed event detail

Rangler activity and delivery views show source fields including:

* `source_kind`
* `source_id`
* `source_url`
* `source_published_at`

Use those fields when your workflow needs a source-backed audit trail.

## Recommended first production path

For most teams:

1. sync company IDs through API reads
2. register a webhook endpoint and issuer-monitoring subscription
3. read event feeds periodically to catch missed deliveries and load earlier records

See [Webhooks and Event Feeds](/polling-vs-webhooks) and [Sandbox Testing](/sandbox-testing) before you move from sandbox to live.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.