# Insights auflisten

Insights im Projekt per Benutzerzugriff verwalten.

`GET /v1/insight/query?project=my-project&limit=20&page=1`

**Authentifizierung:** Benutzer-Access-JWT mit Projektzugriff.

## Query-Parameter

`project` ist der Projekt-Slug. Optional: `title`, `sortBy`, `limit`, `page`. Listen verwenden `results`, `page`, `limit`, `totalPages`, `totalResults`.

## Antwort

HTTP `200` mit einer paginierten Liste. Ein API-Token berechtigt nur zu den dokumentierten Schreibzugriffen.


## SDK-Nutzung

Die SDK-Beispiele stehen neben den HTTP-Requests unter **SDKs**. Installation und Einrichtung: [JavaScript / TypeScript](/sdks/javascript), [Next.js](/sdks/nextjs) und [Swift](/sdks/swift). Projekt-Slugs werden vom Client ergänzt.

Diese Operation benötigt einen Benutzer-Access-JWT mit Projektzugriff. Der API-Token allein genügt nicht. Next.js-Beispiele gehören in eine Serverumgebung; Swift-Zugänge stammen aus deiner Laufzeitkonfiguration.

## Request

```bash
curl -X GET 'https://api.tracklytic.de/v1/insight/query?project=my-project&limit=20&page=1' \
  -H "Authorization: Bearer $TRACKLYTIC_ACCESS_TOKEN"
```

```js
const response = await fetch("https://api.tracklytic.de/v1/insight/query?project=my-project&limit=20&page=1", {
  method: "GET",
  headers: {
    Authorization: `Bearer ${process.env.TRACKLYTIC_ACCESS_TOKEN}`
  }
});

if (!response.ok) throw new Error(await response.text());
const result = await response.json();
```

```python
import json
import os
from urllib.request import Request, urlopen

request = Request(
    "https://api.tracklytic.de/v1/insight/query?project=my-project&limit=20&page=1",
    method="GET",
    headers={
        "Authorization": "Bearer " + os.environ["TRACKLYTIC_ACCESS_TOKEN"]
    }
)

with urlopen(request) as response:
    result = json.load(response)
```

## SDKs

### JavaScript / TypeScript

```ts
import Tracklytic from 'tracklytic';

const tracklytic = new Tracklytic({
  token: process.env.TRACKLYTIC_API_TOKEN!,
  project: "my-project",
  accessToken: process.env.TRACKLYTIC_ACCESS_TOKEN!,
});

const page = await tracklytic.insight.list({ page: 1, limit: 20 });
console.log(page.results);
```

### Next.js

```ts
import { TracklyticServer } from 'tracklytic-next/server';

const tracklytic = new TracklyticServer({
  token: process.env.TRACKLYTIC_API_TOKEN!,
  project: "my-project",
  accessToken: process.env.TRACKLYTIC_ACCESS_TOKEN!,
});

const page = await tracklytic.insight.list({ page: 1, limit: 20 });
console.log(page.results);
```

### Swift

```swift
import Foundation
import Tracklytic

let tracklytic = TracklyticClient(
    project: "my-project",
    token: apiToken,
    accessToken: userAccessToken
)

let page = try await tracklytic.getInsights(query: ["page": "1", "limit": "20"])
```

## Response (200)

```json
{
  "results": [],
  "page": 1,
  "limit": 20,
  "totalPages": 0,
  "totalResults": 0
}
```