---
title: "Remove Linkedin Channel"
method: DELETE
path: "/sequences/{sequence_id}/channels/linkedin"
tags: ["Sequence Lifecycle"]
---

# Remove Linkedin Channel

`DELETE /sequences/{sequence_id}/channels/linkedin`

## Request

- Base URL: `https://be.graph8.com/api/v1`
- URL: `https://be.graph8.com/api/v1/sequences/{sequence_id}/channels/linkedin`
- Auth: HTTP bearer

Remove this sequence's LinkedIn steps AND its LinkedIn channel, atomically.

Unbinding the channel on its own leaves the LinkedIn steps with no sender,
which makes the sequence impossible to run or resume (400, and the sequence is
reverted to DRAFTED) and pauses it outright if a contact reaches the step. This
endpoint removes both halves in one transaction so that state is never created.

A sequence with no LinkedIn binding returns 200 with zero counts rather than
404, so it is safe to call across a batch. It also cleans up sequences already
stranded with orphaned LinkedIn steps.

## Path parameters

- `sequence_id` string, required: Sequence ID

## Query parameters

- `dry_run` boolean: Preview exactly what would be removed without writing anything.
- `force` boolean: Required to operate on a LIVE or WAITING sequence. The sequence is paused afterwards either way so the result can be reviewed before it resumes sending.

## Headers

- `Authorization` string, nullable
- `X-Target-Org-Id` string, nullable

## Response `200`

Successful Response

- ApiResponseLinkedInChannelRemovalResponse
  - `data` LinkedInChannelRemovalResponse, required: Result of removing a sequence's LinkedIn steps and channel binding together. Nothing bound is a SUCCESS with zero counts, never a 404 — that is what makes the operation safe to call across a batch of sequences without inspecting each one first, and it doubles as the cleanup path for a sequence already stuck with orphaned LinkedIn steps.
    - `sequence_id` string, required: Sequence that was operated on
    - `dry_run` boolean, required: True when nothing was written
    - `provider` string, nullable: LinkedIn provider detected: NETRION, HEYREACH, or null when none was bound
    - `channel_type_removed` string, nullable: Persisted channel_type that was unbound, e.g. LINKEDIN_NETRION
    - `steps_removed` integer, required: Number of LinkedIn steps deleted
    - `channels_removed` integer, required: Number of LinkedIn channel bindings removed
    - `removed_steps` RemovedStepSummary[]: The steps that were (or would be) removed
      - `id` string, required: Step ID that was removed
      - `step_order` integer, required: Position the step held before removal
      - `step_type` string, required: Persisted step type, e.g. NETRION or HEYREACH
    - `remaining_step_count` integer, required: Steps left on the sequence afterwards
    - `remaining_channel_count` integer, required: Live channel bindings left afterwards
    - `sequence_now_empty` boolean, required: True when the sequence has no steps left
    - `status_before` string, required: Sequence status before the operation
    - `status_after` string, required: Sequence status after the operation
    - `auto_paused` boolean, required: True when a LIVE/WAITING sequence was paused as part of this operation
    - `warnings` string[]: Advisory notes the caller should surface to the user
  - `pagination` PaginationMeta
    - `page` integer, required: Current page number (1-indexed)
    - `limit` integer, required: Items per page
    - `total` integer, required: Total number of items
    - `has_next` boolean, required: Whether there are more pages
    - `next_cursor` string, nullable: Opaque cursor for the next page; null when there are no more items. Pass it back as the `cursor` query param to fetch the following page without computing page numbers.
    - `total_available` integer, nullable: Search endpoints only: how many records really match, when known. Can be larger than `total`, which is capped at the 10,000 results that can be paged. For company search this is a distinct-company estimate. Null when unknown; absent outside search.
    - `total_is_lower_bound` boolean, nullable: Search endpoints only: true when more records match than `total` shows (the result set is larger than the 10,000 results that can be paged). Absent outside search.
    - `notes` string[], nullable: Search endpoints only: plain-language notes about the result, e.g. that more records match than can be paged, or that a reversed `between` range was put in order.

## Other responses

- `422`: Validation Error

---

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