Integrate enterprise-grade security scanning into your CI/CD pipeline. 20+ scanners, RESTful API, real-time webhooks.
# Get your API key from profile
API_KEY="your_api_key_here"
# Create a target
curl -X POST https://secably.com/api/v1/targets/ \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"My Server","target_value":"example.com","target_type":"hostname"}'
# Start an Nmap scan
curl -X POST https://secably.com/api/v1/nmap/scan/ \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"target_id":123,"scan_config":{"scan_type":"full","port_range":"1-1000"}}'
# Response
{
"scan_id": 5309,
"status": "queued",
"message": "Nmap scan started successfully"
}
# Check scan status
curl https://secably.com/api/v1/nmap/scan/5309/ \
-H "Authorization: Bearer $API_KEY"
import requests
# Initialize the client
api_key = "YOUR_API_KEY"
headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json"
}
# Create a target
target_response = requests.post(
"https://secably.com/api/v1/targets/",
headers=headers,
json={
"name": "My Server",
"target_value": "example.com",
"target_type": "hostname"
}
)
target_id = target_response.json()["id"]
# Start SSLyze SSL/TLS scan
scan_response = requests.post(
"https://secably.com/api/v1/sslyze/scan/",
headers=headers,
json={
"target_id": target_id,
"scan_config": {
"check_certificate": True,
"check_tls_versions": True
}
}
)
scan_data = scan_response.json()
print(f"Scan ID: {scan_data['scan_id']}")
print(f"Status: {scan_data['status']}")
# Check scan status
status_response = requests.get(
f"https://secably.com/api/v1/sslyze/scan/{scan_data['scan_id']}/",
headers=headers
)
print(f"Security Score: {status_response.json()['security_score']}")
const axios = require('axios');
const API_KEY = 'YOUR_API_KEY';
const BASE_URL = 'https://secably.com/api/v1';
const headers = {
'Authorization': `Bearer ${API_KEY}`,
'Content-Type': 'application/json'
};
// Start a scan workflow
const runSecurityScan = async () => {
try {
// Create target
const targetRes = await axios.post(
`${BASE_URL}/targets/`,
{
name: 'My Server',
target_value: 'example.com',
target_type: 'hostname'
},
{ headers }
);
const targetId = targetRes.data.id;
console.log(`Target created: ${targetId}`);
// Start OpenVAS scan
const scanRes = await axios.post(
`${BASE_URL}/openvas/scan/`,
{
target_id: targetId,
scan_config: {
scan_profile: 'full_and_fast'
}
},
{ headers }
);
console.log(`Scan started: ${scanRes.data.scan_id}`);
console.log(`Status: ${scanRes.data.status}`);
} catch (error) {
console.error('Error:', error.response?.data || error.message);
}
};
runSecurityScan();
package main
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
)
func main() {
// Prepare the request
payload := map[string]interface{}{
"target": "example.com",
"scanner_type": "openvas",
"scan_config": map[string]string{
"scan_profile": "full_and_fast",
"port_range": "default",
},
}
jsonData, _ := json.Marshal(payload)
req, _ := http.NewRequest("POST",
"https://api.secably.com/v1/scans/create",
bytes.NewBuffer(jsonData))
req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
req.Header.Set("Content-Type", "application/json")
// Send the request
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
// Parse response
var result map[string]interface{}
json.NewDecoder(resp.Body).Decode(&result)
fmt.Printf("Scan ID: %v\n", result["scan_id"])
}
Integrate security scanning in minutes, not days
Register for free and get your API key from the dashboard
Sign up at secably.com/register
Create your free account - no credit card required
Go to API Dashboard
Access your JWT tokens instantly
Copy your JWT access token
Use it in Authorization header for all API requests
# Example: Get your stats
curl -X GET https://secably.com/api/v1/stats/ \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
# Response:
{
"targets_count": 5,
"scans_count": 12,
"vulnerabilities_found": 47,
"api_requests_used": 23,
"api_requests_limit": 100,
"scan_credits_remaining": 10
}
Free tier includes: 100 API requests + unlimited FREE scans (Nmap quick & SSLyze)
Add your target and start scanning with your preferred scanner
# Add target
curl -X POST https://secably.com/api/v1/targets/ \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "My Website",
"target_value": "example.com",
"target_type": "hostname"
}'
# Start a FREE Nmap quick scan
curl -X POST https://secably.com/api/v1/nmap/scan/ \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"target_id": 1,
"scan_config": {
"scan_type": "tcp_syn",
"port_range": "top_1000"
}
}'
# Returns: credits_used: 0 (FREE!)
💡 Tip: Nmap quick scans are 100% FREE and don't use credits!
Check scan status and retrieve detailed security findings
# Check scan status
curl https://secably.com/api/v1/scans/12345/ \
-H "Authorization: Bearer YOUR_TOKEN"
# Response includes:
{
"id": 12345,
"status": "completed",
"scanner_type": "nmap",
"credits_used": 0,
"credits_remaining": 10,
"findings": [
{
"port": 443,
"service": "https",
"state": "open"
},
{
"port": 80,
"service": "http",
"state": "open"
}
],
"started_at": "2025-10-01T10:00:00Z",
"completed_at": "2025-10-01T10:01:23Z"
}
Pro tip: Use webhooks for real-time notifications when scans complete
Everything you need to integrate security scanning
Clean, intuitive REST API with predictable resource-oriented URLs and standard HTTP codes
Get instant notifications when scans complete with configurable webhook endpoints
OpenVAS, Nmap, SSLyze, ZAP, Nuclei and more - all through a single API
Intelligent rate limiting and queueing to ensure consistent performance
Distributed scanning nodes worldwide for optimal performance and reliability
Official SDKs for Python, Node.js, Go, Ruby, PHP, and more languages
Complete control over your security scanning workflow
/v1/scans/create
/v1/scans/{id}
/v1/scans
/v1/scans/{id}/cancel
/v1/targets
/v1/targets/{id}
/v1/targets/{id}
/v1/targets/{id}
/v1/asm/domains/{id}/discovery
/v1/asm/domains/{id}/assets
/v1/asm/assets/{id}/scan
/v1/scans/{id}/export
/v1/scans/{id}/vulnerabilities
/v1/webhooks/configure
Pay only for what you use. Free scans included. 70-85% cheaper than competitors.
Start building
For side projects
Growing apps
Production apps
Custom needs
Join thousands of developers using SecAbly API