/search
Universal search across meetings and documents. Returns grouped results with context.
API key as Bearer token
In: header
Query Parameters
Search phrase. Supports OR-separated sub-queries (max 5), e.g. 'Photovoltaik Bürgerbeteiligung OR Photovoltaik Einwohnerfragestunde'. OR must be uppercase with surrounding spaces. Each sub-query is searched independently and results are merged.
1 <= lengthSearch mode. 'semantic' (default): finds results by meaning, even without exact term matches. Results include a relevance score (0–1). 'keyword': exact term matching only. Faster, but only finds literal occurrences. Scores are not comparable across modes.
"semantic""semantic" | "keyword"Comma-separated chunkType filter. Allowed values: agendaItemTitle, agendaItemDescription, document, proposalTitle, proposalDescription
Comma-separated entity IDs (Regionalschlüssel). Use * suffix for prefix matching: 01* matches all entities in Schleswig-Holstein, 03101 matches LK Braunschweig exactly. Unallowed entities are silently stripped; the search runs only against permitted entities. Mutually exclusive with bbox.
Bounding box as 'west,south,east,north' (lon/lat). Resolves to entities whose geographic bounds intersect this box. Only entities the caller is permitted to access are included. Mutually exclusive with entities.
Administrative layer: 10=Bundesland, pr=Planungsregion, 40=Landkreis, 50=Verbandsgemeinde, 60=Kommune
Filter from this date (inclusive, ISO 8601)
dateFilter up to this date (inclusive, ISO 8601)
dateOnly return results ingested since this datetime (inclusive, ISO 8601). Useful for polling new content since the last check.
date-timeMax number of result groups returned in data[]. Values above 300 are clamped; use hasMore to detect truncation. Default 50 is sufficient for most use cases. Higher values increase latency.
501 <= value <= 300Minimum relevance score (0.05–1) to include a result in data[] and mapPoints[]. Only applies to semantic mode; keyword mode ignores this. Higher values return fewer but more relevant results. 0.35 is a balanced default; use 0.5+ for precise matches, 0.1–0.2 for broad recall.
0.350.05 <= value <= 1Response Body
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://api.poliscope.de/v2/search?q=string&limit=50"{
"data": [
{
"groupKey": "string",
"groupType": "meeting",
"groupCreationDate": "2019-08-24T14:15:22Z",
"score": 0,
"hits": [
{
"id": "string",
"score": 0,
"text": "string",
"chunkType": "agendaItemTitle",
"highlights": [
[
0,
0
]
],
"agendaItemId": "string",
"documentId": "string",
"proposalId": "string",
"pageFrom": 0,
"pageTo": 0,
"pageFromOffsetPct": 0,
"pageFromOffset": 0,
"pageToOffset": 0,
"poliscopeUrl": "string",
"fileUrl": "string"
}
],
"totalHits": 0,
"context": {
"date": "2019-08-24T14:15:22Z",
"entityName": "string",
"entityLevel": "string",
"entityId": "string",
"parents": [
{
"id": "string",
"name": "string",
"level": "string"
}
],
"location": {
"lat": 0,
"lon": 0
},
"meeting": {
"id": "string",
"title": "string",
"date": "2019-08-24T14:15:22Z",
"url": "string",
"committee": "string",
"bookmarks": [
{
"id": "string",
"firstName": "string",
"lastName": "string"
}
]
},
"proposal": {
"id": "string",
"title": "string",
"type": "string",
"url": "string",
"reference": "string"
},
"document": {
"id": "string",
"title": "string",
"type": "string",
"url": "string"
}
}
}
],
"mapPoints": [
{
"location": {
"lat": 0,
"lon": 0
},
"score": 0,
"entityId": "string",
"entityName": "string",
"groupKey": "string"
}
],
"meta": {
"total": 0,
"totalHits": 0,
"totalMapPoints": 0,
"hasMore": true
}
}{
"error": "string",
"message": "string"
}{
"error": "string",
"message": "string"
}{
"error": "string",
"message": "string"
}{
"error": "string",
"message": "string"
}