{
  "openapi": "3.0.1",
  "info": {
    "title": "HKEX Insider Trades & Short Interest Tracker",
    "description": "Hong Kong director dealings (SFO Part XV) + SFC weekly short position disclosures. Track HSI insider buying/selling, substantial-shareholder changes, hedge-fund short books on Tencent, HSBC, Alibaba, Meituan and the full HK Main Board.",
    "version": "0.0",
    "x-build-id": "x5cAIpLyYqs1WUYdP"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/nexgendata~hkex-insider-short-tracker/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-nexgendata-hkex-insider-short-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/nexgendata~hkex-insider-short-tracker/runs": {
      "post": {
        "operationId": "runs-sync-nexgendata-hkex-insider-short-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/nexgendata~hkex-insider-short-tracker/run-sync": {
      "post": {
        "operationId": "run-sync-nexgendata-hkex-insider-short-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": {
          "stockCode": {
            "title": "HKEX stock code(s)",
            "type": "string",
            "description": "HKEX numeric stock code(s) to track — comma-separated for multi-ticker pulls. Examples: '0700' (Tencent), '0005' (HSBC), '9988' (Alibaba), '3690' (Meituan), '1299' (AIA), '1211' (BYD), '1810' (Xiaomi), '0939' (CCB H), '1398' (ICBC H), '2318' (Ping An H), '0883' (CNOOC), '2097' (Mixue Bingcheng), '9660' (Horizon Robotics), '6181' (Laopu Gold), '2015' (Li Auto), '0027' (Galaxy Entertainment), '1918' (Sunac), '2007' (Country Garden), '0001' (CK Hutchison), '0016' (Sun Hung Kai). Accepts '700', '0700', '0700.HK' formats — all are normalized. Leave blank to return every issuer in the database. SFO Part XV applies to every HKEX-listed company so coverage spans the full Main Board.",
            "default": ""
          },
          "disclosureType": {
            "title": "Disclosure type",
            "enum": [
              "both",
              "insider",
              "short"
            ],
            "type": "string",
            "description": "Which disclosure regime to return. 'insider' = director dealings + substantial-shareholder (≥5%) interest changes under SFO Part XV (Forms 3B/3C/3D/3E) — analogous to SEC Form 4 in the US but with broader scope. 'short' = SFC weekly short position disclosures under the Securities and Futures (Short Position Reporting) Rules Cap. 571AJ — every market participant holding a net short position worth more than HK$30M or 0.02% of issued shares files weekly with a 2-business-day lag. 'both' (default) returns both regimes in a unified schema with the `type` field distinguishing them.",
            "default": "both"
          },
          "startDate": {
            "title": "Start date (YYYY-MM-DD)",
            "type": "string",
            "description": "Inclusive lower bound on transaction_date. Defaults to 90 days ago. HKEX director dealings must be disclosed within 3 business days under SFO s.341. SFC short positions are published weekly (every Friday, T+2 lag). Use a 30-day window for active monitoring, 90 days for quarterly review, 365 for full-year cohort studies. ISO-8601 format.",
            "default": ""
          },
          "endDate": {
            "title": "End date (YYYY-MM-DD)",
            "type": "string",
            "description": "Inclusive upper bound on transaction_date. Defaults to today. Use to slice a specific reporting period (e.g. Q1 2026 = '2026-03-31'). ISO-8601 format.",
            "default": ""
          },
          "minSharesChanged": {
            "title": "Minimum shares changed (insider records)",
            "minimum": 0,
            "maximum": 1000000000,
            "type": "integer",
            "description": "Lower bound (absolute value) on `shares_changed` for insider records. Filters out small awards / vest-and-sell housekeeping transactions. Useful thresholds: 100,000 = filter routine LTIP vesting; 1,000,000 = focus on conviction trades; 10,000,000 = focus on substantial-shareholder block deals. Short position records pass through unchanged (this filter only applies to type=insider). 0 = no filter.",
            "default": 0
          },
          "limit": {
            "title": "Max records returned",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "Hard cap on total disclosure records returned (1-200). Each row is one disclosure event (one director dealing OR one short position filing). Premium pricing applies per row — HKEX director dealings + SFC short position data is institutional-grade intel (Bloomberg IDC equivalents cost USD 2,000+/seat/month for HK Main Board coverage). HKEX heavyweights generate dozens of disclosure events per quarter; HSBC, Tencent, Alibaba and CCB are the highest-volume names.",
            "default": 25
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}