Export a wire request as its file
wire.request.export
Answers a request, or any run, as the file the bank sends Hyperscale to author a pack: the BRD and its digest, the company, the bank adapter a Core on this box runs on with the kinds it offers, the request date, the box's release, and the change requests the Core's HSX review wrote when the run composed one. Nothing leaves the box by itself; hyperscale wire request export writes the file and the bank sends it by its own channel. Callers: the account owner's CLI login, or an agent token with blueprints:read, or a personal access token with blueprints:read.
GET /v1/wire/runs/{runId}/request
Principal user_session. Idempotency not_required. Environment sandbox.
Input
| Field | In | Type | Description |
|---|---|---|---|
runId required | path | string | Wire run ID, such as wrn_sandbox_... |
tenantId required | query | string | Organization tenant ID |
X-Hyperscale-Environment | header | sandbox | live |
Output
| Field | Type | Description |
|---|---|---|
format required | "hyperscale.wire.request.v1" | |
key required | string | The pack key the request proposes, from the BRD's title; the file is named <key>.request.json |
requestId required | string | The wire_runs row the file was exported from |
status required | pending | running | done | failed | pack_requested | pack_ready | |
brd required | string | The BRD as the analyst pasted it, the pack's brd verbatim |
brdDigest required | string | brdDigest(brd): the SHA-256 of the BRD trimmed with every run of whitespace one space. A pack answers the request when its brdDigest is this |
company required | object | |
bank required | object | The bank the pack's program will run on |
requestedAt required | string | When the analyst sent the BRD to the wire |
release required | string | null | The release the box runs, as its packs manifest names it; null on a box with no packs manifest |
packKey required | string | null | The pack that answers the BRD on this box now, if any |
changeRequests required | object[] | The change requests on the Core the run composed, from its HSX review; empty on a request no pack answered |
Request sample
Only a signed-in person may call this: the CLI after hyperscale auth login, or curl with a personal access token (hyperscale_pat_...) with blueprints:read or an agent token with blueprints:read. The agent's grant must span every Product the call reads. A Product key cannot, so the SDK, which signs in with a Product key or a customer session, has no sample for it.
curl
curl --request GET 'https://hyperscale0.ai/v1/wire/runs/resource_sandbox_example0001/request' \
--header "Authorization: Bearer $HYPERSCALE_TOKEN" \
--header 'X-Hyperscale-Environment: sandbox'CLI
hyperscale api call wire.request.export \
--input '{"runId":"resource_sandbox_example0001"}'Errors
| Code | HTTP | Cause |
|---|---|---|
approval_rejected | 403 | A person rejected the call or returned it to the maker, so it never runs. |
approval_required | 202 | The call waits for decisions: an agent's call over its grant waits on its delegator, and a program action under `requires approval` waits on distinct people other than the maker. |
environment_mismatch | 403 | The session was issued for sandbox or live and the request targets the other environment. |
internal_error | 500 | Hyperscale hit an unexpected server-side condition and hid internal implementation details from this audience. |
invalid_request | 400 | The request does not match the API reference. |
method_not_allowed | 405 | The route exists, but not for the request's HTTP method. |
missing_required_permission | 403 | The signed-in member's current role does not grant the permission required for this operation. |
missing_required_scope | 403 | The credential is valid but does not grant one or more operation scopes. |
not_found | 404 | No Hyperscale route matched the requested path and method. |
oauth_client_not_admitted | 403 | The bearer is an OAuth client token, and this operation does not admit the oauth2_client principal. |
rate_limited | 429 | The credential sent more than its limit in the current 60-second window: 600 requests per API key or session, 1,200 per IP address. Every response carries `x-ratelimit-limit`, `x-ratelimit-remaining` and `x-ratelimit-reset` (Unix seconds). |
resource_not_found | 404 | The requested resource does not exist in the credential's visible scope. |
resource_reader_unavailable | 503 | A generated read model could not serve the request at this moment. |
state_conflict | 409 | The operation conflicts with the current durable state of the resource. |
tenant_mismatch | 403 | The request mixed tenant-owned identifiers across tenant boundaries. |
tenant_not_found | 404 | The credential resolved to a tenant Hyperscale cannot find. |
unauthorized | 403 | The request did not include a valid Hyperscale bearer credential for this environment. |
agent_token_expired | 401 | The agent token is real, but its grant ended. A grant lasts 30 days, or 7 days unused. `details.expiresAt` holds the date in ISO 8601 and `details.agentName` names the agent. |
agent_token_replaced | 401 | The account owner ran `hyperscale agent setup` again for this agent, which replaced this token with a newer one. `details.agentName` names the agent and `details.replacedAt` holds the date. |
device_login_expired | 401 | The bearer is the account owner's own device login from `hyperscale auth login`, not an agent token. Its access token lasts an hour and the CLI refreshes it; the login itself ends after 30 days, or 7 days unused. `details.expiresAt` holds when it ended in ISO 8601. |
invalid_credentials | 401 | Hyperscale could not accept the account or credential request. Signup, login, and bearer authentication use one 401 for every case they reject, so the response exposes no credential-specific reason or registered-email verdict. The single exception is a key that is real but homed in the other environment: because the presented secret already matched a stored key, the message names the mismatch instead of leaving a working credential looking unknown. A bearer that matched nothing gets text that fits its prefix (an agent token, a refresh token, a personal access token, a session or no Hyperscale token at all), which says only what the caller sent, never whether a credential like it exists. |
session_expired | 401 | The session behind this request has ended. A console session ends 30 days after sign-in, or after 12 hours with no request. An admin or customer session ends 24 hours after sign-in, or after 15 minutes with no request. A personal access token ends at the `expiresAt` set when it was created. |
session_required | 401 | This operation needs a person signed in through the browser or the `hyperscale` CLI. A Product API key cannot call it. The request carried no session, or its token matched no live session. |
session_revoked | 401 | The session or personal access token behind this request was ended before its expiry. Sign-out, `user.session.revoke`, a password reset, a role change, removal from the team, user suspension and `personal_access_token.revoke` all end sessions. |
tenant_status_forbidden | 409 | The company is suspended or closed, so every credential bound to it is refused, reads included. `details.tenantId` names the company. |