1. Overview
Filter stocks, ETFs, bonds, and crypto by exchange or country. Select response fields and sort results.
Supported Asset Types
stock
Equities
etf
Exchange-Traded Funds
bond
Fixed Income
crypto
Cryptocurrencies
BASH
https://api.insightsentry.com/v3/screeners/{type}2. Available Options
Discover fields, exchanges, and countries for each asset type:
Endpoint
BASH
GET https://api.insightsentry.com/v3/screeners/{type}Example Request
BASH
GET https://api.insightsentry.com/v3/screeners/stockResponse
JSON
{
"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
Send fields, filters, and sorting options in the request body.
Endpoint
BASH
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
JSON
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
Results include pagination metadata and instrument rows.
Response Structure
JSON
{
"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:
JSON
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:
JSON
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:
JSON
POST https://api.insightsentry.com/v3/screeners/crypto
{
"fields": ["close", "volume", "change"],
"sortBy": "volume",
"sortOrder": "desc"
}Bond Screener
Query bonds from specific countries:
JSON
POST https://api.insightsentry.com/v3/screeners/bond
{
"fields": ["close", "yield"],
"countries": ["US", "GB"],
"sortBy": "yield",
"sortOrder": "desc"
}With ignore_invalid Flag
Omit unknown fields from the response with ignore_invalid: true:
JSON
POST https://api.insightsentry.com/v3/screeners/stock
{
"fields": ["close", "volume", "some_unknown_field"],
"ignore_invalid": true
}