# \CopilotConversationsApi
All URIs are relative to */api*
Method | HTTP request | Description
------------- | ------------- | -------------
[**append_copilot_conversation_messages**](CopilotConversationsApi.md#append_copilot_conversation_messages) | **POST** /w/{workspace}/copilot_conversations/{conversation_id}/messages | append messages to a copilot conversation
[**create_copilot_conversation**](CopilotConversationsApi.md#create_copilot_conversation) | **POST** /w/{workspace}/copilot_conversations/create | create or update a copilot conversation
[**delete_copilot_conversation**](CopilotConversationsApi.md#delete_copilot_conversation) | **DELETE** /w/{workspace}/copilot_conversations/delete/{conversation_id} | delete copilot conversation
[**get_copilot_conversation**](CopilotConversationsApi.md#get_copilot_conversation) | **GET** /w/{workspace}/copilot_conversations/get/{conversation_id} | get copilot conversation
[**list_copilot_conversation_messages**](CopilotConversationsApi.md#list_copilot_conversation_messages) | **GET** /w/{workspace}/copilot_conversations/{conversation_id}/messages | list copilot conversation messages
[**list_copilot_conversation_shares**](CopilotConversationsApi.md#list_copilot_conversation_shares) | **GET** /w/{workspace}/copilot_conversations/{conversation_id}/shares | list who a copilot conversation is shared with
[**list_copilot_conversations**](CopilotConversationsApi.md#list_copilot_conversations) | **GET** /w/{workspace}/copilot_conversations/list | list copilot conversations
[**list_copilot_conversations_shared_with_me**](CopilotConversationsApi.md#list_copilot_conversations_shared_with_me) | **GET** /w/{workspace}/copilot_conversations/shared_with_me | list copilot conversations shared with me
[**share_copilot_conversation**](CopilotConversationsApi.md#share_copilot_conversation) | **POST** /w/{workspace}/copilot_conversations/{conversation_id}/shares | share a copilot conversation with a colleague
[**unshare_copilot_conversation**](CopilotConversationsApi.md#unshare_copilot_conversation) | **DELETE** /w/{workspace}/copilot_conversations/{conversation_id}/shares/{username} | revoke a copilot conversation share
## append_copilot_conversation_messages
> models::AppendCopilotConversationMessages200Response append_copilot_conversation_messages(workspace, conversation_id, append_copilot_conversation_messages_request)
append messages to a copilot conversation
Author-only. A workspace admin that can read a transcript still gets a 404 here — read power and write power are deliberately separate so an audited transcript cannot be forged.
### Parameters
Name | Type | Description | Required | Notes
------------- | ------------- | ------------- | ------------- | -------------
**workspace** | **String** | | [required] |
**conversation_id** | **uuid::Uuid** | | [required] |
**append_copilot_conversation_messages_request** | [**AppendCopilotConversationMessagesRequest**](AppendCopilotConversationMessagesRequest.md) | | [required] |
### Return type
[**models::AppendCopilotConversationMessages200Response**](appendCopilotConversationMessages_200_response.md)
### Authorization
[cookieAuth](../README.md#cookieAuth), [bearerAuth](../README.md#bearerAuth)
### HTTP request headers
- **Content-Type**: application/json
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
## create_copilot_conversation
> models::CopilotConversation create_copilot_conversation(workspace, create_copilot_conversation_request)
create or update a copilot conversation
Idempotent upsert on a client-minted UUID, so a retry is safe. `messages` is normally empty (messages are appended per turn) and non-empty only on the one-time IndexedDB import. Re-using an id owned by someone else is refused rather than rebound.
### Parameters
Name | Type | Description | Required | Notes
------------- | ------------- | ------------- | ------------- | -------------
**workspace** | **String** | | [required] |
**create_copilot_conversation_request** | [**CreateCopilotConversationRequest**](CreateCopilotConversationRequest.md) | | [required] |
### Return type
[**models::CopilotConversation**](CopilotConversation.md)
### Authorization
[cookieAuth](../README.md#cookieAuth), [bearerAuth](../README.md#bearerAuth)
### HTTP request headers
- **Content-Type**: application/json
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
## delete_copilot_conversation
> String delete_copilot_conversation(workspace, conversation_id)
delete copilot conversation
Author or workspace admin. Messages cascade. Always audit-logged — this is the erasure path for content a user may have pasted a secret into.
### Parameters
Name | Type | Description | Required | Notes
------------- | ------------- | ------------- | ------------- | -------------
**workspace** | **String** | | [required] |
**conversation_id** | **uuid::Uuid** | | [required] |
### Return type
**String**
### Authorization
[cookieAuth](../README.md#cookieAuth), [bearerAuth](../README.md#bearerAuth)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: text/plain
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
## get_copilot_conversation
> models::CopilotConversation get_copilot_conversation(workspace, conversation_id)
get copilot conversation
### Parameters
Name | Type | Description | Required | Notes
------------- | ------------- | ------------- | ------------- | -------------
**workspace** | **String** | | [required] |
**conversation_id** | **uuid::Uuid** | | [required] |
### Return type
[**models::CopilotConversation**](CopilotConversation.md)
### Authorization
[cookieAuth](../README.md#cookieAuth), [bearerAuth](../README.md#bearerAuth)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
## list_copilot_conversation_messages
> Vec<models::CopilotConversationMessage> list_copilot_conversation_messages(workspace, conversation_id, page, per_page, after_seq, channel)
list copilot conversation messages
The author's own transcript is returned verbatim, byte-exact, because the `actual` channel is replayed to the model on resume. When a workspace admin reads **somebody else's** transcript (#1282), string leaves that match a known credential shape are replaced with `[orvanta:redacted]` in the response. That masking is best-effort pattern matching, not a guarantee: it catches PEM key blocks, URL userinfo, labelled `secret=`/`api_key:` assignments and a handful of prefixed vendor tokens, and it does **not** catch a bare unlabelled high-entropy string, an encoded secret, or a secret split across messages. Treat a masked transcript as still sensitive.
### Parameters
Name | Type | Description | Required | Notes
------------- | ------------- | ------------- | ------------- | -------------
**workspace** | **String** | | [required] |
**conversation_id** | **uuid::Uuid** | | [required] |
**page** | Option<**i32**> | which page to return (start at 1, default 1) | |
**per_page** | Option<**i32**> | number of items to return for a given page (default 30, max 100) | |
**after_seq** | Option<**i64**> | resume cursor — return only messages after this created_seq | |
**channel** | Option<**String**> | restrict to one stream | |
### Return type
[**Vec<models::CopilotConversationMessage>**](CopilotConversationMessage.md)
### Authorization
[cookieAuth](../README.md#cookieAuth), [bearerAuth](../README.md#bearerAuth)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
## list_copilot_conversation_shares
> Vec<models::CopilotConversationShare> list_copilot_conversation_shares(workspace, conversation_id)
list who a copilot conversation is shared with
Author, or a workspace admin (audited as `copilot_conversations.audit_read`). Deliberately not the recipients — telling one recipient who else has access discloses those people without their involvement.
### Parameters
Name | Type | Description | Required | Notes
------------- | ------------- | ------------- | ------------- | -------------
**workspace** | **String** | | [required] |
**conversation_id** | **uuid::Uuid** | | [required] |
### Return type
[**Vec<models::CopilotConversationShare>**](CopilotConversationShare.md)
### Authorization
[cookieAuth](../README.md#cookieAuth), [bearerAuth](../README.md#bearerAuth)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
## list_copilot_conversations
> Vec<models::CopilotConversation> list_copilot_conversations(workspace, page, per_page, include_all_users, created_by, mode)
list copilot conversations
### Parameters
Name | Type | Description | Required | Notes
------------- | ------------- | ------------- | ------------- | -------------
**workspace** | **String** | | [required] |
**page** | Option<**i32**> | which page to return (start at 1, default 1) | |
**per_page** | Option<**i32**> | number of items to return for a given page (default 30, max 100) | |
**include_all_users** | Option<**bool**> | Return every author's conversations in the workspace instead of only your own. Workspace admin only (403 otherwise) and audit-logged as `copilot_conversations.audit_list`. | |
**created_by** | Option<**String**> | Return one named author's conversations. Naming yourself is always allowed; naming anyone else requires workspace admin and is audited. | |
**mode** | Option<**String**> | filter by copilot mode | |
### Return type
[**Vec<models::CopilotConversation>**](CopilotConversation.md)
### Authorization
[cookieAuth](../README.md#cookieAuth), [bearerAuth](../README.md#bearerAuth)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
## list_copilot_conversations_shared_with_me
> Vec<models::SharedCopilotConversation> list_copilot_conversations_shared_with_me(workspace, page, per_page)
list copilot conversations shared with me
The recipient's inbox. Each entry carries `shared_by` — the authenticated identity that issued the grant — alongside the conversation's own `created_by`, which is an attribution recorded at save time and not a proof of authorship.
### Parameters
Name | Type | Description | Required | Notes
------------- | ------------- | ------------- | ------------- | -------------
**workspace** | **String** | | [required] |
**page** | Option<**i32**> | which page to return (start at 1, default 1) | |
**per_page** | Option<**i32**> | number of items to return for a given page (default 30, max 100) | |
### Return type
[**Vec<models::SharedCopilotConversation>**](SharedCopilotConversation.md)
### Authorization
[cookieAuth](../README.md#cookieAuth), [bearerAuth](../README.md#bearerAuth)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
## share_copilot_conversation
> models::CopilotConversationShare share_copilot_conversation(workspace, conversation_id, create_service_account_request)
share a copilot conversation with a colleague
Author-only, and idempotent: re-granting the same pair returns the existing grant without re-dating it or writing a second audit row. A workspace admin gets the same 404 as anyone else — a share is the author's consent that a colleague may read what they typed, and an admin issuing it on their behalf manufactures that consent. The recipient must be an active member of this workspace. Audit-logged as `copilot_conversations.share`.
### Parameters
Name | Type | Description | Required | Notes
------------- | ------------- | ------------- | ------------- | -------------
**workspace** | **String** | | [required] |
**conversation_id** | **uuid::Uuid** | | [required] |
**create_service_account_request** | [**CreateServiceAccountRequest**](CreateServiceAccountRequest.md) | | [required] |
### Return type
[**models::CopilotConversationShare**](CopilotConversationShare.md)
### Authorization
[cookieAuth](../README.md#cookieAuth), [bearerAuth](../README.md#bearerAuth)
### HTTP request headers
- **Content-Type**: application/json
- **Accept**: application/json
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
## unshare_copilot_conversation
> String unshare_copilot_conversation(workspace, conversation_id, username)
revoke a copilot conversation share
Author or workspace admin, and idempotent. Revocation is **prospective**: it stops future reads through this API, it does not un-read — a recipient who already opened the transcript has seen it and may have copied it. Audit-logged as `copilot_conversations.unshare`.
### Parameters
Name | Type | Description | Required | Notes
------------- | ------------- | ------------- | ------------- | -------------
**workspace** | **String** | | [required] |
**conversation_id** | **uuid::Uuid** | | [required] |
**username** | **String** | | [required] |
### Return type
**String**
### Authorization
[cookieAuth](../README.md#cookieAuth), [bearerAuth](../README.md#bearerAuth)
### HTTP request headers
- **Content-Type**: Not defined
- **Accept**: text/plain
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)