Base URL & Authentication
All API requests go through the control plane:| Base URL | Auth Header |
|---|---|
https://app.opencomputer.dev/api | X-API-Key: <key> |
WebSocket Binary Protocol
Exec and PTY WebSocket sessions use binary frames with a 1-byte stream prefix:| Byte | Direction | Meaning |
|---|---|---|
0x00 | Client → Server | stdin data |
0x01 | Server → Client | stdout data |
0x02 | Server → Client | stderr data |
0x03 | Server → Client | Exit code (4-byte big-endian int32) |
0x04 | Server → Client | Scrollback end marker |
- Client opens WebSocket with
?api_key=<key> - Server replays scrollback buffer (historical output)
- Server sends
0x04to mark end of scrollback - Live output streams as
0x01/0x02frames - When the process exits, server sends
0x03with the exit code - Server closes the connection
0x00 and send as a binary frame.
PTY sessions use the same binary framing but without stream prefixes — raw bidirectional terminal data.
Error Format
All errors use a consistent envelope:| Status Code | Meaning |
|---|---|
400 | Invalid request (missing fields, bad values) |
401 | Missing or invalid authentication |
403 | Insufficient permissions |
404 | Resource not found |
409 | Conflict (duplicate resource, e.g. checkpoint name) |
429 | Quota exceeded |
500 | Internal server error |
503 | Feature unavailable in current deployment mode |