skopik

Orgs

Orgs are workspace records — settings, members, invites, and workspace-level remote configuration. These routes have no dedicated SDK methods; call them through client.http, the SDK's escape hatch. It sends requests with the client's auth and base URL, converts camelCase body fields to snake_case on the wire, and converts response fields back to camelCase. To invite a teammate, jump to http.post('/orgs/{orgId}/invites').

Quick Links

Action Description
http.get('/orgs') List visible workspaces.
http.post('/orgs') Create a workspace.
http.get('/orgs/{orgId}') Read workspace details.
http.put('/orgs/{orgId}') Update workspace settings.
http.delete('/orgs/{orgId}') Delete a workspace.
http.get('/orgs/{orgId}/remote-config') Read workspace remote configuration.
http.put('/orgs/{orgId}/remote-config') Update workspace remote configuration.
http.get('/orgs/{orgId}/members') List workspace members.
http.put('/orgs/{orgId}/members/{memberId}') Add or update a member.
http.delete('/orgs/{orgId}/members/{memberId}') Remove a member.
http.get('/orgs/{orgId}/invites') List pending invites.
http.post('/orgs/{orgId}/invites') Invite a user.
http.delete('/orgs/{orgId}/invites/{inviteId}') Revoke an invite.
http.post('/invites/accept') Accept an invite.

Reference

http.get('/orgs')

List visible workspaces.

const { data: orgs } = await client.http.get<{ data: Org[] }>('/orgs')

Returns { data: Org[] } — see Org.

http.post('/orgs')

Create a workspace.

const { org } = await client.http.post<{ org: Org }>('/orgs', {
	body: { name: 'Acme Robotics' },
})

Parameters

Field Type Required Notes
name string Yes Workspace name.
slug string No Custom workspace slug.
policy object No Workspace policy settings.
budget object No Workspace budget settings.
metadata object No Customer metadata.

Returns { org: Org } — see Org.

http.get('/orgs/{orgId}')

Read workspace details.

const { org } = await client.http.get<{ org: Org }>(`/orgs/${orgId}`)

Returns { org: Org } — see Org.

http.put('/orgs/{orgId}')

Update workspace settings.

const { org } = await client.http.put<{ org: Org }>(`/orgs/${orgId}`, {
	body: { name: 'Acme Robotics, Inc.' },
})

Parameters

Field Type Required Notes
name string No Workspace name.
slug string No Workspace slug.
policy object No Replacement policy settings.
budget object No Replacement budget settings.
metadata object No Replacement metadata.

Returns { org: Org } — see Org.

http.delete('/orgs/{orgId}')

Delete a workspace.

await client.http.delete(`/orgs/${orgId}`)

Returns nothing — resolves when the API confirms deletion (HTTP 204).

http.get('/orgs/{orgId}/remote-config')

Read workspace remote configuration.

const { remoteConfig } = await client.http.get<{ remoteConfig: RemoteConfig | null }>(
	`/orgs/${orgId}/remote-config`,
)

Returns { remoteConfig: RemoteConfig | null }null when no configuration has been saved. See RemoteConfig.

http.put('/orgs/{orgId}/remote-config')

Update workspace remote configuration.

const { remoteConfig } = await client.http.put<{ remoteConfig: RemoteConfig }>(
	`/orgs/${orgId}/remote-config`,
	{ body: { defaultRuntimeId: remote.remoteId } },
)

Parameters

Field Type Required Notes
defaultRuntimeId string No Preferred remote id.
enabledProviders string[] No Enabled provider ids.
defaultModelId string No Preferred model id.
settings object No Provider or remote settings.

Returns { remoteConfig: RemoteConfig } — see RemoteConfig.

http.get('/orgs/{orgId}/members')

List workspace members.

const { data: members } = await client.http.get<{ data: Membership[] }>(
	`/orgs/${orgId}/members`,
)

Returns { data: Membership[] } — see Membership.

http.put('/orgs/{orgId}/members/{memberId}')

Add or update a workspace member. POST to the same path behaves identically.

const { membership } = await client.http.put<{ membership: Membership }>(
	`/orgs/${orgId}/members/${memberId}`,
	{ body: { role: 'member' } },
)

Parameters

Field Type Required Notes
role string Yes Workspace role.
permissions string[] No Additional permissions.

Returns { membership: Membership } — see Membership.

http.delete('/orgs/{orgId}/members/{memberId}')

Remove a workspace member.

await client.http.delete(`/orgs/${orgId}/members/${memberId}`)

Returns nothing — resolves when the API confirms removal (HTTP 204).

http.get('/orgs/{orgId}/invites')

List workspace invites.

const { data: invites } = await client.http.get<{ data: Invite[] }>(
	`/orgs/${orgId}/invites`,
)

Returns { data: Invite[] } — see Invite.

http.post('/orgs/{orgId}/invites')

Invite a user to a workspace.

const { invite } = await client.http.post<{ invite: Invite }>(`/orgs/${orgId}/invites`, {
	body: { email: 'teammate@example.com', role: 'member' },
})

Parameters

Field Type Required Notes
email string Yes Invitee email address.
role string Yes Workspace role.
expiresAt string No Optional ISO expiration timestamp.

Returns { invite: Invite } — see Invite.

http.delete('/orgs/{orgId}/invites/{inviteId}')

Revoke an invite.

await client.http.delete(`/orgs/${orgId}/invites/${inviteId}`)

Returns nothing — resolves when the API confirms revocation (HTTP 204).

http.post('/invites/accept')

Accept an invite.

const { invite } = await client.http.post<{ invite: Invite | null }>('/invites/accept', {
	body: { inviteId },
})

Parameters

Field Type Required Notes
inviteId string Yes Invite id.

Returns { invite: Invite | null } — see Invite.

Types

Org

Field Type Notes
orgId string Workspace id.
name string Workspace name.
slug string Workspace slug.
policy object Workspace policy settings.
budget object Workspace budget settings.
metadata object Customer metadata.
status string Workspace status.
deletedAt string | null ISO timestamp when deleted.
createdAt string ISO timestamp.
updatedAt string ISO timestamp.

Membership

Field Type Notes
target string Membership target.
member string Member id.
orgId string Workspace id.
role string Workspace role.
permissions string[] Additional permissions.
createdAt string ISO timestamp.
updatedAt string ISO timestamp.

Invite

Field Type Notes
inviteId string Invite id.
orgId string Workspace id.
email string Invitee email address.
role string Invited role.
invitedBy string Inviter id.
status string Invite status.
expiresAt string | null Optional expiration timestamp.
createdAt string ISO timestamp.
updatedAt string ISO timestamp.