Search Requests
Full-text search across all feature requests with optional AI topic expansion. Searches title, description, tags, and author name.
POST
/api/v1/requests/searchFull-text search across feature requests with optional AI topic expansion. Searches title, description, tags, and author name.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
| query | string | required | Search query |
| limit | number | optional | Max results (1-100) (default: 20) |
| expand | boolean | optional | Enable AI topic expansion + realtime scraping (default: false) |
| platforms | array | optional | Platforms to scrape (only when expand=true) (default: reddit,x) |
Notes
- Search is capped at 100 results maximum (Convex limitation)
- Set `expand=true` to trigger AI topic expansion and realtime scraping
- Expansion only triggers when cached results < 10
- Without expand, counts against cached quota only
- With expand, counts against both cached and realtime quota
- Use `hasMore` to show 'Load more' UI
Response Example
200 OK
{
"data": {
"results": [
{
"_id": "abc123",
"title": "[Notion] Add offline mode",
"description": "Users want offline support...",
"votes": 100,
"tags": [
"offline",
"productivity"
]
}
],
"hasMore": true,
"limitReached": false
},
"meta": {
"originalQuery": "notion offline",
"cachedResults": 3,
"expanded": true,
"expandedTopics": [
"notion offline mode",
"notion desktop app",
"notion sync"
],
"topicsScraped": 2,
"topicsSkipped": 1,
"newResultsFound": 15,
"scrapingTimeMs": 4500
},
"usage": {
"cached": {
"used": 151,
"limit": 1000,
"remaining": 849
},
"realtime": {
"used": 26,
"limit": 500,
"remaining": 474
}
}
}Response Metadata
When expand=true, the response includes detailed metadata:
| originalQuery | Your original search query |
| cachedResults | Number of results from cache |
| expanded | Whether expansion was triggered |
| expandedTopics | Array of AI-generated related topics |
| topicsScraped | Number of topics that were scraped |
| topicsSkipped | Topics skipped due to TTL (recently scraped) |
| newResultsFound | New feature requests discovered |
| scrapingTimeMs | Total time for expansion pipeline |