http://localhost:8080). All API endpoints live under /api/v1/ and return application/json; charset=utf-8. Non-API endpoints (/health, /icons/) return their own content types. There are no authentication headers — use a reverse proxy or network policy to restrict access in production. See Configuration for all tuning knobs.
GET /api/v1/formats
Returns a JSON array listing every format plug-in that is loaded and available for parsing. Request No request body or query parameters.string
required
Human-readable label for the format, e.g.
"Java Class file".array of strings
required
File extensions handled by this plug-in, lowercase, without the leading dot — e.g.
["class"].POST /api/v1/parse
Parses a binary file and returns its internal structure as a recursive JSON node tree — the same tree displayed in the desktop viewer. Requeststring
required
The filename, including extension, e.g.
Foo.class. The extension determines which format plug-in is used. The name must have a valid extension (1–16 alphanumeric characters after the last dot).Content-Length to the byte count of the file, or use chunked transfer encoding.
children field.
string
required
Human-readable label for this node, e.g.
"magic: CAFEBABE" or "constant_pool[1]".number
required
Byte offset of this node’s data within the file (zero-indexed).
number
required
Number of bytes this node spans in the file.
string
Name of the icon to display for this node, corresponding to a value in the
Icons enum. Omitted when the node has no icon. Fetch the image from GET /icons/{Name}.png.string
HTML fragment that explains the meaning of this node’s value. Omitted when the node has no description. Rendered as HTML in the web UI; sanitise before displaying in your own interface.
array
Child nodes, each with the same shape (recursive). Omitted when the node is a leaf.
GET /health
A lightweight liveness check suitable for container health probes and load balancer checks. Request No parameters.HEALTHCHECK or Kubernetes liveness probe. It returns immediately without touching the parser or any plug-ins.
GET /icons/.png
Returns a PNG image for a named icon. Icon names correspond to values in theIcons enum used by the format plug-ins (e.g. Magic, Jar, Annotations).
Request
string
required
The icon enum name, case-sensitive, e.g.
Magic. Append .png to form the path: /icons/Magic.png.image/png). The response includes:
Icon objects once and cached in memory for the lifetime of the process, so repeated requests are fast. If the name does not match any Icons enum value, the server returns 404.
CORS
All/api/ endpoints support CORS preflight (OPTIONS) requests. When CORS_ORIGIN is set (the default is *), the following headers are added to every API response:
OPTIONS requests receive 204 No Content. Set CORS_ORIGIN= (empty) to disable CORS headers entirely. See Configuration for details.
Error responses
All errors are returned as JSON with a matching HTTP status code.number
required
The HTTP status code, mirrored in the JSON body for clients that cannot easily read the HTTP status line.
string
required
A human-readable description of what went wrong.