API Documentation

The InsiderLayer API provides structured insider transaction data from 35 countries, covering over 80% of the global stock market. Every transaction is mapped to a single, standardized schema and includes a link back to the original filing.

Quick Start

All API requests require an API key passed via the X-API-Key header. See Authentication for details.

Fetch the most recent insider transactions:

$ curl -H "X-API-Key: YOUR_API_KEY" \
	https://api.insiderlayer.com/api/transactions

Authentication

X-API-Key required header

All requests must include your API key in the X-API-Key HTTP header. You can obtain an API key by signing up on our registration page.

Endpoints

GET /api/status

Health check endpoint. Returns the current API status.

$ curl https://api.insiderlayer.com/api/status
{ "status": "ok" }
GET /api/transactions

Query for insider transactions. This endpoint returns transactions that match all specified filters. When no filters are specified, the newest transactions are returned up to the specified limit. Multiple values per filter are possible by specifying the parameter multiple times. Comma-separated values are not supported.

Query Parameters

Parameter Type Required Description
isin string[] optional ISIN of the instrument that was traded. Specify multiple times to filter for multiple ISINs. Each value must be exactly 12 characters.
figi string[] optional Share-class level FIGI of the instrument that was traded. Specify multiple times to filter for multiple FIGIs. Each value must be exactly 12 characters.
lei string[] optional LEI of the issuing company. Specify multiple times to filter for multiple LEIs. Each value must be exactly 20 characters.
country string[] optional ISO 3166-1 alpha-2 country code. Specify multiple times to include transactions from multiple countries. See Data Sources for supported countries.
transaction_date_from date optional Minimum (inclusive) transaction date. Format: YYYY-MM-DD. Only transactions occuring on or after this date will be returned.
transaction_date_to date optional Maximum (exclusive) transaction date. Format: YYYY-MM-DD. Only transactions occuring before this date will be returned.
publication_date_from date optional Minimum (inclusive) publication date. Format: YYYY-MM-DD. Only transactions published on or after this date will be returned.
publication_date_to date optional Maximum (exclusive) publication date. Format: YYYY-MM-DD. Only transactions published before this date will be returned.
pagination string optional Opaque pagination token. Use the _links.next value from a previous response to fetch the next page of results.
limit integer optional Maximum number of results to return. Default: 1000. Minimum: 1. Maximum: 1000.

Example Requests

Fetch transactions for a specific country:

$ curl -H "X-API-Key: YOUR_API_KEY" \
	"https://api.insiderlayer.com/api/transactions?country=DE&limit=5"

Fetch transactions for multiple FIGIs:

$ curl -H "X-API-Key: YOUR_API_KEY" \
	"https://api.insiderlayer.com/api/transactions?figi=BBG001S5N8V8&figi=BBG009S3NB21"

Fetch transactions within a date range:

$ curl -H "X-API-Key: YOUR_API_KEY" \
	"https://api.insiderlayer.com/api/transactions?transaction_date_from=2026-01-01&transaction_date_to=2026-04-01&country=KR&limit=3"

Response Schema

A successful response returns a JSON object with the following structure:

Field Type Description
_links object Contains pagination links. See Pagination.
_links.next string | null URL to the next page of results. null or absent when there are no more results.
data array Array of transaction objects. Each object has the fields described below.

Transaction Object

Field Type Nullable Description
id string no Unique identifier for the transaction. May be based on the source system's unique ids, but this is not guaranteed.
country string no ISO 3166-1 alpha-2 country code of the source regulator or exchange.
source string no Identifies the source system. See the Data Sources section for a list of possible values.
source_link string no Direct URL to the original filing on the regulator's or exchange's website.
reporting_name string yes Name of the reporting person or entity, as reported in the original filing. Always present except for transactions reported in Switzerland.
reporting_position string no Position or title of the reporting person within the company, as reported (e.g. "Director", "Vorstand", "CEO").
issuer_name string no Name of the issuing company, as reported in the original filing.
figi string no Share-class level FIGI (Financial Instrument Global Identifier) of the instrument that was traded.
lei string yes LEI (Legal Entity Identifier) of the issuing company. Present when provided by the source; may be null for some sources.
security_type string no Type of security traded. One of: "share", "other".
transaction_type string no Nature of the transaction. One of: "purchase", "sale", "other".
transaction_date date no Date on which the transaction occurred. Format: YYYY-MM-DD.
publication_date date no Date on which the transaction was published by the source regulator or exchange. Format: YYYY-MM-DD.
price number no Average price per security, in the currency specified by the currency field.
amount_delta number no Change in the number of securities held by the reporting entity. Positive for acquisitions (purchases), negative for disposals (sales).
amount_post number yes Number of securities held by the reporting entity after the transaction. May be null for sources that do not report this value.
currency string no ISO 4217 currency code for the price column (e.g. "EUR", "USD", "KRW"). May not be the origin country's currency.

