Run browser utilities through the API
Run socket.help utilities over HTTP with POST /api/tools/{id}/run: find tool IDs with GET /api/tools, pass input, options and files, and read the output.
Updated 27 October 2026Hosted execution of the same utilities
Most socket.help utilities (formatters, encoders, generators, converters, image and PDF operations, media processors, email inspectors and network checks) can run on the server through one endpoint: POST /api/tools/{id}/run. Use it from scripts, CI jobs and agents when you cannot open the browser tool.
On the website, browser-local tools process input on your device. Through the API, SDK, CLI, SSH or MCP, your input is sent to a bounded server worker. Inputs and results are not stored as execution history.
Find tool IDs and options
GET /api/tools lists every catalog tool, including planned ones. Each entry has id, name, description, categoryId, status, page and interfaces. execution is the run path for executable tools and null otherwise, and guide describes accepted input and options.
GET /api/tools/{id} returns one tool with its guide: whether it accepts text or files, option keys with labels, defaults, choices and bounds, an input example and any limits.
curl https://socket.help/api/tools/json
{
"id": "json",
"name": "JSON formatter",
"status": "available",
"page": "/tools/json-formatter/",
"execution": "/api/tools/json/run",
"guide": {
"action": "Format JSON",
"acceptsText": true,
"acceptsFile": false,
"multipleFiles": false,
"inputExample": "{\"ready\":true}",
"options": [{ "key": "action", "label": "Action", "defaultValue": "format",
"choices": [["format", "Format"], ["minify", "Minify"]] }],
...
},
...
}Run a tool
The body is a JSON object with up to three fields. Any other field returns 400.
| Field | Type | Rules |
|---|---|---|
| input | string | Text input, within your plan’s input allowance (64 KiB anonymously) |
| options | object of strings | Only option keys the tool supports; numbers are sent as strings, for example "2" |
| file | object or array | {name, base64} with canonical Base64 for file tools; an array of 1 to 20 for everyday-merge-pdfs and everyday-image-to-pdf |
curl https://socket.help/api/tools/uuid/run \
-H "Authorization: Bearer $SOCKET_HELP_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"options":{"count":"2"}}'
curl https://socket.help/api/tools/everyday-file-checksums/run \
-H 'Content-Type: application/json' \
-d '{"file":{"name":"hello.txt","base64":"aGVsbG8="}}'
# 200 OK
{"toolId":"everyday-file-checksums","output":"2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824",
"usage":{"used":1,"limit":100,"resetsAt":"2026-10-28T00:00:00.000Z"}}Read the output
A successful run returns toolId, output and usage. output is always a string. Tools that produce a file return a JSON string with kind "file", filename, mediaType, bytes and base64. Generated files are limited to 5 MiB.
usage reports runs used today, the daily limit and resetsAt (00:00 UTC). Execution requires the tools:run scope when you use an API key.
Execution limits
- Request body up to 16 MiB; files up to 10 MiB each and 10 MiB combined.
- Daily hosted runs per plan: 100 anonymously, 1,000 on Free. The limit returns 429 with Retry-After until 00:00 UTC.
- Busy processors return 503 with Retry-After: 2; a run that times out returns 408.
- Audio and video tools accept files up to 10 MiB and 120 seconds, produce at most 5 MiB and stop after 20 seconds.
- Network tools only contact public addresses. Ordinary checks stop after ten seconds. API scenarios allow up to six sequential requests, three seconds each and twenty seconds overall, with no redirects.
Frequently asked questions
How do I find the ID of a tool?
Call GET /api/tools and use the id of an entry whose execution field is not null. The tool page URL is in page, and GET /api/tools/{id} returns the options it accepts.
Why does my options object return 400?
Options must be an object of string values using keys the tool supports. Send numbers and booleans as strings, for example {"count":"2"}, and check the keys in the tool’s guide.
Is my input stored when I run a tool through the API?
No execution history is kept. Input is sent to the server and processed in a bounded worker, and neither input nor result is retained.
Can I merge several PDFs in one request?
Yes. Send file as an array of 1 to 20 {name, base64} objects to everyday-merge-pdfs or everyday-image-to-pdf. The order of the array is the order of the result.