/api/verProbe version and edition
Returns ver and plan. Online builds can also include uid and license_remaining_hours. This endpoint does not require a token.
curl http://127.0.0.1:80/api/verFilePulse local HTTP API
Use FilePulse from AI agents, scripts, launchers, and internal tools through the same local HTTP API used by the web app.
http://127.0.0.1:80The default example uses port 80 from config_default.json. Real deployments should read the active port from the user's config.json.
Start here
Probe the service, sign in once, then pass the returned token as the raw Authorization header. Do not prefix it with Bearer.
/api/verReturns ver and plan. Online builds can also include uid and license_remaining_hours. This endpoint does not require a token.
curl http://127.0.0.1:80/api/ver/api/loginSend username and password as JSON. The response contains server_name and access_token.
curl -X POST http://127.0.0.1:80/api/login \
-H "Content-Type: application/json" \
-d '{"username":"root","password":"root"}'Authorization: <access_token>Use the returned token directly in the Authorization header or Authorization query parameter.
curl http://127.0.0.1:80/api/search_scope_targets \
-H "Authorization: $FILEPULSE_TOKEN"Core surface
These are the endpoints most useful for AI-assisted workflows: discover, search, preview, download, and open only after confirmation.
/api/search_scope_targetsReturns the indexed search targets. Use the returned drive indices when you want to limit search requests with drive_scope.
curl http://127.0.0.1:80/api/search_scope_targets \
-H "Authorization: $FILEPULSE_TOKEN"/api/searchSearch indexed file and folder metadata with wildcard or regex matching, filters, sort order, and paging.
curl -X POST 'http://127.0.0.1:80/api/search' \
-H 'Content-Type: application/json' \
-H "Authorization: $FILEPULSE_TOKEN" \
--data-raw '{
"search_content": "a",
"mode": "wildcard",
"case_sensitive": false,
"search_by": "name",
"sort_by": "modified",
"sort_asc": false,
"content_plugin": [""],
"kind": 0,
"pin_priority": false,
"use_groups": false,
"start": 0,
"end": 13,
"inline_icon": {
"size": 32
}
}'/api/content_searchSearch indexed document text, OCR text, and supported content handlers. Enable snippets when an AI needs context around each hit.
curl -X POST 'http://127.0.0.1:80/api/content_search' \
-H 'Content-Type: application/json' \
-H "Authorization: $FILEPULSE_TOKEN" \
--data-raw '{
"linear": false,
"search_content": "a",
"mode": "regular",
"fuzzy_distance": 2,
"score_top_k": 100,
"sort_by": "score",
"sort_asc": false,
"snippet": false,
"snippet_radius": 100,
"pin_priority": false,
"use_groups": false,
"start": 0,
"end": 13,
"inline_icon": {
"size": 32
}
}'/api/visual_statusReports whether visual search is enabled, indexing progress, ready file counts, descriptor rows, and ffmpeg availability.
curl http://127.0.0.1:80/api/visual_status \
-H "Authorization: $FILEPULSE_TOKEN"/api/visual_searchSubmit multipart form data with a query image, screenshot, video, or an absolute query_path on the FilePulse host.
curl -X POST 'http://127.0.0.1:80/api/visual_search' \
-H "Authorization: $FILEPULSE_TOKEN" \
-F 'file=@query.jpg' \
-F 'top_k=20' \
-F 'drive_indices=[0]' \
-F 'fast_mode=true'/api/download/{encodedPath}Streams a local or proxied file path. Encode the full path in the URL and include Authorization. Range requests are supported by the file server.
curl 'http://127.0.0.1:80/api/download/D%3A%5Cdocs%5Creport.pdf' \
-H "Authorization: $FILEPULSE_TOKEN" \
--output report.pdf/api/folder_previewReturns a small sorted listing for a folder without downloading every child item.
curl -X POST http://127.0.0.1:80/api/folder_preview \
-H "Content-Type: application/json" \
-H "Authorization: $FILEPULSE_TOKEN" \
-d '{"path":"D:\\docs","limit":50}'/api/content_match_previewFetches HTML/text context for one content search result, useful when an AI should inspect a hit before asking to open the file.
curl -X POST http://127.0.0.1:80/api/content_match_preview \
-H "Content-Type: application/json" \
-H "Authorization: $FILEPULSE_TOKEN" \
-d '{
"path": "D:\\docs\\report.pdf",
"modified": 1717113600,
"search_content": "invoice",
"mode": "regular",
"linear": false,
"fuzzy_distance": 2
}'/api/openfileLaunches the file or executable on the FilePulse machine. This has side effects, so AI tools should ask the user for explicit confirmation first.
curl -X POST http://127.0.0.1:80/api/openfile \
-H "Content-Type: application/json" \
-H "Authorization: $FILEPULSE_TOKEN" \
-d '{"path":"D:\\docs\\report.pdf","work_folder":"","admin":false}'/api/quick_launcherSearches launchable apps, folders, and shortcuts with the same request shape as /api/search.
curl -X POST http://127.0.0.1:80/api/quick_launcher \
-H "Content-Type: application/json" \
-H "Authorization: $FILEPULSE_TOKEN" \
-d '{
"search_content": "chrome",
"mode": "wildcard",
"case_sensitive": false,
"search_by": "full_path",
"sort_by": "modified",
"sort_asc": false,
"content_plugin": [""],
"kind": 0,
"start": 0,
"end": 9
}'Agent guidance
Keep the model on a narrow path: authenticate, search, inspect, then ask before doing anything that opens or changes files.
Ask the user or host app to provide a short-lived token. Do not store the password in model memory or long-running logs.
Opening a file can launch programs or reveal local data. The AI should present the exact path and wait for user approval.
Start with end 9 or end 19, inspect names and snippets, then request more pages only when needed.
Not covered here
The following surfaces are intentionally omitted from this public starter page because they are internal, destructive, administrative, or better documented separately.