---
title: "Trigger scans on sources"
method: POST
path: "/v1/sources/scans"
tags: ["Sources"]
---

# Trigger scans on sources

`POST /v1/sources/scans`

**⚠️ Beta Version**: This endpoint is in beta and may be subject to changes in future releases.

Trigger historical scans for a list of source IDs.
The scans are dispatched asynchronously; this endpoint returns immediately
with a `202 Accepted` status.

**Behavior:**
- Both monitored and unmonitored sources can be scanned.

**⚠️ The following sources will be silently skipped (no error returned):**
- Sources whose ID does not exist or does not belong to the workspace.
- Sources that are disabled.
- Sources that already have a scan in progress.
- Sources that are not scannable by the current account plan (e.g. business-only integrations on a free plan).
- All sources are skipped if the workspace scan quota is exhausted.

**Tracking progress:**
Use `GET /v1/sources/{source_id}` to check the `last_scan` status of each source.

If you are using a personal access token, you need to have an access level greater or equal to `manager`.

## Request body

- object
  - `source_ids` integer[], required — List of source IDs to scan.

## Response `202`

Accepted – scans have been queued.

## Other responses

- `400` — Invalid data
- `401` — Invalid API key
- `403` — Forbidden
- `503` — API under maintenance

---

[API](https://skmtc.net/gitguardian/apis/gitguardian-api.md) · [All operations](https://skmtc.net/gitguardian/apis/gitguardian-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/gitguardian/gitguardian-api/revisions/511b067cdcb1/schema)
