API reference

Organisations and projects

Organisations, projects, members, roles, branding and account tokens.

Scopes for this area: workspace:read, workspace:write and workspace:admin.

134 operations

product

MethodRouteWhat it doesLevelCommand
GET/productsThe products of the project.readrivier workspace product list
POST/productsAdd a product.writerivier workspace product create
GET/products/{id}A product with its profile.readrivier workspace product get
PATCH/products/{id}Change a product.writerivier workspace product update
POST/products/{id}/archiveTake a product out of use.writerivier workspace product archive
POST/products/{id}/restoreBring an archived product back.writerivier workspace product restore

resource

MethodRouteWhat it doesLevelCommand
GET/resourcesLinks, documents and handles kept at a level.readrivier workspace resource list
POST/resourcesKeep a resource at a level.writerivier workspace resource add
DELETE/resources/{id}Remove a resource.writerivier workspace resource remove

overview

MethodRouteWhat it doesLevelCommand
GET/workspaceThe workspace in one read: agents, connections, what is waiting.readrivier workspace overview get
GET/workspace/summaryCounts for the dashboard.readrivier workspace overview summary
GET/workspace/homeThe home screen's data.readrivier workspace overview home
GET/workspace/youThe signed-in person, their role and workspace.readrivier workspace overview you
GET/workspace/queueEverything that arrived and still needs a person.readrivier workspace overview queue

activity

MethodRouteWhat it doesLevelCommand
GET/workspace/activityWhat agents did, newest first.readrivier workspace activity list
GET/workspace/activity.csvThe activity log as CSV.readrivier workspace activity csv

setup

MethodRouteWhat it doesLevelCommand
GET/workspace/setup/guideThe setup checklist and what is done.readrivier workspace setup guide

portfolio

MethodRouteWhat it doesLevelCommand
GET/workspace/portfolioEvery workspace of the organisation at a glance.readrivier workspace portfolio get

gap

MethodRouteWhat it doesLevelCommand
GET/workspace/gapsQuestions customers ask that the knowledge cannot answer.readrivier workspace gap list
POST/workspace/gaps/pageDraft a page that closes a gap.writerivier workspace gap page

watch

MethodRouteWhat it doesLevelCommand
GET/workspace/watchAnswers drafted in watch mode, awaiting a verdict.readrivier workspace watch list
POST/workspace/watch/{id}/verdictSay whether a drafted answer was good.writerivier workspace watch verdict

service

MethodRouteWhat it doesLevelCommand
POST/workspace/runRun one action of a connected service now.writerivier workspace service run

brand

MethodRouteWhat it doesLevelCommand
GET/workspace/brandThe business's name, domain, sender address and accent.readrivier workspace brand get
PUT/workspace/brandChange the business profile.writerivier workspace brand update

people

MethodRouteWhat it doesLevelCommand
GET/workspace/peopleWho has a role in the workspace.readrivier workspace people list
POST/workspace/peopleInvite a person with a role.adminrivier workspace people invite
DELETE/workspace/people/{id}Remove a person.adminrivier workspace people remove
PATCH/workspace/people/{id}Change a person's role.adminrivier workspace people set role

plan

MethodRouteWhat it doesLevelCommand
GET/workspace/planThe plan and what it allows.readrivier workspace plan get

organization

MethodRouteWhat it doesLevelCommand
GET/organizationsThe organisations the person belongs to.readrivier workspace organization list
POST/organizationsCreate an organisation. An account token needs account:write.adminrivier workspace org create
PATCH/organizations/{id}Rename an organisation.adminrivier workspace organization update
DELETE/organizations/{id}Delete an organisation.adminrivier workspace organization delete
POST/organizations/{id}/activateWork inside an organisation.adminrivier workspace organization activate
GET/organizations/{id}/compliance/profileAn organisation's compliance defaults.readrivier workspace organization compliance profile
PUT/organizations/{id}/compliance/profileSet an organisation's compliance defaults.adminrivier workspace organization set compliance profile

member

MethodRouteWhat it doesLevelCommand
GET/organizations/{id}/membersAn organisation's members and which invitations are still pending. An account token needs account:members.readrivier workspace org member list
POST/organizations/{id}/membersInvite a member by address with a role, and an optional displayName and language for the invitation mail. An address with no account gets a link to set a password. An account token needs account:members and can invite approver, editor, member or viewer, never admin or owner.adminrivier workspace org member invite
PATCH/organizations/{id}/members/{mid}Change a member's role. An account token needs account:members, can set approver, editor, member or viewer, and cannot change an admin or owner.adminrivier workspace org member role
DELETE/organizations/{id}/members/{mid}Remove a member. An account token needs account:members and cannot remove an admin or owner.adminrivier workspace org member remove

