nodes

One HTTP request to a (private) container port

Make ONE HTTP request to a port inside a RUNNING node and get the response back structured, with timing - THE way to test a server you just started (a vLLM /v1/chat/completions, a health check) without shell-quoting a curl payload through run_command: the JSON body rides the body parameter verbatim, and the request goes over the platform's own pipe to the port (no expose_port needed; the port stays private). Returns {status, headers, body, body_bytes, truncated, timing_ms: {dial, ttfb, total}}: dial is connection establishment to the port, ttfb is request-sent to response-status, total includes reading the whole body. The body is read to the end (SSE streams included) and capped at 64 KiB (truncated: true past the cap); a non-UTF-8 body arrives base64 as body_base64. Budgeted by timeout (default 60s, ceiling 300 - a long generation wants more). This tool never wakes a stopped node. A run_command wakes it, and the wake bills. This tests the PORT, not a public URL - it bypasses the ingress edge (no capability check, no bearer), so a 200 here does not prove an exposed endpoint's URL works; curl the minted URL for that. Bulk traffic and load tests belong on an expose_port URL.

post/preview/nodes/{name}/http

Request

  • Base URL: https://autoresearch.sfcompute.com
  • URL: https://autoresearch.sfcompute.com/preview/nodes/{name}/http
  • Auth: HTTP bearer

Path parameters

namestring required

Node name (from list_nodes).

Query parameters

workspacestring

Act in this workspace (its slug). Omitted: the token's bound workspace, then the organization's default. Never ambient - there is no switch-workspace mutation on this door.

Request body

bodystring nullable

Request body, sent verbatim (JSON rides here as a string).

headersobject

Extra request headers (name → value). When a body is present and no Content-Type is given, application/json is assumed.

methodstring nullable

HTTP method (default GET): GET, HEAD, POST, PUT, PATCH, DELETE, OPTIONS.

pathstring nullable

Request path, query string included (default "/").

portinteger required

The container port to send the request to. No expose_port needed: the request rides the platform's own pipe to the port, which stays private.

timeoutinteger nullable

Whole-call budget in seconds: dial + request + reading the response (default 60, ceiling 300). A model still loading or a long generation wants a bigger budget.

Response

The capability's JSON result.

objectstring

The resource type, when the result is one resource.

Changes

No recorded changes to this operation across all 1 revision of this API.