API Reference

Integrate SecuProbe security scanning into your CI/CD pipelines and tools using our REST API. Requires a Pro or Enterprise plan. Get your API key →

Authentication

All API v1 requests require an API key in the Authorization header.

curl https://secuprobe.io/api/v1/scans \
  -H "Authorization: Bearer sp_live_YOUR_API_KEY"

Rate Limits

Rate limits are applied per API key per minute.

PlanRequests/min
Oneshot20
Pro60
Enterprise200

Rate limit headers: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset

Endpoints

POST/api/v1/scansscope: scans:create

Launch a new security scan.

curl -X POST https://secuprobe.io/api/v1/scans \
  -H "Authorization: Bearer sp_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "url": "https://your-domain.com" }'
{
  "scanId": "550e8400-e29b-41d4-a716-446655440000",
  "status": "queued",
  "estimatedDuration": 120,
  "resultsUrl": "https://secuprobe.io/api/v1/scans/550e8400-e29b-41d4-a716-446655440000"
}
GET/api/v1/scans/{id}scope: scans:read

Get scan status and summary.

curl https://secuprobe.io/api/v1/scans/SCAN_ID \
  -H "Authorization: Bearer sp_live_YOUR_API_KEY"
{
  "scanId": "550e8400-...",
  "url": "https://your-domain.com",
  "status": "completed",
  "secuScore": 78,
  "vulnerabilitiesCount": {
    "critical": 1, "high": 3, "medium": 5, "low": 8, "info": 12
  },
  "completedAt": "2026-03-10T12:00:00Z"
}
GET/api/v1/scans/{id}/vulnerabilitiesscope: scans:read

List all vulnerabilities found in a scan.

curl https://secuprobe.io/api/v1/scans/SCAN_ID/vulnerabilities \
  -H "Authorization: Bearer sp_live_YOUR_API_KEY"
{
  "total": 29,
  "vulnerabilities": [
    {
      "id": "uuid",
      "title": "Missing Content-Security-Policy",
      "severity": "medium",
      "category": "Security Headers",
      "description": "...",
      "remediationGuide": "..."
    }
  ]
}

GitHub Actions Integration

Run automated security scans on every pull request using the SecuProbe GitHub Action (coming soon with Story 26-6).

# .github/workflows/security.yml
- name: SecuProbe Security Scan
  uses: secuprobe/scan-action@v1
  with:
    api-key: ${{ secrets.SECUPROBE_API_KEY }}
    url: https://your-staging.example.com
    fail-on: high