---
title: "Perform a unified semantic search across entity types"
method: GET
path: "/api/search"
tags: ["Global Search"]
---

# Perform a unified semantic search across entity types

`GET /api/search`

Searches across multiple entity types (exercises, lectures, lecture units, exams, FAQs, channels, courses, posts, answer posts)
with a consistent response format. When courseId is not specified, the search is performed
globally across all courses the authenticated user has access to. Per-type access rules are
enforced server-side via compound Weaviate filters.

## Query parameters

- `q` string, required
- `types` string
- `courseId` integer
- `limit` integer

## Response `200`

Search results matching the query

- GlobalSearchResult[]
  - `id` string — Unique identifier of the entity
  - `type` string — Entity type, e.g. 'exercise', 'lecture', 'exam'
  - `title` string — Display title of the entity
  - `description` string — Short description or body text excerpt
  - `badge` string — Human-readable badge label, e.g. 'Programming', 'Quiz', 'Lecture'
  - `metadata` object — Additional type-specific metadata such as courseId, dueDate, or points

## Other responses

- `400` — Unsupported entity type requested

## Changes

> 37 revisions in range; 2 could not be searched.

- **2026-05-15** `322715dc6959` — 1 info
  - endpoint added
- **2025-06-29** `afd4091eb170` — 1 breaking
  - api path removed without deprecation

[Change history](https://skmtc.dev/ls1intum/apis/artemis-application-server-api/changes/api/search/get.md)

---

[API](https://skmtc.dev/ls1intum/apis/artemis-application-server-api.md) · [All operations](https://skmtc.dev/ls1intum/apis/artemis-application-server-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/ls1intum/artemis-application-server-api/revisions/cecac5f6c8e5/schema)
