NAS Volume Browser API Reference
How to use the VergeOS volume_browser API to browse NAS volume contents programmatically, including the asynchronous job workflow, polling for results, and troubleshooting common issues.
Overview
The volume_browser API provides file system browsing capabilities for NAS volumes. This is useful for automation, integrations, and building custom file management tools.
Prerequisites
A running NAS service with at least one online volume
API access with appropriate permissions
The volume's SHA1 key identifier (found in the volume dashboard URL or API)
How It Works
Browsing a volume is a two-step process:
POST to
/api/v4/volume_browserto create a browse jobGET to
/api/v4/volume_browser/{job_id}?fields=id,status,resultto poll for results
Step 1: Create a Browse Request
Endpoint
Request Body
Field Reference
volume
string
Yes
Volume key (SHA1 hash identifier)
query
string
Yes
Operation type: get-dir, rename, delete, paste
params
object
Yes
Query parameters (see below)
Params Object
dir
string
Directory path to browse. Use "" for root.
limit
integer
Maximum number of entries to return (e.g., 1000)
offset
integer/null
Pagination offset, null for first page
filter.extensions
string
Filter by file extensions (empty string for all)
volume
string
Volume key (must match top-level volume)
sort
string
Sort field (empty string for default)
Response
The $key field contains the job ID needed for polling.
Step 2: Poll for Results
Endpoint
Critical: Request the Result Field
The result field is NOT returned by default. You must explicitly request it with ?fields=id,status,result. Without this parameter, you will only receive status information.
Without ?fields=id,status,result:
With ?fields=id,status,result:
Status Values
running
Job is still processing
complete
Job finished successfully
error
Job failed (check result for error message)
Polling Strategy
Result Format
When status is complete, the result field contains an array of file/directory entries:
Entry Fields
name
string
File or directory name
n_name
string
Normalized name (lowercase)
size
integer
Size in bytes
date
integer
Modification time (Unix timestamp)
type
string
"file" or "directory"
Empty Directories
For empty directories, result will be an empty array:
Examples
cURL
Python
Troubleshooting
Common Issues
Result field is empty or missing
You must include
?fields=id,status,resultin your GET requestWithout this parameter, only status information is returned
"VM must be in running state to issue a query"
The NAS service VM is not running
Navigate to NAS > NAS Services and start the service
"Error getting volumes VM service: No such file or directory"
The volume's NAS service doesn't exist or was deleted
Verify the volume is associated with a valid NAS service
"Resource '/v4/volume_browser/' not found"
Empty job ID in poll request
Ensure you extract
$keycorrectly from the POST response
Common Mistakes
Using
pathinstead ofdir- The field is nameddir, notpathSending params as JSON string - The
paramsfield must be an object, not a JSON-encoded stringMissing params fields - All fields in the params object are expected
Forgetting
?fields=id,status,result- Without this, no file data is returned
Requirements
The NAS service VM must be running to browse volumes
The volume must be online (mounted)
User must have read permissions on the volume
Additional Resources
Feedback
Last updated
Was this helpful?