Factory Control

View as Markdown

Get Fleet Worker Config

GET/api/v1/factory/control/worker-config
Also as:MCPtool_call software-factory.getFleetWorkerConfigskillsoftware-factory

Every machine's switches in ONE call — the fleet switchboard's read.

Errors

CodeWhenWhat to do
422Validation Error—
Request
curl "https://app.opvs.ai/api/v1/factory/control/worker-config" \
  -H "Authorization: Bearer $OPVS_TOKEN"
Try itGET /api/v1/factory/control/worker-config

Used once, saved nowhere. Your token travels for this request through opvs.ai and SpiderPublish to app.opvs.ai, then this page forgets it when the tab closes.

GET only · 30 tries a minute

Get Worker Config

GET/api/v1/factory/control/environments/{env_id}/worker-config
Also as:MCPtool_call software-factory.getDeskWorkerConfigskillsoftware-factory

Read an env's 5 operator switches (the dashboard panel's initial state).

Errors

CodeWhenWhat to do
422Validation Error—
Request
curl "https://app.opvs.ai/api/v1/factory/control/environments/{env_id}/worker-config" \
  -H "Authorization: Bearer $OPVS_TOKEN"
Try itGET /api/v1/factory/control/environments/{env_id}/worker-config

Used once, saved nowhere. Your token travels for this request through opvs.ai and SpiderPublish to app.opvs.ai, then this page forgets it when the tab closes.

GET only · 30 tries a minute

Set Worker Config

PATCH/api/v1/factory/control/environments/{env_id}/worker-config
Also as:MCPtool_call software-factory.setDeskWorkerConfigskillsoftware-factory

Change an env's worker config and return its independently read state.

Errors

CodeWhenWhat to do
422Validation Error—
Request
curl -X PATCH "https://app.opvs.ai/api/v1/factory/control/environments/{env_id}/worker-config" \
  -H "Authorization: Bearer $OPVS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'
Try itPATCH /api/v1/factory/control/environments/{env_id}/worker-config
Try it sends reading requests only.

This endpoint changes data in your workspace, so it is not sent from the docs. Copy the command and run it in your own terminal.

Get Pending Cards

GET/api/v1/factory/control/environments/{env_id}/pending
Also as:MCPtool_call software-factory.factoryPendingCardsskillsoftware-factory

List an env's cards paused for human approval + its board-default mode.

Errors

CodeWhenWhat to do
422Validation Error—
Request
curl "https://app.opvs.ai/api/v1/factory/control/environments/{env_id}/pending" \
  -H "Authorization: Bearer $OPVS_TOKEN"
Try itGET /api/v1/factory/control/environments/{env_id}/pending

Used once, saved nowhere. Your token travels for this request through opvs.ai and SpiderPublish to app.opvs.ai, then this page forgets it when the tab closes.

GET only · 30 tries a minute

Approve Card

POST/api/v1/factory/control/environments/{env_id}/approve
Also as:MCPtool_call software-factory.factoryApproveCardskillsoftware-factory

Release a paused card so its build proceeds (brand admin only).

Errors

CodeWhenWhat to do
422Validation Error—
Request
curl -X POST "https://app.opvs.ai/api/v1/factory/control/environments/{env_id}/approve" \
  -H "Authorization: Bearer $OPVS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'
Try itPOST /api/v1/factory/control/environments/{env_id}/approve
Try it sends reading requests only.

This endpoint changes data in your workspace, so it is not sent from the docs. Copy the command and run it in your own terminal.

Reject Card

POST/api/v1/factory/control/environments/{env_id}/reject
Also as:MCPtool_call software-factory.factoryRejectCardskillsoftware-factory

Stop a paused card — the worker fails it, blocking the dependent subtree (brand admin only).

Errors

CodeWhenWhat to do
422Validation Error—
Request
curl -X POST "https://app.opvs.ai/api/v1/factory/control/environments/{env_id}/reject" \
  -H "Authorization: Bearer $OPVS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'
Try itPOST /api/v1/factory/control/environments/{env_id}/reject
Try it sends reading requests only.

This endpoint changes data in your workspace, so it is not sent from the docs. Copy the command and run it in your own terminal.

Add Environment

POST/api/v1/factory/control/environments
Also as:MCPtool_call software-factory.factoryAddEnvironmentskillsoftware-factory

Add a factory env (brand admin). Creates the env record + reveals the one-shot install PAT/one-liner; the operator then runs the ansible provisioning playbook with it (whole-VPS bring-up is out-of-band — the api-gateway can't run ansible). Mirrors ``environments.py`` create + the same per-brand VPS quota gate.

Errors

CodeWhenWhat to do
422Validation Error—
Request
curl -X POST "https://app.opvs.ai/api/v1/factory/control/environments" \
  -H "Authorization: Bearer $OPVS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{}'
Try itPOST /api/v1/factory/control/environments
Try it sends reading requests only.

This endpoint changes data in your workspace, so it is not sent from the docs. Copy the command and run it in your own terminal.

Remove Environment

DELETE/api/v1/factory/control/environments/{env_id}
Also as:MCPtool_call software-factory.factoryRemoveEnvironmentskillsoftware-factory

Remove a factory env (brand admin). Deletes the env record + its PAT; decommissioning the VPS itself is an out-of-band ansible step.

Errors

CodeWhenWhat to do
422Validation Error—
Request
curl -X DELETE "https://app.opvs.ai/api/v1/factory/control/environments/{env_id}" \
  -H "Authorization: Bearer $OPVS_TOKEN"
Try itDELETE /api/v1/factory/control/environments/{env_id}
Try it sends reading requests only.

This endpoint changes data in your workspace, so it is not sent from the docs. Copy the command and run it in your own terminal.

Did this answer your question?