One API
The console and toutwafctl use only the control plane's REST API: what you do in the interface also exists as an API call.
Everything the console does is also available through a REST API and the toutwafctl command-line tool, with scoped tokens: to script, to plug into a SOAR or to drive from CI.
Where to find it in the console : Console: Administration > Users and access (API tokens); API: /api/v1; tool: toutwafctl.
The console and toutwafctl use only the control plane's REST API: what you do in the interface also exists as an API call.
A token carries a list of permissions (resource:action), can be limited to some sites and can expire. It never exceeds the permissions of its creator.
Every error has a TW-xxxx code, a message in the requested language and, in the documentation, a cause and a fix.
toutwafctl has JSON output, exit codes usable in CI and messages in ten languages.
It talks to the API with a token; the full reference is in the documentation.
login (with the TOTP code when two-factor authentication is on) exchanges the session for a long-lived token, or stores an existing one.
apps (list, create, detect/block mode); policy (export, validate, diff, apply, publish, roll back).
test runs rule tests with JUnit output; simulate replays stored traffic against a policy.
ban and unban for an address; nodes for the nodes and their enrolment tokens; token to create, list and revoke API tokens.
backup (create, list, download, targets) and restore, including offline with the service stopped.
doctor reads the local installation even when the console does not answer, or asks the console with a token; the exit code is 1 when a check fails.
Base path /api/v1.
A CI token does not need everything.
We prefer to say it plainly.
A playbook calls the API to ban an address for a given time, with a reason recorded in the audit.
A script creates a site, sets it to detection and publishes it with toutwafctl.
Rule tests run on every change, with a JUnit report.
The basics are free; the advanced options need a paid offer. An option under licence stays visible in the console, locked, never hidden.
Going back to the default of an advanced option is always possible. What happens when a paid licence ends is described in the pricing FAQ: 48 hours of grace, 48 hours of read-only, then WAF protection is switched off until renewal.
Pricing Read the documentation
Install it on your own server, or get in touch to talk about licences.