Spaces

Workspaces ("spaces") are the top-level container in InfoLobby. Every table and record belongs to a space. An API key can be scoped to specific spaces — see Authentication.

List spaces

GET /api/spaces/list

Returns all spaces the API key has access to.

Request

curl https://infolobby.com/api/spaces/list \
  -H "Authorization: Bearer il_live_..."

Response

[
  {
    "id": 42,
    "name": "Sales CRM",
    "account_id": 7,
    "integration_id": 12
  },
  {
    "id": 43,
    "name": "Operations",
    "account_id": 7,
    "integration_id": 12
  }
]

Get a single space

GET /api/space/<space_id>/get

Example

curl https://infolobby.com/api/space/42/get \
  -H "Authorization: Bearer il_live_..."

Errors

Status When
403 Key is not whitelisted for the requested space
500 Space does not exist or is not owned by the account

Workspace management endpoints

Available to unrestricted account keys only. A key created with one or more workspaces ticked is scoped to those workspaces and cannot create, update, or delete any workspace. To use the endpoints below, create the API key with all workspaces unchecked. Personal keys (il_user_) cannot use these endpoints under any circumstances.

Create a workspace

POST /api/spaces/create

Request body

Field Type Required Notes
name string yes Display name
integration_id int no ID of a MySQL integration owned by the account. Omit to use included managed MySQL.
database_name string no MySQL database name to provision tables in. Required with integration_id; inferred for managed defaults.
files_int_id int no ID of an FTP/S3 integration. Omit with managed MySQL to use included managed S3.
folder_name string no Subfolder under the file integration (S3 prefix is auto-applied if configured)
settings_icon string no Icon identifier
settings_color string no Hex color (e.g. #86EFAC)

Example

curl -X POST https://infolobby.com/api/spaces/create \
  -H "Authorization: Bearer il_live_..." \
  -H "Content-Type: application/json" \
  -d '{"name":"Sales CRM","integration_id":12,"database_name":"crm"}'

To create a workspace on the included managed database and storage:

curl -X POST https://infolobby.com/api/spaces/create \
  -H "Authorization: Bearer il_live_..." \
  -H "Content-Type: application/json" \
  -d '{"name":"Sales CRM"}'

Errors

Status When
403 Key is restricted to specific workspaces (cannot create new ones)
500 Workspace limit reached, invalid integration, or invalid parameters

Update a workspace

POST /api/space/<space_id>/update

Request body

Same shape as create, except integration_id and database_name cannot be changed. Pass name plus any settings to modify.

Example

curl -X POST https://infolobby.com/api/space/42/update \
  -H "Authorization: Bearer il_live_..." \
  -H "Content-Type: application/json" \
  -d '{"name":"Sales CRM (renamed)","settings_color":"#86EFAC"}'

Delete a workspace

POST /api/space/<space_id>/delete

Deletes the workspace, all tables, members, and history. Irreversible.

curl -X POST https://infolobby.com/api/space/42/delete \
  -H "Authorization: Bearer il_live_..."

Workspace members

Account keys can manage members for workspaces in scope. Personal API keys cannot use these endpoints. Mutating endpoints require a writable key and admin access to the workspace.

Role ids:

Role ID
Admin 1
Read & Write 2
Read Only 3

List members

GET /api/space/<space_id>/members/list
curl https://infolobby.com/api/space/42/members/list \
  -H "Authorization: Bearer il_live_..."

Invite or add members

POST /api/space/<space_id>/members/invite

If the email already belongs to an InfoLobby user, that user is added directly. Otherwise an invite is created.

Field Type Required Notes
emails string yes One or more email addresses
role int no Defaults to Read & Write (2)
curl -X POST https://infolobby.com/api/space/42/members/invite \
  -H "Authorization: Bearer il_live_..." \
  -H "Content-Type: application/json" \
  -d '{"emails":"alex@example.com","role":2}'

Change member role

POST /api/space/<space_id>/members/changeRole
curl -X POST https://infolobby.com/api/space/42/members/changeRole \
  -H "Authorization: Bearer il_live_..." \
  -H "Content-Type: application/json" \
  -d '{"emailAddress":"alex@example.com","role":3}'

Remove member

POST /api/space/<space_id>/members/remove
curl -X POST https://infolobby.com/api/space/42/members/remove \
  -H "Authorization: Bearer il_live_..." \
  -H "Content-Type: application/json" \
  -d '{"emailAddress":"alex@example.com"}'

Resend invite

POST /api/space/<space_id>/members/resend_invite
curl -X POST https://infolobby.com/api/space/42/members/resend_invite \
  -H "Authorization: Bearer il_live_..." \
  -H "Content-Type: application/json" \
  -d '{"emailAddress":"alex@example.com"}'

Reorder tables in a workspace

POST /api/space/<space_id>/reorderTables

Request body

Field Type Required Notes
order int[] yes Table IDs in the desired display order
curl -X POST https://infolobby.com/api/space/42/reorderTables \
  -H "Authorization: Bearer il_live_..." \
  -H "Content-Type: application/json" \
  -d '{"order":[101,103,102]}'