org workspace

MethodRouteWhat it doesLevelCommand
GET/organizations/{id}/workspacesAn organisation's workspaces.readrivier workspace org workspace list
POST/organizations/{id}/workspacesAdd a workspace.adminrivier workspace org workspace create
DELETE/organizations/{id}/workspaces/{wid}Remove a workspace.adminrivier workspace org workspace delete
PATCH/organizations/{id}/workspaces/{wid}Rename a workspace, or move it to another organisation by giving organizationId (an owner or admin of both; a person signs in for this, a key cannot).adminrivier workspace org workspace rename
GET/organizations/{id}/workspaces/archivedThe archived workspaces.readrivier workspace org workspace archived
POST/organizations/{id}/workspaces/{wid}/restoreBring an archived workspace back, within the plan's limit.adminrivier workspace org workspace restore
GET/organizations/{id}/workspaces/{wid}/retire-planWhat retiring an archived workspace removes, by area with counts and sizes, what stops it, and when the schedule would retire it.readrivier workspace org workspace retire plan
POST/organizations/{id}/workspaces/{wid}/retireRemove an archived workspace for good. The name is typed and the loss acknowledged; the domain registration and DNS are never touched.adminrivier workspace org workspace retire
GET/organizations/{id}/workspaces/{wid}/clear-planWhat clearing some areas of a workspace removes, and which other areas must be cleared with them.readrivier workspace org workspace clear plan
POST/organizations/{id}/workspaces/{wid}/clearRemove the data of some areas, or all of them, and keep the workspace, its settings, keys, members, plan and domains.adminrivier workspace org workspace clear
POST/organizations/{id}/workspaces/{wid}/exportMake the export of a workspace's records, kept for seven days.adminrivier workspace org workspace export
GET/organizations/{id}/workspaces/{wid}/exportDownload the export made for a workspace.readrivier workspace org workspace export download

profile

MethodRouteWhat it doesLevelCommand
GET/account/profileThe signed-in person's profile: name, language, time zone, formats, accessibility and theme.readrivier workspace profile get
PATCH/account/profileChange any part of the profile.writerivier workspace profile update

notification

MethodRouteWhat it doesLevelCommand
GET/account/notificationsNotification choices per topic and channel, digest and quiet hours; a project id gives that project's override.readrivier workspace notification get
PUT/account/notificationsChange notification choices. Security email cannot be switched off.writerivier workspace notification set

security

MethodRouteWhat it doesLevelCommand
GET/account/securityWhere the person is signed in, a pending deletion, and where passkeys are managed.readrivier workspace security get

account data

MethodRouteWhat it doesLevelCommand
POST/account/exportEverything held about the person, as JSON.writerivier workspace account data export

account deletion

MethodRouteWhat it doesLevelCommand
GET/account/deleteWhether a deletion of the account is waiting, and the phrase to type.readrivier workspace account deletion get
POST/account/deleteAsk for the account to be deleted after a 14-day cooling-off.writerivier workspace account deletion request
DELETE/account/deleteCancel a pending account deletion.writerivier workspace account deletion cancel

account token

MethodRouteWhat it doesLevelCommand
GET/account/tokensThe account's tokens: name, scopes, organisation, last use and expiry. Never a secret.readrivier workspace account token list
POST/account/tokensMake an account token for the command line or an agent. The secret is shown once. Needs a signed-in person; a token cannot make a token.writerivier workspace account token create
POST/account/tokens/{id}/rotateReplace a token with a twin; the old one keeps working for the overlap. The new secret is shown once.writerivier workspace account token rotate
DELETE/account/tokens/{id}Revoke a token at once.writerivier workspace account token revoke

org profile

MethodRouteWhat it doesLevelCommand
GET/organizations/{id}/profileThe organisation's legal entity, address, billing contact, defaults and data region in words.readrivier workspace org profile get
PATCH/organizations/{id}/profileChange the organisation's profile (owner, admin).adminrivier workspace org profile update

org capability

MethodRouteWhat it doesLevelCommand
GET/organizations/{id}/capabilitiesWhat the person can do in the organisation, with the reason for each thing they cannot.readrivier workspace org capability list

role

MethodRouteWhat it doesLevelCommand
GET/organizations/{id}/rolesThe roles in plain words.readrivier workspace role list

invitation

