---
title: "Report Connect Completed"
method: POST
path: "/v1/teams/{team_id}/connect/completed"
tags: ["app connect"]
---

# Report Connect Completed

`POST /v1/teams/{team_id}/connect/completed`

The house watched an authorization finish; make the backend own the rest.

The connect panel learns "done" from the hosted page's message. That used
to be the END of the story on this side: the account list was re-read and
the learning was left to a provider webhook that, on a box without a
public API URL, is addressed to localhost. This is the third door into
`_learn_from_connection`, and the one a person's own press reaches
directly — so a connection made in the app can never be one nobody reads.

## Path parameters

- `team_id` string, uuid, required

## Headers

- `authorization` string, nullable
- `x-darwin-token` string, nullable

## Request body

- ConnectCompletedRequest — The house saying: the person finished signing in, I watched it land.
  - `app_slug` string, required
  - `session_id` string, uuid, nullable

## Response `200`

Successful Response

- object

## Other responses

- `422` — Validation Error

## Changes

> 33 revisions in range; 1 not diffed.

- **2026-09-11** `79b0c0f35170` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/stormy/apis/stormy-control-plane/changes/v1/teams/:team_id/connect/completed/post.md)

---

[API](https://skmtc.dev/stormy/apis/stormy-control-plane.md) · [All operations](https://skmtc.dev/stormy/apis/stormy-control-plane/llms.txt) · [OpenAPI document](https://skmtc.dev/stormy/apis/stormy-control-plane/revisions/52151384d62a?raw)
