Documentation Index
Fetch the complete documentation index at: https://docs.vectrade.io/llms.txt
Use this file to discover all available pages before exploring further.
List endpoints return paginated results using cursor-based pagination. This approach is stable under concurrent writes and scales to millions of records.
Response Envelope
All list endpoints return a standard envelope:
{
"data": [ ... ],
"has_more": true,
"cursor": "eyJpZCI6MTAwfQ==",
"total": 1542
}
| Field | Type | Description |
|---|
data | array | Page of results |
has_more | boolean | Whether more pages exist |
cursor | string | Opaque cursor for the next page (null if last page) |
total | number | Total result count (may be approximate for large sets) |
Using Cursors
Pass the cursor from the previous response to fetch the next page:
from vectrade import VecTrade
client = VecTrade()
# Automatic iteration (recommended)
for article in client.news.list(limit=50):
print(article.title)
# SDK handles pagination automatically — fetches pages as you iterate
# Manual pagination
page = client.news.list(limit=50)
while True:
for article in page.data:
print(article.title)
if not page.has_more:
break
page = client.news.list(limit=50, cursor=page.cursor)
Parameters
| Parameter | Type | Default | Description |
|---|
limit | integer | 20 | Items per page (1–100) |
cursor | string | — | Cursor from previous response |
Collect All Results
# Collect all results into a list
all_articles = list(client.news.list(limit=100))
# Or with async
all_articles = await client.news.list(limit=100).collect()
Paginated Endpoints
| Endpoint | Resource | Default Limit |
|---|
GET /vq/news | News articles | 20 |
GET /vq/earnings/calendar | Earnings dates | 20 |
GET /vq/insider/{symbol}/transactions | Insider trades | 20 |
GET /vq/analyst/{symbol}/ratings | Analyst ratings | 20 |
GET /vq/webhooks | Webhook subscriptions | 20 |
GET /vq/developer/keys | API keys | 20 |
Best Practices
- Use SDK iterators — Both SDKs handle pagination automatically via
for loops
- Set appropriate limits — Use
limit=100 for bulk processing, smaller values for UI
- Don’t store cursors long-term — Cursors may expire after 24 hours
- Use filters to reduce pages — Apply server-side filtering instead of client-side
Cursors are opaque — do not parse, modify, or construct them manually. They may change format without notice.