Launcher API
The launcher (grroxy) manages projects and provides shared utilities. Default port: 8888.
CA Certificate
| Method | Path | Auth | Description |
|---|---|---|---|
| GET | /cacert.crt | No | Download the CA certificate for HTTPS interception |
Projects
| Method | Path | Auth | Description |
|---|---|---|---|
| GET | /api/project/list | No | List all projects |
| POST | /api/project/new | Yes | Create a new project and start its grroxy-app instance |
| POST | /api/project/open | Yes | Open an existing project by name or ID |
| POST | /api/project/delete | No | Delete a project, its DB record, and project folder |
POST /api/project/new body:
{
"name": "my-project"
} POST /api/project/open body:
{
"project": "my-project"
} POST /api/project/delete body:
{
"id": "project-record-id"
} Commands
| Method | Path | Auth | Description |
|---|---|---|---|
| POST | /api/runcommand | Yes | Execute a shell command and save output |
{
"command": "echo hello",
"data": "",
"saveTo": "collection",
"collection": "cmd_output",
"filename": ""
} Cook
| Method | Path | Auth | Description |
|---|---|---|---|
| POST | /api/cook/search | Yes | Search available Cook patterns and methods |
{
"search": "encode"
} Files
| Method | Path | Auth | Description |
|---|---|---|---|
| POST | /api/readfile | Yes | Read file from cache, config, or cwd |
| POST | /api/savefile | Yes | Save data to a file |
POST /api/readfile body:
{
"fileName": "output.txt",
"folder": "cache"
} POST /api/savefile body:
{
"fileName": "output.txt",
"fileData": "hello world",
"folder": "cache"
} File Watcher
| Method | Path | Auth | Description |
|---|---|---|---|
| GET | /api/filewatcher | No | Watch GRROXY_TEMPLATE_DIR for changes via SSE |
Regex
| Method | Path | Auth | Description |
|---|---|---|---|
| POST | /api/regex | No | Test a regex pattern against a string |
{
"regex": "<title>(.*?)</title>",
"responseBody": "<html><title>Test</title></html>"
} SQL
| Method | Path | Auth | Description |
|---|---|---|---|
| POST | /api/sqltest | Yes | Execute a raw SQL query |
{
"sql": "SELECT * FROM _projects LIMIT 10"
} Templates
Templates provide hook-based automation on proxy traffic. Each template has tasks with conditions (using dadql syntax) and actions that execute when conditions match.
Available actions: create_label, set, delete, replace, send_request
Available hooks: proxy:before_request, proxy:request, proxy:response
| Method | Path | Auth | Description |
|---|---|---|---|
| GET | /api/templates/list | No | List all templates from the database |
| POST | /api/templates/new | No | Create a new template |
| DELETE | /api/templates/:template | No | Delete a template by ID |
| GET | /api/templates/info | No | Get available actions, hooks, keys, and full syntax reference |
| POST | /api/templates/check | No | Validate template YAML before saving |
POST /api/templates/new body:
{
"name": "label-api-requests",
"title": "Label API Requests",
"description": "Labels requests containing /api in the path",
"type": "actions",
"mode": "any",
"hooks": { "proxy": ["request"] },
"tasks": [
{
"id": "api-label",
"condition": "req.path ~ '/api'",
"todo": [{ "create_label": { "name": "api", "color": "orange" } }]
}
],
"enabled": true
} POST /api/templates/check — validate before saving:
{
"yaml": "id: my-template\nconfig:\n hooks:\n proxy: [request]\ntasks:\n - id: t1\n todo:\n - create_label:\n name: test"
} Response: { "valid": true, "errors": [], "warnings": [] }
Enable/Disable Toggles
Templates have 3 levels of control:
- Global —
_configsrecord with keysettings.templatesEnabled - Per-project —
templatesEnabledin_projects.data - Per-proxy —
run_templatesin_proxies.data
All three must be enabled for templates to execute on a proxy.
Tools
| Method | Path | Auth | Description |
|---|---|---|---|
| GET | /api/tool/server | No | Start or retrieve a grroxy-tool server instance by ID |
| GET | /api/tool | No | Start a new PocketBase tool instance at the given path |
Updates
| Method | Path | Auth | Description |
|---|---|---|---|
| GET | /api/update/check | No | Check if a newer version is available |
| POST | /api/update | No | Download and install the latest grroxy binaries |