MethodRouteWhat it doesLevelCommand
GET/organizations/{id}/invitationsInvitations not yet accepted, with state and expiry.readrivier workspace invitation list
POST/organizations/{id}/members/{mid}/resendSend an invitation again with a new expiry.adminrivier workspace invitation resend
DELETE/organizations/{id}/members/{mid}/invitationWithdraw an invitation that was not accepted.adminrivier workspace invitation revoke

audit

MethodRouteWhat it doesLevelCommand
GET/organizations/{id}/auditWho did what in the organisation; filter by action, actor and dates.readrivier workspace audit list
GET/organizations/{id}/audit.csvThe audit log as CSV.readrivier workspace audit csv

transfer

MethodRouteWhat it doesLevelCommand
GET/organizations/{id}/transferA waiting ownership hand-over, if any.readrivier workspace transfer get
POST/organizations/{id}/transferHand ownership to a member; they become owner when they accept.adminrivier workspace transfer request
DELETE/organizations/{id}/transferCancel a waiting hand-over.adminrivier workspace transfer cancel
POST/organizations/{id}/transfer/acceptAccept ownership that was handed to you.adminrivier workspace transfer accept

org deletion

MethodRouteWhat it doesLevelCommand
GET/organizations/{id}/delete-requestWhether deletion of the organisation is waiting, and the phrase to type.readrivier workspace org deletion get
POST/organizations/{id}/delete-requestAsk for the organisation to be deleted after a 14-day cooling-off.adminrivier workspace org deletion request
DELETE/organizations/{id}/delete-requestCancel a pending organisation deletion.adminrivier workspace org deletion cancel

org retention

MethodRouteWhat it doesLevelCommand
GET/organizations/{id}/archive-retentionHow many days an archived workspace is kept before it is retired, with the allowed range.readrivier workspace org retention get
PUT/organizations/{id}/archive-retentionChange how long archived workspaces are kept (30 to 365 days).adminrivier workspace org retention set

org domain

MethodRouteWhat it doesLevelCommand
GET/organizations/{id}/domainsThe organisation's domains across its workspaces, and whether ownership is proven by the DNS record.readrivier workspace org domain list

role definition

MethodRouteWhat it doesLevelCommand
GET/organizations/{id}/role-definitionsThe permission table: the built-in roles and the organisation's custom roles.readrivier workspace role definition list
POST/organizations/{id}/role-definitionsMake a custom role: a built-in role plus areas granted and denied.adminrivier workspace role definition create
PATCH/organizations/{id}/role-definitions/{rid}Change a custom role.adminrivier workspace role definition update
DELETE/organizations/{id}/role-definitions/{rid}Archive a custom role; people keep the built-in role it was based on.adminrivier workspace role definition archive

role assignment

MethodRouteWhat it doesLevelCommand
PUT/workspace/people/{pid}/role-definitionGive a person on this workspace a custom role, or none.adminrivier workspace role assignment set

org library

MethodRouteWhat it doesLevelCommand
POST/org-library/itemsShare one of this project's templates, segments, forms or brand assets with the organisation's other projects. Sharing it again publishes a new version.writerivier workspace org library publish
GET/org-library/itemsWhat the organisation has shared: templates, brand assets, segments and forms, with folders and tags, and which ones this project already uses.readrivier workspace org library list
GET/org-library/items/{id}One shared item in full, with its versions and how many projects use it.readrivier workspace org library get
PATCH/org-library/items/{id}Rename a shared item, move it to a folder, tag it or set its language.writerivier workspace org library update
DELETE/org-library/items/{id}Take an item out of the organisation library. Copies already in projects are kept.writerivier workspace org library remove
POST/org-library/items/{id}/versionsPublish a new version of a shared item from this project's changed copy. Projects using it are offered the update.writerivier workspace org library new version
POST/org-library/items/{id}/useUse a shared item in this project: a copy that remembers where it came from. With refresh, bring an earlier copy up to the latest version.writerivier workspace org library use
GET/org-library/updatesCopies in this project that are behind the organisation library.readrivier workspace org library updates

org library settings

MethodRouteWhat it doesLevelCommand
GET/org-library/settingsWhether this organisation lets a contact's consent travel with it between projects.readrivier workspace org library settings get
PUT/org-library/settingsAllow or forbid consent travelling with a contact between projects. A person sets this.writerivier workspace org library settings set

org library contact

MethodRouteWhat it doesLevelCommand
POST/org-library/contacts/adoptTake a contact another project shared into this one. It arrives without consent and a pending record is written; a person may carry the consent along when the organisation allows it.writerivier workspace org library contact adopt

project hub

