Skip to content

API reference

Company settings

Colours and logo, sign-in methods, company language, account status and storage.

10 actions · base URL https://api.bizisy.com/v1 · generated from the same definitions as the API.

See the organization colours, sidebar style and logo#

POST/v1/platform/appearance.getRead

Returns the colour palette (emerald, violet, indigo, ocean, amber, rose, graphite or terracotta), the sidebar style (ink = dark sidebar, light = light sidebar tinted with the palette), the company logo (logo_url: a path on the company address, null without one) and whether photos and logos can be uploaded on this server (photos_available).

Who can call it
Manage key any Manage role
Me key anyone
MCP tool
platform_appearance_get on My Workplace, HR Assistant
Method
POST with a JSON body, or GET with the input as query parameters

Input

No input: send {}.

Returns

  • palettestring (enum)required

    One of: emerald, violet, indigo, ocean, amber, rose, graphite, terracotta.

  • shell"ink" | "light"required
  • logo_urlstring | nullrequired
  • photos_availablebooleanrequired

Errors

validation_failed unauthenticated forbidden not_found rate_limited internal

curl
curl https://api.bizisy.com/v1/platform/appearance.get \
  -H "Authorization: Bearer $BIZISY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
Response
{
  "data": {
    "palette": "emerald",
    "shell": "ink",
    "logo_url": "https://acme.bizisy.com/api/org/logo?v=01k0000000000000000000000c",
    "photos_available": true
  }
}

Change the organization colours and sidebar style#

POST/v1/platform/appearance.setWrite

Changes the colour palette and/or the sidebar style used by every page of the organization. Palette: emerald (default), violet, indigo, ocean, amber, rose, graphite, terracotta. Sidebar style: ink (default, dark sidebar) or light (light sidebar tinted with the palette). Send only the fields to change; the other keeps its value. Owners and admins only. The logo has its own actions (platform_appearance_logo_upload / remove).

Who can call it
Manage key owner admin
MCP tool
platform_appearance_set on HR Assistant
Preview
?dry_run=true runs every check and saves nothing
Retries
An Idempotency-Key replays the first result

Input

  • palettestring (enum)

    Accent colour: emerald (default), violet, indigo, ocean, amber, rose, graphite or terracotta.

    One of: emerald, violet, indigo, ocean, amber, rose, graphite, terracotta.

  • shell"ink" | "light"

    Sidebar style: ink (default, dark sidebar) or light (light sidebar tinted with the palette).

Returns

  • palettestring (enum)required

    One of: emerald, violet, indigo, ocean, amber, rose, graphite, terracotta.

  • shell"ink" | "light"required
  • logo_urlstring | nullrequired
  • photos_availablebooleanrequired

Errors

validation_failed unauthenticated forbidden not_found conflict rate_limited internal

curl
curl https://api.bizisy.com/v1/platform/appearance.set \
  -H "Authorization: Bearer $BIZISY_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"palette":"ocean","shell":"ink"}'
Response
{
  "data": {
    "palette": "ocean",
    "shell": "ink",
    "logo_url": null,
    "photos_available": true
  }
}

Upload the company logo#

POST/v1/platform/appearance.logo.uploadWrite

Sets the company logo, shown in the sidebar of every page and on the sign-in and invite pages (which anyone who opens the company address can see). The image (image_base64: the file as base64) must be a JPEG, PNG or WebP of at most 2 MB and 24 megapixels (over MCP about 1.5 MB fits; larger files go through the REST API); the server checks the bytes, fits the whole logo on a transparent square, re-encodes it as a 512×512 WebP and drops all metadata. A new upload replaces the old logo. Owners and admins only. Returns logo_url. Use dry_run to check the image without saving it. rate_limited means the server is busy with other images: retry in a few seconds.

Who can call it
Manage key owner admin
MCP tool
platform_appearance_logo_upload on HR Assistant
Preview
?dry_run=true runs every check and saves nothing
Retries
An Idempotency-Key prevents a second run, but the result is never stored (it holds a secret or personal data): a retry gets a 409 that points to Activity
Body limit
3 MiB (other actions: 2 MiB)

Input

  • image_base64stringrequired

    The logo file as base64 (a data: URL is accepted): JPEG, PNG or WebP, at most 2 MB.

    1–2900000 characters.

Returns

  • logo_urlstring | nullrequired

Errors

validation_failed unauthenticated forbidden not_found conflict payload_too_large rate_limited internal

curl
curl https://api.bizisy.com/v1/platform/appearance.logo.upload \
  -H "Authorization: Bearer $BIZISY_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"image_base64":"UklGRg=="}'
