Source: https://dinakar-rewind.docs.pageloop.ai/api-reference/search/getsearch

# Cross-domain search

GET `https://api.rewind.rest/v1/search`

Full-text search across all data domains (listening, running, watching, collecting, reading).

## Authorization

#### Authorization (header, string, required)

API key. Read keys (rw\_live\_...) access GET endpoints. Admin keys (rw\_admin\_...) access all endpoints.

## Query Parameters

#### q (query, string, required)

Search query string

#### domain (query, enum (string)) — allowed: listening, running, watching, collecting, reading

Filter results to a specific domain

#### limit (query, string)

Results per page (1-100, default 20)

#### page (query, string)

Page number (default 1)

#### mode (query, enum (string)) — allowed: keyword, semantic, hybrid

Ranking mode. keyword = FTS only (default). semantic = Vectorize only (reading domain). hybrid = FTS + semantic via reciprocal rank fusion (reading domain).

## Response

#### 200

Search results with pagination

#### data (array of object, required)

#### properties

#### domain (string, required)

#### entity\_type (string, required)

#### entity\_id (string, required)

#### title (string, required)

#### subtitle (string, required)

#### image\_key (string, required)

#### image (object, required)

#### url (string)

#### instapaper\_url (string)

#### instapaper\_app\_url (string)

#### author (string)

#### score (number)

#### pagination (object, required)

#### properties

#### page (integer, required)

#### limit (integer, required)

#### total (integer, required)

#### total\_pages (integer, required)

#### 400

Bad request

#### error (string, required)

#### status (integer, required)

#### 401

Unauthorized

#### error (string, required)

#### status (integer, required)

#### Request

```bash cURL
curl -X GET 'https://api.rewind.rest/v1/search' \
  -H 'Authorization: Bearer <token>'
```

```javascript JavaScript
const res = await fetch('https://api.rewind.rest/v1/search', {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer <token>',
  },
});
const data = await res.json();
```

```python Python
import requests

res = requests.get(
    'https://api.rewind.rest/v1/search',
    headers={'Authorization': 'Bearer <token>'}
)
data = res.json()
```

#### Response

```json 200
{
  "data": [
    {
      "domain": "string",
      "entity_type": "string",
      "entity_id": "string",
      "title": "string",
      "subtitle": "string",
      "image_key": "string",
      "image": {
        "cdn_url": "\u2026",
        "thumbhash": "\u2026",
        "dominant_color": "\u2026"
      },
      "url": "string",
      "instapaper_url": "string",
      "instapaper_app_url": "string",
      "author": "string",
      "score": 0
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 150,
    "total_pages": 8
  }
}
```

```json 400
{
  "error": "Not found",
  "status": 404
}
```

```json 401
{
  "error": "Not found",
  "status": 404
}
```
