---
title: "Sync now: the presser's own matters and the firm's lists in, the deliveries' states back (billing, admin)"
method: POST
path: "/v1/connector/sync"
tags: ["connectors"]
---

# Sync now: the presser's own matters and the firm's lists in, the deliveries' states back (billing, admin)

`POST /v1/connector/sync`

## Request

- Base URL: `https://api.sixminute.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.sixminute.ai/v1/connector/sync`
- Auth: HTTP bearer

Sync now, as the person who pressed it means it, run inside this request and answered when it ends. For a practice system each member signs in to (`tenant.connector.identity` is `sign_in` on `GET /v1/me`) it is the CALLER'S OWN sync: their complete list of matters compared with the system, what changed in them, and the firm's shared lists when those are due; it never reads as a colleague and never waits on one, and a caller who is not signed in to the system syncs nothing. For a system the firm connected once it is the firm's sync, compared whole. It is also the request a client sends straight after `PUT /v1/connector` answered, since a connect syncs nothing itself: a connector that still waits on its team step (`pending_mapping`) is read exactly as a connected one, so the firm's first read runs here, with progress, before anybody pressed Done, and its status stays `pending_mapping`. While it runs, `GET /v1/connector/sync/progress` says how far it is. Where a sync of the same subject is already running (the scheduled run has the firm, or the caller), this request WAITS for it, up to a minute, and then makes its own, so the answer is a sync that happened; one it cannot outwait is answered with an `error` saying a sync is still running and zero counts, never as a sync in which nothing changed, and the progress route goes on saying `running`. It pushes nothing: an entry is released only once the practice system has taken it, inside the release. A failure is reported in the answer's `error` and on the connector row rather than as a status code: the run happened, and what it could not do is what the report is for. `deliveries` is answered with zero counts: what the practice system did with released entries is measured, never shown to the firm (R-8). A firm connected to a system this service carries no adapter for answers the not-available 422. On the operator's mount it is the firm's whole run: every signed-in member, as the scheduler runs it.

## Response `200`

What the sync did.

- object
  - `kind` 'urios' | 'legalsense' | 'fake', required
  - `started_at` string, date-time, required
  - `finished_at` string, date-time, required
  - `clients` object, required
    - `created` integer, required
    - `updated` integer, required
    - `unchanged` integer, required
  - `matters` object, required
    - `created` integer, required
    - `updated` integer, required
    - `unchanged` integer, required
  - `timekeepers` object, required
    - `created` integer, required
    - `updated` integer, required
    - `unchanged` integer, required
  - `options` object, required
    - `created` integer, required
    - `updated` integer, required
    - `unchanged` integer, required
    - `refused` integer
  - `deliveries` object, required
    - `accepted` integer, required
    - `rejected` integer, required
    - `edited` integer, required
  - `cursors` object
  - `error` string, nullable

## Other responses

- `401`: No bearer token, or one that does not verify or has expired.
- `403`: The token verified but may not do this: no organisation, not provisioned, wrong role, or a device problem.
- `404`: No such row for this tenant.
- `422`: The request is well-formed but cannot be carried out as it stands.

---

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