MethodRouteWhat it doesLevelCommand
GET/project-hubThe project as one page: counts of campaigns, templates, segments, lists, forms and contacts, domains, numbers and assets, the sender, recent campaigns, library updates, setup progress and what is blocking.readrivier workspace project hub get
GET/project-hub/searchSearch across the project's contacts, campaigns, templates, segments, forms, brand assets, domains, numbers and the organisation library.readrivier workspace project hub search
POST/project-hub/campaign-from-briefDraft a campaign from a brief: picks the segment among those that can be written to, reuses the best template (the organisation's if the project has none), writes the copy in the audience language and runs the check. It stops at a draft: a person approves it before anything is sent.writerivier workspace project hub draft from brief

org client

MethodRouteWhat it doesLevelCommand
GET/org/{orgId}/clientsThe organization's clients: search by name, email or tag, active ones by default (archived: include or only), paged.readrivier clients list
GET/org/{orgId}/clients/{id}One client with its contacts.readrivier clients get
POST/org/{orgId}/clientsAdd a client (a name is unique among the organization's active clients). Editor and above.writerivier clients create
PATCH/org/{orgId}/clients/{id}Change any part of a client; fields left out stay as they are.writerivier clients update
POST/org/{orgId}/clients/{id}/archiveArchive a client: hidden from lists and pickers, its history and documents kept.writerivier clients archive
POST/org/{orgId}/clients/{id}/restoreBring an archived client back.writerivier clients restore
POST/org/{orgId}/clients/importLoad clients from CSV text. With apply false (the default) it shows what would be created, changed or skipped and writes nothing.writerivier clients import
GET/org/{orgId}/clients/{id}/eventsWhat happened to a client, newest first.readrivier clients events
GET/org/{orgId}/clients/{clientId}/documentsEvery quote, proposal and invoice of a client across the organization's projects, newest first.readrivier clients documents

org contact

MethodRouteWhat it doesLevelCommand
GET/org/{orgId}/clients/{id}/contactsThe contacts of a client.readrivier clients contacts list
POST/org/{orgId}/clients/{id}/contactsAdd a contact to a client (a name or an email address is needed; one can be primary, several can be copied by default).writerivier clients contacts add
PATCH/org/{orgId}/clients/{id}/contacts/{contactId}Change a contact of a client.writerivier clients contacts update
DELETE/org/{orgId}/clients/{id}/contacts/{contactId}Remove a contact from a client.writerivier clients contacts remove

org branding

MethodRouteWhat it doesLevelCommand
GET/org/{orgId}/brandingThe branding documents are printed with: names, address, tax and registration numbers, bank details, footer, accent colour, font, sender name, reply-to, and whether a logo is set.readrivier branding get
PUT/org/{orgId}/brandingChange the branding; fields left out stay as they are. Needs an admin (a person who is owner or admin, or an admin key).writerivier branding set
PUT/org/{orgId}/branding/logoSet the logo (variant light or dark): base64 PNG, JPEG, WebP or SVG up to 512 KB; an SVG is sanitised. Needs an admin.writerivier branding logo set
GET/org/{orgId}/branding/logoThe logo file (variant light or dark).readrivier branding logo get

org template

MethodRouteWhat it doesLevelCommand
GET/org/{orgId}/templatesThe organization's own templates (archived: include or only) with the starter gallery, optionally for one kind and language.readrivier templates list
GET/org/{orgId}/templates/galleryThe starter gallery: four layouts per kind (minimal, classic, modern, bold) and, for proposals, four use cases, in English, Dhivehi and Arabic.readrivier templates gallery
GET/org/{orgId}/templates/{id}One template.readrivier templates get
POST/org/{orgId}/templatesMake a template: by hand, from a gallery starter (fromGallery), or from a document's content (a body with lines, which drops any tax field on them). Editor and above.writerivier templates create
PATCH/org/{orgId}/templates/{id}Change a template; fields left out stay as they are. An editor changes templates they made, an admin any.writerivier templates update
POST/org/{orgId}/templates/{id}/duplicateA copy of a template (optionally named); the copy is never the default.writerivier templates duplicate
DELETE/org/{orgId}/templates/{id}Archive a template: out of the pickers, its copies in documents untouched. Needs an admin.writerivier templates archive
POST/org/{orgId}/templates/{id}/defaultMake a template the default of its kind (isDefault false clears it). Needs an admin.writerivier templates default
POST/org/{orgId}/templates/applyA copy of a template's (or a gallery starter's) content to place into a new document; nothing is saved.writerivier templates apply
POST/org/{orgId}/templates/previewThe renderable view of a template or starter with the organization's branding and sample figures; nothing is saved.writerivier templates preview