GET /v1/edgar/insider/{ticker}

$0.02delayed_15mtier: datacache 900sEngine D — Gov Data / EDGAR

SEC Form 4 filings parsed into clean insider transactions: buy/sell/award classification, 10b5-1 plan flags, per-filer roles, and aggregate net flow with notable-pattern flags. Use it to gauge insider conviction before events.

Parameters

NameInTypeRequiredNotes
tickerpathstringyes
daysqueryintegernoLookback window in days (default: 30)
min_value_usdquerynumbernoDrop transactions below this absolute USD value

Example

curl "https://x402-factory.com/v1/edgar/insider/AAPL?days=90"

net_insider_flow_30d_usd is computed over the requested window (window_days echoes it).

Example response

{
  "data": {
    "ticker": "AAPL",
    "company": "Apple Inc.",
    "window_days": 90,
    "transactions": [
      {
        "filer_name": "Newstead Jennifer",
        "filer_role": "SVP, GC and Secretary",
        "type": "other",
        "is_10b5_1": false,
        "shares": 30104,
        "price": 0,
        "value_usd": 0,
        "transaction_date": "2026-06-15",
        "filed_at": "2026-06-17",
        "accession": "fixture-form4-1"
      },
      {
        "filer_name": "Newstead Jennifer",
        "filer_role": "SVP, GC and Secretary",
        "type": "other",
        "is_10b5_1": false,
        "shares": 16238,
        "price": 296.42,
        "value_usd": 4813267.96,
        "transaction_date": "2026-06-15",
        "filed_at": "2026-06-17",
        "accession": "fixture-form4-1"
      },
      {
        "filer_name": "Newstead Jennifer",
        "filer_role": "SVP, GC and Secretary",
        "type": "other",
        "is_10b5_1": false,
        "shares": 30104,
        "price": 0,
        "value_usd": 0,
        "transaction_date": "2026-06-15",
        "filed_at": "2026-06-17",
        "accession": "fixture-form4-1"
      },
      {
        "filer_name": "Borders Ben",
        "filer_role": "Principal Accounting Officer",
        "type": "sell",
        "is_10b5_1": true,
        "shares": 1274,
        "price": 290,
        "value_usd": 369460,
        "transaction_date": "2026-05-08",
        "filed_at": "2026-05-12",
        "accession": "fixture-form4-2"
      }
    ],
    "aggregates": {
      "net_insider_flow_30d_usd": -369460,
      "buy_count": 0,
      "sell_count": 1,
      "notable_flags": [
        "10b5_1_only"
      ]
    }
  },
  "meta": {
    "endpoint": "/v1/edgar/insider/{ticker}",
    "version": "1.0.0",
    "generated_at": "2026-08-18T22:54:16.754Z",
    "freshness": "delayed_15m",
    "sources": [
      "edgar"
    ],
    "request_id": "req_00000000",
    "docs": "https://x402-factory.com/docs/gov.edgar-insider",
    "data_mode": "live"
  }
}

Response schema (data payload)

{
  "type": "object",
  "properties": {
    "ticker": {
      "type": "string"
    },
    "company": {
      "type": "string"
    },
    "window_days": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "transactions": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "filer_name": {
            "type": "string"
          },
          "filer_role": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "buy",
              "sell",
              "award",
              "other"
            ]
          },
          "is_10b5_1": {
            "type": "boolean"
          },
          "shares": {
            "type": "number"
          },
          "price": {
            "type": "number"
          },
          "value_usd": {
            "type": "number"
          },
          "transaction_date": {
            "type": "string"
          },
          "filed_at": {
            "type": "string"
          },
          "accession": {
            "type": "string"
          }
        },
        "required": [
          "filer_name",
          "filer_role",
          "type",
          "is_10b5_1",
          "shares",
          "price",
          "value_usd",
          "transaction_date",
          "filed_at",
          "accession"
        ],
        "additionalProperties": false
      }
    },
    "aggregates": {
      "type": "object",
      "properties": {
        "net_insider_flow_30d_usd": {
          "type": "number"
        },
        "buy_count": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "sell_count": {
          "type": "integer",
          "minimum": -9007199254740991,
          "maximum": 9007199254740991
        },
        "notable_flags": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "required": [
        "net_insider_flow_30d_usd",
        "buy_count",
        "sell_count",
        "notable_flags"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "ticker",
    "company",
    "window_days",
    "transactions",
    "aggregates"
  ],
  "additionalProperties": false
}

The platform wraps every payload in an envelope: { "data": …, "meta": { endpoint, version, generated_at, freshness, sources, request_id, docs, data_mode } }.

Payment (x402)

Unpaid requests receive 402 with payment requirements (accepts). Pay $0.02 in USDC on Base per call via an X-PAYMENT header — see docs.x402.org. With PAYMENT_MODE=disabled (local dev) the endpoint is open.

Errors

StatusCodeMeaning
400INVALID_PARAMSInput failed validation; message lists the offending fields.
404NOT_FOUNDNo matching resource; suggestion may point to a sibling endpoint.
410RESOLVEDMarket/event settled; body includes a resolution summary.
503STALE_DATAUpstream feed down; stale data is never silently served beyond 2× cache TTL.
500INTERNALOur bug. The request_id helps us find it.