Create or rename a workspace
This page needs your own installation with an Embed license.
PUT/
Creates a workspace by your ID, or renames it.
Needs a partner key: Authorization: Bearer gre_…, from Platform › Partner keys. Call it from your server only.
Parameters
Path
accountIdRequired · stringYour ID for the customer’s account: 1 to 255 bytes of UTF-8, case-sensitive. URL-encode it: it may contain
/.workspaceIdRequired · stringYour ID for the workspace. The word
defaultnames the account’s default workspace. Renaming it never makes a second one.
Body
nameOptional · stringUp to 200 characters. Needed to create. A name another workspace has gets your ID added.
Responses
- 200OK
Renamed.
- 201Created
Created.
A field isn’t valid.
details.fieldnames it.Creating the workspace would pass the license’s workspace limit.
- 404
NOT_FOUNDYou have no account with this ID.
The account is deleted. Restore it first, within 30 days.
- 409
BUSYSomething else held what this call needs, and it gave up waiting. Nothing changed. Try again.
Something failed on the installation’s side. Try again.
Any call can also answer: 401 UNAUTHORIZED · 403 EMBED_NOT_LICENSED · 403 IP_NOT_ALLOWED · 413 PAYLOAD_TOO_LARGE · 415 INVALID_CONTENT_TYPE · 429 RATE_LIMITED · 503 BUSY. See Errors.
Request
GORUNNER="https://automations.example.com"
GORUNNER_EMBED_KEY="YOUR_PARTNER_KEY" # gre_…
ACCOUNT_ID="acct-bakery"
WORKSPACE_ID="ws-orders"
URL="$GORUNNER/api/embed/v1/accounts/$ACCOUNT_ID/"
URL="${URL}workspaces/$WORKSPACE_ID"
curl -X PUT "$URL" \
-H "Authorization: Bearer $GORUNNER_EMBED_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Orders"
}'const GORUNNER = "https://automations.example.com";
const KEY = process.env.GORUNNER_EMBED_KEY; // gre_…
const ACCOUNT_ID = encodeURIComponent("acct-bakery");
const WORKSPACE_ID = encodeURIComponent("ws-orders");
const res = await fetch(
`${GORUNNER}/api/embed/v1/accounts/` +
`${ACCOUNT_ID}/workspaces/${WORKSPACE_ID}`,
{
method: "PUT",
headers: {
Authorization: `Bearer ${KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ name: "Orders" }),
},
);
const { data } = await res.json();import os, requests
from urllib.parse import quote
GORUNNER = "https://automations.example.com"
KEY = os.environ["GORUNNER_EMBED_KEY"] # gre_…
ACCOUNT_ID = quote("acct-bakery", safe="")
WORKSPACE_ID = quote("ws-orders", safe="")
res = requests.put(
f"{GORUNNER}/api/embed/v1/accounts/"
f"{ACCOUNT_ID}/workspaces/{WORKSPACE_ID}",
headers={"Authorization": f"Bearer {KEY}"},
json={"name": "Orders"},
)
data = res.json()["data"]Response · 201 Created
{
"data": {
"id": "ws-orders",
"default": false,
"name": "Orders",
"members": 0,
"createdAt": "2026-10-25T09:00:00Z",
"workspaceId": "6e9a1c3f-8b2d-4a57-9e0c-3f7b5d1a8c42"
}
}Every field
Body
nameOptional · string
Response · 200 OK, 201 Created
dataobjectidstring or nullThe partner’s workspace id; null for the default workspace.
defaultbooleannamestringmembersintegercreatedAttimeworkspaceIdUUIDThe installation’s own id of the workspace, for support. Elsewhere
workspaceIdis the partner’s id (idhere).