Next free-source hunt
We check for new free data every weekday.
Datasets / Cyber Threat
developer.cisco.com/

Cisco PSIRT openVuln API

Freeauth: Cisco.com account, client ID and client secret for OAuth 2.0Provider terms#cyber-threat#vulnerabilities#threat-intel#historical-data#risk✓ verified Nov 1, 2026

Cisco PSIRT openVuln API

Cisco's PSIRT openVuln REST API returns Cisco security-advisory data in JSON or XML, with advisory IDs, CVEs, bug IDs, product names, severity, CVSS, publication and update times, summaries, status and CSAF links. A no-charge Cisco.com account, registered application credentials and an OAuth 2.0 bearer token are required.

Coverage

The API covers Cisco-published security advisories and supports queries by advisory, CVE, bug ID, product, operating-system release, year, severity and publication or update dates. Results can be paginated; default application limits are 5 calls per second, 30 per minute and 5,000 per day. Cisco does not state the earliest advisory date in the checked documentation.

Verdict

This is defensive data for mapping Cisco products and software releases to vendor-issued vulnerabilities, severity and remediation advisories. Advisory records can be revised, so retain both firstPublished and lastUpdated and refresh cached results. Product-name and software-release matching is vendor-specific, pagination is required for broad pulls, and rate limits constrain continuous polling. The API licence limits clients to software that works with Cisco products or services and prohibits substantially replicating a Cisco service.

Get the free weekly email

Free weekly email of newly verified free data. Unsubscribe by emailing us.

Use in your agent

Load recent Cisco advisories into pandas and Parquet. Checked against the provider's documentation on Nov 1, 2026.

Raw skill file (/skills/cisco-psirt-openvuln-api.md)Also in our MCP server: call get_ingestion_skill with {"slug": "cisco-psirt-openvuln-api"}.

Access

  • Create a no-charge Cisco.com account and register a service application for the Cisco PSIRT openVuln API.
  • Store the application credentials in CISCO_CLIENT_ID and CISCO_CLIENT_SECRET; exchange them for a one-hour OAuth bearer token.

Request

bash
curl -H "Authorization: Bearer $CISCO_OPENVULN_TOKEN" -H 'Accept: application/json' 'https://apix.cisco.com/security/advisories/v2/latest/10'

Format

JSON with an advisories array; records can include advisoryId, advisoryTitle, bugIDs, cves, cvssBaseScore, cwe, productNames, firstPublished, lastUpdated, status, version, severity, summary and CSAF or publication URLs.

Load into pandas and Parquet

Needs Python 3 with requests, pandas and pyarrow.

python
"""Latest Cisco PSIRT advisories -> pandas -> Parquet. Needs free app credentials."""
import json
import os
import requests
import pandas as pd

token_response = requests.post(
    "https://id.cisco.com/oauth2/default/v1/token",
    data={"client_id": os.environ["CISCO_CLIENT_ID"],
          "client_secret": os.environ["CISCO_CLIENT_SECRET"],
          "grant_type": "client_credentials"},
    timeout=60,
)
token_response.raise_for_status()
token = token_response.json()["access_token"]
url = "https://apix.cisco.com/security/advisories/v2/latest/10"
r = requests.get(url, headers={"Authorization": f"Bearer {token}",
                               "Accept": "application/json"}, timeout=60)
r.raise_for_status()
payload = r.json()
df = pd.json_normalize(payload.get("advisories", []), sep=".")
for column in df.columns:
    if df[column].map(lambda value: isinstance(value, (list, dict))).any():
        df[column] = df[column].map(lambda value: json.dumps(value) if isinstance(value, (list, dict)) else value)
for column in ("firstPublished", "lastUpdated"):
    if column in df:
        df[column] = pd.to_datetime(df[column], errors="coerce", utc=True)
df.to_parquet("cisco_psirt_latest.parquet", index=False)
print(len(df), "Cisco advisories", df["lastUpdated"].max().isoformat())

Not run: it needs a free API key.

Limits

  • Rate limit: 5 calls per second, 30 calls per minute and 5,000 calls per day per application.
  • Broad result sets are paginated with pageIndex and pageSize.
  • OAuth access tokens in the provider example expire after 3,600 seconds.

Quirks

  • Advisories can change after first publication; keep firstPublished, lastUpdated, status and version.
  • Arrays such as cves, bugIDs, cwe and productNames are JSON-encoded before Parquet export.
  • A 429 response indicates quota exhaustion; respect Retry-After when the header is present.

Terms and attribution

  • API clients must be used for deployments with Cisco products or services and may not substantially replicate the underlying Cisco service.
  • Credentials must remain confidential, may not be embedded in open-source projects and must be encrypted in transit.

Sources

Information and education only. Not financial, investment, legal or tax advice. Listings can be inaccurate, incomplete or out of date and are provided "as is". Free tiers, limits and licenses belong to each provider and can change, so check the provider's own terms before you rely on them. Terms & Disclaimer