API documentation

The REST API enables you to effortlessly access real-time information on insider trades.

Exclusive access to the API is reserved only for advanced subscription. To unlock the full benefits, kindly register.

Feel free to explore our API collection on postman.smartinsidertrades.com or check out the simple reference below.

NB: Due to our specialized focus, the SIT database contains EOD and stock information exclusively for companies involved in insider transactions. However, we also analyze stock indices and ETFs that include stocks involved in insider transactions.

General settings:

base_url: https://api.smartinsidertrades.com

api_version: v1

Data returned by each API endpoint is always in JSON format. Upon a successful request, the API will return an HTTP code of 200. You are encouraged to develop your error-handling mechanism to capture potential HTTP codes in the 4xx-5xx range.

The typical API latency is under 300 milliseconds.

Your API key can be located within the 'Settings' page of your profile. It is essential to include this API key in every request as a header named sit-api-key.

Currently, there are no limitations on how often you can make API calls. The main principle we follow when building this API is 'keep it as simple as possible'.

cURL example:

We strongly recommend implementing IP-based limitations on the API key in your account.

Available API endpoints:

GET base_url/api_version/latest

Returns the 100 most recent insider transactions. The endpoint accepts the following optional arguments:

country - Business entity's country in 2-letter ISO code format (e.g., SE).

min_amount - Minimum transaction amount in US dollars (e.g., $1000).

The response contains the following fields:

{
"associated": 1,
"currency": "SEK",
"isin": "SE0000106270",
"issuer": "H & M Hennes & Mauritz AB",
"person": "Karl-johan Persson",
"position": "Chairman of the Board",
"price": 165.2183,
"publication_date": "2023-08-10T00:00:00.000Z",
"transaction": "buy",
"transaction_date": "2023-08-08T00:00:00.000Z",
"volume": 123913725,
"country": "se",
"qty": 750000,
"usd_amount": 11653891.428632336
}
GET base_url/api_version/buy-sell-ratio

This API endpoint provides the buy/sell sentiment ratio for a specified country within the last specified number of months. The endpoint accepts the following optional arguments:

country - Business entity's country in 2-letter ISO code format (e.g., SE). If the 'country' attribute is omitted, the buy/sell ratio will be calculated for all countries.

months_ago - The number of previous months for which you are requesting data (minimum value: 1).

The response contains the following fields:

{
"sell": 96,
"buy": 513,
"ratio": "5.34"
}

Tickers

The following API endpoints retrieve information about tickers or public companies:

POST base_url/api_version/tickers/search

This API endpoint searches for tickers using a provided keyword. It returns the 30 closest search results. The endpoint accepts the following argument:

keyword - The 'keyword' field can contain any string or a portion of ISIN, a company name, LEI code, registration number.

The response contains an array consisting of the following fields:

uuid String Universally Unique Identifier (UUID) value of a ticker in the v4 'relaxed' format.
symbol String ticker symbol of a stock on the primary exchange
insiders Array Includes the following fields for each insider: 'name', 'slug', 'type', 'position', 'transactions', 'avg_transaction', 'turnover', 'first_transaction', 'last_transaction'."
country String 2-character ISO country code
isin String ISIN code. Note that the same company may have multiple ISINs.
issuer String Company / issuer name
slug String Slug
address_1 String First line of address
address_2 String Second line of address
city String City
postal_code String Postal code
region String Region
lei String LEI code
beta Numeric Beta calculated on all-time daily stock price
all_time_max Numeric Represents the all-time high (ATH) value
all_time_min Numeric Represents the all-time low (ATL) value.
annual_performance Array Annual stock performance per year
delta_correlation Numeric One of the most valuable metrics in the SIT project. For more information, please refer to this page.
founded Integer Year when a company was founded
registration_number String In different countries, the company registration number may have varying formats and names, such as 'company number'.
transactions Integer Total quantity of transactions
other_names Array If a company was previously known under other names
GET base_url/api_version/ticker/:term

Returns data about a given company/ticker. Use the UUID or slug value as a 'term' GET attribute. The data structure of the returned JSON is explained above.

GET base_url/api_version/ticker/:term/transactions

