Skip to content

Workspaces

A workspace is the top-level container for your resources, members, and billing. Every instance, disk, SSH key, and floating IP belongs to exactly one workspace. You can belong to multiple workspaces through invites, each with its own role.

Search workspaces

GET/v1/workspacesSearch workspaces

Lists all workspaces you have access to, newest first, with pagination.

Query parameters

NameTypeDescription
namestringFilter by workspace name

Plus the shared pagination parameters. Returns a paged list of workspace summaries, each carrying id, name, and your access_level in that workspace.

bash
curl https://api.galaxygate.net/v1/workspaces \
  -H "Authorization: Bearer $GALAXYGATE_TOKEN" \
  -A 'curl/8.5'

Create a workspace

POST/v1/workspacesCreate a workspace

Creates a new workspace. The authenticated user becomes its OWNER.

Request body

FieldTypeRequiredDescription
namestringyesWorkspace name, 4-32 characters
bash
curl -X POST https://api.galaxygate.net/v1/workspaces \
  -H "Authorization: Bearer $GALAXYGATE_TOKEN" \
  -H "Content-Type: application/json" \
  -A 'curl/8.5' \
  -d '{ "name": "my-workspace" }'

Returns the full workspace object.

Fetch a workspace

GET/v1/workspaces/{id}Fetch a workspace

Path parameters

NameTypeDescription
idintegerWorkspace ID

Returns the full workspace object including id, name, owner, and flags.

Update a workspace

PATCH/v1/workspaces/{id}Update workspace settings

Updates workspace settings. All fields are optional; send only what you are changing.

Renaming (name) requires the OWNER role. Enabling mfa_required also requires OWNER and will be rejected unless every existing member already has two-factor authentication enabled.

Path parameters

NameTypeDescription
idintegerWorkspace ID

Request body

FieldTypeDescription
namestringRename the workspace (4-32 characters). Requires OWNER.
mfa_requiredbooleanRequire all members to have 2FA before they can access the workspace. Requires OWNER.
disable_ssh_passwordbooleanDisable SSH password authentication on instances when SSH keys are present

Returns the updated workspace object.

Fetch quota usage

GET/v1/workspaces/{wid}/quotaFetch workspace quota

Returns the current limits for the workspace.

Path parameters

NameTypeDescription
widintegerWorkspace ID

Returns a quota object with the following fields:

FieldTypeDescription
max_instancesintegerMaximum number of instances
max_ssh_keysintegerMaximum number of SSH keys
max_vpcsintegerMaximum number of VPCs
max_floating_ipv4integerMaximum number of IPv4 floating IPs
max_floating_ipv6integerMaximum number of IPv6 floating IPs
max_floating_ipsintegerTotal floating IP limit
max_storage_bytesintegerTotal disk storage limit in bytes
iso_countintegerMaximum number of custom ISOs
iso_storage_bytesintegerTotal ISO storage limit in bytes
firewall_rules_per_ipintegerMaximum number of firewall rules per floating IP

Fetch topology

GET/v1/workspaces/{wid}/topologyFetch workspace topology

Returns all resources needed to render the workspace topology graph in a single call: instances, floating IPs, VPCs, dediboxes, and network load balancers with their associations.

Path parameters

NameTypeDescription
widintegerWorkspace ID

Returns a topology object:

FieldTypeDescription
instancesobject[]Slim instance views with id, name, online, plan, and state
ipsobject[]Floating IPs with id, instance_id, address, and protected
vpcsobject[]VPCs in the workspace
dediboxesobject[]Dediboxes in the workspace
net_balancersobject[]Network load balancers with their member associations

Invites

Workspace membership is managed through invites. Creating an invite sends an email containing a single-use code to the specified address. The recipient redeems the code with POST /v1/invites to gain access. Invites expire after seven days if not accepted. Invites can carry the VIEWER, EDITOR, or ADMINISTRATOR access level; OWNER is not assignable through an invite.

Managing invites (creating, patching, deleting) requires the Administrator role. You cannot assign an access level equal to or higher than your own.

Search workspace invites

GET/v1/workspaces/{wid}/invitesSearch workspace invites

Lists invites on a workspace with pagination.

Path parameters

NameTypeDescription
widintegerWorkspace ID

Query parameters

NameTypeDescription
idinteger[]Filter to specific invite IDs
userinteger[]Filter by creator user ID
targetinteger[]Filter by the user ID that accepted the invite
emailstringFilter by email address
access_levelstringFilter by access level (VIEWER, EDITOR, ADMINISTRATOR)

Plus the shared pagination parameters. Returns a paged list of invite objects.

Create an invite

POST/v1/workspaces/{wid}/invitesCreate a workspace invite

Creates an invite and sends an email containing the single-use code to email. The code is also returned in the response. Requires the Administrator role.

Path parameters

NameTypeDescription
widintegerWorkspace ID

Request body

FieldTypeRequiredDescription
emailstringyesEmail address the invite is addressed to
access_levelstringyesAccess level to grant: VIEWER, EDITOR, or ADMINISTRATOR. Must be lower than your own level.

Returns 201 Created with the invite object, including the code field.

Look up a pending invite by code

GET/v1/invites/lookupLook up a pending invite by code

Resolves a pending invite from its code so the workspace name and creator can be shown before sign-up or login. Returns 404 once the invite has been accepted or has expired. This endpoint does not require authentication.

Query parameters

NameTypeRequiredDescription
codestringyesInvite code from the invitation email

Returns an invite detail view with id, user, email, workspace, expires, and access_level. The code field is not echoed back.

Accept an invite

POST/v1/invitesAccept an invite

Redeems an invite code and adds the authenticated user as a member of the workspace. Returns an error if the code is expired, already accepted, or was addressed to a different email address.

Request body

FieldTypeRequiredDescription
codestringyesInvite code from the invitation email

Returns the accepted invite object.

Fetch an invite

GET/v1/invites/{id}Fetch an invite

Path parameters

NameTypeDescription
idintegerInvite ID

Returns the invite object.

Update an invite

PATCH/v1/invites/{id}Update an invite

Changes the access level of a pending invite. Requires the Administrator role. You cannot change the level to one equal to or higher than your own, and you cannot edit your own invite.

Path parameters

NameTypeDescription
idintegerInvite ID

Request body

FieldTypeRequiredDescription
access_levelstringyesNew access level: VIEWER, EDITOR, or ADMINISTRATOR

Returns the updated invite object.

Delete an invite

DELETE/v1/invites/{id}Delete an invite

Deletes the invite, immediately revoking the member's access to the workspace if the invite had already been accepted. Requires the Administrator role. An invite cannot be deleted if it is the last membership record for the workspace.

Path parameters

NameTypeDescription
idintegerInvite ID

Returns 202 Accepted with an empty body.