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]}'