Skip to main content
POST

Authorizations

apikey
string
header
required

Query Parameters

force
boolean
default:false

Bypass the dedup cache and force a fresh scan even when an identical pinned input already succeeded.

Body

application/json

Body of Submit a Skill Scan. user_email is deliberately absent: the gateway derives it from your API key, and sending it returns 400. The scanner's model and source_content_hash inputs are likewise not exposed.

git_url
string
required

Full http(s) git clone URL. For github.com URLs the owner/name is derived server-side and stored as repo (used for the star count and the ?repo= filter).

Example:

"https://github.com/affaan-m/ECC.git"

skill_path
string
required

Path of the skill directory, relative to the repo root.

Example:

".agents/skills/api-design"

commit
string

Commit SHA to pin the checkout to. Recommended — it is what enables the dedup cache.

ref
string

Branch or tag to check out when no commit is given.

Response

Cached result for an identical pinned input — the scan was not re-run. The record is recorded under your own user_email and returned complete, with cached: true.

One scan job/result. Fields are omitted rather than nulled, so most of them appear only once status is succeeded. Note error belongs to the RECORD — it is set when the scan itself failed, and the HTTP response is still 200.

scan_id
string
required
status
enum<string>
required

queued/running mean the worker is still going; succeeded/failed are terminal.

Available options:
queued,
running,
succeeded,
failed
cached
boolean
default:false

true when this record copied an existing successful scan of an identical pinned input instead of re-scanning.

user_email
string

The user the scan is attributed to, lower-cased. Set by the gateway from the submitting API key.

repo
string

owner/name, derived from git_url for github.com URLs.

git_url
string
skill_path
string
skill_name
string

The skill's own declared name, read out of the skill.

commit
string
ref
string
model
string

The model the scan actually ran on.

stars
integer

The repository's GitHub star count, fetched live at scan time.

content_hash
string

Hash of the scanned skill content.

source_content_hash
string
verdict
string

The scanner's overall verdict for the skill, passed through from the report's overall_risk_assessment.skill_verdict. UPPERCASE, e.g. SAFE or SUSPICIOUS. Deliberately not typed as an enum here: the vocabulary belongs to the analysis engine, so treat it as an opaque string and compare case-sensitively.

Example:

"SAFE"

risk_level
string

Severity band for the findings, passed through from the report. UPPERCASE, e.g. SAFE, MEDIUM or HIGH. Same caveat as verdict — an opaque, engine-defined string.

Example:

"SAFE"

findings_count
integer
scan_duration_seconds
number
token_usage
object

Token accounting for the scan.

report
object

The full report document. Also available on its own from Get Skill Scan Report.

error
string

Why the scan failed. Present only when status is failed.

attempts
integer

How many times the worker has attempted this scan.

created_at
string
started_at
string
finished_at
string