API-Driven Pentesting
The TurboPentest REST API
Every action you can perform in the TurboPentest dashboard is also available through the REST API. This enables fully programmatic security testing — you can build custom integrations, automate complex workflows, and embed pentesting into any system that can make HTTP requests.
The API follows RESTful conventions with JSON request and response bodies, predictable resource URLs, and standard HTTP status codes.
Base URL and Versioning
All API requests are made to:
The API is versioned in the URL path. The current version is v1. When breaking changes are introduced, they will be released under a new version while the previous version remains available for a deprecation period.
Authentication
The API uses bearer token authentication. Include your API key in the Authorization header of every request:
API Key Types
TurboPentest provides two types of API keys:
- Live keys (prefix
tp_live_) — Full access to launch pentests, consume credits, and manage resources. Use in production systems. - Test keys (prefix
tp_test_) — Read-only access plus the ability to launch pentests in sandbox mode (no credits consumed, simulated results). Use during development.
API keys are scoped to an organization. You can create multiple keys with different permission levels in Settings > API Keys.
Rate Limits
The API enforces rate limits to ensure fair usage:
- Launch endpoints: 10 requests per minute
- Read endpoints: 60 requests per minute
- Webhook management: 30 requests per minute
Rate limit headers (X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset) are included in every response.
Core Endpoints
Launch a Pentest
Response (201 Created):
The phase1_tools option lets you select specific Phase 1 tools instead of running all 14. This reduces scan time when you only need specific reconnaissance data.
Check Pentest Status
Response:
Status values progress through: queued > phase1 > phase2 > complete (or failed).
List Findings
Response:
Query parameters for filtering: severity, category, cwe, agent, status, page, per_page.
Get Finding Detail
Returns the complete finding including proof-of-concept exploit, detailed remediation steps, exploit chain references, and retest commands.
Compare Pentests
Returns findings categorized as new (in head but not base), fixed (in base but not head), or persistent (in both).
Pagination
List endpoints use cursor-based pagination for consistent results:
The response includes a next_cursor field. Pass it as the cursor parameter to fetch the next page. When next_cursor is null, you have reached the end.
Error Handling
The API returns standard HTTP status codes with descriptive error bodies:
Common error codes:
400— Invalid request parameters401— Invalid or missing API key403— API key lacks required permissions404— Resource not found429— Rate limit exceeded402— Insufficient credits
Building Custom Integrations
The REST API enables integrations beyond the built-in Slack and Jira options. Common custom integrations include:
- Custom dashboards — Aggregate pentest results across multiple projects into a single internal dashboard
- Compliance automation — Generate compliance evidence by querying pentest history and finding status
- Chat ops — Build custom Slack/Teams/Discord bots that launch pentests from chat commands
- CI/CD systems — Integrate with Jenkins, GitLab CI, Bitbucket Pipelines, or any CI system beyond GitHub Actions
- Security orchestration — Feed TurboPentest findings into SIEM or SOAR platforms
Webhook Subscriptions
Register webhook endpoints to receive push notifications instead of polling:
The secret is used to generate HMAC signatures for webhook verification.