API Overview

The Wallfacer API gives you two ways to automate cloud development work.

Use the managed coding API when you want Wallfacer to own the VM lifecycle and run an AI coding session. Use the lower-level VM API when you want direct infrastructure control: boot a VM from an environment, run commands, inspect ports, and destroy it yourself.

This guide explains the model and common workflows. For complete parameters, response schemas, and status codes, use the API Reference.

Base URL

https://api.wallfacer.ai/v1

All examples use paths under this base URL. For example, GET /v1/accounts means:

GET https://api.wallfacer.ai/v1/accounts

OpenAPI Specification

The API publishes its own OpenAPI description at https://api.wallfacer.ai/v1/openapi.yaml. It always describes the currently deployed API, so tooling that reads it stays in step with what the endpoints actually do.

Fetch it to generate a client, import the API into Postman or Insomnia, or drive your own code generation.

curl -s https://api.wallfacer.ai/v1/openapi.yaml -o wallfacer-openapi.yaml

The endpoint is public and needs no token. The API Reference renders this same description as browsable documentation.

Core Model

Most resources belong to an account. You usually start by listing accounts, then pass the chosen account ID into account-scoped routes.

ResourceWhat it represents
AccountA workspace boundary for environments, tasks, VMs, users, invitations, secrets, snapshots, and logs.
AgentAn AI identity in the account that tasks run as. Commits, pull requests, and credentials resolve to it. Hiring one provisions its own computer (an environment).
EnvironmentA reusable runtime definition: platform, repos, setup, services, commands, simulator config, and agent config.
SecretA write-only encrypted value scoped to one environment and referenced from the manifest as ${secrets.NAME}.
SnapshotOne environment generation attempt. A ready snapshot becomes the environment's fast-boot base. Failed attempts are kept for logs.
VMA running machine booted from an environment, optionally pinned to a specific snapshot.
TaskA unit of coding work, such as "fix checkout tests."
SessionOne agent run under a task. Sessions own VM boot, branch identity, messages, and idle behavior.
MessageA user or assistant turn, plus internal transcript events used by clients.
AttachmentExtra task context in MCP resource shape, such as ticket text or an external reference.

Choose a Workflow

Managed coding

Use tasks, sessions, messages, and attachments when you want Wallfacer to run an AI coding workflow.

Typical flow:

  1. Create or choose an environment for the repository.
  2. Create a task with a prompt and optional attachments.
  3. Wallfacer creates a session, boots a VM, and sends the first message to the agent.
  4. Poll the session or messages until work appears.
  5. Send follow-up messages or close the session when done.

The task owns the work item. The session owns the individual attempt, VM, branch, and conversation.

Direct infrastructure

Use environments, VMs, commands, logs, and snapshots when you want programmatic VM control without the managed chat layer.

Typical flow:

  1. Create an environment with a manifest.
  2. Wait for its base snapshot to be ready.
  3. Create a VM from the environment.
  4. Poll the VM until ready is true.
  5. Run commands or use exposed service ports.
  6. Destroy the VM when finished.

VMs always boot from environments. The public API does not accept raw manifests on VM creation.

Common Endpoint Map

This is a map, not a reference. Use the API Reference for exact fields.

GoalMain routes
Discover account IDsGET /v1/accounts
Configure a runtimePOST /v1/accounts/{account}/environments
Store environment secretsPOST /v1/accounts/{account}/environments/{environment}/secrets
Watch snapshot generationGET /v1/accounts/{account}/environments/{environment} and GET /v1/accounts/{account}/environments/{environment}/snapshots
Boot direct computePOST /v1/accounts/{account}/vms
Run a shell commandPOST /v1/accounts/{account}/vms/{vm}/commands
Start managed coding workPOST /v1/accounts/{account}/tasks
Attach task contextPOST /v1/accounts/{account}/tasks/{task}/attachments
Start another attemptPOST /v1/accounts/{account}/tasks/{task}/sessions
Send follow-up instructionsPOST /v1/accounts/{account}/tasks/{task}/sessions/{session}/messages
Store a credential for agentsPOST /v1/accounts/{account}/credentials
Grant a credential to one agentPUT /v1/accounts/{account}/credentials/{credential}/grants/{agent}
Read the people directoryGET /v1/accounts/{account}/people
Direct an agent with an objectivePOST /v1/accounts/{account}/agents/{agent}/objectives
See what an agent owesGET /v1/accounts/{account}/agents/{agent}/todos
Search across your accountGET /v1/accounts/{account}/search
Inspect setup and runtime failuresLog routes under VMs, environments, snapshots, and sessions
Control an iOS simulatorSimulator routes under GET /v1/accounts/{account}/vms/{vm}/simulator

What To Read Next