Pagination

Results are paginated with a maximum of 1000 transactions per page (configurable via the limit parameter). When a response contains a full page, it includes a _links.next URL that can be used to fetch the next page. Simply follow this URL in subsequent requests to iterate through all results. The pagination token is an opaque string derived from the timestamp of the last returned transaction.

Error Handling

Status Code Description
200 Success. The response body contains the requested data.
400 Bad Request. One or more parameters are invalid. The response body includes a message field with details.
403 Forbidden. The API key is missing or invalid.
500 Internal Server Error. The request could not be processed due to a server-side issue.

Data Sources

InsiderLayer collects insider transaction data from regulatory filings and stock exchange disclosures. Each source is mapped to a unified schema. Below are the currently implemented sources with their specific characteristics.

United States — SEC EDGAR

Data is sourced from the EDGAR system of the U.S. Securities and Exchange Commission (SEC). Officers, directors, and beneficial owners of more than 10% of any class of equity securities must file their transactions. The source covers US companies as well as foreign companies listed on US exchanges.

Source-specific notes

  • Reporting forms: Form 4 (change in beneficial ownership), Form 3 (initial statement), Form 5 (annual summary).
  • Filing deadline: Form 4 must be filed by the end of the second business day following the transaction.
  • Reporting scope: Includes US companies and foreign companies listed on US exchanges.
  • Currency: Transactions are reported in USD.
  • Source identifier: sec

Source URL: sec.gov

Germany — BaFin

Data is sourced from the BaFin (Bundesanstalt für Finanzdienstleistungsaufsicht) Directors' Dealings database. Managers of publicly traded German companies must report transactions involving shares or financial instruments of their own company.

Source-specific notes

  • Reporting threshold: Transactions ≥ €30,000 within a calendar year must be reported.
  • Reporting deadline: Within 3 business days of the transaction.
  • LEI: Almost always present for German issuers.
  • Currency: Transactions are reported in EUR.
  • Positions: Typically reported in German (e.g. "Vorstand", "Aufsichtsrat").
  • Source identifier: bafin

Source URL: bafin.de

Switzerland — SER

Data is sourced from the SER (SIX Exchange Regulation) Managemeng Transactions database. Executives, directors and senior managers of publicly traded Swiss companies, as well as founding sponsors of SPACs, must report transactions involving shares or financial instruments of their own company.

Source-specific notes

  • No threshold: All transactions must be reported, regardless of the transaction amount.
  • Reporting deadline: Within 3 business days of the transaction.
  • LEI: Not provided.
  • Currency: Transactions are reported in CHR.
  • Positions: One of three categories: Executive director / senior management, Non-executive director, Founding sponsor.
  • Source identifier: ser

Source URL: ser-ag.com

India — National Stock Exchange

Data is sourced from the National Stock Exchange of India (NSE). Promoters, directors, and key managerial personnel of listed companies must disclose their holdings and transactions.

Source-specific notes

  • Disclosure type: Includes both initial disclosures and ongoing transaction reports.
  • LEI: May not be present for all Indian issuers.
  • Amount post: Usually reported.
  • Source identifier: nse

Source URL: nseindia.com

China — Stock Exchanges

Data is sourced from the Beijing Stock Exchange (BSE), Shenzhen Stock Exchange (SZSE), and Shanghai Stock Exchange (SSE), as well as the Hong Kong Stock Exchange (HKEX). Directors, supervisors, and senior management of listed companies must report changes in their shareholdings.

Source-specific notes

  • Country code: Data from Hong Kong uses the HK country code.
  • LEI: Not always present; many Chinese issuers do not have an LEI.
  • Reporting names: Typically reported in Chinese characters.
  • Source identifier: bse / szse / sse / hkex

