Capability Library · Pack detail

snyk v1.0.0

Snyk REST API and v1 API on Snyk's multi-region SaaS: list projects and ignores, aggregate project issues read-only, update projects, create and remove issue ignores, and delete projects.

Review state: draft· Not in the distributable release manifest

Release identity

SHA-256 of the pack file bytes: a96f177cdc061efb121916a84ead5ef029281fb1bb2ba5d9f5793732f2de9845

Not in the distributable release manifest. The binary carries a digest-bound manifest of the distributable library; a pack whose bytes differ from its manifest entry — endpoint, tier, allowlist, or credential edited, with provider, version, and review block preserved — fails the digest check, loses distributability, and renders MODIFIED rather than as the shipped reviewed artifact. Review state and artifact status are different facts: the first is a documentation-review declaration, the second is the identity of the exact bytes.

Capabilities (7)

snyk.projects.read v1.0.0R0

Action
read
Endpoint
GET https://snyk-api.invalid/rest/orgs/ORG_ID/projects?version=2024-10-15
Connector
http
Custody
customer_vault
Credential ref
secret-ref-snyk-service-account-token
Data class
internal

List the projects in one Snyk organization via the versioned REST API — a collection read of project names, origins, types and issue counts, cursor-paginated per Snyk's REST pagination. The ?version=2024-10-15 query parameter is part of the registered endpoint: Snyk versions each REST endpoint by date and recommends pinning one. ORG_ID is a placeholder to bind before enabling; the host is a reserved placeholder to substitute with the tenant's regional base URL.

snyk.project.issues.read v1.0.0R0

Action
read
Endpoint
POST https://snyk-api.invalid/v1/org/ORG_ID/project/PROJECT_ID/aggregated-issues
Connector
http
Custody
customer_vault
Credential ref
secret-ref-snyk-service-account-token
Data class
internal

Aggregate a project's issues (vulnerabilities and license issues) via the v1 API. This is a POST-with-query-body endpoint used read-only: the request body carries filters and the includeDescription/includeIntroducedThrough flags, and the operation mutates nothing, so it registers as read at the R0 floor. Responses include severity, CVE/CWE identifiers, exploit maturity and ignore status — security posture data at the internal class. ORG_ID and PROJECT_ID are placeholders to bind before enabling.

snyk.ignores.read v1.0.0R0

Action
read
Endpoint
GET https://snyk-api.invalid/v1/org/ORG_ID/project/PROJECT_ID/ignores
Connector
http
Custody
customer_vault
Credential ref
secret-ref-snyk-service-account-token
Data class
pii

List the ignores on one project — a collection read of which findings are suppressed, with reason and expiry, and of BY WHOM each ignore was set: the returned creator identifiers are personal data, so the capability is registered at the pii class. Snyk's reference notes that ignores from .snyk policy files and from org policies are NOT included in this listing, so this read is not a complete suppression audit on its own. ORG_ID and PROJECT_ID are placeholders to bind before enabling.

snyk.ignore.create v1.0.0R2

Action
create
Endpoint
POST https://snyk-api.invalid/v1/org/ORG_ID/project/PROJECT_ID/ignore/ISSUE_ID
Connector
http
Custody
customer_vault
Credential ref
secret-ref-snyk-service-account-token
Data class
internal

Create an ignore on a vulnerability or license issue (body: ignorePath, reason, reasonType, disregardIfFixable, optional expires). Registered as create at the R2 floor because the ignore can later be removed — but effect-level honesty: an ignore SUPPRESSES a security finding from reporting and gate-style review, and a body with no expires attribute creates a PERMANENT ignore that suppresses indefinitely; this registration does not restrict the body. The R2 floor is a minimum: policy should require a person and scope this capability to named actors and projects. ORG_ID, PROJECT_ID and ISSUE_ID are placeholders to bind before enabling.

snyk.ignore.delete v1.0.0R3

