Skip to main content

Official Python SDK for Precogs AI - Security-first code analysis

Project description

Precogs SDK

Official Python SDK for the Precogs AI security platform.

Installation

pip install precogs-sdk

Quick Start

from precogs import PrecogsClient

# Initialize with your API key
client = PrecogsClient(api_key="pk_live_xxxxxxxxxxxx")

# Or use environment variable
# export PRECOGS_API_KEY=pk_live_xxxxxxxxxxxx
client = PrecogsClient()

# List your projects
projects = client.projects.list()
for project in projects:
    print(f"Project: {project['name']}")

# Trigger a code scan
scan = client.scans.trigger_code_scan(project_id="proj_123")
print(f"Scan started: {scan['id']}")

# Get vulnerabilities
vulns = client.vulnerabilities.list(severity="critical")
for vuln in vulns:
    print(f"[{vuln['severity']}] {vuln['title']}")

Features

  • Code Security Scanning - SAST analysis for 20+ languages
  • Dependency Scanning - SCA for npm, pip, maven, etc.
  • IaC Scanning - Terraform, CloudFormation, Kubernetes
  • Container Scanning - Docker image vulnerability detection
  • AI-Powered Fixes - Get suggested code fixes for vulnerabilities

API Reference

Projects

# List all projects
projects = client.projects.list()

# Get a specific project
project = client.projects.get("proj_123")

# Create a new project
project = client.projects.create(
    name="My App",
    repo_url="https://github.com/org/repo",
    provider="github",
    branch="main"
)

Scans

# Trigger different scan types
scan = client.scans.trigger_code_scan(project_id="proj_123")
scan = client.scans.trigger_dependency_scan(project_id="proj_123")
scan = client.scans.trigger_iac_scan(project_id="proj_123")
scan = client.scans.trigger_container_scan(
    project_id="proj_123", 
    image="nginx:latest"
)

# Check scan status
status = client.scans.get_status(scan_id="scan_456")

# Get scan results
results = client.scans.get_results(scan_id="scan_456")

Vulnerabilities

# List vulnerabilities with filters
vulns = client.vulnerabilities.list(
    project_id="proj_123",
    severity="high",
    status="open"
)

# Get vulnerability details
vuln = client.vulnerabilities.get("vuln_789")

# Get AI-generated fix
fix = client.vulnerabilities.get_ai_fix("vuln_789")
print(fix['suggestedCode'])

# Update status
client.vulnerabilities.update_status(
    vuln_id="vuln_789",
    status="fixed",
    reason="Patched in v2.1.0"
)

Dashboard

# Get overall security metrics
overview = client.dashboard.get_overview()

# Get severity distribution
distribution = client.dashboard.get_severity_distribution()

# Get vulnerability trend
trend = client.dashboard.get_trend(days=30)

Error Handling

from precogs import PrecogsClient, AuthenticationError, RateLimitError

try:
    client = PrecogsClient(api_key="pk_live_xxx")
    projects = client.projects.list()
except AuthenticationError:
    print("Invalid API key")
except RateLimitError as e:
    print(f"Rate limited. Retry after {e.retry_after} seconds")

Environment Variables

Variable Description
PRECOGS_API_KEY Your Precogs API key

License

MIT License - see LICENSE for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

precogs_sdk-0.1.0.tar.gz (6.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

precogs_sdk-0.1.0-py3-none-any.whl (8.7 kB view details)

Uploaded Python 3

File details

Details for the file precogs_sdk-0.1.0.tar.gz.

File metadata

  • Download URL: precogs_sdk-0.1.0.tar.gz
  • Upload date:
  • Size: 6.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.6

File hashes

Hashes for precogs_sdk-0.1.0.tar.gz
Algorithm Hash digest
SHA256 69b0d4f01432d9c2fa1b9820e8738741627afae6315f3984db8a066fe0a7a514
MD5 566aebb408d69837418c4d25deee5f22
BLAKE2b-256 9686b236bb76459034556477e45cbf432bcab19de94aba19547ef16b698a78c1

See more details on using hashes here.

File details

Details for the file precogs_sdk-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: precogs_sdk-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 8.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.6

File hashes

Hashes for precogs_sdk-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4f8ffde68d02a2f3de6936c8b7da07eeab21d0b2a13a6c3ab3506c443d441418
MD5 8c50be70cd5a2135af3e8e28bda19a51
BLAKE2b-256 7312791ae20ca63bac003991997a6978c3e5a58fdc1a33cb6adfa9e036103390

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page