Updated Jul 14, 2026

Scanners

Run multi-job OWASP ZAP from one YAML plan

Ordered ZAP jobs from one YAML plan.

Agent

overview

What zap-automation-framework does

ZAP Automation Framework drives OWASP ZAP from a declarative YAML plan. Jobs run in order: import an OpenAPI or GraphQL definition, spider the site, run passive and active rules, then write a report. The plan file is the whole scan, so the same sequence reproduces and can live next to the code under test.

Supply the plan on -autorun. -openapifile and -openapiurl import an API contract; -graphqlfile and -graphqlurl bring a GraphQL schema. -config patches a single key=value without editing the plan. -silent blocks unsolicited requests; -lowmem backs the scan with the database; -certload loads a Root CA for TLS proxying.

Trickest runs it as a managed Scanners node that takes a plan plus optional input files and writes FILE and FOLDER results. Prefer zap-full-scan or zap-api-scan for a one-shot target. Reach for this node when you need ordered, version-controlled jobs wired into triage.

source github.com/zaproxy/zaproxy

use cases

Where zap-automation-framework fits

Codify a repeatable ZAP scan

Define spider, active-scan, and reporting jobs in one YAML plan so every run executes the same steps in the same order, ready to commit alongside the target's source.

Scan an OpenAPI or GraphQL API

Import a contract with openapifile, openapiurl, graphqlfile, or graphqlurl so ZAP walks every documented endpoint before it runs its active rules.

Override settings without editing the plan

Pass -config key=value overrides to change proxy host, port, or a rule threshold for one run while the base plan stays untouched.

Run headless scans inside a pipeline

Combine silent and lowmem so a multi-job ZAP plan runs unattended in CI and lands its report where the rest of the workflow triages findings.

reference

zap-automation-framework inputs and flags

23 inputs
NameTypeFlagDescription
autorunFILE-autorunRun the automation jobs specified in the YAML plan file.
fileFILE--input-fileA file supplied as input to the automation plan.
openapifileFILE-openapifileImport an OpenAPI definition from a file.
openapiurlSTRING-openapiurlImport an OpenAPI definition from a URL.
graphqlfileFILE-graphqlfileImport a GraphQL schema from a file.
configSTRING-configOverride a single key=value pair in the configuration file.
quickurlSTRING-quickurlURL to attack in ZAP's quick-scan mode, e.g. http://www.example.com.
lowmemBOOLEAN-lowmemBack the scan with the database instead of memory (experimental).

Showing key inputs. zap-automation-framework exposes 23 inputs in total.

Full flag reference (23 inputs)
NameTypeFlagDescription
fileFILE--input-fileA file containing input to be used with automation plans.
hostSTRING-hostOverrides the host of the main proxy specified in the configuration file.
portSTRING-portOverrides the port of the main proxy specified in the configuration file.
notelBOOLEAN-notelTurns off telemetry calls.
configSTRING-configOverrides the specified key=value pair in the configuration file.
folderFOLDER--input-folderA folder containing files to be used as input with automation plans.
lowmemBOOLEAN-lowmemUse the database instead of memory as much as possible (experimental).
scriptFILE-scriptRun the specified script from the command line.
silentBOOLEAN-silentEnsures ZAP does not make any unsolicited requests, including checking for updates.
autorunFILE-autorunRun the automation jobs specified in the file.
sessionFILE-sessionOpens the given session after starting ZAP.
certloadFILE-certloadLoads the Root CA certificate from the specified file name.
nostdoutBOOLEAN-nostdoutDisables the default logging through standard output.
quickurlSTRING-quickurlThe URL to attack, e.g. http://www.example.com.
configfileFILE-configfileOverrides the key=value pairs with those in the specified properties file.
graphqlurlSTRING-graphqlurlImports a GraphQL schema from a URL.
openapiurlSTRING-openapiurlImports an OpenAPI definition from the specified URL.
graphqlfileFILE-graphqlfileImports a GraphQL schema from a file.
openapifileFILE-openapifileImports an OpenAPI definition from the specified file name.
graphqlendurlSTRING-graphqlendurlSets the GraphQL endpoint URL.
quickprogressBOOLEAN-quickprogressDisplay progress bars while scanning.
experimentaldbBOOLEAN-experimentaldbUse the experimental generic database code (still experimental).
openapitargeturlSTRING-openapitargeturlThe target URL to override the server URL present in the OpenAPI definition. Refer to the help for supported format.

example

Run zap-automation-framework

zap-automation-framework · command
# headless run of a ZAP automation plan (its jobs target https://example.com)zap.sh -cmd -autorun plan.yaml -config connection.timeoutInSecs=120 -silent -lowmem
sample output
Automation Framework: loading plan from /zap/wrk/plan.yamlJob openapi startedJob openapi added 24 URLs from https://example.com/openapi.jsonJob spider startedJob spider finished, 61 URLs found under https://example.comJob activeScan startedActive Scan progress: 100% (61/61 URLs)Job activeScan finished, 3 alerts raisedJob report startedReport written to /zap/wrk/report-example.html

guidance

Choosing zap-automation-framework

Reach for zap-automation-framework when a single ZAP scan type is too blunt and you need a multi-step, version-controlled plan. For a one-shot web app scan use zap-full-scan. For a one-shot API scan use zap-api-scan. Neither needs a YAML plan.

zap-full-scan

One full ZAP scan against a web app. Simpler when you do not need a multi-job plan.

zap-api-scan

One ZAP scan against an API definition. Use it for a single API target.

wapiti

Black-box web and API scanner without ZAP's YAML plan model.

faq

zap-automation-framework questions

Yes. Point an import job at your contract with -openapifile or -openapiurl for OpenAPI, or -graphqlfile or -graphqlurl for GraphQL. ZAP loads documented endpoints into the site tree, then the plan's active-scan job tests them. Use -openapitargeturl to override the server URL in the OpenAPI definition.

Run zap-automation-framework yourself

A YAML plan feeds zap-automation-framework, which runs each ZAP job in order and writes the findings as a queryable output.

Facts on this page come from the live Trickest tool library.