5-Minute Quickstart
Get up and running with the Kaleidoscope API in under 5 minutes. We'll take you from signup to your first successful API call.
1 Get Your API Key
- Sign up at api.kscope.io/signup
- Log in to your dashboard
- Find your API key in the dashboard
API Access Tiers:
- • Free: 300 calls/month
- • Starter: 100,000 calls/month
- • Business: 300,000 calls/month
- • Custom: Unlimited calls + enterprise features
Keep your API key secure: Never commit it to GitHub, use environment variables in production
2 Test Your Authentication
# Replace YOUR_API_KEY with your actual key
curl 'https://api.kscope.io/auth-test?key=YOUR_API_KEY'
✅ Success Response:
{"status": "success", "message": "Authenticated"}
3 Your First Real API Call - Search SEC Filings
curl 'https://api.kscope.io/v3/sec/search/AAPL?key=YOUR_API_KEY&content=sec&limit=3'
View example response
{
"data": [
{
"cik": 320193,
"company_name": "Apple Inc.",
"date": 1730419200,
"filer": "Apple Inc.",
"form": "10-Q",
"form_desc": "Quarterly report [Sections 13 or 15(d)]",
"form_group": "Quarterly Reports",
"acc": "0000320193-24-000123",
"html": "https://cdn.kscope.io/abc123def456.html",
"pdf": "https://cdn.kscope.io/abc123def456.pdf",
"ticker": "AAPL"
}
],
"total": 2004,
"status": "success"
}
4 Understanding the Response
Key Fields
ticker- Stock symbolform- Filing type (10-K, 10-Q, 8-K)date- Unix timestamppdf- Direct link to PDFhtml- Direct link to HTML
Response Structure
data- Array of filingstotal- Total results availablestatus- Request status
5 Try Different Searches
Search only 10-K annual reports
curl 'https://api.kscope.io/v3/sec/search/AAPL?key=YOUR_API_KEY&content=sec&form=10-K&limit=5'
Search with keyword
curl 'https://api.kscope.io/v3/sec/search/AAPL?key=YOUR_API_KEY&content=sec&exp=revenue&limit=5'
Search exhibits instead of main filings
curl 'https://api.kscope.io/v3/sec/search/AAPL?key=YOUR_API_KEY&content=exhibits&limit=5'
Quick Reference
Rate Limit: 3,600 requests/hour
Base URL: https://api.kscope.io
Support: support@kscope.io
Dashboard: api.kscope.io/dashboard
🎉 Congratulations! What's Next?
Authentication
Use your key for all requests. Get your key now.
Authentication
All requests require an API key. API keys never expire automatically - they remain valid until manually deleted in your dashboard.
Inputs
| Parameter | Type | Description |
|---|---|---|
| API-KEY | String | Generated through the developer portal (Required) |
SEC Filings
Access a comprehensive dataset of SEC filings from the 1990s to present. Filings are processed within seconds of publication by the SEC.
Filing Search
Search over 18M SEC filings with keywords, Boolean expressions, and 20+ filters. All filing types supported. Data available from the 1990s to present.
Rate Limit
Parameters
| Parameter | Type | Description |
|---|---|---|
| identifier | String | Restrict results to ticker, CIK (Required) |
| content | String | Content to search against. Available values: sec, exhibits, agreements (Required) |
| limit | Int | Maximum number of results to return (default: 100, max: 100) |
| offset | Int | Used as a way to page through data |
| start_date | Int | Start from a date with a timestamp (Unix Timestamp) |
| end_date | Int | End at a date with a timestamp (Unix Timestamp) |
| exp Enterprise | String | Boolean expression |
| form | String | Restrict results to passed form(s). Use ; between forms to pass more than one form |
Filing Search
Search over 18M SEC filings with keywords, Boolean expressions, and 20+ filters. All filing types supported. Data available from the 1990s to present.
Rate Limit
Parameters
| Parameter | Type | Description |
|---|---|---|
| identifier | String | Restrict results to ticker, CIK (Required) |
| content | String | Content to search against. Available values: sec, exhibits, agreements (Required) |
| limit | Int | Maximum number of results to return (default: 100, max: 100) |
| start | Int | Used as a way to page through data. If end is 100 then the next start be 100 |
| sd | Int | Start from a date with a timestamp (Unix Timestamp) |
| ed | Int | End at a date with a timestamp (Unix Timestamp) |
| exp Enterprise | String | Boolean expression |
| form | String | Restrict results to passed form(s). Use ; between forms to pass more than one form |
Filing Search with Boolean Expression Enterprise
Enterprise feature: Search over 18M SEC filings using advanced boolean expressions. Supports all filing types from the 1990s to present.
Rate Limit
Parameters
| Parameter | Type | Description |
|---|---|---|
| key | String | API key for authentication (Required) |
| exp | String | Boolean expression for search (Required) |
| content | String | Content to search against. Available values: sec, exhibits, agreements. Defaults to sec |
| limit | Int | Maximum number of results to return (default: 100, max: 100) |
| offset | Int | Number of results to skip for pagination (e.g., 100 to skip first 100 results) |
| start_date | Int | Start date for search as Unix timestamp. Defaults to 4 years ago |
| end_date | Int | End date for search as Unix timestamp. Defaults to current date |
Filing Search Realtime
Get all SEC filings for the current UTC day. Returns the latest filings across all companies.
Rate Limit
Parameters
| Parameter | Type | Description |
|---|---|---|
| key | String | API key for authentication (Required) |
| content | String | Content to search against. Available values: sec, exhibits, agreements. Defaults to sec |
| limit | Int | Maximum number of results to return (default: 100, max: 100) |
| start | Int | Number of results to skip for pagination (e.g., 100 to skip first 100 results) |
Holdings
Retrieve equity holdings from Form 13F filings for institutional managers with $100M+ in assets.
Rate Limit
Parameters
| Parameter | Type | Description |
|---|---|---|
| identifier | String | Restrict results to cusip, ticker, CIK (Required) |
| type | String | Format: HTML, PDF, Word, XLS, XBRL, XBRL-HTML (Required) |
| limit | Int | Maximum number of results to return (default: 100, max: 100) |
Form D - Private Securities Offerings
Access exempt registrations for small companies and funds pre-IPO.
Rate Limit
Parameters
| Parameter | Type | Description |
|---|---|---|
| identifier | String | Restrict results to acc, CIK (Required) |
| limit | Int | Maximum number of results to return (default: 100, max: 100) |
Form C - Crowdfunding
Retrieve crowdfunding offering statements filed via Form C.
Rate Limit
Parameters
| Parameter | Type | Description |
|---|---|---|
| identifier | String | Restrict results to acc, CIK (Required) |
| limit | Int | Maximum number of results to return (default: 100, max: 100) |
Form 144 - Restricted Sales
Retrieve Form 144 filings for proposed sales of restricted or control securities by providing an identifier (accession number, timestamp, SEC file number, or issuer CIK) and optional filters.
Rate Limit
Parameters
| Parameter | Type | Description |
|---|---|---|
| identifier | String | Unique identifier: accession number (e.g., '0001234567-23-000123'), timestamp (e.g., '1234567890'), SEC file number (e.g., '001-40244'), or issuer CIK (e.g., '0001840776') (Required) |
| name_of_person | String | Name of the insider (e.g., 'KAUFFMAN ROBERT I') |
| notice_date | String | Exact notice date of the filing (format: YYYY-MM-DD, e.g., '2025-04-28') |
| notice_date_gte | String | Start date for notice date range (format: YYYY-MM-DD, e.g., '2025-04-01') |
| notice_date_lte | String | End date for notice date range (format: YYYY-MM-DD, e.g., '2025-04-30') |
| securities_exchange_name | String | Stock exchange (e.g., 'NYSE', 'NASDAQ') |
| broker_name | String | Broker name (e.g., 'Merrill Lynch') |
| issuer_city | String | City of the issuer (e.g., 'TRAVERSE CITY') |
| limit | Int | Number of results to return (1 to 10000, default=50) |
| offset | Int | Number of results to skip for pagination (default: 0) |
| sort_by | String | Sort field: 'notice_date' or 'acc_stamp' (default='notice_date') |
| sort_order | String | Sort order: 'asc' or 'desc' (default='desc') |
Insider Transactions
Fetch insider transaction details for non-derivative and derivative securities.
Rate Limit
Parameters
| Parameter | Type | Description |
|---|---|---|
| identifier | String | Restrict results to ticker, CIK (Required) |
| limit | Int | Maximum number of results to return (default: 100, max: 100) |
| start | Int | Start results from |
| sd | String | Start date |
| ed | String | End date |
Compensation Summary
Fetch summary compensation data for key executives.
Rate Limit
Parameters
| Parameter | Type | Description |
|---|---|---|
| identifier | String | Restrict results to acc, CIK, ticker (Required) |
| sort | String | Sort retrieved data by asc or desc |
| year | Int | Filter retrieved data by specific year |
Compensation Director
Retrieve compensation data for company directors.
Rate Limit
Parameters
| Parameter | Type | Description |
|---|---|---|
| identifier | String | Restrict results to acc, CIK, ticker (Required) |
| sort | String | Sort retrieved data by asc or desc |
| year | Int | Filter retrieved data by specific year |
Corporate Actions
Search corporate actions reported in Form 8-K.
Rate Limit
Parameters
| Parameter | Type | Description |
|---|---|---|
| identifier | String | Restrict results to ticker, CIK (Required) |
| limit | Int | Maximum number of results to return (default: 100, max: 100) |
Stocks
Get intraday and end-of-day stock data from NASDAQ with 15-minute delay for real-time quotes.
Stock Real-Time Enterprise
Access real-time stock prices with a 15-minute delay. Data from NASDAQ exchange.
Rate Limit
Parameters
| Parameter | Type | Description |
|---|---|---|
| API-KEY | String | API key (Required) |
Stock Historical Enterprise
Retrieve historical stock prices and performance indicators.
Rate Limit
Parameters
| Parameter | Type | Description |
|---|---|---|
| limit | Int | Maximum number of results to return (default: 100, max: 100) |
| sd | String | Start date as a timestamp |
| ed | String | End date as a timestamp |
Stock Delayed Enterprise
Enterprise feature: Access delayed stock prices and performance indicators. Requires enterprise tier access.
Rate Limit
Parameters
| Parameter | Type | Description |
|---|---|---|
| ticker | String | Restrict results to ticker (Required) |
| limit | Int | Maximum number of results to return (default: 100, max: 100) |
| start_date | String | Start date as a timestamp |
| end_date | String | End date as a timestamp |
Wealth
Access detailed information about insider activities, including search, gifts, bios, sales, compensation, and holdings.
Search Enterprise
Search and filter the Wealth dataset by person name, CIK, title, university, city, state, or limit results.
Rate Limit
Inputs
| Parameter | Type | Description |
|---|---|---|
| key | String | API key (Required) |
| Name | String | Search using a person name. Can be a full or partial name |
| CIK | Integer | CIK identifier |
| Name_title | String | Person Title. Searches across all person companies for a match |
| University | String | Person University. Full or partial names are accepted |
| City | String | City of residence |
| State | String | State search |
| limit | Integer | Maximum number of results to return (default: 100, max: 100) |
Gifts Enterprise
Retrieve all gift transactions for a person, identified by CIK.
Rate Limit
Inputs
| Parameter | Type | Description |
|---|---|---|
| key | String | API key (Required) |
| cik | Integer | CIK identifier (Required) |
Bios Enterprise
Retrieve all identified bios for a person, identified by CIK.
Rate Limit
Inputs
| Parameter | Type | Description |
|---|---|---|
| key | String | API key (Required) |
| cik | Integer | CIK identifier (Required) |
Sales Enterprise
Retrieve all sales transactions for a person, identified by CIK. Typically includes transaction codes [S,D].
Rate Limit
Inputs
| Parameter | Type | Description |
|---|---|---|
| key | String | API key (Required) |
| cik | Integer | CIK identifier (Required) |
Compensation Enterprise
Retrieve all compensation data for a person, identified by CIK. Includes summary and/or director compensation.
Rate Limit
Inputs
| Parameter | Type | Description |
|---|---|---|
| key | String | API key (Required) |
| cik | Integer | CIK identifier (Required) |
Holdings Enterprise
Retrieve all holdings (common shares) data for a person, identified by CIK.
Rate Limit
Inputs
| Parameter | Type | Description |
|---|---|---|
| key | String | API key (Required) |
| cik | Integer | CIK identifier (Required) |
SEDAR
Access Canadian securities filings via the SEDAR system since 1997.
SEDAR
Retrieve individual SEDAR filings for Canadian companies.
Rate Limit
Parameters
| Parameter | Type | Description |
|---|---|---|
| identifier | String | Restrict results to cusip, ticker, CIK (Required) |
| limit | Int | Maximum number of results to return (default: 100, max: 100) |
| page | Int | Returns a page of data |
| symbol | String | DEC:CA |
Press Releases
Access press releases for companies using ticker symbols.
Press Releases
Fetch the latest press releases by ticker symbol.
Rate Limit
Parameters
| Parameter | Type | Description |
|---|---|---|
| identifier | String | Restrict results to a ticker (Required) |
| limit | Int | Maximum number of results to return (default: 100, max: 100) |
| start | Int | Used as a way to page through data. If end is 100 then the next start be 100 |
| year | Int | Filter retrieved data by specific year |
| sort | String | Sort retrieved data by asc or desc |
| sd | Int | Start from a date with a timestamp (Unix Timestamp) |
| ed | Int | End at a date with a timestamp (Unix Timestamp) |
Realtime Transcripts Enterprise
Fetch the latest transcripts for the current day in Eastern Standard Time (EST, UTC-5).
Rate Limit
Parameters
| Parameter | Type | Description |
|---|---|---|
| key | String | API key for authentication (Required) |
Historical Transcripts Enterprise
Fetch historical transcripts with optional filters for ticker, date, date range, call title, and status. Use 'limit' and 'offset' for pagination to navigate through large result sets.
Rate Limit
Parameters
| Parameter | Type | Description |
|---|---|---|
| key | String | API key for authentication (Required) |
| ticker | String | Restrict results to a specific ticker symbol (e.g., TSLA) |
| date | String | Filter by a specific date (e.g., 2025-03-03) |
| start_date | String | Start of date range (e.g., 2025-01-01) |
| end_date | String | End of date range (e.g., 2025-06-30) |
| call_title | String | Keywords to search in call title (case-insensitive, e.g., Q4) |
| status | String | Filter by transcript status (e.g., COMPLETED) |
| limit | Int | Maximum number of results to return (default: 100, max: 100) |
| offset | Int | Number of results to skip for pagination (default: 0) |
Rate Limits
Understand API rate limiting and how to optimize your usage. Monitor your limits through response headers.
Rate Limiting Overview Dev
All API endpoints are rate-limited to ensure fair usage and system stability. Rate limits are applied per API key on an hourly rolling window.
Rate Limiting Details
| Aspect | Value | Description |
|---|---|---|
| Default Limit | 3,600/hour | Standard rate limit for all API endpoints |
| Time Window | 1 hour | Rolling window that resets every hour on the hour |
| Reset Time | Top of hour | Limits reset at :00 of each hour (e.g., 1:00, 2:00, 3:00) |
| Error Code | 429 | HTTP status returned when rate limit exceeded |
| Retry After | Variable | Seconds until the next hour boundary (provided in error response) |
Error Codes
Understand API error codes and their meanings. All errors return a consistent JSON structure with code, type, and message fields.
API Error Codes Dev
The API returns standardized error responses to help you handle issues programmatically. Every error includes detailed information to help you identify and resolve the issue quickly.
Error Code Reference
| HTTP Code | Error Type | Common Causes & Solutions |
|---|---|---|
| 400 | INPUT |
Bad Request • Missing required parameters • Invalid date format (use Unix timestamp) • Invalid ticker symbol • Malformed JSON body Solution: Check parameter names and formats |
| 401 | AUTH |
Unauthorized • Missing API key parameter • Invalid or expired API key • Key suspended or revoked Solution: Verify your API key at api.kscope.io/dashboard |
| 403 | PERMISSION |
Forbidden • Endpoint requires premium/enterprise tier • Missing specific permissions • IP restrictions in place Solution: Upgrade your plan or contact support |
| 404 | DATA |
Not Found • Invalid endpoint URL • Resource doesn't exist (e.g., invalid CIK) • Data not available for date range Solution: Verify endpoint path and identifiers |
| 429 | RATELIMIT |
Too Many Requests • Exceeded hourly rate limit • Too many concurrent requests • Burst limit exceeded Solution: Implement rate limiting and retry logic |
| 500 | SERVER_ERROR |
Internal Server Error • Unexpected server error • Database connection issue • Unhandled exception Solution: Retry after a few seconds. If persists, contact support |