---
title: "Choose which capabilities your consumers are offered"
method: PUT
path: "/syncs/{syncid}/capabilities"
tags: ["Syncs"]
---

# Choose which capabilities your consumers are offered

`PUT /syncs/{syncid}/capabilities`

## Request

- Base URL: `https://api.chift.eu`
- URL: `https://api.chift.eu/syncs/{syncid}/capabilities`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/chift/apis/chift-api/docs/syncs/:syncid/capabilities/put.ts> (a function with typed inputs; its response is checked against the schema)

Turns capabilities on or off for all your consumers and sets the mode preselected where a consumer can choose. A capability that is off is absent for your consumers and stops running for them; turned on again, it runs again for the consumers who had selected it. Selections, mapping values and answers are never deleted. `cron` sets when the sync runs for every consumer that enabled it; it can always be started by hand.

## Path parameters

- `syncid` string, uuid, required

## Query parameters

- `language` string, nullable: ISO 639-1 code of the language of the texts (en, fr, nl, de, es; any case), falling back to English. Without it, translation keys.

## Request body

- UpdateSyncCapabilities
  - `offered` object: Capability key -> offered. A capability left out keeps its value.
  - `default_modes` object, nullable: Capability key -> mode key. Replaces every default mode when given; leave it out to keep them.
  - `cron` string, nullable, required: When the sync runs for each consumer that enabled it, as a cron expression; it can always be started by hand. Null: only by hand.

## Response `200`

Successful Response

- SyncCapabilities: What the account offers its consumers. Whether a capability is available depends on each consumer's connections.
  - `capabilities` SyncCapabilityItem[], required: Every capability of the sync, offered or not.
    - `key` string, required: Stable key, e.g. 'spend_to_accounting.SupplierInvoices'. Send it back as is.
    - `id` string, uuid, required: The stable uuid derived from the key, as the legacy sync routes identify the same item.
    - `title` string, required: Name to show, in the requested language; its translation key without one.
    - `description` string, required: What it does, the tooltip: in the requested language, its translation key without one.
    - `kind` 'main' | 'supporting', required: 'main': the consumer chooses it. 'supporting': shown as a tooltip, turned on by what needs it.
    - `offered` boolean, required: Whether your consumers can use it. A capability not offered is absent for them.
    - `default_mode` string, nullable, required: The mode preselected on a consumer's screen when it can choose between several; the consumer still chooses it. Null when none is set.
    - `modes` SyncCapabilityMode[], required: The alternative ways of doing it. Empty when there is only one.
      - `key` string, required: Key of the mode.
      - `title` string, required: Name to show, in the requested language; its translation key without one.
      - `description` string, required: What it does, the tooltip: in the requested language, its translation key without one.
  - `cron` string, nullable, required: When the sync runs for each consumer that enabled it, as a cron expression. Null: it runs only when started by hand.

## Other responses

- `404`: Not Found
- `422`: Unprocessable Entity

## Changes

- **2026-11-03** `020884969534`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/chift/apis/chift-api/changes/syncs/:syncid/capabilities/put.md)

---

[API](https://skmtc.dev/chift/apis/chift-api.md) - [All operations](https://skmtc.dev/chift/apis/chift-api/llms.txt) - [OpenAPI document](https://skmtc.dev/chift/apis/chift-api/revisions/020884969534?raw)
