Docs
Workspace

Change the workspace's settings

PATCHhttps://api.norreach.app/v1/workspace

Changes the workspace's name, company name and time zone (the booking pages' and the workspace's default — set up booking once in the app first, 409 otherwise). There is no workspace language: each person picks theirs. Deleting the workspace, moving ownership and billing are done in the app only. Owners and admins. dry_run=true answers it as it would be.

workspace:settingsRole must allow: settings.workspaceSupports dry_runOperation id: update_workspace
PATCH/workspace
curl -X PATCH "https://api.norreach.app/v1/workspace" \
  -H "Authorization: Bearer $NORREACH_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Acme Staffing Nordic",
  "timezone": "Europe/Stockholm"
}'
Change the workspace's settings
{
  "id": "5c3e2a10-9b8d-4f6e-a1c2-3d4e5f6a7b8c",
  "object": "workspace",
  "name": "Acme Staffing Nordic",
  "timezone": "Europe/Stockholm",
  "countries": {
    "texts": [
      "SE"
    ],
    "calls": [
      "SE"
    ]
  },
  "outreach": {
    "paused": false,
    "paused_at": null,
    "paused_by": null
  }
}

Authorizations

Authorizationstringheaderrequired

Bearer authentication: send Authorization: Bearer <key>, with an API key or an OAuth access token. The key needs the scope workspace:settings. API keys and scopes

Query parameters

dry_runbooleanquery

Run every check and return what would happen, changing nothing.

Headers

Idempotency-Keystringheader

Any unique string (≤ 255). The same key with the same request returns the first answer for 24 hours.

Body

application/json

namestring
company_namestring | null
timezonestring

An IANA time zone, e.g. Europe/Stockholm — the booking pages' and the workspace's default.

Response

200application/json— Change the workspace's settings

idstring (uuid)required

An id (UUID).

object"workspace"required
namestring | nullrequired
timezonestring | nullrequired

The booking page's time zone, when one is set up.

countriesobjectrequired
Show child attributes
countries.textsstring[]required

Countries the workspace texts (ISO 3166-1 alpha-2).

countries.callsstring[]required

Countries the workspace calls.

outreachobjectrequired
Show child attributes
outreach.pausedbooleanrequired
outreach.paused_atstring | nullrequired
outreach.paused_bystring | nullrequired

The name of who paused it.

Errors

Errors are application/problem+json with a stable code.

StatusCodeMeaning
400bad_requestThe request couldn't be read.
400unknown_fieldThe request has a field this operation doesn't know.
401unauthorizedA valid API key is required.
403insufficient_scopeThis API key doesn't have the scope this operation needs.
403feature_not_enabledThe API isn't switched on for this workspace.
403role_forbiddenThe key's creator's role can't do this.
409idempotency_in_progressA request with this Idempotency-Key is still running.
409conflictThat conflicts with the current state.
413too_largeThe request body is too large.
422validation_failedThe request has invalid fields.
422idempotency_mismatchThis Idempotency-Key was used with a different request.
429rate_limitedToo many requests. Slow down and try again.
500server_errorSomething went wrong on our side.
503unavailableThe API isn't available right now. Try again shortly.