POST/v1/providers/{provider}/credentials
Connect a provider API key
Save an encrypted credential in an isolated workspace. SJJ Cloud uses it only to call the selected provider on your behalf.
{
"api_key": "provider-secret",
"label": "production-eu"
}
Never put provider keys in browser code, URLs, screenshots, or support tickets.
POST/v1/instances
Provision a VPS resource
Choose a provider and the portable fields below. Unsupported options return a clear 422 response with the provider capability matrix.
{
"provider": "hetzner",
"region": "fsn1",
"plan": "cx22",
"bandwidth_gb": 20,
"image": "ubuntu-24.04",
"name": "worker-01"
}
regioninstance planbandwidthoperating system
GET/v1/providers/{provider}/instances
List resources by provider
Keep provider boundaries visible while using one normalized schema.
?status=running®ion=fsn1&limit=100
// response
{ "provider": "hetzner", "items": [
{ "id": "i_123", "name": "worker-01", "status": "running", "ipv4": "203.0.113.10" }
] }
POST/v1/commands/batch
Dispatch Linux commands in bulk
Target a saved inventory query or explicit instance IDs. Commands run through the provider connection and return per-host results.
{
"instance_ids": ["i_123", "i_456"],
"command": "sudo apt-get update -y",
"timeout_seconds": 60,
"continue_on_error": true
}
BETA/v1/workflows
Compose repeatable workflows In development
Workflows will organize multiple steps—provision, wait for readiness, install packages, run a command, and notify your team—into one auditable run.
{
"name": "bootstrap-web-tier",
"steps": [
{ "action": "provision", "provider": "hetzner", "plan": "cx22" },
{ "action": "wait_for_ssh", "timeout_seconds": 180 },
{ "action": "run_command", "command": "./install-nginx.sh" }
]
}
AI/v1/ai/schema
AI-agent friendly by design
Every endpoint can expose machine-readable JSON Schema and concise tool metadata. Agents can discover required fields, call the same REST API, and parse consistent success/error envelopes.
GET /v1/ai/schema?resource=instances
Accept: application/json
// tool metadata includes name, description,
// input_schema, output_schema, auth_scopes
JSON Schemastable tool namesidempotency keysstructured errors