Identical to the previous API endpoint, but also returns insider transactions associated with a given company. Please note that 'records' is an array of transactions and 'transactions' represent the total quantity of transactions.

The 'records' array may contain a maximum of 100 transactions. If the 'transactions' field indicates more than 100 transactions, you may pass an additional GET attribute 'page' to paginate the results.

The structure of the 'records' array is as follows:

associated Boolean Indicates whether an insider was associated
long_term Boolean Indicates if a transaction was carried out by a long-term insider
currency String Currency of a transaction
isin String ISIN
person String Insider name
person_slug String Insider slug
issuer String Company name
position String Insider Position
price Numeric Price
qty Numeric Qty
volume Numeric Total amount of a transaction in a currency
transaction String Either 'buy' or 'sell'
usd_amount Numeric Transaction amount in USD
trading_venue String Trading Venue
publication_date Datetime Publication Date
transaction_date Datetime Transaction Date

Please give careful consideration to transactions flagged as 'long_term' = true, as they were executed by individuals known as long-term insiders within a specific company. These insiders have completed at least 10 transactions within the last 3 years.

UBSTA

"ubsta" is an abbreviation for "Upper Bound of Standardized Transaction Amount". It represents the maximum expected transaction amount. When calculating this metric, we use 2 standard deviations (2STD). This means that there is a 5% probability that a certain transaction would be over a specified amount. If a transaction exceeds the "ubsta," we consider it an anomaly.

UBSTA is explained in the following blog post.

GET base_url/api_version/ubsta/history/:isin

API endpoint retrieves the historical UBSTA values, sorted by timestamp in descending order. The endpoint accepts the following argument:

isin - ISIN code.

GET base_url/api_version/ubsta/latest/:isin

API endpoint retrieves the most recent UBSTA value for a given company. The endpoint accepts the following argument:

isin - ISIN code.

The structure of the response is as follows:

isin String ISIN code
std_dev_threshold Numeric Usually 2 as we use 2STD for our calculations
ubsta Numeric ubsta value
NB: UBSTA values can change throughout the day due to incoming data.
timestamp Timestamp Timestamp

Insiders

POST base_url/api_version/insider/search

This API endpoint searches for insiders using a provided keyword. It returns the 30 closest search results. You can use this endpoint in conjunction with the next endpoint by utilizing the 'slug' or 'uuid' attribute. The endpoint accepts the following argument:

keyword - The 'keyword' field can contain any string or a portion of a name.

The response contains the following fields:

[{
"slug": "monika-kjellker-gimre",
"name": "Monika Kjellker Gimre",
"type": "individual",
"uuid": "19dc23af-4a6f-4cbd-8367-2bc32293c68b"
}]
GET base_url/api_version/insider/:term

This endpoint provides basic info about a given insider. Please utilize the 'slug' or 'uuid' attribute that you obtained from the previous endpoint.

When retrieving insider transactions through the API, kindly note that our methodology involves extensive data filtering.

term - is a UUID or slug associated with a specific insider.

The response contains the following fields:

[{
"slug": "anna-lothsson",
"uuid": "3edba283-41d8-41fa-bfd3-9d4997b36eef",
"name": "Anna Lothsson",
"companies": ["SE0011167956"],
"avg_transaction": 38492.26,
"transactions": 1,
"turnover": 1,
}]
GET base_url/api_version/insider/:term/transactions

The API endpoint below provides both insider information and transactions associated with a given insider. Please note that the total number of transactions is included in the 'transactions' field, and the API returns a maximum of 100 transactions per page. To paginate the response, simply add the GET parameter 'page'.

term - is a UUID or slug associated with a specific insider.

The response contains the following fields:

