Platform

Platform overview How it works Authorization testing Evidence & reports Private scanning Integrations

Solutions

Security agencies Product teams Regulated industries Partner programme

Learn

Blog Knowledge hub Compare

Resources

Pricing Documentation Help centre FAQ Security & data What we haven’t proved

Company

About Contact Careers Sign in to the platform Start a $199 pilot →

Home / Help centre / Integrations & API

Integrations & API

How do I launch a scan through the API?

Quick answer

Send POST /api/scans to launch a scan for a profile, using a token whose owner holds scan:run. For pipelines, POST /api/ci/scan takes a profileId and an optional commitSha instead. Then read the scan's status and findings.

Steps

  1. Authenticate each request with your Bearer token. Read how to authenticate if you have not done this yet.
  2. Find the profile you want to scan and note its ID.
  3. Call POST /api/scans. The reference describes it as "Launch a scan for a profile" and lists scan:run as the permission.
  4. For a pipeline, send POST /api/ci/scan with a profileId in the body and, if you wish, a commitSha. That route needs ci:trigger and returns a scanId.
  5. Follow the run with GET /api/scans/:id or, for the CI route, GET /api/ci/result/:scanId, and keep checking until the response says the scan has finished, because a typical scan of a small app takes roughly an hour.

Good to know

This page lists the route and the permission, but it does not spell out every field of the request body for the general launch call. The ⤓ OpenAPI button on the page downloads the full spec, so check there for the exact body.

RoutePermissionUse it for
POST /api/scansscan:runLaunching from your own code
POST /api/ci/scanci:triggerPipelines, by profile ID or name
GET /api/scans/:idscan:readReading one scan

A launched scan behaves like a button press in the app. You will see it in Recent Scans, and the scan detail page shows who started it. It runs with your permissions and group scope, and you can stop a run by calling POST /api/scans/:id/cancel, which needs scan:cancel. That keeps a mistaken launch from running to the end.

Looking for the CI route in more detail? See how to trigger a scan from your pipeline.

Full tutorial

Cyberlop API reference: authentication, permissions and the OpenAPI spec

Step-by-step, with annotated screenshots.

Updated · Back to the help centre

Wiring it into your pipeline?

Share what you are building and we will help you set up the right token, profile and job.