---
title: "List source groups"
method: GET
path: "/source-groups"
tags: ["source-groups"]
---

# List source groups

`GET /source-groups`

Lists source groups (jobs) across all source types: crawl, local\_file, google\_drive, github, notion.

Required roles: All, App

## Query parameters

- `source_type` 'crawl' | 'local_file' | 'google_drive' | 'github' | 'notion' — The type of the source
- `limit` integer
- `after_id` string, uuid

## Response `200`

Successful retrieval of source groups

- ListSourceGroupsResponse
  - `source_groups` SourceGroup[], required
    - `id` string, required — Source group ID (job ID)
    - `source_type` 'crawl' | 'local_file' | 'google_drive' | 'github' | 'notion', required — The type of the source
    - `name` string, required — Name of the source group
    - `status` 'unknown' | 'queued' | 'not_started' | 'managed' | 'starting' | 'started' | 'success' | 'failure' | 'canceling' | 'canceled' | 'deleting' | 'delete_job_failure', required — Job status
    - `creation_time` integer, required — Unix timestamp when the source group was created
    - `metadata` Metadata
      - `records` MetadataRecord[] — List of metadata records. A patch may contain up to 40 items; the merged result is capped at 20.
        - `key` string, required — Metadata key (max 20 characters)
        - `val` unknown, required
        - `type` 'string' | 'integer' | 'float' | 'date' | 'datetime' — Data type of the metadata value
    - `tags` Tag[] — List of tags associated with the source group
      - `id` string, required — Tag ID
      - `name` string, required — Tag name
      - `description` string, required — Tag description
  - `pagination` Pagination, required
    - `total` integer — Total number of items
    - `limit` integer, required — Maximum number of items per page
    - `has_more` boolean, required — Whether there are more items after this page
    - `next_id` string, uuid, nullable — ID to pass as after_id for next page (null if has_more=false)

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `500` — Internal Server Error

## Changes

- **2026-03-31** `756b9db55259` — 1 warning
  - added the new `datetime` enum value to the `source_groups/items/metadata/records/items/type` response property for the response status `200`
- **2026-03-11** `0aac262d758d` — 2 breaking
  - the response property `source_groups/items/metadata/records/items/val` became nullable for the status `200`
  - the response property `source_groups/items/metadata/records/items/type` became optional for the status `200`
- **2026-03-10** `e65327bc7016` — 1 breaking
  - for the `query` request parameter `after_id`, the format changed from no format to `uuid`
- **2026-03-06** `7290d8660691` — 2 breaking, 1 warning, 2 info
  - the response property `pagination/total` became optional for the status `200`
  - removed the required property `pagination/offset` from the response with the `200` status
  - deleted the `query` request parameter `offset`
  - added the new optional `query` request parameter `after_id`
  - …1 more
- **2026-03-05** `f2234c419205` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/qlonolink/apis/qaip-apis/changes/source-groups/get.md)

---

[API](https://skmtc.dev/qlonolink/apis/qaip-apis.md) · [All operations](https://skmtc.dev/qlonolink/apis/qaip-apis/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/qlonolink/qaip-apis/revisions/656f4eef56ba/schema)