Response
{
  "data": {
    "logo_url": "https://acme.bizisy.com/api/org/logo?v=01k0000000000000000000000c"
  }
}

Remove the company logo#

POST/v1/platform/appearance.logo.removeDestructive

Deletes the company logo; the sidebar and sign-in page show the coloured mark again. Succeeds when there is no logo. Owners and admins only.

Who can call it
Manage key owner admin
MCP tool
platform_appearance_logo_remove on HR Assistant
Preview
?dry_run=true runs every check and saves nothing
Retries
An Idempotency-Key prevents a second run, but the result is never stored (it holds a secret or personal data): a retry gets a 409 that points to Activity

Input

No input: send {}.

Returns

  • logo_urlstring | nullrequired

Errors

validation_failed unauthenticated forbidden not_found conflict rate_limited internal

curl
curl https://api.bizisy.com/v1/platform/appearance.logo.remove \
  -H "Authorization: Bearer $BIZISY_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{}'
Response
{
  "data": {
    "logo_url": null
  }
}

See which sign-in methods are on#

POST/v1/platform/sign_in.getRead

Returns the organization's sign-in methods (methods.password, methods.google, methods.microsoft), each with on (the organization's own choice, enforced on every new sign-in), available (Bizisy offers it at all; password always), linked (how many active members' own logins use it today) and privileged_only (owners and admins who sign in only with it). People can sign in with a method that is on and available. Use linked and privileged_only to tell the user who a change affects. Owners and admins only.

Who can call it
Manage key owner admin
MCP tool
platform_sign_in_get on HR Assistant
Method
POST with a JSON body, or GET with the input as query parameters

Input

No input: send {}.

Returns

  • methodsobjectrequired
    3 fields
    • passwordobjectrequired
      4 fields
      • onbooleanrequired

        The organization's own choice: true = turned on here. Enforced on every new sign-in.

      • availablebooleanrequired

        Bizisy offers this method at all (password always). People can only use a method that is on AND available.

      • linkedintegerrequired

        Active members whose own login uses this method today.

      • privileged_onlyintegerrequired

        Owners and admins who sign in ONLY with this method (turning it off locks them out).

    • googleobjectrequired
      4 fields
      • onbooleanrequired

        The organization's own choice: true = turned on here. Enforced on every new sign-in.

      • availablebooleanrequired

        Bizisy offers this method at all (password always). People can only use a method that is on AND available.

      • linkedintegerrequired

        Active members whose own login uses this method today.

      • privileged_onlyintegerrequired

        Owners and admins who sign in ONLY with this method (turning it off locks them out).

    • microsoftobjectrequired
      4 fields
      • onbooleanrequired

        The organization's own choice: true = turned on here. Enforced on every new sign-in.

      • availablebooleanrequired

        Bizisy offers this method at all (password always). People can only use a method that is on AND available.

      • linkedintegerrequired

        Active members whose own login uses this method today.

      • privileged_onlyintegerrequired

        Owners and admins who sign in ONLY with this method (turning it off locks them out).

Errors

validation_failed unauthenticated forbidden not_found rate_limited internal

curl
curl https://api.bizisy.com/v1/platform/sign_in.get \
  -H "Authorization: Bearer $BIZISY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
Response
{
  "data": {
    "methods": {
      "password": {
        "on": true,
        "available": true,
        "linked": 12,
        "privileged_only": 2
      },
      "google": {
        "on": true,
        "available": true,
        "linked": 4,
        "privileged_only": 0
      },
      "microsoft": {
        "on": true,
        "available": false,
        "linked": 0,
        "privileged_only": 0
      }
    }
  }
}

Turn sign-in methods on or off#

POST/v1/platform/sign_in.setWrite

Turns password, Google and Microsoft sign-in on or off for the whole organization. Send only the methods to change, e.g. { "password": false }. Rules: at least one method that Bizisy offers must stay on; a method Bizisy does not offer yet (see available in platform_sign_in_get) cannot be turned on; and you cannot lock yourself out by turning off every method your own login uses (connect Google or Microsoft from My profile first). A method Bizisy does not offer can always be turned off. Turning a method off refuses new sign-ins, invite acceptances and password resets with it; people already signed in stay signed in until their session ends (7 days) or they sign out. API keys are a separate credential and keep working whatever is chosen here (revoke them under API keys). Check linked and privileged_only in platform_sign_in_get to tell the user who is affected, and preview with dry_run first. Owners and admins only.

Who can call it
Manage key owner admin
MCP tool
platform_sign_in_set on HR Assistant
Preview
?dry_run=true runs every check and saves nothing
Retries
An Idempotency-Key replays the first result

Input

  • passwordboolean

    Email and password sign-in: true turns it on, false turns it off.

  • googleboolean

    Continue with Google: true turns it on, false turns it off. Only when available on Bizisy.

  • microsoftboolean

    Continue with Microsoft: true turns it on, false turns it off. Only when available on Bizisy.

Returns

  • methodsobjectrequired
    3 fields
    • passwordobjectrequired
      4 fields
      • onbooleanrequired

        The organization's own choice: true = turned on here. Enforced on every new sign-in.

      • availablebooleanrequired

        Bizisy offers this method at all (password always). People can only use a method that is on AND available.

      • linkedintegerrequired

        Active members whose own login uses this method today.

      • privileged_onlyintegerrequired

        Owners and admins who sign in ONLY with this method (turning it off locks them out).

    • googleobjectrequired
      4 fields
      • onbooleanrequired

        The organization's own choice: true = turned on here. Enforced on every new sign-in.

      • availablebooleanrequired

        Bizisy offers this method at all (password always). People can only use a method that is on AND available.

      • linkedintegerrequired

        Active members whose own login uses this method today.

      • privileged_onlyintegerrequired

        Owners and admins who sign in ONLY with this method (turning it off locks them out).

    • microsoftobjectrequired
      4 fields
      • onbooleanrequired

        The organization's own choice: true = turned on here. Enforced on every new sign-in.

      • availablebooleanrequired

        Bizisy offers this method at all (password always). People can only use a method that is on AND available.

      • linkedintegerrequired

        Active members whose own login uses this method today.

      • privileged_onlyintegerrequired

        Owners and admins who sign in ONLY with this method (turning it off locks them out).

Errors

validation_failed unauthenticated forbidden not_found conflict rate_limited internal

curl
curl https://api.bizisy.com/v1/platform/sign_in.set \
  -H "Authorization: Bearer $BIZISY_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"password":true,"google":true,"microsoft":true}'
Response
{
  "data": {
    "methods": {
      "password": {
        "on": false,
        "available": true,
        "linked": 12,
        "privileged_only": 2
      },
      "google": {
        "on": true,
        "available": true,
        "linked": 4,
        "privileged_only": 0
      },
      "microsoft": {
        "on": false,
        "available": false,
        "linked": 0,
        "privileged_only": 0
      }
    }
  }
}

Change the company language#

POST/v1/platform/language.set_companyWrite

Sets the company's default language: used by everyone who has not chosen their own language (in Me → My profile) and for the company's emails to them. Languages: en (English), pt-PT (Português), es-ES (Español), de-DE (Deutsch), fr-FR (Français), it-IT (Italiano). null = automatic: each person's browser language. People who chose a language keep it. Owners and admins only.

Who can call it
Manage key owner admin
MCP tool
platform_language_set_company on HR Assistant
Preview
?dry_run=true runs every check and saves nothing
Retries
An Idempotency-Key replays the first result

Input

  • language"en" | "pt-PT" | "es-ES" | "de-DE" | "fr-FR" | "it-IT"required

    One of en, pt-PT, es-ES, de-DE, fr-FR, it-IT, or null for automatic (the browser's language).

Returns

  • language"en" | "pt-PT" | "es-ES" | "de-DE" | "fr-FR" | "it-IT"required

Errors

validation_failed unauthenticated forbidden not_found conflict rate_limited internal

curl
curl https://api.bizisy.com/v1/platform/language.set_company \
  -H "Authorization: Bearer $BIZISY_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"language":"pt-PT"}'
Response
{
  "data": {
    "language": "pt-PT"
  }
}

Company account status#

POST/v1/platform/org.statusRead

Whether the company account is active or closing (closed, with its data deleted on delete_after unless an owner reopens it), and whether you may close it (can_close: an owner in the web app). Closing, reopening and the full company export happen only in the web app: send the user to Manage → Settings → Close account.

Who can call it
Manage key any Manage role
MCP tool
platform_org_status on HR Assistant
Method
POST with a JSON body, or GET with the input as query parameters

Input

No input: send {}.

Returns

  • status"active" | "closing"required
  • closed_atstring | nullrequired
  • delete_afterstring | nullrequired
  • can_closebooleanrequired

    The caller may close the company: an owner signed in to the web app.

Errors

validation_failed unauthenticated forbidden not_found rate_limited internal

curl
curl https://api.bizisy.com/v1/platform/org.status \
  -H "Authorization: Bearer $BIZISY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
Response
{
  "data": {
    "status": "active",
    "closed_at": null,
    "delete_after": null,
    "can_close": true
  }
}

See storage#

POST/v1/platform/storage.getRead

Returns the company's storage: bytes stored now (documents, profile photos and the logo), the highest size this month (what storage is billed on), what is included (500 MB), the price above it (€0.10 per 0.1 GB per month, i.e. €1 per GB, excluding VAT, billed with the monthly invoice on the month's highest size), this month's estimate, and the limits (largest file, company ceiling, self uploads per person per month). Owners, admins and HR.

Who can call it
Manage key owner admin hr
MCP tool
platform_storage_get on HR Assistant
Method
POST with a JSON body, or GET with the input as query parameters

Input

No input: send {}.

Returns

14 fields
  • bytesintegerrequired

    Bytes stored now: documents, profile photos and the company logo.

  • filesintegerrequired
  • monthstringrequired

    The current billing month (YYYY-MM, UTC).

  • peak_bytesintegerrequired

    The highest size reached this month: what the month is billed on (deleting files does not lower it).

  • free_bytesintegerrequired

    Included in the price: 500 MB (decimal: 1 GB = 1000 MB).

  • unit_bytesintegerrequired

    One billing unit: 0.1 GB (100 MB).

  • unit_price_centsintegerrequired

    €0.10 per unit per month, excluding VAT (= €1 per GB).

  • billable_unitsintegerrequired

    ceil(max(0, peak − 500 MB) / 100 MB) for this month so far.

  • estimated_centsintegerrequired

    billable_units × unit price, excluding VAT, for this month so far.

  • billedbooleanrequired

    Storage is charged for this company (billing exists and has started); false before billing has started.

  • limitsobjectrequired
    4 fields
    • max_file_mbintegerrequired

      Largest file, in MB (1–100; default 25).

      From 1 to 100.

    • ceiling_gbintegerrequired

      Company storage ceiling, in GB (1–200; at most 10 until paid billing is running; default 10).

      From 1 to 200.

    • self_files_per_monthintegerrequired

      Files each person may add to "From me" per month (0–200; 0 turns self upload off; default 20).

      From 0 to 200.

    • self_mb_per_monthintegerrequired

      MB each person may add to "From me" per month (0–1000; 0 turns self upload off; default 100).

      From 0 to 1000.

  • defaultsobjectrequired
    4 fields
    • max_file_mbintegerrequired

      Largest file, in MB (1–100; default 25).

      From 1 to 100.

    • ceiling_gbintegerrequired

      Company storage ceiling, in GB (1–200; at most 10 until paid billing is running; default 10).

      From 1 to 200.

    • self_files_per_monthintegerrequired

      Files each person may add to "From me" per month (0–200; 0 turns self upload off; default 20).

      From 0 to 200.

    • self_mb_per_monthintegerrequired

      MB each person may add to "From me" per month (0–1000; 0 turns self upload off; default 100).

      From 0 to 1000.

  • ceiling_max_gbintegerrequired

    The highest ceiling this company may set now.

  • by_moduleobject[]required

    documents = documents; org = profile photos; platform = the company logo.

    3 fields
    • modulestringrequired
    • bytesintegerrequired
    • filesintegerrequired

Errors

validation_failed unauthenticated forbidden not_found rate_limited internal

curl
curl https://api.bizisy.com/v1/platform/storage.get \
  -H "Authorization: Bearer $BIZISY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
Response
{
  "data": {
    "bytes": 320000000,
    "files": 41,
    "month": "2026-10",
    "peak_bytes": 340000000,
    "free_bytes": 500000000,
    "unit_bytes": 100000000,
    "unit_price_cents": 10,
    "billable_units": 0,
    "estimated_cents": 0,
    "billed": false,
    "limits": {
      "max_file_mb": 25,
      "ceiling_gb": 10,
      "self_files_per_month": 20,
      "self_mb_per_month": 100
    },
    "defaults": {
      "max_file_mb": 25,
      "ceiling_gb": 10,
      "self_files_per_month": 20,
      "self_mb_per_month": 100
    },
    "ceiling_max_gb": 10,
    "by_module": [
      {
        "module": "documents",
        "bytes": 318000000,
        "files": 30
      },
      {
        "module": "org",
        "bytes": 2000000,
        "files": 11
      }
    ]
  }
}

Change storage limits#

POST/v1/platform/storage.set_limitsWrite

Changes the storage limits: largest file (1–100 MB), company ceiling (1–200 GB; at most 10 GB until paid billing is running), and self uploads per person per month (0–200 files and 0–1000 MB; 0 turns "From me" uploads off). Send only the limits to change. A ceiling below what is stored blocks new uploads until files are deleted; nothing is deleted. Owners and admins.

Who can call it
Manage key owner admin
MCP tool
platform_storage_set_limits on HR Assistant
Preview
?dry_run=true runs every check and saves nothing
Retries
An Idempotency-Key replays the first result

Input

  • max_file_mbinteger

    Largest file, in MB (1–100; default 25).

    From 1 to 100.

  • ceiling_gbinteger

    Company storage ceiling, in GB (1–200; at most 10 until paid billing is running; default 10).

    From 1 to 200.

  • self_files_per_monthinteger

    Files each person may add to "From me" per month (0–200; 0 turns self upload off; default 20).

    From 0 to 200.

  • self_mb_per_monthinteger

    MB each person may add to "From me" per month (0–1000; 0 turns self upload off; default 100).

    From 0 to 1000.

Returns

14 fields
  • bytesintegerrequired

    Bytes stored now: documents, profile photos and the company logo.

  • filesintegerrequired
  • monthstringrequired

    The current billing month (YYYY-MM, UTC).

  • peak_bytesintegerrequired

    The highest size reached this month: what the month is billed on (deleting files does not lower it).

  • free_bytesintegerrequired

    Included in the price: 500 MB (decimal: 1 GB = 1000 MB).

  • unit_bytesintegerrequired

    One billing unit: 0.1 GB (100 MB).

  • unit_price_centsintegerrequired

    €0.10 per unit per month, excluding VAT (= €1 per GB).

  • billable_unitsintegerrequired

    ceil(max(0, peak − 500 MB) / 100 MB) for this month so far.

  • estimated_centsintegerrequired

    billable_units × unit price, excluding VAT, for this month so far.

  • billedbooleanrequired

    Storage is charged for this company (billing exists and has started); false before billing has started.

  • limitsobjectrequired
    4 fields
    • max_file_mbintegerrequired

      Largest file, in MB (1–100; default 25).

      From 1 to 100.

    • ceiling_gbintegerrequired

      Company storage ceiling, in GB (1–200; at most 10 until paid billing is running; default 10).

      From 1 to 200.

    • self_files_per_monthintegerrequired

      Files each person may add to "From me" per month (0–200; 0 turns self upload off; default 20).

      From 0 to 200.

    • self_mb_per_monthintegerrequired

      MB each person may add to "From me" per month (0–1000; 0 turns self upload off; default 100).

      From 0 to 1000.

  • defaultsobjectrequired
    4 fields
    • max_file_mbintegerrequired

      Largest file, in MB (1–100; default 25).

      From 1 to 100.

    • ceiling_gbintegerrequired

      Company storage ceiling, in GB (1–200; at most 10 until paid billing is running; default 10).

      From 1 to 200.

    • self_files_per_monthintegerrequired

      Files each person may add to "From me" per month (0–200; 0 turns self upload off; default 20).

      From 0 to 200.

    • self_mb_per_monthintegerrequired

      MB each person may add to "From me" per month (0–1000; 0 turns self upload off; default 100).

      From 0 to 1000.

  • ceiling_max_gbintegerrequired

    The highest ceiling this company may set now.

  • by_moduleobject[]required

    documents = documents; org = profile photos; platform = the company logo.

    3 fields
    • modulestringrequired
    • bytesintegerrequired
    • filesintegerrequired

Errors

validation_failed unauthenticated forbidden not_found conflict rate_limited internal

curl
curl https://api.bizisy.com/v1/platform/storage.set_limits \
  -H "Authorization: Bearer $BIZISY_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "max_file_mb": 25,
  "ceiling_gb": 10,
  "self_files_per_month": 0,
  "self_mb_per_month": 0
}'
Response
{
  "data": {
    "bytes": 320000000,
    "files": 41,
    "month": "2026-10",
    "peak_bytes": 340000000,
    "free_bytes": 500000000,
    "unit_bytes": 100000000,
    "unit_price_cents": 10,
    "billable_units": 0,
    "estimated_cents": 0,
    "billed": false,
    "limits": {
      "max_file_mb": 25,
      "ceiling_gb": 10,
      "self_files_per_month": 20,
      "self_mb_per_month": 100
    },
    "defaults": {
      "max_file_mb": 25,
      "ceiling_gb": 10,
      "self_files_per_month": 20,
      "self_mb_per_month": 100
    },
    "ceiling_max_gb": 10,
    "by_module": [
      {
        "module": "documents",
        "bytes": 318000000,
        "files": 30
      },
      {
        "module": "org",
        "bytes": 2000000,
        "files": 11
      }
    ]
  }
}

Something missing or wrong on this page? Write to hello@bizisy.com.

Developer docs