{"openapi":"3.1.0","info":{"title":"Smol Machines","version":"1.0.0","description":"Cloud microVM platform. Create isolated Linux VMs, execute commands, run code, manage files and volumes. Each machine has its own kernel with configurable CPU, memory, networking, and storage."},"x-service-info":{"name":"Smol Machines","docs":{"llms":"https://api.orthogonal.com/llms.txt"},"protocols":["mpp","x402","np"]},"servers":[{"url":"https://mpp.orthogonal.com/smolmachines","description":"MPP (Tempo) rail"},{"url":"https://x402.orthogonal.com/smolmachines","description":"x402 rail"},{"url":"https://np.orthogonal.com/smolmachines","description":"np (Circle Gateway, x402 v2) rail"}],"paths":{"/v1/machines/{id}/files":{"get":{"operationId":"smolmachines_GET__v1_machines_id_files","summary":"Download a file from a machine","tags":["Smol Machines"],"responses":{"200":{"description":"Successful response"}}},"post":{"operationId":"smolmachines_POST__v1_machines_id_files","summary":"Upload a file to a machine","tags":["Smol Machines"],"responses":{"200":{"description":"Successful response"}}}},"/v1/machines/{id}/sessions":{"get":{"operationId":"smolmachines_GET__v1_machines_id_sessions","summary":"List sessions for a machine","tags":["Smol Machines"],"responses":{"200":{"description":"Successful response"}}},"post":{"operationId":"smolmachines_POST__v1_machines_id_sessions","summary":"Create a persistent session that preserves working directory and environment across exec calls","tags":["Smol Machines"],"responses":{"200":{"description":"Successful response"}}}},"/v1/machines/{id}/sessions/{session_id}":{"delete":{"operationId":"smolmachines_DELETE__v1_machines_id_sessions_session_id_","summary":"Delete a session","tags":["Smol Machines"],"responses":{"200":{"description":"Successful response"}}}},"/v1/machines/{id}/code":{"post":{"operationId":"smolmachines_POST__v1_machines_id_code","summary":"Run Python or JavaScript code directly in a machine","tags":["Smol Machines"],"responses":{"200":{"description":"Successful response"}}}},"/v1/machines/{id}/sessions/{session_id}/exec":{"post":{"operationId":"smolmachines_POST__v1_machines_id_sessions_session_id_exec","summary":"Execute a command within a persistent session. Session preserves working directory and environment across calls.","tags":["Smol Machines"],"responses":{"200":{"description":"Successful response"}}}},"/v1/machines":{"get":{"operationId":"smolmachines_GET__v1_machines","summary":"List all machines. Use to discover existing machine IDs for recovery or cleanup.","tags":["Smol Machines"],"responses":{"200":{"description":"Successful response"}}},"post":{"operationId":"smolmachines_POST__v1_machines","summary":"Create a new microVM. Minimal example: {\"source\":{\"type\":\"image\",\"reference\":\"alpine:3.20\"},\"resources\":{\"cpus\":1,\"memoryMb\":512},\"ttlSeconds\":3600}. Poll GET /v1/machines/{id} until ready is true before running commands.","tags":["Smol Machines"],"responses":{"200":{"description":"Successful response"},"402":{"description":"Payment Required (x402 / MPP / np)"}},"x-payment-info":{"price":"dynamic","offers":[{"method":"mpp","intent":"charge","rail":"tempo","currency":"USDC.e","url":"https://mpp.orthogonal.com/smolmachines/v1/machines"},{"method":"mpp","intent":"charge","rail":"tempo","currency":"OUSD","url":"https://mpp.orthogonal.com/smolmachines/v1/machines"},{"method":"x402","intent":"charge","rail":"base","currency":"USDC","url":"https://x402.orthogonal.com/smolmachines/v1/machines"},{"method":"x402","intent":"charge","rail":"base","currency":"OUSD","url":"https://x402.orthogonal.com/smolmachines/v1/machines"},{"method":"x402","intent":"charge","rail":"monad","currency":"USDC","url":"https://x402.orthogonal.com/smolmachines/v1/machines"},{"method":"np","intent":"charge","rail":"base","currency":"USDC","settlement":"circle-gateway","version":"x402-v2","url":"https://np.orthogonal.com/smolmachines/v1/machines"}]}}},"/v1/machines/{id}/events":{"get":{"operationId":"smolmachines_GET__v1_machines_id_events","summary":"Get machine event log","tags":["Smol Machines"],"responses":{"200":{"description":"Successful response"}}}},"/v1/machines/{id}/exec":{"post":{"operationId":"smolmachines_POST__v1_machines_id_exec","summary":"Run a command inside a machine. Pass command as a shell string (\"ls -la\") or argv array ([\"ls\",\"-la\"]). Machine must be ready before calling.","tags":["Smol Machines"],"responses":{"200":{"description":"Successful response"}}}},"/v1/machines/{id}":{"get":{"operationId":"smolmachines_GET__v1_machines_id_","summary":"Get machine details and status. Poll until ready is true before executing commands.","tags":["Smol Machines"],"responses":{"200":{"description":"Successful response"}}},"delete":{"operationId":"smolmachines_DELETE__v1_machines_id_","summary":"Permanently delete a machine and its storage","tags":["Smol Machines"],"responses":{"200":{"description":"Successful response"}}}},"/v1/machines/{id}/start":{"post":{"operationId":"smolmachines_POST__v1_machines_id_start","summary":"Start a stopped machine","tags":["Smol Machines"],"responses":{"200":{"description":"Successful response"}}}},"/v1/machines/{id}/stop":{"post":{"operationId":"smolmachines_POST__v1_machines_id_stop","summary":"Stop a running machine. Preserves disk state.","tags":["Smol Machines"],"responses":{"200":{"description":"Successful response"}}}}}}