---
title: "Get Update Offer"
method: GET
path: "/api/integrations/instances/{registration_id}/update-offer"
tags: ["mcp-oauth"]
---

# Get Update Offer

`GET /api/integrations/instances/{registration_id}/update-offer`

## Request

- Base URL: `https://app.thinqos.com` (the document declares no server; this is the origin it was published from)
- URL: `https://app.thinqos.com/api/integrations/instances/{registration_id}/update-offer`
- Auth: none declared

Whether a newer connector version adds a permission this connection could turn on.

Pure comparison of the connection's approved version with the connector's
latest version (``services/connections/upgrades.py``). Reading it changes
nothing, so the offer comes back on every load until it is acted on.

## Path parameters

- `registration_id` string, uuid, required

## Headers

- `x-impersonate-identity-id` string, nullable

## Response `200`

Successful Response

- UpdateOfferOut: A connection's pending connector update (TOS-6949, TOS-6919 Target model 4). ``available`` false: nothing to ask (already current, no new permission, or the connection has no recorded approval and so is not gated). Otherwise ``adds`` names the new permissions and ``options`` is exactly what the consent step renders: the offered version's permissions, with ``current`` holding what the connection has now and never anything new.
  - `available` boolean, required
  - `version_id` string, uuid, nullable
  - `version_no` integer, nullable
  - `adds` ConsentPermissionOut[]
    - `key` string, required
    - `label` string, required
    - `description` string, required
    - `implies` string[], required
    - `risk` string, nullable, required
    - `provider_scopes` string[], required
  - `options` ConsentOptionsOut: What the "Choose what it can do" step renders for one connection (TOS-6946). ``declared`` false means the connector declares no permissions and the page keeps today's connect flow. ``permissions`` lists only what can be asked for (what today's profile scopes already grant). ``current`` is what a reconnect keeps when the person changes nothing; ``None`` for a new connection, which starts blank.
    - `declared` boolean, required
    - `is_new` boolean, required
    - `provider` string, nullable
    - `purpose` string, nullable
    - `permissions` ConsentPermissionOut[]
      - `key` string, required
      - `label` string, required
      - `description` string, required
      - `implies` string[], required
      - `risk` string, nullable, required
      - `provider_scopes` string[], required
    - `current` string[], nullable
    - `provider_scope_notes` object
    - `try_it` string[]

## Other responses

- `422`: Validation Error

---

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