Profiles
Profiles are browser user data directories. They hold cookies, local storage, history, and other durable browser state.
In PinchTab:
- profiles exist even when no instance is running
- one profile can have at most one active managed instance at a time
- profile IDs and names are both useful, but some endpoints require the profile ID specifically
List Profiles
curl http://localhost:9867/profiles
# CLI Alternative
pinchtab profiles
# Response
[
{
"id": "prof_278be873",
"name": "work",
"created": "2026-02-27T20:37:13.599055326Z",
"diskUsage": 534952089,
"sizeMB": 510.17,
"running": false,
"source": "created",
"useWhen": "Use for work accounts",
"description": ""
}
]
Notes:
GET /profilesexcludes temporary auto-generated instance profiles by default- use
GET /profiles?all=trueto include temporary profiles pinchtab profilesexists, but the HTTP API is the more reliable source of truth for structured output
Get One Profile
curl http://localhost:9867/profiles/prof_278be873
# Response
{
"id": "prof_278be873",
"name": "work",
"path": "/path/to/profiles/work",
"pathExists": true,
"created": "2026-02-27T20:37:13.599055326Z",
"diskUsage": 534952089,
"sizeMB": 510.17,
"source": "created",
"chromeProfileName": "Your Chrome",
"accountEmail": "admin@example.com",
"accountName": "Luigi",
"hasAccount": true,
"useWhen": "Use for work accounts",
"description": ""
}
GET /profiles/{id} accepts either the profile ID or the profile name.
Create A Profile
curl -X POST http://localhost:9867/profiles \
-H "Content-Type: application/json" \
-d '{"name":"scraping-profile","description":"Used for scraping","useWhen":"Use for ecommerce scraping"}'
# Response
{
"status": "created",
"id": "prof_0f32ae81",
"name": "scraping-profile"
}
Notes:
- there is no
pinchtab profile createCLI command - both
POST /profilesandPOST /profiles/creatework for creating profiles
Update A Profile
curl -X PATCH http://localhost:9867/profiles/prof_278be873 \
-H "Content-Type: application/json" \
-d '{"description":"Updated description","useWhen":"Updated usage note"}'
# Response
{
"status": "updated",
"id": "prof_278be873",
"name": "work"
}
You can also rename the profile:
curl -X PATCH http://localhost:9867/profiles/prof_278be873 \
-H "Content-Type: application/json" \
-d '{"name":"work-renamed"}'
Important:
PATCH /profiles/{id}requires the profile ID- using the profile name in that path returns an error
- a rename changes the generated profile ID because IDs are derived from the name
Delete A Profile
curl -X DELETE http://localhost:9867/profiles/prof_278be873
# Response
{
"status": "deleted",
"id": "prof_278be873",
"name": "work"
}
DELETE /profiles/{id} also requires the profile ID.
Start Or Stop By Profile
Start the active instance for a profile:
curl -X POST http://localhost:9867/profiles/prof_278be873/start \
-H "Content-Type: application/json" \
-d '{"headless":true}'
# Response
{
"id": "inst_ea2e747f",
"profileId": "prof_278be873",
"profileName": "work",
"port": "9868",
"headless": true,
"status": "starting"
}
Stop the active instance for a profile:
curl -X POST http://localhost:9867/profiles/prof_278be873/stop
# Response
{
"status": "stopped",
"id": "prof_278be873",
"name": "work"
}
For these orchestrator routes, the path can be a profile ID or profile name.
Check Whether A Profile Has A Running Instance
curl http://localhost:9867/profiles/prof_278be873/instance
# Response
{
"name": "work",
"running": true,
"status": "running",
"port": "9868",
"id": "inst_ea2e747f"
}
Additional Profile Operations
Reset A Profile
curl -X POST http://localhost:9867/profiles/prof_278be873/reset
This route requires the profile ID.
Import A Profile
curl -X POST http://localhost:9867/profiles/import \
-H "Content-Type: application/json" \
-d '{"name":"imported-profile","sourcePath":"/path/to/existing/profile"}'
Get Logs
curl http://localhost:9867/profiles/prof_278be873/logs
curl 'http://localhost:9867/profiles/work/logs?limit=50'
logs accepts either the profile ID or the profile name.
Get Analytics
curl http://localhost:9867/profiles/prof_278be873/analytics
curl http://localhost:9867/profiles/work/analytics
analytics also accepts either the profile ID or the profile name.