Action
delete
Endpoint
DELETE https://snyk-api.invalid/v1/org/ORG_ID/project/PROJECT_ID/ignore/ISSUE_ID
Connector
http
Custody
customer_vault
Credential ref
secret-ref-snyk-service-account-token
Data class
internal

Remove an ignore from an issue. The HTTP verb is DELETE, so the capability registers as delete at the R3 floor per the verb minimum — stated honestly, the security effect of this call is RE-EXPOSURE of a suppressed finding (the safer direction), and policy may lower nothing below the floor but can treat it as routine. The removal deletes the ignore record itself, which cannot be un-removed (a new ignore would be a fresh record), so the delete registration is accurate. ORG_ID, PROJECT_ID and ISSUE_ID are placeholders to bind before enabling.

snyk.project.update v1.0.0R2

Action
update
Endpoint
PATCH https://snyk-api.invalid/rest/orgs/ORG_ID/projects/PROJECT_ID?version=2024-10-15
Connector
http
Custody
customer_vault
Credential ref
secret-ref-snyk-service-account-token
Data class
internal

Update a project via the versioned REST API (JSON:API PATCH, Content-Type application/vnd.api+json): tags, business criticality, environment, lifecycle, owner and test frequency. Registered as update at the R2 floor. Effect-level honesty: this registration does not restrict which attributes the PATCH document changes — lowering test frequency or criticality alters the project's security cadence and reporting, so policy should scope the capability and require review for cadence changes. ORG_ID and PROJECT_ID are placeholders; the pinned ?version=2024-10-15 is part of the registered endpoint.

snyk.project.delete v1.0.0R3

Action
delete
Endpoint
DELETE https://snyk-api.invalid/rest/orgs/ORG_ID/projects/PROJECT_ID?version=2024-10-15
Connector
http
Custody
customer_vault
Credential ref
secret-ref-snyk-service-account-token
Data class
internal

Delete a project from the Snyk organization via the versioned REST API, removing the monitored project and its issue history from Snyk (the underlying repository is untouched; re-importing creates a NEW project, not a restoration). Registered as delete at the R3 floor: delete is one of the IRREVERSIBLE ACTIONS (delete, send, pay, deploy, approve, share and transfer) and an irreversible action cannot be taken without a person. ORG_ID and PROJECT_ID are placeholders; the pinned ?version=2024-10-15 is part of the registered endpoint.

Credential reference

The pack names a reference, never a secret. Installing a pack registers capabilities and makes them governable; registration is not connectivity. The credential is created at the provider and held in the client's own secret manager under the reference the pack names, and deployment testing is still required to show the credential path works and cannot be bypassed.

Reference
secret-ref-snyk-service-account-token
Custody
customer_vault
Injection
header (Authorization)

A Snyk service account API token, held in the client's own secret manager. Token issuance is external: an administrator creates a service account for the org (or group) in Snyk's settings and stores the API token under this reference; personal user API tokens also work but bind the integration to an individual's account and permissions — prefer a service account. The stored material must be the complete Authorization header value: the scheme 'token', one separating space, then the API token — 'token <API token>'. Per the retrieved Snyk authentication page, direct API calls authenticate with an 'Authorization: token <API_TOKEN>' header (the 'bearer' scheme is for Snyk Apps OAuth access tokens, not this credential); the REST reference's placeholder 'Authorization: YOUR_API_KEY' example is not the scheme. Expiry and revocation behavior, stated honestly: Snyk API tokens do not carry a caller-chosen TTL — a token remains valid until it is rotated or the owning service account is deleted/disabled, and rotating a token invalidates the previous value; there is no session expiry to rely on, so rotation cadence is the custody job's responsibility and a leaked value must be rotated explicitly. Note the gap: changing the service account's role narrows FUTURE authorization decisions but does not invalidate the token value itself. Least privilege: give the service account an org role with only the permissions the enabled capabilities need (View Organization, View Project, View Project Ignores, plus Edit Project Ignores only if the ignore capability is enabled); for project deletion, grant the narrowest documented project-delete permission rather than blanket Organization Admin — Snyk's reference lists required permissions per operation, but the permissions documentation page was not retrievable in this session, so the exact minimum role for deletion must be confirmed against Snyk's permission documentation before the delete capability is enabled — and never a group-admin token. Snyk rate-limits to 1620 requests per minute per API key; an over-limit call returns 429 and is retried later, not retried in a tight loop. Executor hygiene: the value must live only in executor memory for the lifetime of a call, must never be written to logs, traces or diagnostics, and must not appear in crash dumps; a deployment that cannot meet that bar must not enable the pack.

