---
title: "Create connection"
method: POST
path: "/v1/connections"
tags: ["Connections"]
---

# Create connection

`POST /v1/connections`

## Request

- Base URL: `https://api.markifact.com`
- URL: `https://api.markifact.com/v1/connections`
- Auth: HTTP bearer

Create a connection from credentials you already hold, for any connection type whose auth_methods include "manual". The credentials are verified with the provider before anything is stored, so a successful response means the connection works. OAuth-only types cannot be created this way; use POST /v1/connections/auth-link instead.

## Request body

- CreateConnectionRequest
  - `connection_type` string, required: A connection type whose auth_methods include "manual". See GET /v1/connections/types.
  - `name` string, required: Your label for the connection. For white-label types, posting the same type and name again replaces the stored credentials in place. Slack and Shopify are keyed on the workspace and store instead, and API-key types (Ahrefs, SEMrush, Adjust, DataForSEO, OpenAI Ads) always create a new connection.
  - `credentials` object, required: Exactly the credential_fields the type lists. A missing or unrecognised field is rejected before any call to the provider.
  - `is_private` boolean: Whether the connection should be private to the API-key user. Defaults to false, meaning shared with the workspace so other team members can see and use it. Omit it when replacing credentials on an existing connection and the current visibility is kept.

## Response `200`

Connection created and verified.

- Connection
  - `id` string, nullable, required: Public Markifact connection ID.
  - `type` string, required: Connection type.
  - `display_name` string, nullable
  - `external_id` string, nullable
  - `is_private` boolean, required
  - `created_at` integer, nullable
  - `updated_at` integer, nullable

## Other responses

- `400`: The type cannot be created from credentials, a credential field is missing or unrecognised, or the provider rejected the credentials.
- `401`: Invalid API key.
- `403`: White-label connections require the Team plan.

---

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