---
title: "The one URL the human opens to connect a social account: {platform}. Lasts 15 minutes, works only signed in as this account; the platform's own OAuth follows."
method: POST
path: "/api/connections/link"
---

# The one URL the human opens to connect a social account: {platform}. Lasts 15 minutes, works only signed in as this account; the platform's own OAuth follows.

`POST /api/connections/link`

## Request

- Base URL: `https://shapelessai.com`
- URL: `https://shapelessai.com/api/connections/link`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://shapelessai.com/api/auth/mcp/authorize`, token URL `https://shapelessai.com/api/auth/mcp/token`, scopes: `write`)

## Request body

- ConnectLink
  - `platform` string, required: A platform id from GET /api/platforms with oauth: true.

## Response `200`

OK

- ConnectLinkCreated
  - `platform` string, required
  - `url` string, uri, required: Hand this to the human; opens in a browser.
  - `expiresAt` string, date-time, required
  - `open` string: What to tell the human.

## Other responses

- `400`: Not a platform with oauth: true.
- `401`: No credential, or not valid.
- `403`: The key is missing the "write" scope.
- `429`: Over the key's rate limit (600 requests an hour).

---

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