Skip to main content
POST
Plan a folder scan — keep engine then 202 receiving

Authorizations

Authorization
string
header
required

An Earnie API key, sent as Authorization: Bearer sk_earnie_.... Create one under Settings > API keys. The key's scopes decide which operations it may call.

Headers

Idempotency-Key
string

Opaque client-generated key. Repeating the same request with the same key and actor returns the original receiving scan; reusing the key for a different request returns 409 idempotency_conflict.

Required string length: 1 - 255

Body

application/json
project_id
string<uuid>
required
files
object[]
required

Directory inventory (path, size, file vs directory). Bytes of file contents are not included.

name
string

Optional display name. Defaults to the folder name when supplied as archive_filename.

archive_filename
string

Display filename for the scan (e.g. the selected folder name).

enrichments
enum<string>[] | null

Identifiers for optional PURL-driven enrichments. matching is the always-on core engine and is not an enrichment key. Dependency inventory is produced by the always-on dependency stage. Omitting enrichments defaults to ["vulnerabilities","licenses"].

Available options:
vulnerabilities,
licenses
scanners
enum<string>[] | null
Minimum array length: 1

A scanner phase selected for source-code scan compute. ai is AI provenance. A Self-check does not run it, and an explicit request for it on a Self-check answers 400 invalid_scanners.

Available options:
oss,
crypto,
ai
scan_context
object

Optional submission provenance. The server derives or overwrites producer from the authenticated actor and validates coverage; everything else is persisted as supplied.

gitignore
string<byte>

Optional root .gitignore bytes (base64). Same scope as the SDK: project root only.

settings
string<byte>

Optional scanoss.json or settings.json bytes (base64).

Response

Scan created in receiving; keep set listed for transfer.

scan
object
required