1. Overview
The Screener API allows you to filter and retrieve financial instruments across multiple asset classes including stocks, ETFs, bonds, and cryptocurrencies. You can query data with custom field selections, apply filters by exchange or country, and sort results.
Supported Asset Types
stock
Equities
etf
Exchange-Traded Funds
bond
Fixed Income
crypto
Cryptocurrencies
Base URL
https://api.insightsentry.com/v3/screeners/{type}2. Available Options
Before querying the screener, you can discover available fields, exchanges, and countries for each asset type using a GET request.
Endpoint
GET https://api.insightsentry.com/v3/screeners/{type}Example Request
GET https://api.insightsentry.com/v3/screeners/stockResponse
{
"available_fields": [
"close",
"change",
"high",
"low",
"open",
"volume",
"market_cap",
"..."
],
"available_exchanges": [
"NASDAQ",
"NYSE",
"AMEX",
"..."
],
"available_countries": [
"US",
"CA",
"GB",
"..."
],
"sortOrder": ["asc", "desc"]
}Asset Type Differences
Crypto: Does not support country filtering
Bond: Has different country codes specific to bond markets
Each asset type has its own set of available fields tailored to that market
3. Query Screener
Use a POST request to query the screener with your desired fields, filters, and sorting options.
Endpoint
POST https://api.insightsentry.com/v3/screeners/{type}Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
| fields | string[] | Yes | Array of fields to retrieve (1-10 fields) |
| page | number | No | Page number for pagination (default: 1) |
| sortBy | string | No | Field to sort by, must be one of the requested fields or "name" (default: "name") |
| sortOrder | string | No | "asc" or "desc" (default: "asc") |
| exchanges | string[] | No | Filter by specific exchanges |
| countries | string[] | No | Filter by country codes (not available for crypto) |
| ignore_invalid | boolean | No | If true, invalid fields/exchanges/countries are filtered out instead of returning an error |
Example Request
POST https://api.insightsentry.com/v3/screeners/stock
{
"fields": ["close", "change_percent", "volume", "market_cap"],
"page": 1,
"sortBy": "market_cap",
"sortOrder": "desc",
"exchanges": ["NASDAQ", "NYSE"],
"countries": ["US"]
}Field Validation
- At least one field is required
- Maximum of 10 fields per request
- Up to 1000 items are returned per request
- Field names are case-insensitive and will be normalized to lowercase
- The
sortByfield must be one of the requested fields or "name"
4. Response Format
The screener returns paginated results with metadata about the current page and total available data.
Response Structure
{
"hasNext": true,
"current_page": 1,
"total_page": 15,
"current_items": 1000,
"data": [
{
"symbol_code": "NASDAQ:AAPL",
"name": "Apple Inc.",
"close": 195.89,
"change_percent": 1.25,
"volume": 52436789,
"market_cap": 3050000000000,
"country": "US",
"currency": "USD",
"delay_seconds": 0,
"fundamental_currency": "USD"
}
]
}Response Fields
Pagination Metadata:
- hasNext: Boolean indicating if more pages are available
- current_page: Current page number
- total_page: Total number of pages
- current_items: Number of items in current response
Common Fields in Data:
- symbol_code: Unique identifier (EXCHANGE:SYMBOL format)
- name: Description/name of the instrument
- country: Country code (not for crypto)
- currency: Trading currency
- delay_seconds: Data delay in seconds (0 = real-time)
- fundamental_currency: Currency for fundamental data
5. Examples
Stock Screener
Find US stocks by market cap with price data:
POST https://api.insightsentry.com/v3/screeners/stock
{
"fields": ["close", "change", "volume", "market_cap"],
"page": 1,
"sortBy": "market_cap",
"sortOrder": "desc",
"countries": ["US"]
}ETF Screener
Query ETFs from specific exchanges:
POST https://api.insightsentry.com/v3/screeners/etf
{
"fields": ["close", "volume", "change"],
"exchanges": ["NYSE", "NASDAQ"],
"sortBy": "volume",
"sortOrder": "desc"
}Crypto Screener
Screen cryptocurrencies by volume:
POST https://api.insightsentry.com/v3/screeners/crypto
{
"fields": ["close", "volume", "change"],
"sortBy": "volume",
"sortOrder": "desc"
}Bond Screener
Query bonds from specific countries:
POST https://api.insightsentry.com/v3/screeners/bond
{
"fields": ["close", "yield"],
"countries": ["US", "GB"],
"sortBy": "yield",
"sortOrder": "desc"
}With ignore_invalid Flag
Use ignore_invalid when you want to attempt queries with fields that might not exist:
POST https://api.insightsentry.com/v3/screeners/stock
{
"fields": ["close", "volume", "some_unknown_field"],
"ignore_invalid": true
}With ignore_invalid: true, the API will filter out "some_unknown_field" and return results with only the valid fields.