Search API for annual reports, quarterly results, and balance sheets from 1,928 NSE-listed companies. Full-text and AI-powered semantic search across 15,933 filings.
Two search modes, comprehensive coverage of Indian company filings, and a simple REST API. No scraping, no rate limits to manage.
FTS5-powered keyword search with highlighted snippets. Supports boolean operators, phrase matching, and prefix queries.
Natural language queries powered by OpenAI embeddings and HNSW indexing. Find filings by meaning, not just keywords.
Run up to 50 queries in a single call with company-level deduplication. Perfect for screening and research workflows.
All NSE-listed Indian companies across 22 sectors. Lookup by ticker, filter by sector, industry, year, and quarter.
Indian company annual reports, quarterly results, and financial statements extracted and indexed. Updated daily with new filings from NSE.
Single API key authentication. JSON in, JSON out. Median response time under 100ms for keyword search.
Try the full NSE API free for 7 days. No credit card required.
7-day free trial with 100 API calls. Card required to prevent abuse — you won't be charged during the trial. $15/mo after.
Base URL: https://xaro.ai — Authenticate with X-Api-Key: YOUR_KEY header. Free API key with 100 calls included.
| Param | Type | Required | Description |
|---|---|---|---|
query | string | Yes | Search query. Supports FTS5: OR, quoted phrases, prefix* |
ticker | string | No | NSE symbol (e.g. RELIANCE) |
type | string | No | annual_report, quarterly_result, other |
year | integer | No | Filter by filing year |
quarter | integer | No | 1-4 |
sector | string | No | Sector or industry name |
page | integer | No | Page number (default: 1) |
limit | integer | No | 1-100 (default: 20) |
snippet_tokens | integer | No | 16-128 (default: 64) |
curl -X POST https://xaro.ai/full-text-search \
-H "X-Api-Key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "\"import duty\" OR \"customs duty\"", "sector": "Automobile and Auto Components", "limit": 5}'
| Param | Type | Required | Description |
|---|---|---|---|
query | string | Yes | Natural language query |
ticker | string | No | NSE symbol filter |
type | string | No | Filing type filter |
year | integer | No | Year filter |
quarter | integer | No | 1-4 |
sector | string | No | Sector or industry |
topK | integer | No | 1-100 (default: 20) |
curl -X POST https://xaro.ai/embeddings-search \
-H "X-Api-Key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "companies affected by EV policy changes", "topK": 10}'
Run multiple FTS + semantic queries in one call. Results aggregated and ranked by company.
| Param | Type | Required | Description |
|---|---|---|---|
queries | array | Yes | Up to 50 query objects. Each: query, type (fts|semantic), optional filters |
topK | integer | No | Max companies, 1-200 (default: 50) |
min_matches | integer | No | Min query matches per company (default: 1) |
curl -X POST https://xaro.ai/multi-search \
-H "X-Api-Key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"queries": [
{"query": "\"import duty\"", "type": "fts", "sector": "Automobile and Auto Components"},
{"query": "trade policy impact on margins", "type": "semantic"}
],
"topK": 20
}'
Returns filing counts, company counts, breakdowns by sector, type, and year.
curl https://xaro.ai/stats -H "X-Api-Key: YOUR_KEY"
Returns company name, sector, industry, ISIN, filing counts by type.
curl https://xaro.ai/companies/INFY -H "X-Api-Key: YOUR_KEY"
All 22 NSE sectors with company and filing counts. Use these as sector filter values.
curl https://xaro.ai/sectors -H "X-Api-Key: YOUR_KEY"
curl https://xaro.ai/health
# {"status":"ok"}