---
title: "Re-sync a connection's tools"
method: POST
path: "/v1/connectors/connections/{connectionId}/refresh"
tags: ["Connectors"]
---

# Re-sync a connection's tools

`POST /v1/connectors/connections/{connectionId}/refresh`

## Request

- Base URL: `https://api.spacefast.com`
- URL: `https://api.spacefast.com/v1/connectors/connections/{connectionId}/refresh`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://api.spacefast.com/v1/auth/oauth2/authorize`, token URL `https://api.spacefast.com/v1/auth/oauth2/token`; client credentials, token URL `https://api.spacefast.com/v1/auth/oauth2/token`, scopes: `connectors:write`)

Re-resolves the tool catalog behind a connection. Token refresh happens on its own; this is about the tools.

## Path parameters

- `connectionId` string, required: Connection id (`cxn_`).

## Query parameters

- `team` string: Team id or slug to act for. Required only when the credential could act for more than one team.

## Response `200`

Response for status 200

- object
  - `$schema` string, uri: Canonical JSON Schema URL for this response body. The server also sends it in the `Link: rel="describedby"` response header.
  - `data` object, required: A configured instance of a connector, with a credential the control plane holds and never hands out.
    - `id` string, required: Connection id (`cxn_`). This is also the first segment of every tool address it owns.
    - `connector` string, required: Slug of the connector this connection authenticates.
    - `owner` 'team' | 'personal', required: `team` is shared with everyone on the team; `personal` is yours, and only within this team — connecting the same account for another team is another connection.
    - `serving` boolean, required
    - `displayName` string, required: What people call this connection, e.g. "Linear (support)".
    - `description` string, nullable, required: Agent-visible note on what this connection is for. Shown to models choosing between several.
    - `status` 'pending_authorization' | 'active' | 'degraded' | 'needs_reauth' | 'revoked', required: Derived connection state. Never stored, so it cannot drift from the credential it describes.
    - `identityLabel` string, nullable, required: Account label reported by the provider, when it identifies itself. Null until the first successful probe.
    - `credentialConfigured` boolean, required: Whether a usable credential is stored. The credential itself is never returned by any endpoint.
    - `authMethod` string, nullable, required: Slug of the connector auth method this connection used.
    - `scopes` string[], required: Scopes actually granted, when the provider reports them.
    - `scopesKnown` boolean: False when the provider did not report the granted scope set.
    - `isDefault` boolean, required: Whether this is the connection an agent gets when it names the connector alone.
    - `toolCount` integer, required: Tools reachable through this connection at the last sync.
    - `createdBy` string, nullable, required: User who connected it; null for first-party connections Spacefast owns.
    - `lastCheckedAt` string, date-time, nullable, required: Last health probe.
    - `revokedAt` string, date-time, nullable, required: When it was disconnected. The credential is purged; the row tombstones.
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
  - `operation` object, nullable, required: Background operation handle when asynchronous work remains after this mutation; null when it completed synchronously.
    - `id` string, required
    - `kind` string, required
    - `status` 'queued' | 'running' | 'succeeded' | 'failed' | 'canceled', required
    - `resources` object[], required
      - `type` string, required
      - `id` string, required
    - `progress` object
      - `total` integer, required
      - `completed` integer, required
      - `failed` integer, required
    - `diagnostics` object[]
      - `code` string, required: Stable snake_case diagnostic code naming the public contract that produced it.
      - `severity` 'info' | 'warning' | 'error', required: How actionable the diagnostic is.
      - `message` string, required: Human-readable explanation with enough detail to act on.
      - `path` string, nullable: Artifact path the diagnostic points at, for example "_headers:12", when one exists.
      - `provider` 'infra' | 'dns' | 'registrar' | 'runtime', nullable: Upstream system the diagnostic originated from, when not Spacefast itself.
      - `details` object, nullable: Machine-readable context for the diagnostic code.
      - `fix` string, nullable: Concrete, agent-actionable remediation hint, when one can be derived.
      - `retryable` boolean, nullable: Whether retrying the same operation can resolve this diagnostic without the caller changing anything.
    - `createdAt` string, date-time, required
    - `finishedAt` string, date-time

## Other responses

- `default`: Problem details (RFC 9457). Any 4xx/5xx response is one `application/problem+json` document.

---

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