Overview
Before Vigolium can scan for vulnerabilities, it needs HTTP traffic data. Ingestion is the process of getting HTTP requests (and optionally responses) into Vigolium’s database. There are three ingestion methods:- API ingestion -POST to
/api/ingest-httpon a running server - CLI ingestion -Use
vigolium ingestto send to a server or store directly in the local database - Transparent proxy -Route traffic through Vigolium’s built-in proxy (see Proxy)
API Ingestion
The/api/ingest-http endpoint accepts multiple input modes. All requests use POST with a JSON body.
Ingest a Single URL
Ingest Multiple URLs (url_file mode)
Pass a newline-separated list of URLs. Lines starting with# are treated as comments.
Ingest a curl Command
content_base64 to avoid JSON escaping issues:
Ingest a Raw HTTP Request (Burp-style)
Send a base64-encoded raw HTTP request, optionally with its response:Ingest a Raw HTTP Request with a URL Hint
Raw HTTP requests don’t contain the scheme (https vs http), and the Host header may not match the public hostname (e.g. behind a load balancer). Use the url field to provide the correct scheme and host:
Ingest an OpenAPI / Swagger Spec
Ingest a Postman Collection
CLI Ingestion
Thevigolium ingest command supports both remote (server) and local (direct-to-database) modes.
Remote Ingestion (to a running server)
Use the-s flag to send traffic to a running Vigolium server:
Local Ingestion (direct to database)
When-s/--server is omitted, requests are fetched and stored directly in the local database:
Input Modes Reference
| Mode | Content Field | Description |
|---|---|---|
url | content | A single URL |
url_file | content | Newline-separated list of URLs |
curl | content or content_base64 | A curl command string |
burp_base64 | http_request_base64 | Base64-encoded raw HTTP request |
openapi / swagger | content or content_base64 | OpenAPI/Swagger spec (JSON or YAML) |
postman_collection | content or content_base64 | Postman Collection (JSON) |
burp_base64 mode, you can also include http_response_base64 to store the response alongside the request.
For modes that accept large payloads, prefer content_base64 to avoid JSON escaping issues.