# Insider Transactions by Ticker

`GET` `/v1/insider-transactions/{ticker}`

Retrieve SEC Form 4 insider purchase and sale transactions for a ticker. Each row includes reporting person, transaction type, shares, price, value, filing date and links to the underlying EDGAR filing. Pagination via page and limit (default 50, max 250). Purchases and sales only - filtered for clean buy/sell activity.

## Use cases

- Insider buying and selling monitors for a single issuer
- Governance and alignment research on company profile pages
- Event feeds for unusual insider activity on watchlist names
- Compliance review of officer and director transactions

## Input parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `ticker` | string | Yes | Ticker. |
| `page` | integer | No | Zero-based page (default 0). |
| `limit` | integer | No | Page size, 1-250 (default 50). |

## Output parameters

| Name | Type | Description |
| --- | --- | --- |
| `results` | array | Form 4 insider transactions (purchases and sales). |
| `results[].insiderName` | string | Reporting person name. |
| `results[].relationship` | string | Officer, director, or other relationship. |
| `results[].transactionDate` | string | Transaction date (YYYY-MM-DD). |
| `results[].transactionType` | string | Purchase or Sale. |
| `results[].price` | float | Transaction price per share. |
| `results[].shares` | integer | Shares transacted. |
| `results[].value` | float | Total transaction value. |
| `results[].sharesOwnedFollowing` | integer | Shares owned after the transaction. |
| `results[].filingId` | string | SEC filing accession id. |
| `results[].filedAt` | string | Filing timestamp (ISO 8601). |
| `count` | integer | Number of rows on this page. |
| `total` | integer | Total matching transactions. |
| `page` | integer | Zero-based page index. |

## Example response

```json
{
  "results": [
    {
      "insiderName": "Borders Ben",
      "relationship": "officer: Principal Accounting Officer",
      "transactionDate": "2026-05-08",
      "transactionType": "Sale",
      "price": 290,
      "shares": 1274,
      "value": 369460,
      "sharesOwnedFollowing": 38713,
      "filingId": "0000320193_000114036126020871",
      "filedAt": "2026-05-12"
    },
    {
      "insiderName": "LEVINSON ARTHUR D",
      "relationship": "director",
      "transactionDate": "2026-05-06",
      "transactionType": "Sale",
      "price": 284.57,
      "shares": 149527,
      "value": 42550898.39,
      "sharesOwnedFollowing": 3920049,
      "filingId": "0000320193_000114036126020298",
      "filedAt": "2026-05-08"
    }
  ],
  "count": 50,
  "total": 5761,
  "page": 0
}
```

## Examples

### cURL

```bash
curl "https://api.vantafin.com/v1/insider-transactions/AAPL?limit=50&apiKey=$VANTAFIN_API_KEY"
```

### Python

```python
from vantafin import RESTClient

client = RESTClient("vf-live-your_api_key")

result = client.get_insider_transactions("AAPL", limit=50)

print(result)
```

### JavaScript

```javascript
import { RestClient } from "vantafin";

const client = new RestClient("vf-live-your_api_key");

const result = await client.getInsiderTransactions("AAPL", { limit: 50 });

console.log(result);
```

### Go

```go
package main

import (
	"fmt"
	"log"

	"github.com/vantafin/vantafin-go"
)

func main() {
	client := vantafin.NewClient("vf-live-your_api_key")

	result, err := client.GetInsiderTransactions("AAPL", vantafin.Params{"limit": 50})
	if err != nil {
		log.Fatal(err)
	}

	fmt.Println(result)
}
```

### Java

```java
import com.vantafin.RestClient;
import com.vantafin.Params;

public class Example {
    public static void main(String[] args) throws Exception {
        RestClient client = new RestClient("vf-live-your_api_key");

        Object result = client.getInsiderTransactions("AAPL", Params.of().set("limit", 50));

        System.out.println(result);
    }
}
```

### Ruby

```ruby
require "vantafin"

client = Vantafin::RestClient.new("vf-live-your_api_key")

result = client.get_insider_transactions("AAPL", limit: 50)

pp result
```