[{
"slug": "anna-lothsson",
"uuid": "3edba283-41d8-41fa-bfd3-9d4997b36eef",
"name": "Anna Lothsson",
"companies": ["SE0011167956"],
"avg_transaction": 38492.26,
"page": 1,
"transactions": 1,
"turnover": 1,
"records": [
{
"associated": 0,
"currency": "SEK",
"isin": "SE0005799046", "issuer": "AGES Industri AB",
"position": "CEO",
"price": 90.04,
"publication_date": "2018-02-28T23:59:59.999Z",
"transaction": "buy",
"transaction_date": "2018-02-27T00:00:00.001Z",
"volume": 87608.92,
"country": "se",
"qty": 973,
"usd_amount": 10691.24,
"trading_venue": "FIRST NORTH SWEDEN"
},
}]

SITI index

The following API endpoints provide access to the SITI index calculated on a daily or monthly basis.

GET base_url/api_version/siti/daily

By default, the API endpoint returns the SITI index for the last 30 days. If you want to specify a particular timeframe for which you would like to retrieve the SITI value, you can include the 'start_date' and 'end_date' GET parameters in the format YYYY-mm-dd.

The response contains the following fields:

[{
"date": "2024-03-21T00:00:00.001Z",
"siti": 100,
"b_ratio": 1,
"s_ratio": 0,
"delta": 9508.01,
"total_amount": 9508.01
}]

"date" - The date for which SITI was calculated.
"siti" - The SITI index value.
"b_ratio" - The buy ratio, representing the percentage of 'buy' transactions for the given day.
"s_ratio" - The sell ratio, representing the percentage of 'sell' transactions for the given day.
"delta" - The difference between buy and sell transactions, measured in USD.
"total_amount" - The total amount of transactions within the day, measured in USD.

GET base_url/api_version/siti/monthly

This API endpoint is similar to the previous one, but calculates the SITI index on a monthly basis. By default, the API endpoint returns the SITI index for the last 12 months. If you want to specify a particular timeframe for which you would like to retrieve the SITI value, you can include the 'start_date' and 'end_date' GET parameters in the format YYYY-mm-dd.

GET base_url/api_version/siti/constituents

This API endpoint gives you the full list of companies in the SITI index.

The structure of the array is as follows:

isin String ISIN
symbol String Ticker
lei String LEI code
issuer String Company name
registration_number String Registration number
icb_code Numeric ICB code
icb_industry String ICB industry
icb_supersector String ICB supersector
annual_performance Array Annual performance
beta Numeric All-time beta
transactions Numeric Total amount of transactions
founded Numeric Year when a company was founded
website String Company website

Watchlists

These API endpoints are responsible for managing watchlists, which are at the heart of the platform's functionality.

GET base_url/api_version/watchlists/my

This API endpoint retrieves the list of watchlists you've previously created

The response contains the following fields:

[{
"name": "My Own Watchlist",
"created_at": "2023-09-17T16:39:55.074Z",
"uuid": "d4dcca11-5578-11ee-9f5e-e9fb3f079a34"
"companies": [{
  "name": "Rejlers AB (publ)",
  "isin": "SE0000123671"
},
{
  "name": "Test AB (publ)",
  "isin": "SE0000124321"
}],
}]
GET base_url/api_version/watchlists/:uuid

This API endpoint provides details about a specified watchlist. You should use the UUID that is visible in the previous API endpoint to identify the watchlist.

uuid - A UUID, or Universally Unique Identifier, is a 128-bit hexadecimal value that is used to uniquely identify data or entities in a system. It ensures that each watchlist has a distinct and unambiguous identifier.

The response contains the same fields as the previous one.

DELETE base_url/api_version/watchlists/:uuid

This API endpoint allows you to delete a specific watchlist using its UUID. The response will include a single field, 'status.' If the deletion was successful, the response will be {status: true}.

POST base_url/api_version/watchlists/create

This API endpoint is used to create a new watchlist. You are required to provide at least one field, which is 'name.' Upon successful creation, the API will return the UUID of the newly created watchlist.

name - a watchlist title

companies - an array of companies you want to track, with two mandatory fields: 'name' and 'ISIN.'

PUT base_url/api_version/watchlists/update/:uuid

This API endpoint is used to update an existing watchlist. It accepts updates to the 'name' and 'companies' fields. Upon successful update, it returns {'status': true}.

Direct Access to Google Cloud BigQuery

As a paid user, you have the option to request direct access to our BigQuery dataset instead of using the API.

For users who prefer working with Google Spreadsheet, connecting to the BigQuery dataset is the fastest and most efficient option. The dataset in Google Cloud BigQuery is synchronized daily.

For further details on how to connect Google BigQuery with Google Spreadsheet, please refer to the following link: Google Spreadsheet Integration