{
  "openapi": "3.0.1",
  "info": {
    "title": "Insider Trading Tracker - SEC Form 4 Insider Buys & Sells",
    "description": "Insider trading tracker for SEC Form 4 filings: every insider buy and sell from EDGAR across the market, by ticker or by insider. Price, value, holdings change, 10b5-1 plan flag, derivatives, footnotes and cluster-buy signals. Schedule it for new-trade alerts.",
    "version": "1.0",
    "x-build-id": "1wr4ZXpeYP33PwZS5"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/groupoject~sec-insider-trading-tracker/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-groupoject-sec-insider-trading-tracker",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/groupoject~sec-insider-trading-tracker/runs": {
      "post": {
        "operationId": "runs-sync-groupoject-sec-insider-trading-tracker",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/groupoject~sec-insider-trading-tracker/run-sync": {
      "post": {
        "operationId": "run-sync-groupoject-sec-insider-trading-tracker",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "mode": {
            "title": "What to track",
            "enum": [
              "latest",
              "tickers",
              "insiders"
            ],
            "type": "string",
            "description": "\"latest\" = every Form 4 filed across the US market in the date range (the OpenInsider-style feed). \"tickers\" = insider trades at the companies in Tickers. \"insiders\" = trades by the people or entities in Insider CIKs or names.",
            "default": "latest"
          },
          "tickers": {
            "title": "Tickers",
            "type": "array",
            "description": "Company stock tickers for mode \"tickers\" (for example AAPL, NVDA, BRK.B). A 10-digit SEC CIK also works. Ignored in other modes.",
            "items": {
              "type": "string"
            }
          },
          "insiderCiks": {
            "title": "Insider CIKs or names",
            "type": "array",
            "description": "For mode \"insiders\": the insider's SEC CIK (for example 1494730) or name (for example \"Elon Musk\"). Names are matched against EDGAR's filer list; a CIK is exact. Ignored in other modes.",
            "items": {
              "type": "string"
            }
          },
          "lastNDays": {
            "title": "Last N days",
            "minimum": 1,
            "maximum": 3650,
            "type": "integer",
            "description": "Filings filed in the last N calendar days (US Eastern time), today included. In \"latest\" mode, if that window has no filings yet (weekend, holiday, early morning) the most recent filing day is used. Ignored when Date from / Date to are set.",
            "default": 3
          },
          "dateFrom": {
            "title": "Date from (filing date)",
            "pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
            "type": "string",
            "description": "Optional start of the filing-date range, YYYY-MM-DD. Overrides Last N days."
          },
          "dateTo": {
            "title": "Date to (filing date)",
            "pattern": "^(\\d{4}-\\d{2}-\\d{2})?$",
            "type": "string",
            "description": "Optional end of the filing-date range, YYYY-MM-DD. Defaults to today."
          },
          "openMarketOnly": {
            "title": "Only open-market buys and sells (P and S)",
            "type": "boolean",
            "description": "Shortcut for transaction codes P and S: the trades where insiders put their own money in or take it out. Skips grants, option exercises, tax withholding and gifts.",
            "default": false
          },
          "transactionCodes": {
            "title": "Transaction codes",
            "type": "array",
            "description": "Keep only these SEC transaction codes. Leave empty for all codes.",
            "items": {
              "type": "string",
              "enum": [
                "P",
                "S",
                "A",
                "M",
                "X",
                "O",
                "C",
                "F",
                "G",
                "D",
                "J",
                "I",
                "V",
                "E",
                "H",
                "L",
                "W",
                "Z",
                "K",
                "U"
              ],
              "enumTitles": [
                "P - Open market or private purchase",
                "S - Open market or private sale",
                "A - Grant or award from the company",
                "M - Option exercise / derivative conversion (exempt)",
                "X - In-the-money option exercise",
                "O - Out-of-the-money option exercise",
                "C - Conversion of derivative",
                "F - Tax withholding / price paid with shares",
                "G - Gift",
                "D - Disposition to the issuer",
                "J - Other (see footnotes)",
                "I - Discretionary transaction",
                "V - Voluntarily reported early",
                "E - Expiration of short derivative",
                "H - Expiration of long derivative",
                "L - Small acquisition",
                "W - Will or inheritance",
                "Z - Voting trust deposit/withdrawal",
                "K - Equity swap",
                "U - Tender in change of control"
              ]
            },
            "default": []
          },
          "minTransactionValueUsd": {
            "title": "Minimum trade value (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only trades where shares × price is at least this amount. Trades without a price (most grants and exercises) are dropped when this is above 0.",
            "default": 0
          },
          "roles": {
            "title": "Insider roles",
            "type": "array",
            "description": "Keep only insiders with at least one of these relationships to the company. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "director",
                "officer",
                "tenPercentOwner",
                "other"
              ],
              "enumTitles": [
                "Director",
                "Officer",
                "10% owner",
                "Other"
              ]
            },
            "default": []
          },
          "officerTitleKeywords": {
            "title": "Officer title contains",
            "type": "array",
            "description": "Keep only insiders whose title contains one of these words, for example CEO, CFO, President, Chief. Case-insensitive.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "excludePlannedTrades": {
            "title": "Exclude 10b5-1 planned trades",
            "type": "boolean",
            "description": "Drop trades made under a pre-arranged Rule 10b5-1 trading plan (detected from the filing's 10b5-1 checkbox and footnotes). Planned sales say less about the insider's view than discretionary ones.",
            "default": false
          },
          "includeDerivative": {
            "title": "Include derivative transactions",
            "type": "boolean",
            "description": "Also return Table II rows: options, RSUs, warrants and convertible securities (with exercise price, expiration and underlying shares).",
            "default": true
          },
          "minShares": {
            "title": "Minimum shares",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only trades of at least this many shares.",
            "default": 0
          },
          "minOwnershipChangePct": {
            "title": "Minimum change in holdings (%)",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only trades that changed the insider's holding of that security by at least this percent (up or down). New positions always pass."
          },
          "formTypes": {
            "title": "Form types",
            "type": "array",
            "description": "Ownership forms to read. Form 4 = changes in ownership (the main insider trading form), 4/A = amendments, Form 5 = annual statement of changes, Form 3 = initial ownership (returned as holding rows).",
            "items": {
              "type": "string",
              "enum": [
                "4",
                "4/A",
                "5",
                "5/A",
                "3",
                "3/A"
              ],
              "enumTitles": [
                "Form 4",
                "Form 4/A (amendment)",
                "Form 5",
                "Form 5/A",
                "Form 3 (initial holdings)",
                "Form 3/A"
              ]
            },
            "default": [
              "4",
              "4/A"
            ]
          },
          "maxResults": {
            "title": "Maximum trades",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Stop after this many trade rows (each row is one billed result). Newest filings are read first.",
            "default": 1000
          },
          "maxFilings": {
            "title": "Maximum filings to read",
            "minimum": 0,
            "type": "integer",
            "description": "Optional cap on how many filings are downloaded per run (0 = no cap). Useful for broad market scans with strict filters.",
            "default": 0
          },
          "onlyNew": {
            "title": "Only new trades (monitoring)",
            "type": "boolean",
            "description": "Remember what earlier runs returned (per State key) and save only trades not seen before. Schedule the actor to get a stream of new insider trades; you are billed only for new rows.",
            "default": false
          },
          "stateKey": {
            "title": "State key",
            "type": "string",
            "description": "Name of the monitor. Use a different key for each watchlist or schedule so they keep separate memories.",
            "default": "default"
          },
          "clusterMinInsiders": {
            "title": "Cluster: minimum distinct insiders",
            "minimum": 2,
            "maximum": 50,
            "type": "integer",
            "description": "A trade is flagged clusterBuy (or clusterSell) when at least this many different insiders made open-market purchases (sales) of the same company within the cluster window.",
            "default": 3
          },
          "clusterWindowDays": {
            "title": "Cluster window (days)",
            "minimum": 1,
            "maximum": 365,
            "type": "integer",
            "description": "Length of the window, in transaction-date days, used for cluster detection.",
            "default": 10
          },
          "largeTradeUsd": {
            "title": "Large trade threshold (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Trades worth at least this much get isLargeTrade = true and a large-buy / large-sale signal.",
            "default": 1000000
          },
          "contactEmail": {
            "title": "Your contact e-mail for SEC (optional)",
            "type": "string",
            "description": "SEC asks automated tools to declare a contact in the User-Agent. Leave empty to use this actor's own descriptive User-Agent; add your e-mail if you run large scans and want SEC to be able to reach you. It is sent only to sec.gov."
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "SEC data is public; a proxy only spreads requests over IPs so heavy runs stay under SEC's per-IP rate limit. Apify datacenter proxy is used by default with a direct-connection fallback.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}