Skip to main content
The REST API is now versioned. For more information, see "About API versioning."

REST API endpoints for security advisories

Use the REST API to create and manage innersource security alerts

Sync innersource vulnerabilities for an enterprise

Synchronize innersource vulnerability data with the Advisory Database for an enterprise. This endpoint receives vulnerability data in OSV format and creates, updates, or withdraws innersource vulnerabilities accordingly. Dependabot alerting is triggered for created and updated vulnerabilities.

The request body accepts up to 100 vulnerabilities per call. The request is validated and then queued for asynchronous processing: a successful request returns 202 Accepted with a Location header pointing to a status URL that you poll for the final result.

Syncing vulnerabilities too quickly using this endpoint may result in secondary rate limiting. For more information, see "Rate limits for the API" and "Best practices for using the REST API."

This endpoint does not support OAuth apps or personal access tokens.

Fine-grained access tokens for "Sync innersource vulnerabilities for an enterprise"

This endpoint works with the following fine-grained token types:

The fine-grained token must have the following permission set:

  • "Enterprise innersource vulnerabilities" enterprise permissions (write)

Parameters for "Sync innersource vulnerabilities for an enterprise"

Headers
Name, Type, Description
accept string

Setting to application/vnd.github+json is recommended.

Path parameters
Name, Type, Description
enterprise string Required

The slug version of the enterprise name.

Body parameters
Name, Type, Description
array

Array of vulnerabilities in OSV format to synchronize

Name, Type, Description
id string Required

Unique identifier for the vulnerability from the external system

schema_version string

The OSV schema version

summary string

A short summary of the vulnerability

details string

Detailed description of the vulnerability

aliases array of strings

IDs for the same vulnerability in other databases. Only CVE IDs are used (to populate the vulnerability's CVE identifier); other aliases are ignored.

severity array of objects

Severity information for the vulnerability

Name, Type, Description
type string

The type of severity scoring (e.g., CVSS_V3)

score string

The severity score or vector string

affected array of objects

Packages and versions affected by the vulnerability

Name, Type, Description
package object
Name, Type, Description
ecosystem string

The package ecosystem (e.g., npm, pip, maven)

name string

The package name

ranges array of objects
Name, Type, Description
type string
events array of objects
Name, Type, Description
introduced string

The version that introduced the vulnerability

fixed string

The version that fixed the vulnerability

last_affected string

The last affected version

limit string

The upper limit of the affected range

references array of objects

URLs for more information about the vulnerability

Name, Type, Description
type string

The type of reference. Supported values: PACKAGE, ADVISORY, WEB, FIX, ARTICLE, REPORT, EVIDENCE. References with other types are ignored.

url string

The reference URL

published string

When the vulnerability was first published

modified string

When the vulnerability was last modified

withdrawn string

When the vulnerability was withdrawn. If present, the vulnerability will be marked as withdrawn.

HTTP response status codes for "Sync innersource vulnerabilities for an enterprise"

Status codeDescription
202

Sync operation accepted for asynchronous processing. Poll the returned URL for results.

400

Bad Request

401

Requires authentication

403

Forbidden

404

Resource not found

422

Validation failed, or the endpoint has been spammed.

Code samples for "Sync innersource vulnerabilities for an enterprise"

If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.

Request example

post/enterprises/{enterprise}/innersource-vulnerabilities/sync
curl -L \ -X POST \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2026-03-10" \ https://api.github.com/enterprises/ENTERPRISE/innersource-vulnerabilities/sync \ -d '[{"id":"MVS-2026-001","schema_version":"1.4.0","summary":"Example vulnerability summary","aliases":["GHSA-xxxx-xxxx-xxxx"],"affected":[{"package":{"ecosystem":"npm","name":"example-package"},"ranges":[{"type":"SEMVER","events":[{"introduced":"1.0.0"},{"fixed":"1.0.1"}]}]}]}]'

Sync operation accepted for asynchronous processing. Poll the returned URL for results.

Status: 202
{ "id": "external-vulnerability-sync-a1b2c3d4-e5f6-7890-abcd-ef1234567890", "url": "https://api.github.com/enterprises/my-enterprise/innersource-vulnerabilities/sync/status/external-vulnerability-sync-a1b2c3d4-e5f6-7890-abcd-ef1234567890", "status": "queued" }

Get innersource vulnerability sync status for an enterprise

Get the status of an asynchronous innersource vulnerability sync operation for an enterprise. Returns 202 with a Retry-After header while the sync is still processing, or 200 with the full sync results once complete.

This endpoint does not support OAuth apps or personal access tokens.

Fine-grained access tokens for "Get innersource vulnerability sync status for an enterprise"

This endpoint works with the following fine-grained token types:

The fine-grained token must have the following permission set:

  • "Enterprise innersource vulnerabilities" enterprise permissions (write)

Parameters for "Get innersource vulnerability sync status for an enterprise"

Headers
Name, Type, Description
accept string

Setting to application/vnd.github+json is recommended.

Path parameters
Name, Type, Description
enterprise string Required

The slug version of the enterprise name.

job_id string Required

The unique identifier of the sync job.

HTTP response status codes for "Get innersource vulnerability sync status for an enterprise"

Status codeDescription
200

Sync operation completed

202

Sync operation is still processing

401

Requires authentication

403

Forbidden

404

Resource not found

Code samples for "Get innersource vulnerability sync status for an enterprise"

If you access GitHub at GHE.com, replace api.github.com with your enterprise's dedicated subdomain at api.SUBDOMAIN.ghe.com.

Request examples

get/enterprises/{enterprise}/innersource-vulnerabilities/sync/status/{job_id}
curl -L \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer <YOUR-TOKEN>" \ -H "X-GitHub-Api-Version: 2026-03-10" \ https://api.github.com/enterprises/ENTERPRISE/innersource-vulnerabilities/sync/status/JOB_ID

Sync operation completed

Status: 200
{ "processed": 1, "created": 1, "updated": 0, "withdrawn": 0, "errors": 0, "results": [ { "external_id": "MVS-2026-001", "status": "created", "ghsa_id": "GHIS-xxxx-xxxx-xxxx" } ] }