## Unmerge a post

**post** `/v2/posts/unmerge`

Restores a post that was previously merged.

The restored post returns to public post lists. Its votes and comments are
removed from the destination post and restored on the source post.

Retrying an unmerge after it succeeds is safe and returns the restored post.

The response contains the restored post.

### Header Parameters

- `"Featurebase-Version": optional "2026-01-01.nova" or "2025-12-12.clover"`

  - `"2026-01-01.nova"`

  - `"2025-12-12.clover"`

### Body Parameters

- `postId: string`

  ID of the merged post to restore

### Returns

- `Post object { id, access, assigneeId, 20 more }`

  - `id: string`

    Unique identifier

  - `access: PostAccess`

    - `companyExternalIds: array of string`

      External company IDs explicitly granted access to this post. Empty array means no company-level restrictions. Non-empty means only users belonging to these companies can see the post.

    - `userIds: array of string`

      User IDs explicitly granted access to this post. Empty array means no user-level restrictions (post uses board/org visibility). Non-empty means only these users (plus admins) can see the post.

  - `assigneeId: string`

    ID of the admin assigned to this post, null if unassigned

  - `author: PostAuthor`

    - `id: string`

      Author unique identifier

    - `email: string`

      Author email (if available)

    - `name: string`

      Author display name

    - `profilePicture: string`

      Author profile picture URL

    - `type: "admin" or "customer" or "guest" or 3 more`

      Type of user who authored the post

      - `"admin"`

      - `"customer"`

      - `"guest"`

      - `"integration"`

      - `"bot"`

      - `"lead"`

  - `boardId: string`

    Board (category) ID this post belongs to

  - `commentCount: number`

    Total number of comments

  - `content: string`

    Post content in HTML format

  - `createdAt: string`

    ISO 8601 timestamp when created

  - `customFields: map[unknown]`

    Custom field values keyed by field ID

  - `eta: string`

    Estimated completion time as ISO 8601 timestamp, null if not set

  - `features: PostFeatures`

    - `commentsEnabled: boolean`

      Whether comments are allowed on this post

  - `inReview: boolean`

    Whether the post is pending moderation review

  - `integrations: object { clickup, devops, github, 4 more }`

    Third-party integration links associated with this post

    - `clickup: array of object { id, title, url }`

      - `id: string`

        ClickUp task ID

      - `title: string`

        ClickUp task title

      - `url: string`

        URL to the ClickUp task

    - `devops: array of object { id, projectId, projectName, 2 more }`

      - `id: number`

        Azure DevOps work item ID

      - `projectId: string`

        Azure DevOps project ID

      - `projectName: string`

        Azure DevOps project name

      - `title: string`

        Work item title

      - `url: string`

        URL to the work item

    - `github: array of object { id, number, repositoryFullName, 3 more }`

      - `id: string`

        GitHub issue ID

      - `number: string`

        GitHub issue number

      - `repositoryFullName: string`

        Full repository name (owner/repo)

      - `repositoryName: string`

        Repository name

      - `title: string`

        GitHub issue title

      - `url: string`

        URL to the GitHub issue

    - `hubspot: array of object { dealAmount, dealClosed, objectId, type }`

      - `dealAmount: number`

        Deal amount (for DEAL type)

      - `dealClosed: boolean`

        Whether the deal is closed (for DEAL type)

      - `objectId: number`

        HubSpot object ID

      - `type: "TICKET" or "DEAL" or "CONTACT"`

        HubSpot object type

        - `"TICKET"`

        - `"DEAL"`

        - `"CONTACT"`

    - `jira: array of object { issueId, issueUrl }`

      - `issueId: string`

        Jira issue ID

      - `issueUrl: string`

        URL to the Jira issue

    - `linear: array of object { issueId, issueUrl }`

      - `issueId: string`

        Linear issue ID

      - `issueUrl: string`

        URL to the Linear issue

    - `salesforce: array of object { amount, isClosed, objectId, objectType }`

      - `amount: number`

        Opportunity amount (for Opportunity type)

      - `isClosed: boolean`

        Whether the opportunity is closed (for Opportunity type)

      - `objectId: string`

        Salesforce record ID

      - `objectType: "Opportunity" or "Case"`

        Salesforce object type

        - `"Opportunity"`

        - `"Case"`

  - `isPinned: boolean`

    Whether the post is pinned to the top

  - `object: "post"`

    Object type identifier

    - `"post"`

  - `opportunityAmount: number`

    Total opportunity amount from linked HubSpot deals and Salesforce opportunities

  - `postUrl: string`

    Full URL to view the post

  - `slug: string`

    URL-friendly slug

  - `status: PostStatus`

    - `id: string`

      Unique identifier

    - `color: string`

      Color for UI display

    - `isDefault: boolean`

      Whether this is the default status for new posts

    - `name: string`

      Display name

    - `object: "post_status"`

      Object type identifier

      - `"post_status"`

    - `type: "reviewing" or "unstarted" or "active" or 2 more`

      The workflow stage this status represents

      - `"reviewing"`

      - `"unstarted"`

      - `"active"`

      - `"completed"`

      - `"canceled"`

  - `tags: array of PostTag`

    Tags attached to this post

    - `id: string`

      Tag unique identifier

    - `color: string`

      Tag color hex code

    - `name: string`

      Tag name

  - `title: string`

    Post title

  - `updatedAt: string`

    ISO 8601 timestamp when last modified

  - `upvotes: number`

    Total number of upvotes

