{
  "opencollection": "1.0.0",
  "info": {
    "name": "One-Shot access conversations API",
    "version": "1.0.0"
  },
  "items": [
    {
      "info": {
        "name": "conversations",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "List Conversations",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/conversations/",
            "params": [
              {
                "name": "limit",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "List all conversations for the authenticated user (metadata only)"
        },
        {
          "info": {
            "name": "Create Conversation",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/conversations/",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Create a new conversation"
        },
        {
          "info": {
            "name": "Resume Conversation",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/conversations/:conversation_id/resume",
            "params": [
              {
                "name": "conversation_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Resume an existing conversation - returns API key without creating new conversation"
        },
        {
          "info": {
            "name": "Resume Prepare",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/conversations/:conversation_id/resume/prepare",
            "params": [
              {
                "name": "conversation_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Unpause a sandbox for session validation. Sets it as pending — proxy will route to it."
        },
        {
          "info": {
            "name": "Resume Confirm",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/conversations/:conversation_id/resume/confirm",
            "params": [
              {
                "name": "conversation_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Graduate pending sandbox to active. Pause old active sandbox. Extend TTL."
        },
        {
          "info": {
            "name": "Resume Reject",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/conversations/:conversation_id/resume/reject",
            "params": [
              {
                "name": "conversation_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Client determined sessions are dead — clear pending sandbox. TTL will clean up the sandbox."
        },
        {
          "info": {
            "name": "Get Active Session",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/conversations/active-session",
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Check if the user has a live E2B sandbox and return the session info to reconnect."
        },
        {
          "info": {
            "name": "Get Conversation",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/conversations/:conversation_id",
            "params": [
              {
                "name": "conversation_id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get a single conversation (metadata only, no messages)"
        },
        {
          "info": {
            "name": "Update Conversation",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "{{baseUrl}}/conversations/:conversation_id",
            "params": [
              {
                "name": "conversation_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Update conversation metadata (e.g., coordinator_session_id)"
        },
        {
          "info": {
            "name": "Get Conversation Messages",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/conversations/:conversation_id/messages",
            "params": [
              {
                "name": "conversation_id",
                "value": "",
                "type": "path"
              },
              {
                "name": "limit",
                "value": "",
                "type": "query"
              },
              {
                "name": "offset",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Get all messages for a conversation"
        },
        {
          "info": {
            "name": "Append Messages",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/conversations/:conversation_id/messages",
            "params": [
              {
                "name": "conversation_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Append messages to a conversation"
        },
        {
          "info": {
            "name": "Update Message",
            "type": "http"
          },
          "http": {
            "method": "PATCH",
            "url": "{{baseUrl}}/conversations/:conversation_id/messages/:message_id",
            "params": [
              {
                "name": "conversation_id",
                "value": "",
                "type": "path"
              },
              {
                "name": "message_id",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "bearer",
              "token": "{{bearerToken}}"
            }
          },
          "docs": "Update a specific message in a conversation (e.g., add document_id)"
        }
      ]
    }
  ],
  "bundled": true
}