canonical: https://jentic.com/apis/dradis.com/dradis

# Dradis Pro API

Jentic publishes the only available OpenAPI specification for Dradis Pro API, keeping it validated and agent-ready. Dradis Pro is a collaboration and reporting platform built for information security teams running penetration tests, vulnerability assessments, and red team engagements. The API exposes the full project lifecycle - projects, nodes, issues, evidence, notes, content blocks, document properties, and tags - so engagements can be created, populated, and reported on programmatically. Authentication is via a token in the Authorization header, suitable for headless ingestion of scanner output and automated report assembly.

## For AI agents

Manage Dradis Pro projects, issues, evidence, and notes so an agent can ingest scanner findings and assemble penetration test deliverables.

## Scope

Does not run vulnerability scans, exploit hosts, or generate the rendered report PDF - use for engagement data management within Dradis Pro only.

## Capabilities

- Create and manage penetration test projects with full CRUD on /projects
- Add nodes representing hosts, applications, or scopes within a Dradis project
- Track vulnerabilities as issues with create, update, and delete operations
- Attach evidence to nodes to capture proof-of-exploit findings per scope element
- Annotate nodes with notes for analyst commentary alongside structured evidence
- Manage content blocks, document properties, and tags used for report rendering

## Use cases

### Scanner Output Ingestion

Pipe vulnerability scanner output into Dradis Pro by creating issues, nodes, and evidence in bulk. The agent calls POST /projects to bootstrap the engagement, POST /nodes for each in-scope host, POST /issues for each finding, and POST `/nodes/{nodeId}/evidence` to attach the scanner detail. This replaces manual copy-paste from scanner UIs into Dradis.

Example prompt: Create a Dradis project via POST /projects, add a node for host '10.0.0.5' via POST /nodes, then POST /issues for a 'CVE-2024-1234' finding and attach scanner output as evidence.

### Engagement Retest Updates

After a remediation cycle, update Dradis issues with retest results so the final report reflects current state. The agent fetches GET /issues to enumerate findings, then PUTs each issue with the retested status and any new evidence. This keeps the engagement timeline auditable without rebuilding the project from scratch.

Example prompt: Iterate GET /issues for project id 42, then PUT `/issues/{issueId}` for each closed finding to update its status to 'remediated'.

### Per-Host Notes and Evidence Capture

Capture analyst notes and proof-of-exploit evidence at the node level so reviewers can trace each finding back to a specific host or application. The agent uses POST `/nodes/{nodeId}/notes` for commentary and POST `/nodes/{nodeId}/evidence` for the artefact body, keeping the engagement file structured for the final report assembly.

Example prompt: On node id 7, POST `/nodes/7/notes` with an analyst observation and POST `/nodes/7/evidence` with the proof-of-exploit body.

### Final Report Assembly

Pull the assembled engagement contents - projects, nodes, issues, evidence, and content blocks - from Dradis to feed an external report generator or data warehouse. The agent reads each list endpoint and writes the structured payload to the destination, complementing Dradis's own report rendering when teams maintain a custom report pipeline.

Example prompt: For project id 42, list nodes via GET /nodes, list issues via GET /issues, and pull each node's evidence via GET `/nodes/{nodeId}/evidence` to build a structured engagement export.

### AI Agent Engagement Triage

Through Jentic, an AI agent can take 'log this Burp finding into the Acme engagement' and resolve it to the Dradis Pro issue creation operation without browsing docs. Jentic injects the token from the vault and validates the issue payload schema. End-to-end setup is under an hour from sign-up versus a day of manual integration work.

Example prompt: Use Jentic search for 'create a Dradis issue', load the POST /issues operation, and execute it with the engagement project id, finding title, and description.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/projects` | Create a project |
| GET | `/projects` | List projects |
| POST | `/nodes` | Create a node |
| POST | `/issues` | Create an issue |
| GET | `/issues` | List issues in a project |
| POST | `/nodes/{nodeId}/evidence` | Create evidence on a node |
| POST | `/nodes/{nodeId}/notes` | Create a note on a node |

## Key resources

- **Projects** — Create, retrieve, update, and delete penetration test projects.
- **Nodes** — Manage hosts, applications, or scope elements within a project.
- **Issues** — Track vulnerabilities and findings against a project.
- **Evidence** — Attach proof-of-exploit artefacts to nodes.
- **Notes** — Add analyst commentary at the node level.

## Why Jentic

- **Setup:** Wiring the Dradis Pro API by hand means placing your token on the Authorization header, pointing calls at your own Dradis Pro host, and threading project and node ids through its routes before you can manage engagement data. Through Jentic you install once, import the Dradis Pro API from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** Dradis puts the project and node ids in the URL path (`/projects/{projectId}`, `/nodes/{nodeId}/evidence`), so a rule can pin your agent to one project or node: it adds issues, evidence, and notes there and nothing else. You choose the operations it may call, so deleting a node or issue is not included unless you add it.
- **Credential handling:** Your Dradis Pro token is stored once, encrypted, by your own Jentic One instance and injected at execution time on the Authorization header. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'create a Dradis issue', and Jentic returns the POST /issues operation with its input schema so the agent posts the right finding without reading the docs.

## Related APIs

- **Tenable Attack Surface Management API** — Tenable surfaces vulnerabilities; Dradis is where the engagement narrative and report content live.
- **Rapid7 API** — Rapid7 runs scans and exposure analysis; Dradis hosts the consolidated engagement record.
- **Snyk API** — Snyk identifies code and dependency issues; Dradis catalogues them within an engagement deliverable.

## FAQ

### Why is there no official OpenAPI spec for Dradis Pro API?

Dradis Pro does not publish an OpenAPI specification. Jentic generates and maintains this spec so that AI agents and developers can call Dradis Pro API via structured tooling. It is validated against the live API and kept up to date. Get started with Jentic One, the self-hosted execution layer.

### What authentication does the Dradis Pro API use?

Dradis Pro uses a token in the Authorization header. Through Jentic, that token is stored encrypted in the vault and injected at execution time, so it never enters the agent's prompt or response.

### Can I create issues and attach evidence with the Dradis Pro API?

Yes. POST /issues creates a finding within a project, and POST `/nodes/{nodeId}/evidence` attaches proof-of-exploit content to a specific host or scope element. Together they let you build the structured engagement record.

### How do I import scanner findings into Dradis through Jentic?

Run pip install jentic, search for 'create a Dradis issue', load the POST /issues operation, and execute it once per scanner finding. Pair with POST `/nodes/{nodeId}/evidence` to attach the scanner output to the relevant host.

### Can I list all issues in a project?

Yes. GET /issues returns the findings recorded against a project, useful for building dashboards or driving retest workflows. GET /projects lists projects so you can discover ids first.

### What are the rate limits for the Dradis Pro API?

The published spec does not declare explicit per-endpoint limits. For self-hosted Dradis Pro instances, the limit is effectively the host capacity. Implement client-side throttling for bulk imports and treat 429s as the signal to back off.

### Can I limit what my agent is allowed to do with the Dradis Pro API?

Yes. Because you run Jentic One yourself, your own rules decide which Dradis Pro operations and credentials the agent may use, and because Dradis puts project and node ids in the URL path (`/projects/{projectId}`, `/nodes/{nodeId}/evidence`) you can pin the agent to a single project or node. You choose the operations it may call, so it can add issues, evidence, and notes there and nothing else. Destructive calls such as deleting a node or issue are excluded unless you explicitly add them.
