# Import Shared Thread

Imports the shared conversation as a **new thread owned by the caller** — a full copy of the message history, just like forking your own thread. This is the way to "continue" a shared conversation: reading via a share link never grants write access, so to keep working you import-and-fork it into a thread you own.

Allowed only when the share link's `access_level` is `fork`; a `view`-only link returns `403`. The new thread is independent — continuing it does not affect the original. The caller must pass the same resolution gates as opening the link (active org member; explicit grant for `explicit` links; not revoked or expired).

## Authentication

Requires **user** authentication (Bearer token). API-key authentication is rejected with `403`.

## Path Parameters

**`slug`** string required

The share-link slug, taken from the share URL.

## Body Parameters

None. The request takes no body.

## Returns

Returns the newly created thread as a `ThreadResponse` object — a fresh thread owned by the caller, with its own `id`, copied `title`, `message_count`, `created_at`, and related fields.

## Code Examples

### cURL


```bash
curl -X POST https://api.aitronos.com/v1/shared-threads/abc123slug/import \
  -H "Authorization: Bearer YOUR_TOKEN"
```

### Python SDK


```python
from aitronos import Aitronos

client = Aitronos(api_key="", token="YOUR_TOKEN")
new_thread = client.threads.shared.import_(slug="abc123slug")
print(new_thread.id)
```

### Python (requests)


```python
import requests

response = requests.post(
    "https://api.aitronos.com/v1/shared-threads/abc123slug/import",
    headers={"Authorization": "Bearer YOUR_TOKEN"},
)
print(response.json()["id"])
```

### JavaScript


```javascript
const response = await fetch(
  "https://api.aitronos.com/v1/shared-threads/abc123slug/import",
  {
    method: "POST",
    headers: { Authorization: "Bearer YOUR_TOKEN" },
  },
);
const newThread = await response.json();
console.log(newThread.id);
```

## Response Examples

### Success (201)


```json
{
  "id": "thread_9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a",
  "object": "thread",
  "title": "Q3 launch plan",
  "status": "active",
  "organization_id": "org_9a8b7c6d5e4f3a2b1c0d9e8f7a6b5c4d",
  "message_count": 12,
  "created_at": 1731320500,
  "updated_at": 1731320500,
  "last_message_at": 1731320400
}
```

### Error — View-only link (403)


```json
{
  "success": false,
  "error": {
    "code": "INSUFFICIENT_PERMISSIONS",
    "message": "This share link is view-only and cannot be imported",
    "system_message": "Insufficient permissions",
    "type": "authorization_error",
    "status": 403,
    "details": {
      "link_id": "slink_2b1c3d4e5f6a7b8c9d0e1f2a3b4c5d6e",
      "access_level": "view"
    },
    "trace_id": "...",
    "timestamp": "..."
  }
}
```

### Error — Link not found or not authorized (404)

A caller the link was given to is told why instead: `details.unavailable_reason` is `thread_deleted` (404), `share_revoked` or `share_expired` (422), or `org_access_lost` (404), with the owner and sharer. See [When a link stops working](/api-reference/shared-threads/get-shared-thread#when-a-link-stops-working). Everyone else gets this uniform body.


```json
{
  "success": false,
  "error": {
    "code": "RESOURCE_NOT_FOUND",
    "message": "That share link could not be found.",
    "system_message": "Share link unresolved for user",
    "type": "client_error",
    "status": 404,
    "details": {},
    "trace_id": "...",
    "timestamp": "..."
  }
}
```

## Related Resources

- [Get Shared Thread](/api-reference/shared-threads/get-shared-thread) — Open the share link
- [Get Shared Thread Messages](/api-reference/shared-threads/get-shared-thread-messages) — Read the shared thread's messages
- [Live Shared Thread](/api-reference/shared-threads/live-shared-thread) — Join the real-time co-working stream