Source URLs: bse.cn · szse.cn · sse.com.cn · hkex.com.hk

South Korea — OpenDART

Data is sourced from the OpenDART system operated by the Financial Supervisory Service (FSS) of South Korea. Major shareholders, officers, and their relatives must report changes in shareholdings of listed Korean companies.

Source-specific notes

  • Reporting scope: Includes both major shareholder changes and officer transactions.
  • LEI: Most Korean issuers have an LEI.
  • Reporting names: Typically include both Korean characters and romanized names.
  • Positions: Reported in Korean (e.g. "상무" for managing director).
  • Amount post: Usually reported.
  • Source identifier: dart

Source URL: dart.fss.or.kr

Canada — SEDI

Data is sourced from the System for Electronic Disclosure by Insiders (SEDI) operated by the Canadian Securities Administrators (CSA). Directors, senior officers, and 10% security holders of Canadian reporting issuers must report their transactions to SEDI, including transactions in shares, debt securities, and derivatives such as options, rights, and warrants.

Source-specific notes

  • Filing deadline: Within 5 business days of the transaction.
  • Reporting scope: Includes shares, debt securities, and issuer or third-party derivatives.
  • Identifiers: SEDI does not publish ISINs or LEIs. Transactions are mapped to instruments via the issuer's stock symbol and stock exchange(s) as listed in its SEDI profile.
  • Currency: Not reported by SEDI; assumed to be CAD for issuers listed in Canada, otherwise USD for issuers only listed on US exchanges.
  • Positions: Reported as a numeric relationship code (e.g. "4 - Director of Issuer").
  • Source identifier: sedi

Source URL: sedi.ca

United Kingdom — FCA NSM

Data is sourced from the National Storage Mechanism (NSM) operated by the Financial Conduct Authority (FCA). Persons discharging managerial responsibilities (PDMRs) and persons closely associated with them must disclose their transactions in shares or related financial instruments of UK listed issuers. The notifications are filed in the standard format of Article 19 of the UK Market Abuse Regulation.

Source-specific notes

  • Reporting forms: "Director/PDMR Shareholding" notifications under Article 19 of the UK Market Abuse Regulation, as published through Regulatory Information Services and stored on the NSM.
  • Filing deadline: Without delay and no later than 3 business days after the transaction.
  • Identifiers: ISINs are stated for every instrument; LEIs are present for most issuers.
  • Currency: Mostly GBP; prices denominated in pence are normalized to pounds.
  • Source identifier: nsm

Source URL: data.fca.org.uk

Upcoming Data Sources

EU/EEA

National regulators and stock exchanges across the European Union and European Economic Area, under the common Market Abuse Regulation (MAR) framework.

Japan — EDINET

Transactions by 10%-holders of listed companies reported through Japan's EDINET system under the Financial Instruments and Exchange Act (FIEA).

Israel — TASE (Maya)

Insider transaction reports from the Maya disclosure system of the Tel Aviv Stock Exchange (TASE), the only exchange in Israel.

South Africa — JSE, A2X, CTSE

Insider transaction reported by the three major exchanges in South Africa, the Johannesburg Stock Exchange, A2X Markets, and Cape Town Stock Exchange.

Frequently Asked Questions

How do I get an API key?

Sign up on our registration page to receive a free API key with access to 7-day lagged data and 10,000 requests per day.

What is the rate limit?

Rate limits depend on your plan. See our pricing page for details. The Basic plan allows 10,000 requests per day.

How fresh is the data?

Data freshness depends on the source. Most regulators publish filings within 1-5 business days of the transaction. Our system checks for updates every hour. The Basic plan provides data with a 7-day lag; higher tiers provide realtime access.

Can I filter by multiple values?

Yes. Most array parameters support multiple values by specifying the parameter multiple times. For example: ?country=DE&country=KR returns transactions from both Germany and South Korea. Comma-separated values are not supported.

What identifiers are always available?

The share-class level figi uniquely identifies the traded instrument and is always present on every transaction record. The ticker symbol is also always available, but may not be globally unique (e.g. GLE could refer to Global Engine Holdings in the US, or Société Générale in France. lei is present when the source provides it, which varies by market.

How do I cite or display InsiderLayer data?

Commercial display requires a Commercial license. Attribution to InsiderLayer.com as the data source is appreciated for all uses, but not required for personal/internal use.