### Example

```http
curl https://do.featurebase.app/v2/posts/unmerge \
    -H 'Content-Type: application/json' \
    -H "Authorization: Bearer $FEATUREBASE_API_KEY" \
    -d '{
          "postId": "507f1f77bcf86cd799439011"
        }'
```

#### Response

```json
{
  "id": "507f1f77bcf86cd799439011",
  "access": {
    "companyExternalIds": [
      "string"
    ],
    "userIds": [
      "string"
    ]
  },
  "assigneeId": "507f1f77bcf86cd799439013",
  "author": {
    "id": "507f1f77bcf86cd799439011",
    "email": "john@example.com",
    "name": "John Doe",
    "profilePicture": "https://cdn.example.com/avatars/john.png",
    "type": "customer"
  },
  "boardId": "507f1f77bcf86cd799439011",
  "commentCount": 5,
  "content": "<p>It would be great to have a dark mode option for the dashboard.</p>",
  "createdAt": "2023-12-12T00:00:00.000Z",
  "customFields": {
    "cf_priority": "bar",
    "cf_effort": "bar"
  },
  "eta": "2025-01-01T00:00:00.000Z",
  "features": {
    "commentsEnabled": true
  },
  "inReview": false,
  "integrations": {
    "clickup": [
      {
        "id": "86a1b2c3d",
        "title": "Add dark mode support",
        "url": "https://app.clickup.com/t/86a1b2c3d"
      }
    ],
    "devops": [
      {
        "id": 1234,
        "projectId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
        "projectName": "My Project",
        "title": "Add dark mode support",
        "url": "https://dev.azure.com/org/project/_workitems/edit/1234"
      }
    ],
    "github": [
      {
        "id": "1234567890",
        "number": "42",
        "repositoryFullName": "acme/backend",
        "repositoryName": "backend",
        "title": "Add dark mode support",
        "url": "https://github.com/acme/backend/issues/42"
      }
    ],
    "hubspot": [
      {
        "dealAmount": 5000,
        "dealClosed": false,
        "objectId": 123456789,
        "type": "TICKET"
      }
    ],
    "jira": [
      {
        "issueId": "10042",
        "issueUrl": "https://myteam.atlassian.net/browse/PROJ-123"
      }
    ],
    "linear": [
      {
        "issueId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
        "issueUrl": "https://linear.app/team/issue/ENG-123"
      }
    ],
    "salesforce": [
      {
        "amount": 25000,
        "isClosed": false,
        "objectId": "006Dn00000Abcdef",
        "objectType": "Opportunity"
      }
    ]
  },
  "isPinned": false,
  "object": "post",
  "opportunityAmount": 30000,
  "postUrl": "https://feedback.example.com/p/add-dark-mode-support",
  "slug": "add-dark-mode-support",
  "status": {
    "id": "507f1f77bcf86cd799439011",
    "color": "Blue",
    "isDefault": false,
    "name": "In Progress",
    "object": "post_status",
    "type": "active"
  },
  "tags": [
    {
      "id": "507f1f77bcf86cd799439011",
      "color": "#FF5722",
      "name": "bug"
    }
  ],
  "title": "Add dark mode support",
  "updatedAt": "2023-12-13T00:00:00.000Z",
  "upvotes": 42
}
```