Resources

  • snyk-org (api, pii): https://snyk-api.invalid/rest/orgs/ORG_ID

Pack notes and exclusions

The endpoint host 'snyk-api.invalid' is a reserved non-production placeholder (an RFC 2606 reserved TLD): substitute the regional base URL for the customer's Snyk tenant before enabling — Snyk documents api.snyk.io/rest, api.us.snyk.io/rest, api.eu.snyk.io/rest and api.au.snyk.io/rest per region, and the API is HTTPS-only. Substitute in every endpoint, in the resource locator and in every egress allowlist entry; the allowlist matches exactly, so all three move together, and substitution is a required deployment step. ORG_ID, PROJECT_ID and ISSUE_ID in the endpoint paths are placeholders to bind to concrete ids before enabling. This pack mixes two documented surfaces, stated openly: project management and project listing register the versioned REST API (JSON:API; every REST endpoint below pins the ?version=2024-10-15 query parameter in the registered endpoint, per Snyk's versioning guidance that integrations send a dated version), while ignore management and issue aggregation register the v1 API, which Snyk's own reference states will eventually be deprecated in favor of the REST API — re-review on pack version bump as those operations move. Tiering rationale: collection reads and the POST-with-query-body issue aggregation (a read-only POST whose body carries filters and includeDescription/includeIntroducedThrough flags — it mutates nothing) sit at the R0 floor. Project update is a JSON:API PATCH registered as update at the R2 floor; effect-level honesty: the PATCH body can also alter tags, business criticality, environment, lifecycle and test frequency, and this registration does not restrict which attributes a caller changes — test-frequency or criticality changes alter security cadence and reporting, so policy should scope the capability. Creating an issue ignore is registered as create at the R2 floor because the ignore can be removed again — but note honestly that an ignore SUPPRESSES a vulnerability or license finding from reporting, and a permanent ignore (no expires attribute) suppresses it indefinitely: the R2 floor is a minimum and policy should require a person and scope this to named actors. Removing an ignore is an HTTP DELETE registered at the R3 floor per the verb floor, with the honest caveat that its effect is re-exposure of the finding, not suppression. Project deletion sits at the R3 floor: delete is one of the IRREVERSIBLE ACTIONS (delete, send, pay, deploy, approve, share and transfer) and removes the project and its scan history from Snyk. Documented exclusions: this pack does not register organization deletion (DELETE /v1/org/{orgId}), member and role management and user provisioning/invitation (access-granting operations needing their own review), importing new targets from source control (POST /v1/org/{orgId}/integrations/.../import — reaches into the connected repository), moving a project to another organization, webhook CRUD, service account administration, and Snyk's reporting/groups endpoints. Source note: the Snyk authentication page was retrieved in this session and establishes the 'token <API token>' Authorization scheme for direct API calls (the 'bearer' scheme belongs to Snyk Apps OAuth tokens); the registered REST operations were verified against the fetched projects reference, whose request examples render the pinned dated version parameter.

Review record

Draft review record dated 2026-09-21 · Reviewer: aaes-eng (an opaque id that resolves internally to the responsible reviewer)

A pack review is not a vendor or examiner attestation. A retrieval date says when a source page was read; it does not by itself establish what the page said then. No pack is vendor-endorsed, and none has been connectivity-tested against a live vendor tenant.