GitHub Raw JSON API

plastic-labs / honcho

6,142 Python

Memory library for building stateful agents

Honcho API Specification

Located in docs/v1/openapi.json on branch HEAD

3.1.0 JSON 31 Endpoints 213.5 KB

Operations & Route Endpoints (41)

GET /v1/apps
Get App
POST /v1/apps
Create App
POST /v1/apps/list
Get All Apps
GET /v1/apps/name/{name}
Get App By Name
GET /v1/apps/get_or_create/{name}
Get Or Create App
PUT /v1/apps/{app_id}
Update App
POST /v1/apps/{app_id}/users
Create User
GET /v1/apps/{app_id}/users
Get User
POST /v1/apps/{app_id}/users/list
Get Users
GET /v1/apps/{app_id}/users/name/{name}
Get User By Name
GET /v1/apps/{app_id}/users/get_or_create/{name}
Get Or Create User
PUT /v1/apps/{app_id}/users/{user_id}
Update User
GET /v1/apps/{app_id}/users/{user_id}/sessions
Get Session
POST /v1/apps/{app_id}/users/{user_id}/sessions
Create Session
POST /v1/apps/{app_id}/users/{user_id}/sessions/list
Get Sessions
PUT /v1/apps/{app_id}/users/{user_id}/sessions/{session_id}
Update Session
DELETE /v1/apps/{app_id}/users/{user_id}/sessions/{session_id}
Delete Session
POST /v1/apps/{app_id}/users/{user_id}/sessions/{session_id}/chat
Chat
GET /v1/apps/{app_id}/users/{user_id}/sessions/{session_id}/clone
Clone Session
POST /v1/apps/{app_id}/users/{user_id}/sessions/{session_id}/messages
Create Message For Session
POST /v1/apps/{app_id}/users/{user_id}/sessions/{session_id}/messages/batch
Create Batch Messages For Session
POST /v1/apps/{app_id}/users/{user_id}/sessions/{session_id}/messages/list
Get Messages
GET /v1/apps/{app_id}/users/{user_id}/sessions/{session_id}/messages/{message_id}
Get Message
PUT /v1/apps/{app_id}/users/{user_id}/sessions/{session_id}/messages/{message_id}
Update Message
POST /v1/apps/{app_id}/users/{user_id}/metamessages
Create Metamessage
POST /v1/apps/{app_id}/users/{user_id}/metamessages/list
Get Metamessages
GET /v1/apps/{app_id}/users/{user_id}/metamessages/{metamessage_id}
Get Metamessage
PUT /v1/apps/{app_id}/users/{user_id}/metamessages/{metamessage_id}
Update Metamessage
GET /v1/apps/{app_id}/users/{user_id}/collections
Get Collection
POST /v1/apps/{app_id}/users/{user_id}/collections
Create Collection
POST /v1/apps/{app_id}/users/{user_id}/collections/list
Get Collections
GET /v1/apps/{app_id}/users/{user_id}/collections/name/{name}
Get Collection By Name
PUT /v1/apps/{app_id}/users/{user_id}/collections/{collection_id}
Update Collection
DELETE /v1/apps/{app_id}/users/{user_id}/collections/{collection_id}
Delete Collection
POST /v1/apps/{app_id}/users/{user_id}/collections/{collection_id}/documents/list
Get Documents
GET /v1/apps/{app_id}/users/{user_id}/collections/{collection_id}/documents/{document_id}
Get Document
PUT /v1/apps/{app_id}/users/{user_id}/collections/{collection_id}/documents/{document_id}
Update Document
DELETE /v1/apps/{app_id}/users/{user_id}/collections/{collection_id}/documents/{document_id}
Delete Document
POST /v1/apps/{app_id}/users/{user_id}/collections/{collection_id}/documents/query
Query Documents
POST /v1/apps/{app_id}/users/{user_id}/collections/{collection_id}/documents
Create Document
POST /v1/keys
Create Key
Raw JSON Specification
{
  "openapi": "3.1.0",
  "info": {
    "title": "Honcho API",
    "summary": "The Identity Layer for the Agentic World",
    "description": "Honcho is a platform for giving agents user-centric memory and social cognition",
    "contact": {
      "name": "Plastic Labs",
      "url": "https://honcho.dev/",
      "email": "[email protected]"
    },
    "version": "1.1.0"
  },
  "servers": [
    {
      "url": "http://localhost:8000",
      "description": "Local Development Server"
    },
    {
      "url": "https://demo.honcho.dev",
      "description": "Demo Server"
    },
    {
      "url": "https://api.honcho.dev",
      "description": "Production SaaS Platform"
    }
  ],
  "paths": {
    "/v1/apps": {
      "get": {
        "tags": [
          "apps"
        ],
        "summary": "Get App",
        "description": "Get an App by ID.\n\nIf app_id is provided as a query parameter, it uses that (must match JWT app_id).\nOtherwise, it uses the app_id from the JWT.",
        "operationId": "get_app_v1_apps_get",
        "security": [
          {
            "HTTPBearer": []
          },
          {}
        ],
        "parameters": [
          {
            "name": "app_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "App ID to retrieve. If not provided, uses JWT",
              "title": "App Id"
            },
            "description": "App ID to retrieve. If not provided, uses JWT"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/App"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "source": "import Honcho from 'honcho-ai';\n\nconst client = new Honcho({\n  apiKey: process.env['HONCHO_API_KEY'], // This is the default and can be omitted\n});\n\nasync function main() {\n  const app = await client.apps.get();\n\n  console.log(app.id);\n}\n\nmain();"
          },
          {
            "lang": "Python",
            "source": "import os\nfrom honcho import Honcho\n\nclient = Honcho(\n    api_key=os.environ.get(\"HONCHO_API_KEY\"),  # This is the default and can be omitted\n)\napp = client.apps.get()\nprint(app.id)"
          }
        ]
      },
      "post": {
        "tags": [
          "apps"
        ],
        "summary": "Create App",
        "description": "Create a new App",
        "operationId": "create_app_v1_apps_post",
        "security": [
          {
            "HTTPBearer": []
          },
          {}
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AppCreate",
                "description": "App creation parameters"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/App"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "source": "import Honcho from 'honcho-ai';\n\nconst client = new Honcho({\n  apiKey: process.env['HONCHO_API_KEY'], // This is the default and can be omitted\n});\n\nasync function main() {\n  const app = await client.apps.create({ name: 'x' });\n\n  console.log(app.id);\n}\n\nmain();"
          },
          {
            "lang": "Python",
            "source": "import os\nfrom honcho import Honcho\n\nclient = Honcho(\n    api_key=os.environ.get(\"HONCHO_API_KEY\"),  # This is the default and can be omitted\n)\napp = client.apps.create(\n    name=\"x\",\n)\nprint(app.id)"
          }
        ]
      }
    },
    "/v1/apps/list": {
      "post": {
        "tags": [
          "apps"
        ],
        "summary": "Get All Apps",
        "description": "Get all Apps",
        "operationId": "get_all_apps_v1_apps_list_post",
        "security": [
          {
            "HTTPBearer": []
          },
          {}
        ],
        "parameters": [
          {
            "name": "reverse",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Whether to reverse the order of results",
              "default": false,
              "title": "Reverse"
            },
            "description": "Whether to reverse the order of results"
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "description": "Page number",
              "default": 1,
              "title": "Page"
            },
            "description": "Page number"
          },
          {
            "name": "size",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 100,
              "minimum": 1,
              "description": "Page size",
              "default": 50,
              "title": "Size"
            },
            "description": "Page size"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/AppGet"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Filtering and pagination options for the apps list",
                "title": "Options"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Page_App_"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "source": "import Honcho from 'honcho-ai';\n\nconst client = new Honcho({\n  apiKey: process.env['HONCHO_API_KEY'], // This is the default and can be omitted\n});\n\nasync function main() {\n  // Automatically fetches more pages as needed.\n  for await (const app of client.apps.list()) {\n    console.log(app.id);\n  }\n}\n\nmain();"
          },
          {
            "lang": "Python",
            "source": "import os\nfrom honcho import Honcho\n\nclient = Honcho(\n    api_key=os.environ.get(\"HONCHO_API_KEY\"),  # This is the default and can be omitted\n)\npage = client.apps.list()\npage = page.items[0]\nprint(page.id)"
          }
        ]
      }
    },
    "/v1/apps/name/{name}": {
      "get": {
        "tags": [
          "apps"
        ],
        "summary": "Get App By Name",
        "description": "Get an App by Name",
        "operationId": "get_app_by_name_v1_apps_name__name__get",
        "security": [
          {
            "HTTPBearer": []
          },
          {}
        ],
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Name of the app to retrieve",
              "title": "Name"
            },
            "description": "Name of the app to retrieve"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/App"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "source": "import Honcho from 'honcho-ai';\n\nconst client = new Honcho({\n  apiKey: process.env['HONCHO_API_KEY'], // This is the default and can be omitted\n});\n\nasync function main() {\n  const app = await client.apps.getByName('name');\n\n  console.log(app.id);\n}\n\nmain();"
          },
          {
            "lang": "Python",
            "source": "import os\nfrom honcho import Honcho\n\nclient = Honcho(\n    api_key=os.environ.get(\"HONCHO_API_KEY\"),  # This is the default and can be omitted\n)\napp = client.apps.get_by_name(\n    \"name\",\n)\nprint(app.id)"
          }
        ]
      }
    },
    "/v1/apps/get_or_create/{name}": {
      "get": {
        "tags": [
          "apps"
        ],
        "summary": "Get Or Create App",
        "description": "Get or Create an App",
        "operationId": "get_or_create_app_v1_apps_get_or_create__name__get",
        "security": [
          {
            "HTTPBearer": []
          },
          {}
        ],
        "parameters": [
          {
            "name": "name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Name of the app to get or create",
              "title": "Name"
            },
            "description": "Name of the app to get or create"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/App"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "source": "import Honcho from 'honcho-ai';\n\nconst client = new Honcho({\n  apiKey: process.env['HONCHO_API_KEY'], // This is the default and can be omitted\n});\n\nasync function main() {\n  const app = await client.apps.getOrCreate('name');\n\n  console.log(app.id);\n}\n\nmain();"
          },
          {
            "lang": "Python",
            "source": "import os\nfrom honcho import Honcho\n\nclient = Honcho(\n    api_key=os.environ.get(\"HONCHO_API_KEY\"),  # This is the default and can be omitted\n)\napp = client.apps.get_or_create(\n    \"name\",\n)\nprint(app.id)"
          }
        ]
      }
    },
    "/v1/apps/{app_id}": {
      "put": {
        "tags": [
          "apps"
        ],
        "summary": "Update App",
        "description": "Update an App",
        "operationId": "update_app_v1_apps__app_id__put",
        "security": [
          {
            "HTTPBearer": []
          },
          {}
        ],
        "parameters": [
          {
            "name": "app_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the app to update",
              "title": "App Id"
            },
            "description": "ID of the app to update"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AppUpdate",
                "description": "Updated app parameters"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/App"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "source": "import Honcho from 'honcho-ai';\n\nconst client = new Honcho({\n  apiKey: process.env['HONCHO_API_KEY'], // This is the default and can be omitted\n});\n\nasync function main() {\n  const app = await client.apps.update('app_id');\n\n  console.log(app.id);\n}\n\nmain();"
          },
          {
            "lang": "Python",
            "source": "import os\nfrom honcho import Honcho\n\nclient = Honcho(\n    api_key=os.environ.get(\"HONCHO_API_KEY\"),  # This is the default and can be omitted\n)\napp = client.apps.update(\n    app_id=\"app_id\",\n)\nprint(app.id)"
          }
        ]
      }
    },
    "/v1/apps/{app_id}/users": {
      "post": {
        "tags": [
          "users"
        ],
        "summary": "Create User",
        "description": "Create a new User",
        "operationId": "create_user_v1_apps__app_id__users_post",
        "security": [
          {
            "HTTPBearer": []
          },
          {}
        ],
        "parameters": [
          {
            "name": "app_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the app",
              "title": "App Id"
            },
            "description": "ID of the app"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserCreate",
                "description": "User creation parameters"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "source": "import Honcho from 'honcho-ai';\n\nconst client = new Honcho({\n  apiKey: process.env['HONCHO_API_KEY'], // This is the default and can be omitted\n});\n\nasync function main() {\n  const user = await client.apps.users.create('app_id', { name: 'x' });\n\n  console.log(user.id);\n}\n\nmain();"
          },
          {
            "lang": "Python",
            "source": "import os\nfrom honcho import Honcho\n\nclient = Honcho(\n    api_key=os.environ.get(\"HONCHO_API_KEY\"),  # This is the default and can be omitted\n)\nuser = client.apps.users.create(\n    app_id=\"app_id\",\n    name=\"x\",\n)\nprint(user.id)"
          }
        ]
      },
      "get": {
        "tags": [
          "users"
        ],
        "summary": "Get User",
        "description": "Get a User by ID\n\nIf user_id is provided as a query parameter, it uses that (must match JWT app_id).\nOtherwise, it uses the user_id from the JWT.",
        "operationId": "get_user_v1_apps__app_id__users_get",
        "security": [
          {
            "HTTPBearer": []
          },
          {}
        ],
        "parameters": [
          {
            "name": "app_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the app",
              "title": "App Id"
            },
            "description": "ID of the app"
          },
          {
            "name": "user_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "User ID to retrieve. If not provided, uses JWT",
              "title": "User Id"
            },
            "description": "User ID to retrieve. If not provided, uses JWT"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "source": "import Honcho from 'honcho-ai';\n\nconst client = new Honcho({\n  apiKey: process.env['HONCHO_API_KEY'], // This is the default and can be omitted\n});\n\nasync function main() {\n  const user = await client.apps.users.get('app_id');\n\n  console.log(user.id);\n}\n\nmain();"
          },
          {
            "lang": "Python",
            "source": "import os\nfrom honcho import Honcho\n\nclient = Honcho(\n    api_key=os.environ.get(\"HONCHO_API_KEY\"),  # This is the default and can be omitted\n)\nuser = client.apps.users.get(\n    app_id=\"app_id\",\n)\nprint(user.id)"
          }
        ]
      }
    },
    "/v1/apps/{app_id}/users/list": {
      "post": {
        "tags": [
          "users"
        ],
        "summary": "Get Users",
        "description": "Get All Users for an App",
        "operationId": "get_users_v1_apps__app_id__users_list_post",
        "security": [
          {
            "HTTPBearer": []
          },
          {}
        ],
        "parameters": [
          {
            "name": "app_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the app",
              "title": "App Id"
            },
            "description": "ID of the app"
          },
          {
            "name": "reverse",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "description": "Whether to reverse the order of results",
              "default": false,
              "title": "Reverse"
            },
            "description": "Whether to reverse the order of results"
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "description": "Page number",
              "default": 1,
              "title": "Page"
            },
            "description": "Page number"
          },
          {
            "name": "size",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 100,
              "minimum": 1,
              "description": "Page size",
              "default": 50,
              "title": "Size"
            },
            "description": "Page size"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/UserGet"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Filtering options for the users list",
                "title": "Options"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Page_User_"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "source": "import Honcho from 'honcho-ai';\n\nconst client = new Honcho({\n  apiKey: process.env['HONCHO_API_KEY'], // This is the default and can be omitted\n});\n\nasync function main() {\n  // Automatically fetches more pages as needed.\n  for await (const user of client.apps.users.list('app_id')) {\n    console.log(user.id);\n  }\n}\n\nmain();"
          },
          {
            "lang": "Python",
            "source": "import os\nfrom honcho import Honcho\n\nclient = Honcho(\n    api_key=os.environ.get(\"HONCHO_API_KEY\"),  # This is the default and can be omitted\n)\npage = client.apps.users.list(\n    app_id=\"app_id\",\n)\npage = page.items[0]\nprint(page.id)"
          }
        ]
      }
    },
    "/v1/apps/{app_id}/users/name/{name}": {
      "get": {
        "tags": [
          "users"
        ],
        "summary": "Get User By Name",
        "description": "Get a User by name",
        "operationId": "get_user_by_name_v1_apps__app_id__users_name__name__get",
        "security": [
          {
            "HTTPBearer": []
          },
          {}
        ],
        "parameters": [
          {
            "name": "app_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the app",
              "title": "App Id"
            },
            "description": "ID of the app"
          },
          {
            "name": "name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Name of the user to retrieve",
              "title": "Name"
            },
            "description": "Name of the user to retrieve"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "source": "import Honcho from 'honcho-ai';\n\nconst client = new Honcho({\n  apiKey: process.env['HONCHO_API_KEY'], // This is the default and can be omitted\n});\n\nasync function main() {\n  const user = await client.apps.users.getByName('app_id', 'name');\n\n  console.log(user.id);\n}\n\nmain();"
          },
          {
            "lang": "Python",
            "source": "import os\nfrom honcho import Honcho\n\nclient = Honcho(\n    api_key=os.environ.get(\"HONCHO_API_KEY\"),  # This is the default and can be omitted\n)\nuser = client.apps.users.get_by_name(\n    name=\"name\",\n    app_id=\"app_id\",\n)\nprint(user.id)"
          }
        ]
      }
    },
    "/v1/apps/{app_id}/users/get_or_create/{name}": {
      "get": {
        "tags": [
          "users"
        ],
        "summary": "Get Or Create User",
        "description": "Get a User or create a new one by the input name",
        "operationId": "get_or_create_user_v1_apps__app_id__users_get_or_create__name__get",
        "security": [
          {
            "HTTPBearer": []
          },
          {}
        ],
        "parameters": [
          {
            "name": "app_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the app",
              "title": "App Id"
            },
            "description": "ID of the app"
          },
          {
            "name": "name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Name of the user to get or create",
              "title": "Name"
            },
            "description": "Name of the user to get or create"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "source": "import Honcho from 'honcho-ai';\n\nconst client = new Honcho({\n  apiKey: process.env['HONCHO_API_KEY'], // This is the default and can be omitted\n});\n\nasync function main() {\n  const user = await client.apps.users.getOrCreate('app_id', 'name');\n\n  console.log(user.id);\n}\n\nmain();"
          },
          {
            "lang": "Python",
            "source": "import os\nfrom honcho import Honcho\n\nclient = Honcho(\n    api_key=os.environ.get(\"HONCHO_API_KEY\"),  # This is the default and can be omitted\n)\nuser = client.apps.users.get_or_create(\n    name=\"name\",\n    app_id=\"app_id\",\n)\nprint(user.id)"
          }
        ]
      }
    },
    "/v1/apps/{app_id}/users/{user_id}": {
      "put": {
        "tags": [
          "users"
        ],
        "summary": "Update User",
        "description": "Update a User's name and/or metadata",
        "operationId": "update_user_v1_apps__app_id__users__user_id__put",
        "security": [
          {
            "HTTPBearer": []
          },
          {}
        ],
        "parameters": [
          {
            "name": "app_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the app",
              "title": "App Id"
            },
            "description": "ID of the app"
          },
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the user to update",
              "title": "User Id"
            },
            "description": "ID of the user to update"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserUpdate",
                "description": "Updated user parameters"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "source": "import Honcho from 'honcho-ai';\n\nconst client = new Honcho({\n  apiKey: process.env['HONCHO_API_KEY'], // This is the default and can be omitted\n});\n\nasync function main() {\n  const user = await client.apps.users.update('app_id', 'user_id');\n\n  console.log(user.id);\n}\n\nmain();"
          },
          {
            "lang": "Python",
            "source": "import os\nfrom honcho import Honcho\n\nclient = Honcho(\n    api_key=os.environ.get(\"HONCHO_API_KEY\"),  # This is the default and can be omitted\n)\nuser = client.apps.users.update(\n    user_id=\"user_id\",\n    app_id=\"app_id\",\n)\nprint(user.id)"
          }
        ]
      }
    },
    "/v1/apps/{app_id}/users/{user_id}/sessions": {
      "get": {
        "tags": [
          "sessions"
        ],
        "summary": "Get Session",
        "description": "Get a specific session for a user.\n\nIf session_id is provided as a query parameter, it uses that (must match JWT session_id).\nOtherwise, it uses the session_id from the JWT.",
        "operationId": "get_session_v1_apps__app_id__users__user_id__sessions_get",
        "security": [
          {
            "HTTPBearer": []
          },
          {}
        ],
        "parameters": [
          {
            "name": "app_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the app",
              "title": "App Id"
            },
            "description": "ID of the app"
          },
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the user",
              "title": "User Id"
            },
            "description": "ID of the user"
          },
          {
            "name": "session_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Session ID to retrieve. If not provided, uses JWT",
              "title": "Session Id"
            },
            "description": "Session ID to retrieve. If not provided, uses JWT"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Session"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "source": "import Honcho from 'honcho-ai';\n\nconst client = new Honcho({\n  apiKey: process.env['HONCHO_API_KEY'], // This is the default and can be omitted\n});\n\nasync function main() {\n  const session = await client.apps.users.sessions.get('app_id', 'user_id');\n\n  console.log(session.id);\n}\n\nmain();"
          },
          {
            "lang": "Python",
            "source": "import os\nfrom honcho import Honcho\n\nclient = Honcho(\n    api_key=os.environ.get(\"HONCHO_API_KEY\"),  # This is the default and can be omitted\n)\nsession = client.apps.users.sessions.get(\n    user_id=\"user_id\",\n    app_id=\"app_id\",\n)\nprint(session.id)"
          }
        ]
      },
      "post": {
        "tags": [
          "sessions"
        ],
        "summary": "Create Session",
        "description": "Create a Session for a User",
        "operationId": "create_session_v1_apps__app_id__users__user_id__sessions_post",
        "security": [
          {
            "HTTPBearer": []
          },
          {}
        ],
        "parameters": [
          {
            "name": "app_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the app",
              "title": "App Id"
            },
            "description": "ID of the app"
          },
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the user",
              "title": "User Id"
            },
            "description": "ID of the user"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SessionCreate",
                "description": "Session creation parameters"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Session"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "source": "import Honcho from 'honcho-ai';\n\nconst client = new Honcho({\n  apiKey: process.env['HONCHO_API_KEY'], // This is the default and can be omitted\n});\n\nasync function main() {\n  const session = await client.apps.users.sessions.create('app_id', 'user_id');\n\n  console.log(session.id);\n}\n\nmain();"
          },
          {
            "lang": "Python",
            "source": "import os\nfrom honcho import Honcho\n\nclient = Honcho(\n    api_key=os.environ.get(\"HONCHO_API_KEY\"),  # This is the default and can be omitted\n)\nsession = client.apps.users.sessions.create(\n    user_id=\"user_id\",\n    app_id=\"app_id\",\n)\nprint(session.id)"
          }
        ]
      }
    },
    "/v1/apps/{app_id}/users/{user_id}/sessions/list": {
      "post": {
        "tags": [
          "sessions"
        ],
        "summary": "Get Sessions",
        "description": "Get All Sessions for a User",
        "operationId": "get_sessions_v1_apps__app_id__users__user_id__sessions_list_post",
        "security": [
          {
            "HTTPBearer": []
          },
          {}
        ],
        "parameters": [
          {
            "name": "app_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the app",
              "title": "App Id"
            },
            "description": "ID of the app"
          },
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the user",
              "title": "User Id"
            },
            "description": "ID of the user"
          },
          {
            "name": "reverse",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Whether to reverse the order of results",
              "default": false,
              "title": "Reverse"
            },
            "description": "Whether to reverse the order of results"
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "description": "Page number",
              "default": 1,
              "title": "Page"
            },
            "description": "Page number"
          },
          {
            "name": "size",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 100,
              "minimum": 1,
              "description": "Page size",
              "default": 50,
              "title": "Size"
            },
            "description": "Page size"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/SessionGet"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Filtering and pagination options for the sessions list",
                "title": "Options"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Page_Session_"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "source": "import Honcho from 'honcho-ai';\n\nconst client = new Honcho({\n  apiKey: process.env['HONCHO_API_KEY'], // This is the default and can be omitted\n});\n\nasync function main() {\n  // Automatically fetches more pages as needed.\n  for await (const session of client.apps.users.sessions.list('app_id', 'user_id')) {\n    console.log(session.id);\n  }\n}\n\nmain();"
          },
          {
            "lang": "Python",
            "source": "import os\nfrom honcho import Honcho\n\nclient = Honcho(\n    api_key=os.environ.get(\"HONCHO_API_KEY\"),  # This is the default and can be omitted\n)\npage = client.apps.users.sessions.list(\n    user_id=\"user_id\",\n    app_id=\"app_id\",\n)\npage = page.items[0]\nprint(page.id)"
          }
        ]
      }
    },
    "/v1/apps/{app_id}/users/{user_id}/sessions/{session_id}": {
      "put": {
        "tags": [
          "sessions"
        ],
        "summary": "Update Session",
        "description": "Update the metadata of a Session",
        "operationId": "update_session_v1_apps__app_id__users__user_id__sessions__session_id__put",
        "security": [
          {
            "HTTPBearer": []
          },
          {}
        ],
        "parameters": [
          {
            "name": "app_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the app",
              "title": "App Id"
            },
            "description": "ID of the app"
          },
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the user",
              "title": "User Id"
            },
            "description": "ID of the user"
          },
          {
            "name": "session_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the session to update",
              "title": "Session Id"
            },
            "description": "ID of the session to update"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SessionUpdate",
                "description": "Updated session parameters"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Session"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "source": "import Honcho from 'honcho-ai';\n\nconst client = new Honcho({\n  apiKey: process.env['HONCHO_API_KEY'], // This is the default and can be omitted\n});\n\nasync function main() {\n  const session = await client.apps.users.sessions.update('app_id', 'user_id', 'session_id', {\n    metadata: { foo: 'bar' },\n  });\n\n  console.log(session.id);\n}\n\nmain();"
          },
          {
            "lang": "Python",
            "source": "import os\nfrom honcho import Honcho\n\nclient = Honcho(\n    api_key=os.environ.get(\"HONCHO_API_KEY\"),  # This is the default and can be omitted\n)\nsession = client.apps.users.sessions.update(\n    session_id=\"session_id\",\n    app_id=\"app_id\",\n    user_id=\"user_id\",\n    metadata={\n        \"foo\": \"bar\"\n    },\n)\nprint(session.id)"
          }
        ]
      },
      "delete": {
        "tags": [
          "sessions"
        ],
        "summary": "Delete Session",
        "description": "Delete a session by marking it as inactive",
        "operationId": "delete_session_v1_apps__app_id__users__user_id__sessions__session_id__delete",
        "security": [
          {
            "HTTPBearer": []
          },
          {}
        ],
        "parameters": [
          {
            "name": "app_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the app",
              "title": "App Id"
            },
            "description": "ID of the app"
          },
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the user",
              "title": "User Id"
            },
            "description": "ID of the user"
          },
          {
            "name": "session_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the session to delete",
              "title": "Session Id"
            },
            "description": "ID of the session to delete"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "source": "import Honcho from 'honcho-ai';\n\nconst client = new Honcho({\n  apiKey: process.env['HONCHO_API_KEY'], // This is the default and can be omitted\n});\n\nasync function main() {\n  const session = await client.apps.users.sessions.delete('app_id', 'user_id', 'session_id');\n\n  console.log(session);\n}\n\nmain();"
          },
          {
            "lang": "Python",
            "source": "import os\nfrom honcho import Honcho\n\nclient = Honcho(\n    api_key=os.environ.get(\"HONCHO_API_KEY\"),  # This is the default and can be omitted\n)\nsession = client.apps.users.sessions.delete(\n    session_id=\"session_id\",\n    app_id=\"app_id\",\n    user_id=\"user_id\",\n)\nprint(session)"
          }
        ]
      }
    },
    "/v1/apps/{app_id}/users/{user_id}/sessions/{session_id}/chat": {
      "post": {
        "tags": [
          "sessions"
        ],
        "summary": "Chat",
        "description": "Chat with the Dialectic API",
        "operationId": "chat_v1_apps__app_id__users__user_id__sessions__session_id__chat_post",
        "security": [
          {
            "HTTPBearer": []
          },
          {}
        ],
        "parameters": [
          {
            "name": "app_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the app",
              "title": "App Id"
            },
            "description": "ID of the app"
          },
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the user",
              "title": "User Id"
            },
            "description": "ID of the user"
          },
          {
            "name": "session_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the session",
              "title": "Session Id"
            },
            "description": "ID of the session"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DialecticOptions",
                "description": "Dialectic Endpoint Parameters"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Response to a question informed by Honcho's User Representation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DialecticResponse"
                }
              },
              "text/event-stream": {}
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "source": "import Honcho from 'honcho-ai';\n\nconst client = new Honcho({\n  apiKey: process.env['HONCHO_API_KEY'], // This is the default and can be omitted\n});\n\nasync function main() {\n  const dialecticResponse = await client.apps.users.sessions.chat('app_id', 'user_id', 'session_id', {\n    queries: 'string',\n  });\n\n  console.log(dialecticResponse.content);\n}\n\nmain();"
          },
          {
            "lang": "Python",
            "source": "import os\nfrom honcho import Honcho\n\nclient = Honcho(\n    api_key=os.environ.get(\"HONCHO_API_KEY\"),  # This is the default and can be omitted\n)\ndialectic_response = client.apps.users.sessions.chat(\n    session_id=\"session_id\",\n    app_id=\"app_id\",\n    user_id=\"user_id\",\n    queries=\"string\",\n)\nprint(dialectic_response.content)"
          }
        ]
      }
    },
    "/v1/apps/{app_id}/users/{user_id}/sessions/{session_id}/clone": {
      "get": {
        "tags": [
          "sessions"
        ],
        "summary": "Clone Session",
        "description": "Clone a session, optionally up to a specific message",
        "operationId": "clone_session_v1_apps__app_id__users__user_id__sessions__session_id__clone_get",
        "security": [
          {
            "HTTPBearer": []
          },
          {}
        ],
        "parameters": [
          {
            "name": "app_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the app",
              "title": "App Id"
            },
            "description": "ID of the app"
          },
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the user",
              "title": "User Id"
            },
            "description": "ID of the user"
          },
          {
            "name": "session_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the session to clone",
              "title": "Session Id"
            },
            "description": "ID of the session to clone"
          },
          {
            "name": "message_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Message ID to cut off the clone at",
              "title": "Message Id"
            },
            "description": "Message ID to cut off the clone at"
          },
          {
            "name": "deep_copy",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "description": "Whether to deep copy metamessages",
              "default": false,
              "title": "Deep Copy"
            },
            "description": "Whether to deep copy metamessages"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Session"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "source": "import Honcho from 'honcho-ai';\n\nconst client = new Honcho({\n  apiKey: process.env['HONCHO_API_KEY'], // This is the default and can be omitted\n});\n\nasync function main() {\n  const session = await client.apps.users.sessions.clone('app_id', 'user_id', 'session_id');\n\n  console.log(session.id);\n}\n\nmain();"
          },
          {
            "lang": "Python",
            "source": "import os\nfrom honcho import Honcho\n\nclient = Honcho(\n    api_key=os.environ.get(\"HONCHO_API_KEY\"),  # This is the default and can be omitted\n)\nsession = client.apps.users.sessions.clone(\n    session_id=\"session_id\",\n    app_id=\"app_id\",\n    user_id=\"user_id\",\n)\nprint(session.id)"
          }
        ]
      }
    },
    "/v1/apps/{app_id}/users/{user_id}/sessions/{session_id}/messages": {
      "post": {
        "tags": [
          "messages"
        ],
        "summary": "Create Message For Session",
        "description": "Adds a message to a session",
        "operationId": "create_message_for_session_v1_apps__app_id__users__user_id__sessions__session_id__messages_post",
        "security": [
          {
            "HTTPBearer": []
          },
          {}
        ],
        "parameters": [
          {
            "name": "app_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the app",
              "title": "App Id"
            },
            "description": "ID of the app"
          },
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the user",
              "title": "User Id"
            },
            "description": "ID of the user"
          },
          {
            "name": "session_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the session",
              "title": "Session Id"
            },
            "description": "ID of the session"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MessageCreate",
                "description": "Message creation parameters"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Message"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "source": "import Honcho from 'honcho-ai';\n\nconst client = new Honcho({\n  apiKey: process.env['HONCHO_API_KEY'], // This is the default and can be omitted\n});\n\nasync function main() {\n  const message = await client.apps.users.sessions.messages.create('app_id', 'user_id', 'session_id', {\n    content: 'content',\n    is_user: true,\n  });\n\n  console.log(message.id);\n}\n\nmain();"
          },
          {
            "lang": "Python",
            "source": "import os\nfrom honcho import Honcho\n\nclient = Honcho(\n    api_key=os.environ.get(\"HONCHO_API_KEY\"),  # This is the default and can be omitted\n)\nmessage = client.apps.users.sessions.messages.create(\n    session_id=\"session_id\",\n    app_id=\"app_id\",\n    user_id=\"user_id\",\n    content=\"content\",\n    is_user=True,\n)\nprint(message.id)"
          }
        ]
      }
    },
    "/v1/apps/{app_id}/users/{user_id}/sessions/{session_id}/messages/batch": {
      "post": {
        "tags": [
          "messages"
        ],
        "summary": "Create Batch Messages For Session",
        "description": "Bulk create messages for a session while maintaining order. Maximum 100 messages per batch.",
        "operationId": "create_batch_messages_for_session_v1_apps__app_id__users__user_id__sessions__session_id__messages_batch_post",
        "security": [
          {
            "HTTPBearer": []
          },
          {}
        ],
        "parameters": [
          {
            "name": "app_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the app",
              "title": "App Id"
            },
            "description": "ID of the app"
          },
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the user",
              "title": "User Id"
            },
            "description": "ID of the user"
          },
          {
            "name": "session_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the session",
              "title": "Session Id"
            },
            "description": "ID of the session"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MessageBatchCreate",
                "description": "Batch of messages to create"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Message"
                  },
                  "title": "Response Create Batch Messages For Session V1 Apps  App Id  Users  User Id  Sessions  Session Id  Messages Batch Post"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "source": "import Honcho from 'honcho-ai';\n\nconst client = new Honcho({\n  apiKey: process.env['HONCHO_API_KEY'], // This is the default and can be omitted\n});\n\nasync function main() {\n  const messages = await client.apps.users.sessions.messages.batch('app_id', 'user_id', 'session_id', {\n    messages: [{ content: 'content', is_user: true }],\n  });\n\n  console.log(messages);\n}\n\nmain();"
          },
          {
            "lang": "Python",
            "source": "import os\nfrom honcho import Honcho\n\nclient = Honcho(\n    api_key=os.environ.get(\"HONCHO_API_KEY\"),  # This is the default and can be omitted\n)\nmessages = client.apps.users.sessions.messages.batch(\n    session_id=\"session_id\",\n    app_id=\"app_id\",\n    user_id=\"user_id\",\n    messages=[{\n        \"content\": \"content\",\n        \"is_user\": True,\n    }],\n)\nprint(messages)"
          }
        ]
      }
    },
    "/v1/apps/{app_id}/users/{user_id}/sessions/{session_id}/messages/list": {
      "post": {
        "tags": [
          "messages"
        ],
        "summary": "Get Messages",
        "description": "Get all messages for a session",
        "operationId": "get_messages_v1_apps__app_id__users__user_id__sessions__session_id__messages_list_post",
        "security": [
          {
            "HTTPBearer": []
          },
          {}
        ],
        "parameters": [
          {
            "name": "app_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the app",
              "title": "App Id"
            },
            "description": "ID of the app"
          },
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the user",
              "title": "User Id"
            },
            "description": "ID of the user"
          },
          {
            "name": "session_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the session",
              "title": "Session Id"
            },
            "description": "ID of the session"
          },
          {
            "name": "reverse",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Whether to reverse the order of results",
              "default": false,
              "title": "Reverse"
            },
            "description": "Whether to reverse the order of results"
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "description": "Page number",
              "default": 1,
              "title": "Page"
            },
            "description": "Page number"
          },
          {
            "name": "size",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 100,
              "minimum": 1,
              "description": "Page size",
              "default": 50,
              "title": "Size"
            },
            "description": "Page size"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/MessageGet"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Filtering options for the messages list",
                "title": "Options"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Page_Message_"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "source": "import Honcho from 'honcho-ai';\n\nconst client = new Honcho({\n  apiKey: process.env['HONCHO_API_KEY'], // This is the default and can be omitted\n});\n\nasync function main() {\n  // Automatically fetches more pages as needed.\n  for await (const message of client.apps.users.sessions.messages.list('app_id', 'user_id', 'session_id')) {\n    console.log(message.id);\n  }\n}\n\nmain();"
          },
          {
            "lang": "Python",
            "source": "import os\nfrom honcho import Honcho\n\nclient = Honcho(\n    api_key=os.environ.get(\"HONCHO_API_KEY\"),  # This is the default and can be omitted\n)\npage = client.apps.users.sessions.messages.list(\n    session_id=\"session_id\",\n    app_id=\"app_id\",\n    user_id=\"user_id\",\n)\npage = page.items[0]\nprint(page.id)"
          }
        ]
      }
    },
    "/v1/apps/{app_id}/users/{user_id}/sessions/{session_id}/messages/{message_id}": {
      "get": {
        "tags": [
          "messages"
        ],
        "summary": "Get Message",
        "description": "Get a Message by ID",
        "operationId": "get_message_v1_apps__app_id__users__user_id__sessions__session_id__messages__message_id__get",
        "security": [
          {
            "HTTPBearer": []
          },
          {}
        ],
        "parameters": [
          {
            "name": "app_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the app",
              "title": "App Id"
            },
            "description": "ID of the app"
          },
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the user",
              "title": "User Id"
            },
            "description": "ID of the user"
          },
          {
            "name": "session_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the session",
              "title": "Session Id"
            },
            "description": "ID of the session"
          },
          {
            "name": "message_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the message to retrieve",
              "title": "Message Id"
            },
            "description": "ID of the message to retrieve"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Message"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "source": "import Honcho from 'honcho-ai';\n\nconst client = new Honcho({\n  apiKey: process.env['HONCHO_API_KEY'], // This is the default and can be omitted\n});\n\nasync function main() {\n  const message = await client.apps.users.sessions.messages.get(\n    'app_id',\n    'user_id',\n    'session_id',\n    'message_id',\n  );\n\n  console.log(message.id);\n}\n\nmain();"
          },
          {
            "lang": "Python",
            "source": "import os\nfrom honcho import Honcho\n\nclient = Honcho(\n    api_key=os.environ.get(\"HONCHO_API_KEY\"),  # This is the default and can be omitted\n)\nmessage = client.apps.users.sessions.messages.get(\n    message_id=\"message_id\",\n    app_id=\"app_id\",\n    user_id=\"user_id\",\n    session_id=\"session_id\",\n)\nprint(message.id)"
          }
        ]
      },
      "put": {
        "tags": [
          "messages"
        ],
        "summary": "Update Message",
        "description": "Update the metadata of a Message",
        "operationId": "update_message_v1_apps__app_id__users__user_id__sessions__session_id__messages__message_id__put",
        "security": [
          {
            "HTTPBearer": []
          },
          {}
        ],
        "parameters": [
          {
            "name": "app_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the app",
              "title": "App Id"
            },
            "description": "ID of the app"
          },
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the user",
              "title": "User Id"
            },
            "description": "ID of the user"
          },
          {
            "name": "session_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the session",
              "title": "Session Id"
            },
            "description": "ID of the session"
          },
          {
            "name": "message_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the message to update",
              "title": "Message Id"
            },
            "description": "ID of the message to update"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MessageUpdate",
                "description": "Updated message parameters"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Message"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "source": "import Honcho from 'honcho-ai';\n\nconst client = new Honcho({\n  apiKey: process.env['HONCHO_API_KEY'], // This is the default and can be omitted\n});\n\nasync function main() {\n  const message = await client.apps.users.sessions.messages.update(\n    'app_id',\n    'user_id',\n    'session_id',\n    'message_id',\n    { metadata: { foo: 'bar' } },\n  );\n\n  console.log(message.id);\n}\n\nmain();"
          },
          {
            "lang": "Python",
            "source": "import os\nfrom honcho import Honcho\n\nclient = Honcho(\n    api_key=os.environ.get(\"HONCHO_API_KEY\"),  # This is the default and can be omitted\n)\nmessage = client.apps.users.sessions.messages.update(\n    message_id=\"message_id\",\n    app_id=\"app_id\",\n    user_id=\"user_id\",\n    session_id=\"session_id\",\n    metadata={\n        \"foo\": \"bar\"\n    },\n)\nprint(message.id)"
          }
        ]
      }
    },
    "/v1/apps/{app_id}/users/{user_id}/metamessages": {
      "post": {
        "tags": [
          "metamessages"
        ],
        "summary": "Create Metamessage",
        "description": "Create a new metamessage associated with a user.\nOptionally link to a session and message by providing those IDs in the request body.",
        "operationId": "create_metamessage_v1_apps__app_id__users__user_id__metamessages_post",
        "security": [
          {
            "HTTPBearer": []
          },
          {}
        ],
        "parameters": [
          {
            "name": "app_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the app",
              "title": "App Id"
            },
            "description": "ID of the app"
          },
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the user",
              "title": "User Id"
            },
            "description": "ID of the user"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MetamessageCreate",
                "description": "Metamessage creation parameters"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Metamessage"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "source": "import Honcho from 'honcho-ai';\n\nconst client = new Honcho({\n  apiKey: process.env['HONCHO_API_KEY'], // This is the default and can be omitted\n});\n\nasync function main() {\n  const metamessage = await client.apps.users.metamessages.create('app_id', 'user_id', {\n    content: 'content',\n    metamessage_type: 'x',\n  });\n\n  console.log(metamessage.id);\n}\n\nmain();"
          },
          {
            "lang": "Python",
            "source": "import os\nfrom honcho import Honcho\n\nclient = Honcho(\n    api_key=os.environ.get(\"HONCHO_API_KEY\"),  # This is the default and can be omitted\n)\nmetamessage = client.apps.users.metamessages.create(\n    user_id=\"user_id\",\n    app_id=\"app_id\",\n    content=\"content\",\n    metamessage_type=\"x\",\n)\nprint(metamessage.id)"
          }
        ]
      }
    },
    "/v1/apps/{app_id}/users/{user_id}/metamessages/list": {
      "post": {
        "tags": [
          "metamessages"
        ],
        "summary": "Get Metamessages",
        "description": "Get metamessages with flexible filtering.\n\n- Filter by user only: No additional parameters needed\n- Filter by session: Provide session_id\n- Filter by message: Provide message_id (and session_id)\n- Filter by type: Provide label\n- Filter by metadata: Provide filter object",
        "operationId": "get_metamessages_v1_apps__app_id__users__user_id__metamessages_list_post",
        "security": [
          {
            "HTTPBearer": []
          },
          {}
        ],
        "parameters": [
          {
            "name": "app_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the app",
              "title": "App Id"
            },
            "description": "ID of the app"
          },
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the user",
              "title": "User Id"
            },
            "description": "ID of the user"
          },
          {
            "name": "reverse",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Whether to reverse the order of results",
              "default": false,
              "title": "Reverse"
            },
            "description": "Whether to reverse the order of results"
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "description": "Page number",
              "default": 1,
              "title": "Page"
            },
            "description": "Page number"
          },
          {
            "name": "size",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 100,
              "minimum": 1,
              "description": "Page size",
              "default": 50,
              "title": "Size"
            },
            "description": "Page size"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/MetamessageGet"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Filtering options for the metamessages list",
                "title": "Options"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Page_Metamessage_"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "source": "import Honcho from 'honcho-ai';\n\nconst client = new Honcho({\n  apiKey: process.env['HONCHO_API_KEY'], // This is the default and can be omitted\n});\n\nasync function main() {\n  // Automatically fetches more pages as needed.\n  for await (const metamessage of client.apps.users.metamessages.list('app_id', 'user_id')) {\n    console.log(metamessage.id);\n  }\n}\n\nmain();"
          },
          {
            "lang": "Python",
            "source": "import os\nfrom honcho import Honcho\n\nclient = Honcho(\n    api_key=os.environ.get(\"HONCHO_API_KEY\"),  # This is the default and can be omitted\n)\npage = client.apps.users.metamessages.list(\n    user_id=\"user_id\",\n    app_id=\"app_id\",\n)\npage = page.items[0]\nprint(page.id)"
          }
        ]
      }
    },
    "/v1/apps/{app_id}/users/{user_id}/metamessages/{metamessage_id}": {
      "get": {
        "tags": [
          "metamessages"
        ],
        "summary": "Get Metamessage",
        "description": "Get a specific Metamessage by ID",
        "operationId": "get_metamessage_v1_apps__app_id__users__user_id__metamessages__metamessage_id__get",
        "security": [
          {
            "HTTPBearer": []
          },
          {}
        ],
        "parameters": [
          {
            "name": "app_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the app",
              "title": "App Id"
            },
            "description": "ID of the app"
          },
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the user",
              "title": "User Id"
            },
            "description": "ID of the user"
          },
          {
            "name": "metamessage_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the metamessage to retrieve",
              "title": "Metamessage Id"
            },
            "description": "ID of the metamessage to retrieve"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Metamessage"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "source": "import Honcho from 'honcho-ai';\n\nconst client = new Honcho({\n  apiKey: process.env['HONCHO_API_KEY'], // This is the default and can be omitted\n});\n\nasync function main() {\n  const metamessage = await client.apps.users.metamessages.get('app_id', 'user_id', 'metamessage_id');\n\n  console.log(metamessage.id);\n}\n\nmain();"
          },
          {
            "lang": "Python",
            "source": "import os\nfrom honcho import Honcho\n\nclient = Honcho(\n    api_key=os.environ.get(\"HONCHO_API_KEY\"),  # This is the default and can be omitted\n)\nmetamessage = client.apps.users.metamessages.get(\n    metamessage_id=\"metamessage_id\",\n    app_id=\"app_id\",\n    user_id=\"user_id\",\n)\nprint(metamessage.id)"
          }
        ]
      },
      "put": {
        "tags": [
          "metamessages"
        ],
        "summary": "Update Metamessage",
        "description": "Update a metamessage's metadata, type, or relationships",
        "operationId": "update_metamessage_v1_apps__app_id__users__user_id__metamessages__metamessage_id__put",
        "security": [
          {
            "HTTPBearer": []
          },
          {}
        ],
        "parameters": [
          {
            "name": "app_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the app",
              "title": "App Id"
            },
            "description": "ID of the app"
          },
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the user",
              "title": "User Id"
            },
            "description": "ID of the user"
          },
          {
            "name": "metamessage_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the metamessage to update",
              "title": "Metamessage Id"
            },
            "description": "ID of the metamessage to update"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MetamessageUpdate",
                "description": "Updated metamessage parameters"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Metamessage"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "source": "import Honcho from 'honcho-ai';\n\nconst client = new Honcho({\n  apiKey: process.env['HONCHO_API_KEY'], // This is the default and can be omitted\n});\n\nasync function main() {\n  const metamessage = await client.apps.users.metamessages.update('app_id', 'user_id', 'metamessage_id');\n\n  console.log(metamessage.id);\n}\n\nmain();"
          },
          {
            "lang": "Python",
            "source": "import os\nfrom honcho import Honcho\n\nclient = Honcho(\n    api_key=os.environ.get(\"HONCHO_API_KEY\"),  # This is the default and can be omitted\n)\nmetamessage = client.apps.users.metamessages.update(\n    metamessage_id=\"metamessage_id\",\n    app_id=\"app_id\",\n    user_id=\"user_id\",\n)\nprint(metamessage.id)"
          }
        ]
      }
    },
    "/v1/apps/{app_id}/users/{user_id}/collections": {
      "get": {
        "tags": [
          "collections"
        ],
        "summary": "Get Collection",
        "description": "Get a specific collection for a user.\n\nIf collection_id is provided as a query parameter, it uses that (must match JWT collection_id).\nOtherwise, it uses the collection_id from the JWT.",
        "operationId": "get_collection_v1_apps__app_id__users__user_id__collections_get",
        "security": [
          {
            "HTTPBearer": []
          },
          {}
        ],
        "parameters": [
          {
            "name": "app_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the app",
              "title": "App Id"
            },
            "description": "ID of the app"
          },
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the user",
              "title": "User Id"
            },
            "description": "ID of the user"
          },
          {
            "name": "collection_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Collection ID to retrieve. If not provided, uses JWT",
              "title": "Collection Id"
            },
            "description": "Collection ID to retrieve. If not provided, uses JWT"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Collection"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "source": "import Honcho from 'honcho-ai';\n\nconst client = new Honcho({\n  apiKey: process.env['HONCHO_API_KEY'], // This is the default and can be omitted\n});\n\nasync function main() {\n  const collection = await client.apps.users.collections.get('app_id', 'user_id');\n\n  console.log(collection.id);\n}\n\nmain();"
          },
          {
            "lang": "Python",
            "source": "import os\nfrom honcho import Honcho\n\nclient = Honcho(\n    api_key=os.environ.get(\"HONCHO_API_KEY\"),  # This is the default and can be omitted\n)\ncollection = client.apps.users.collections.get(\n    user_id=\"user_id\",\n    app_id=\"app_id\",\n)\nprint(collection.id)"
          }
        ]
      },
      "post": {
        "tags": [
          "collections"
        ],
        "summary": "Create Collection",
        "description": "Create a new Collection",
        "operationId": "create_collection_v1_apps__app_id__users__user_id__collections_post",
        "security": [
          {
            "HTTPBearer": []
          },
          {}
        ],
        "parameters": [
          {
            "name": "app_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the app",
              "title": "App Id"
            },
            "description": "ID of the app"
          },
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the user",
              "title": "User Id"
            },
            "description": "ID of the user"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CollectionCreate",
                "description": "Collection creation parameters"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Collection"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "source": "import Honcho from 'honcho-ai';\n\nconst client = new Honcho({\n  apiKey: process.env['HONCHO_API_KEY'], // This is the default and can be omitted\n});\n\nasync function main() {\n  const collection = await client.apps.users.collections.create('app_id', 'user_id', { name: 'x' });\n\n  console.log(collection.id);\n}\n\nmain();"
          },
          {
            "lang": "Python",
            "source": "import os\nfrom honcho import Honcho\n\nclient = Honcho(\n    api_key=os.environ.get(\"HONCHO_API_KEY\"),  # This is the default and can be omitted\n)\ncollection = client.apps.users.collections.create(\n    user_id=\"user_id\",\n    app_id=\"app_id\",\n    name=\"x\",\n)\nprint(collection.id)"
          }
        ]
      }
    },
    "/v1/apps/{app_id}/users/{user_id}/collections/list": {
      "post": {
        "tags": [
          "collections"
        ],
        "summary": "Get Collections",
        "description": "Get All Collections for a User",
        "operationId": "get_collections_v1_apps__app_id__users__user_id__collections_list_post",
        "security": [
          {
            "HTTPBearer": []
          },
          {}
        ],
        "parameters": [
          {
            "name": "app_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the app",
              "title": "App Id"
            },
            "description": "ID of the app"
          },
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the user",
              "title": "User Id"
            },
            "description": "ID of the user"
          },
          {
            "name": "reverse",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Whether to reverse the order of results",
              "default": false,
              "title": "Reverse"
            },
            "description": "Whether to reverse the order of results"
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "description": "Page number",
              "default": 1,
              "title": "Page"
            },
            "description": "Page number"
          },
          {
            "name": "size",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 100,
              "minimum": 1,
              "description": "Page size",
              "default": 50,
              "title": "Size"
            },
            "description": "Page size"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/CollectionGet"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Filtering options for the collections list",
                "title": "Options"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Page_Collection_"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "source": "import Honcho from 'honcho-ai';\n\nconst client = new Honcho({\n  apiKey: process.env['HONCHO_API_KEY'], // This is the default and can be omitted\n});\n\nasync function main() {\n  // Automatically fetches more pages as needed.\n  for await (const collection of client.apps.users.collections.list('app_id', 'user_id')) {\n    console.log(collection.id);\n  }\n}\n\nmain();"
          },
          {
            "lang": "Python",
            "source": "import os\nfrom honcho import Honcho\n\nclient = Honcho(\n    api_key=os.environ.get(\"HONCHO_API_KEY\"),  # This is the default and can be omitted\n)\npage = client.apps.users.collections.list(\n    user_id=\"user_id\",\n    app_id=\"app_id\",\n)\npage = page.items[0]\nprint(page.id)"
          }
        ]
      }
    },
    "/v1/apps/{app_id}/users/{user_id}/collections/name/{name}": {
      "get": {
        "tags": [
          "collections"
        ],
        "summary": "Get Collection By Name",
        "description": "Get a Collection by Name",
        "operationId": "get_collection_by_name_v1_apps__app_id__users__user_id__collections_name__name__get",
        "security": [
          {
            "HTTPBearer": []
          },
          {}
        ],
        "parameters": [
          {
            "name": "app_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the app",
              "title": "App Id"
            },
            "description": "ID of the app"
          },
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the user",
              "title": "User Id"
            },
            "description": "ID of the user"
          },
          {
            "name": "name",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "Name of the collection to retrieve",
              "title": "Name"
            },
            "description": "Name of the collection to retrieve"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Collection"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "source": "import Honcho from 'honcho-ai';\n\nconst client = new Honcho({\n  apiKey: process.env['HONCHO_API_KEY'], // This is the default and can be omitted\n});\n\nasync function main() {\n  const collection = await client.apps.users.collections.getByName('app_id', 'user_id', 'name');\n\n  console.log(collection.id);\n}\n\nmain();"
          },
          {
            "lang": "Python",
            "source": "import os\nfrom honcho import Honcho\n\nclient = Honcho(\n    api_key=os.environ.get(\"HONCHO_API_KEY\"),  # This is the default and can be omitted\n)\ncollection = client.apps.users.collections.get_by_name(\n    name=\"name\",\n    app_id=\"app_id\",\n    user_id=\"user_id\",\n)\nprint(collection.id)"
          }
        ]
      }
    },
    "/v1/apps/{app_id}/users/{user_id}/collections/{collection_id}": {
      "put": {
        "tags": [
          "collections"
        ],
        "summary": "Update Collection",
        "description": "Update a Collection's name or metadata",
        "operationId": "update_collection_v1_apps__app_id__users__user_id__collections__collection_id__put",
        "security": [
          {
            "HTTPBearer": []
          },
          {}
        ],
        "parameters": [
          {
            "name": "app_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the app",
              "title": "App Id"
            },
            "description": "ID of the app"
          },
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the user",
              "title": "User Id"
            },
            "description": "ID of the user"
          },
          {
            "name": "collection_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the collection to update",
              "title": "Collection Id"
            },
            "description": "ID of the collection to update"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CollectionUpdate",
                "description": "Updated collection parameters"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Collection"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "source": "import Honcho from 'honcho-ai';\n\nconst client = new Honcho({\n  apiKey: process.env['HONCHO_API_KEY'], // This is the default and can be omitted\n});\n\nasync function main() {\n  const collection = await client.apps.users.collections.update('app_id', 'user_id', 'collection_id');\n\n  console.log(collection.id);\n}\n\nmain();"
          },
          {
            "lang": "Python",
            "source": "import os\nfrom honcho import Honcho\n\nclient = Honcho(\n    api_key=os.environ.get(\"HONCHO_API_KEY\"),  # This is the default and can be omitted\n)\ncollection = client.apps.users.collections.update(\n    collection_id=\"collection_id\",\n    app_id=\"app_id\",\n    user_id=\"user_id\",\n)\nprint(collection.id)"
          }
        ]
      },
      "delete": {
        "tags": [
          "collections"
        ],
        "summary": "Delete Collection",
        "description": "Delete a Collection and its documents",
        "operationId": "delete_collection_v1_apps__app_id__users__user_id__collections__collection_id__delete",
        "security": [
          {
            "HTTPBearer": []
          },
          {}
        ],
        "parameters": [
          {
            "name": "app_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the app",
              "title": "App Id"
            },
            "description": "ID of the app"
          },
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the user",
              "title": "User Id"
            },
            "description": "ID of the user"
          },
          {
            "name": "collection_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the collection to delete",
              "title": "Collection Id"
            },
            "description": "ID of the collection to delete"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "source": "import Honcho from 'honcho-ai';\n\nconst client = new Honcho({\n  apiKey: process.env['HONCHO_API_KEY'], // This is the default and can be omitted\n});\n\nasync function main() {\n  const collection = await client.apps.users.collections.delete('app_id', 'user_id', 'collection_id');\n\n  console.log(collection);\n}\n\nmain();"
          },
          {
            "lang": "Python",
            "source": "import os\nfrom honcho import Honcho\n\nclient = Honcho(\n    api_key=os.environ.get(\"HONCHO_API_KEY\"),  # This is the default and can be omitted\n)\ncollection = client.apps.users.collections.delete(\n    collection_id=\"collection_id\",\n    app_id=\"app_id\",\n    user_id=\"user_id\",\n)\nprint(collection)"
          }
        ]
      }
    },
    "/v1/apps/{app_id}/users/{user_id}/collections/{collection_id}/documents/list": {
      "post": {
        "tags": [
          "documents"
        ],
        "summary": "Get Documents",
        "description": "Get all of the Documents in a Collection",
        "operationId": "get_documents_v1_apps__app_id__users__user_id__collections__collection_id__documents_list_post",
        "security": [
          {
            "HTTPBearer": []
          },
          {}
        ],
        "parameters": [
          {
            "name": "app_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the app",
              "title": "App Id"
            },
            "description": "ID of the app"
          },
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the user",
              "title": "User Id"
            },
            "description": "ID of the user"
          },
          {
            "name": "collection_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the collection",
              "title": "Collection Id"
            },
            "description": "ID of the collection"
          },
          {
            "name": "reverse",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Whether to reverse the order of results",
              "default": false,
              "title": "Reverse"
            },
            "description": "Whether to reverse the order of results"
          },
          {
            "name": "page",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "description": "Page number",
              "default": 1,
              "title": "Page"
            },
            "description": "Page number"
          },
          {
            "name": "size",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "maximum": 100,
              "minimum": 1,
              "description": "Page size",
              "default": 50,
              "title": "Size"
            },
            "description": "Page size"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/DocumentGet"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Filtering options for the documents list",
                "title": "Options"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Page_Document_"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "source": "import Honcho from 'honcho-ai';\n\nconst client = new Honcho({\n  apiKey: process.env['HONCHO_API_KEY'], // This is the default and can be omitted\n});\n\nasync function main() {\n  // Automatically fetches more pages as needed.\n  for await (const document of client.apps.users.collections.documents.list(\n    'app_id',\n    'user_id',\n    'collection_id',\n  )) {\n    console.log(document.id);\n  }\n}\n\nmain();"
          },
          {
            "lang": "Python",
            "source": "import os\nfrom honcho import Honcho\n\nclient = Honcho(\n    api_key=os.environ.get(\"HONCHO_API_KEY\"),  # This is the default and can be omitted\n)\npage = client.apps.users.collections.documents.list(\n    collection_id=\"collection_id\",\n    app_id=\"app_id\",\n    user_id=\"user_id\",\n)\npage = page.items[0]\nprint(page.id)"
          }
        ]
      }
    },
    "/v1/apps/{app_id}/users/{user_id}/collections/{collection_id}/documents/{document_id}": {
      "get": {
        "tags": [
          "documents"
        ],
        "summary": "Get Document",
        "description": "Get a document by ID",
        "operationId": "get_document_v1_apps__app_id__users__user_id__collections__collection_id__documents__document_id__get",
        "security": [
          {
            "HTTPBearer": []
          },
          {}
        ],
        "parameters": [
          {
            "name": "app_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the app",
              "title": "App Id"
            },
            "description": "ID of the app"
          },
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the user",
              "title": "User Id"
            },
            "description": "ID of the user"
          },
          {
            "name": "collection_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the collection",
              "title": "Collection Id"
            },
            "description": "ID of the collection"
          },
          {
            "name": "document_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the document to retrieve",
              "title": "Document Id"
            },
            "description": "ID of the document to retrieve"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Document"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "source": "import Honcho from 'honcho-ai';\n\nconst client = new Honcho({\n  apiKey: process.env['HONCHO_API_KEY'], // This is the default and can be omitted\n});\n\nasync function main() {\n  const document = await client.apps.users.collections.documents.get(\n    'app_id',\n    'user_id',\n    'collection_id',\n    'document_id',\n  );\n\n  console.log(document.id);\n}\n\nmain();"
          },
          {
            "lang": "Python",
            "source": "import os\nfrom honcho import Honcho\n\nclient = Honcho(\n    api_key=os.environ.get(\"HONCHO_API_KEY\"),  # This is the default and can be omitted\n)\ndocument = client.apps.users.collections.documents.get(\n    document_id=\"document_id\",\n    app_id=\"app_id\",\n    user_id=\"user_id\",\n    collection_id=\"collection_id\",\n)\nprint(document.id)"
          }
        ]
      },
      "put": {
        "tags": [
          "documents"
        ],
        "summary": "Update Document",
        "description": "Update the content and/or the metadata of a Document",
        "operationId": "update_document_v1_apps__app_id__users__user_id__collections__collection_id__documents__document_id__put",
        "security": [
          {
            "HTTPBearer": []
          },
          {}
        ],
        "parameters": [
          {
            "name": "app_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the app",
              "title": "App Id"
            },
            "description": "ID of the app"
          },
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the user",
              "title": "User Id"
            },
            "description": "ID of the user"
          },
          {
            "name": "collection_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the collection",
              "title": "Collection Id"
            },
            "description": "ID of the collection"
          },
          {
            "name": "document_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the document to update",
              "title": "Document Id"
            },
            "description": "ID of the document to update"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DocumentUpdate",
                "description": "Updated document parameters"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Document"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "source": "import Honcho from 'honcho-ai';\n\nconst client = new Honcho({\n  apiKey: process.env['HONCHO_API_KEY'], // This is the default and can be omitted\n});\n\nasync function main() {\n  const document = await client.apps.users.collections.documents.update(\n    'app_id',\n    'user_id',\n    'collection_id',\n    'document_id',\n  );\n\n  console.log(document.id);\n}\n\nmain();"
          },
          {
            "lang": "Python",
            "source": "import os\nfrom honcho import Honcho\n\nclient = Honcho(\n    api_key=os.environ.get(\"HONCHO_API_KEY\"),  # This is the default and can be omitted\n)\ndocument = client.apps.users.collections.documents.update(\n    document_id=\"document_id\",\n    app_id=\"app_id\",\n    user_id=\"user_id\",\n    collection_id=\"collection_id\",\n)\nprint(document.id)"
          }
        ]
      },
      "delete": {
        "tags": [
          "documents"
        ],
        "summary": "Delete Document",
        "description": "Delete a Document by ID",
        "operationId": "delete_document_v1_apps__app_id__users__user_id__collections__collection_id__documents__document_id__delete",
        "security": [
          {
            "HTTPBearer": []
          },
          {}
        ],
        "parameters": [
          {
            "name": "app_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the app",
              "title": "App Id"
            },
            "description": "ID of the app"
          },
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the user",
              "title": "User Id"
            },
            "description": "ID of the user"
          },
          {
            "name": "collection_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the collection",
              "title": "Collection Id"
            },
            "description": "ID of the collection"
          },
          {
            "name": "document_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the document to delete",
              "title": "Document Id"
            },
            "description": "ID of the document to delete"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "source": "import Honcho from 'honcho-ai';\n\nconst client = new Honcho({\n  apiKey: process.env['HONCHO_API_KEY'], // This is the default and can be omitted\n});\n\nasync function main() {\n  const document = await client.apps.users.collections.documents.delete(\n    'app_id',\n    'user_id',\n    'collection_id',\n    'document_id',\n  );\n\n  console.log(document);\n}\n\nmain();"
          },
          {
            "lang": "Python",
            "source": "import os\nfrom honcho import Honcho\n\nclient = Honcho(\n    api_key=os.environ.get(\"HONCHO_API_KEY\"),  # This is the default and can be omitted\n)\ndocument = client.apps.users.collections.documents.delete(\n    document_id=\"document_id\",\n    app_id=\"app_id\",\n    user_id=\"user_id\",\n    collection_id=\"collection_id\",\n)\nprint(document)"
          }
        ]
      }
    },
    "/v1/apps/{app_id}/users/{user_id}/collections/{collection_id}/documents/query": {
      "post": {
        "tags": [
          "documents"
        ],
        "summary": "Query Documents",
        "description": "Cosine Similarity Search for Documents",
        "operationId": "query_documents_v1_apps__app_id__users__user_id__collections__collection_id__documents_query_post",
        "security": [
          {
            "HTTPBearer": []
          },
          {}
        ],
        "parameters": [
          {
            "name": "app_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the app",
              "title": "App Id"
            },
            "description": "ID of the app"
          },
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the user",
              "title": "User Id"
            },
            "description": "ID of the user"
          },
          {
            "name": "collection_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the collection",
              "title": "Collection Id"
            },
            "description": "ID of the collection"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DocumentQuery",
                "description": "Query parameters for document search"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Document"
                  },
                  "title": "Response Query Documents V1 Apps  App Id  Users  User Id  Collections  Collection Id  Documents Query Post"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "source": "import Honcho from 'honcho-ai';\n\nconst client = new Honcho({\n  apiKey: process.env['HONCHO_API_KEY'], // This is the default and can be omitted\n});\n\nasync function main() {\n  const documents = await client.apps.users.collections.documents.query(\n    'app_id',\n    'user_id',\n    'collection_id',\n    { query: 'x' },\n  );\n\n  console.log(documents);\n}\n\nmain();"
          },
          {
            "lang": "Python",
            "source": "import os\nfrom honcho import Honcho\n\nclient = Honcho(\n    api_key=os.environ.get(\"HONCHO_API_KEY\"),  # This is the default and can be omitted\n)\ndocuments = client.apps.users.collections.documents.query(\n    collection_id=\"collection_id\",\n    app_id=\"app_id\",\n    user_id=\"user_id\",\n    query=\"x\",\n)\nprint(documents)"
          }
        ]
      }
    },
    "/v1/apps/{app_id}/users/{user_id}/collections/{collection_id}/documents": {
      "post": {
        "tags": [
          "documents"
        ],
        "summary": "Create Document",
        "description": "Embed text as a vector and create a Document",
        "operationId": "create_document_v1_apps__app_id__users__user_id__collections__collection_id__documents_post",
        "security": [
          {
            "HTTPBearer": []
          },
          {}
        ],
        "parameters": [
          {
            "name": "app_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the app",
              "title": "App Id"
            },
            "description": "ID of the app"
          },
          {
            "name": "user_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the user",
              "title": "User Id"
            },
            "description": "ID of the user"
          },
          {
            "name": "collection_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "description": "ID of the collection",
              "title": "Collection Id"
            },
            "description": "ID of the collection"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DocumentCreate",
                "description": "Document creation parameters"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Document"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "source": "import Honcho from 'honcho-ai';\n\nconst client = new Honcho({\n  apiKey: process.env['HONCHO_API_KEY'], // This is the default and can be omitted\n});\n\nasync function main() {\n  const document = await client.apps.users.collections.documents.create(\n    'app_id',\n    'user_id',\n    'collection_id',\n    { content: 'x' },\n  );\n\n  console.log(document.id);\n}\n\nmain();"
          },
          {
            "lang": "Python",
            "source": "import os\nfrom honcho import Honcho\n\nclient = Honcho(\n    api_key=os.environ.get(\"HONCHO_API_KEY\"),  # This is the default and can be omitted\n)\ndocument = client.apps.users.collections.documents.create(\n    collection_id=\"collection_id\",\n    app_id=\"app_id\",\n    user_id=\"user_id\",\n    content=\"x\",\n)\nprint(document.id)"
          }
        ]
      }
    },
    "/v1/keys": {
      "post": {
        "tags": [
          "keys"
        ],
        "summary": "Create Key",
        "description": "Create a new Key",
        "operationId": "create_key_v1_keys_post",
        "security": [
          {
            "HTTPBearer": []
          },
          {}
        ],
        "parameters": [
          {
            "name": "app_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "ID of the app to scope the key to",
              "title": "App Id"
            },
            "description": "ID of the app to scope the key to"
          },
          {
            "name": "user_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "ID of the user to scope the key to",
              "title": "User Id"
            },
            "description": "ID of the user to scope the key to"
          },
          {
            "name": "session_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "ID of the session to scope the key to",
              "title": "Session Id"
            },
            "description": "ID of the session to scope the key to"
          },
          {
            "name": "collection_id",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "ID of the collection to scope the key to",
              "title": "Collection Id"
            },
            "description": "ID of the collection to scope the key to"
          },
          {
            "name": "expires_at",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date-time"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Expires At"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {}
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "source": "import Honcho from 'honcho-ai';\n\nconst client = new Honcho({\n  apiKey: process.env['HONCHO_API_KEY'], // This is the default and can be omitted\n});\n\nasync function main() {\n  const key = await client.keys.create();\n\n  console.log(key);\n}\n\nmain();"
          },
          {
            "lang": "Python",
            "source": "import os\nfrom honcho import Honcho\n\nclient = Honcho(\n    api_key=os.environ.get(\"HONCHO_API_KEY\"),  # This is the default and can be omitted\n)\nkey = client.keys.create()\nprint(key)"
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "App": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id"
          },
          "name": {
            "type": "string",
            "title": "Name"
          },
          "metadata": {
            "additionalProperties": true,
            "type": "object",
            "title": "Metadata",
            "default": {}
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          }
        },
        "type": "object",
        "required": [
          "id",
          "name",
          "created_at"
        ],
        "title": "App"
      },
      "AppCreate": {
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 100,
            "minLength": 1,
            "title": "Name"
          },
          "metadata": {
            "additionalProperties": true,
            "type": "object",
            "title": "Metadata",
            "default": {}
          }
        },
        "type": "object",
        "required": [
          "name"
        ],
        "title": "AppCreate"
      },
      "AppGet": {
        "properties": {
          "filter": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Filter"
          }
        },
        "type": "object",
        "title": "AppGet"
      },
      "AppUpdate": {
        "properties": {
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "metadata": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Metadata"
          }
        },
        "type": "object",
        "title": "AppUpdate"
      },
      "Collection": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id"
          },
          "name": {
            "type": "string",
            "title": "Name"
          },
          "user_id": {
            "type": "string",
            "title": "User Id"
          },
          "app_id": {
            "type": "string",
            "title": "App Id"
          },
          "metadata": {
            "additionalProperties": true,
            "type": "object",
            "title": "Metadata",
            "default": {}
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          }
        },
        "type": "object",
        "required": [
          "id",
          "name",
          "user_id",
          "app_id",
          "created_at"
        ],
        "title": "Collection"
      },
      "CollectionCreate": {
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 100,
            "minLength": 1,
            "title": "Name"
          },
          "metadata": {
            "additionalProperties": true,
            "type": "object",
            "title": "Metadata",
            "default": {}
          }
        },
        "type": "object",
        "required": [
          "name"
        ],
        "title": "CollectionCreate"
      },
      "CollectionGet": {
        "properties": {
          "filter": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Filter"
          }
        },
        "type": "object",
        "title": "CollectionGet"
      },
      "CollectionUpdate": {
        "properties": {
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "metadata": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Metadata"
          }
        },
        "type": "object",
        "title": "CollectionUpdate"
      },
      "DialecticOptions": {
        "properties": {
          "queries": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              }
            ],
            "title": "Queries"
          },
          "stream": {
            "type": "boolean",
            "title": "Stream",
            "default": false
          }
        },
        "type": "object",
        "required": [
          "queries"
        ],
        "title": "DialecticOptions"
      },
      "DialecticResponse": {
        "properties": {
          "content": {
            "type": "string",
            "title": "Content"
          }
        },
        "type": "object",
        "required": [
          "content"
        ],
        "title": "DialecticResponse"
      },
      "Document": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id"
          },
          "content": {
            "type": "string",
            "title": "Content"
          },
          "metadata": {
            "additionalProperties": true,
            "type": "object",
            "title": "Metadata",
            "default": {}
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          },
          "collection_id": {
            "type": "string",
            "title": "Collection Id"
          },
          "app_id": {
            "type": "string",
            "title": "App Id"
          },
          "user_id": {
            "type": "string",
            "title": "User Id"
          }
        },
        "type": "object",
        "required": [
          "id",
          "content",
          "created_at",
          "collection_id",
          "app_id",
          "user_id"
        ],
        "title": "Document"
      },
      "DocumentCreate": {
        "properties": {
          "content": {
            "type": "string",
            "maxLength": 100000,
            "minLength": 1,
            "title": "Content"
          },
          "metadata": {
            "additionalProperties": true,
            "type": "object",
            "title": "Metadata",
            "default": {}
          }
        },
        "type": "object",
        "required": [
          "content"
        ],
        "title": "DocumentCreate"
      },
      "DocumentGet": {
        "properties": {
          "filter": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Filter"
          }
        },
        "type": "object",
        "title": "DocumentGet"
      },
      "DocumentQuery": {
        "properties": {
          "query": {
            "type": "string",
            "maxLength": 1000,
            "minLength": 1,
            "title": "Query"
          },
          "filter": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Filter"
          },
          "top_k": {
            "type": "integer",
            "maximum": 50,
            "minimum": 1,
            "title": "Top K",
            "default": 5
          }
        },
        "type": "object",
        "required": [
          "query"
        ],
        "title": "DocumentQuery"
      },
      "DocumentUpdate": {
        "properties": {
          "metadata": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object",
                "maxProperties": 10000
              },
              {
                "type": "null"
              }
            ],
            "title": "Metadata"
          },
          "content": {
            "anyOf": [
              {
                "type": "string",
                "maxLength": 100000,
                "minLength": 1
              },
              {
                "type": "null"
              }
            ],
            "title": "Content"
          }
        },
        "type": "object",
        "title": "DocumentUpdate"
      },
      "HTTPValidationError": {
        "properties": {
          "detail": {
            "items": {
              "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
          }
        },
        "type": "object",
        "title": "HTTPValidationError"
      },
      "Message": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id"
          },
          "content": {
            "type": "string",
            "title": "Content"
          },
          "is_user": {
            "type": "boolean",
            "title": "Is User"
          },
          "session_id": {
            "type": "string",
            "title": "Session Id"
          },
          "metadata": {
            "additionalProperties": true,
            "type": "object",
            "title": "Metadata",
            "default": {}
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          },
          "app_id": {
            "type": "string",
            "title": "App Id"
          },
          "user_id": {
            "type": "string",
            "title": "User Id"
          }
        },
        "type": "object",
        "required": [
          "id",
          "content",
          "is_user",
          "session_id",
          "created_at",
          "app_id",
          "user_id"
        ],
        "title": "Message"
      },
      "MessageBatchCreate": {
        "properties": {
          "messages": {
            "items": {
              "$ref": "#/components/schemas/MessageCreate"
            },
            "type": "array",
            "maxItems": 100,
            "title": "Messages"
          }
        },
        "type": "object",
        "required": [
          "messages"
        ],
        "title": "MessageBatchCreate",
        "description": "Schema for batch message creation with a max of 100 messages"
      },
      "MessageCreate": {
        "properties": {
          "content": {
            "type": "string",
            "maxLength": 50000,
            "minLength": 0,
            "title": "Content"
          },
          "is_user": {
            "type": "boolean",
            "title": "Is User"
          },
          "metadata": {
            "additionalProperties": true,
            "type": "object",
            "title": "Metadata",
            "default": {}
          }
        },
        "type": "object",
        "required": [
          "content",
          "is_user"
        ],
        "title": "MessageCreate"
      },
      "MessageGet": {
        "properties": {
          "filter": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Filter"
          }
        },
        "type": "object",
        "title": "MessageGet"
      },
      "MessageUpdate": {
        "properties": {
          "metadata": {
            "additionalProperties": true,
            "type": "object",
            "title": "Metadata"
          }
        },
        "type": "object",
        "required": [
          "metadata"
        ],
        "title": "MessageUpdate"
      },
      "Metamessage": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id"
          },
          "label": {
            "type": "string",
            "title": "Label"
          },
          "content": {
            "type": "string",
            "title": "Content"
          },
          "user_id": {
            "type": "string",
            "title": "User Id"
          },
          "app_id": {
            "type": "string",
            "title": "App Id"
          },
          "session_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Session Id"
          },
          "message_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Message Id"
          },
          "metadata": {
            "additionalProperties": true,
            "type": "object",
            "title": "Metadata",
            "default": {}
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          },
          "metamessage_type": {
            "type": "string",
            "title": "Metamessage Type",
            "readOnly": true
          }
        },
        "type": "object",
        "required": [
          "id",
          "label",
          "content",
          "user_id",
          "app_id",
          "session_id",
          "message_id",
          "created_at",
          "metamessage_type"
        ],
        "title": "Metamessage"
      },
      "MetamessageCreate": {
        "properties": {
          "metamessage_type": {
            "type": "string",
            "maxLength": 50,
            "minLength": 1,
            "title": "Metamessage Type"
          },
          "content": {
            "type": "string",
            "maxLength": 50000,
            "minLength": 0,
            "title": "Content"
          },
          "session_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Session Id"
          },
          "message_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Message Id"
          },
          "metadata": {
            "additionalProperties": true,
            "type": "object",
            "title": "Metadata",
            "default": {}
          }
        },
        "type": "object",
        "required": [
          "metamessage_type",
          "content"
        ],
        "title": "MetamessageCreate"
      },
      "MetamessageGet": {
        "properties": {
          "metamessage_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Metamessage Type"
          },
          "session_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Session Id"
          },
          "message_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Message Id"
          },
          "filter": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Filter"
          }
        },
        "type": "object",
        "title": "MetamessageGet"
      },
      "MetamessageUpdate": {
        "properties": {
          "session_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Session Id"
          },
          "message_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Message Id"
          },
          "metamessage_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Metamessage Type"
          },
          "metadata": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Metadata"
          }
        },
        "type": "object",
        "title": "MetamessageUpdate"
      },
      "Page_App_": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/App"
            },
            "type": "array",
            "title": "Items"
          },
          "total": {
            "type": "integer",
            "minimum": 0,
            "title": "Total"
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "title": "Page"
          },
          "size": {
            "type": "integer",
            "minimum": 1,
            "title": "Size"
          },
          "pages": {
            "type": "integer",
            "minimum": 0,
            "title": "Pages"
          }
        },
        "type": "object",
        "required": [
          "items",
          "total",
          "page",
          "size"
        ],
        "title": "Page[App]"
      },
      "Page_Collection_": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/Collection"
            },
            "type": "array",
            "title": "Items"
          },
          "total": {
            "type": "integer",
            "minimum": 0,
            "title": "Total"
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "title": "Page"
          },
          "size": {
            "type": "integer",
            "minimum": 1,
            "title": "Size"
          },
          "pages": {
            "type": "integer",
            "minimum": 0,
            "title": "Pages"
          }
        },
        "type": "object",
        "required": [
          "items",
          "total",
          "page",
          "size"
        ],
        "title": "Page[Collection]"
      },
      "Page_Document_": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/Document"
            },
            "type": "array",
            "title": "Items"
          },
          "total": {
            "type": "integer",
            "minimum": 0,
            "title": "Total"
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "title": "Page"
          },
          "size": {
            "type": "integer",
            "minimum": 1,
            "title": "Size"
          },
          "pages": {
            "type": "integer",
            "minimum": 0,
            "title": "Pages"
          }
        },
        "type": "object",
        "required": [
          "items",
          "total",
          "page",
          "size"
        ],
        "title": "Page[Document]"
      },
      "Page_Message_": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/Message"
            },
            "type": "array",
            "title": "Items"
          },
          "total": {
            "type": "integer",
            "minimum": 0,
            "title": "Total"
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "title": "Page"
          },
          "size": {
            "type": "integer",
            "minimum": 1,
            "title": "Size"
          },
          "pages": {
            "type": "integer",
            "minimum": 0,
            "title": "Pages"
          }
        },
        "type": "object",
        "required": [
          "items",
          "total",
          "page",
          "size"
        ],
        "title": "Page[Message]"
      },
      "Page_Metamessage_": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/Metamessage"
            },
            "type": "array",
            "title": "Items"
          },
          "total": {
            "type": "integer",
            "minimum": 0,
            "title": "Total"
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "title": "Page"
          },
          "size": {
            "type": "integer",
            "minimum": 1,
            "title": "Size"
          },
          "pages": {
            "type": "integer",
            "minimum": 0,
            "title": "Pages"
          }
        },
        "type": "object",
        "required": [
          "items",
          "total",
          "page",
          "size"
        ],
        "title": "Page[Metamessage]"
      },
      "Page_Session_": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/Session"
            },
            "type": "array",
            "title": "Items"
          },
          "total": {
            "type": "integer",
            "minimum": 0,
            "title": "Total"
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "title": "Page"
          },
          "size": {
            "type": "integer",
            "minimum": 1,
            "title": "Size"
          },
          "pages": {
            "type": "integer",
            "minimum": 0,
            "title": "Pages"
          }
        },
        "type": "object",
        "required": [
          "items",
          "total",
          "page",
          "size"
        ],
        "title": "Page[Session]"
      },
      "Page_User_": {
        "properties": {
          "items": {
            "items": {
              "$ref": "#/components/schemas/User"
            },
            "type": "array",
            "title": "Items"
          },
          "total": {
            "type": "integer",
            "minimum": 0,
            "title": "Total"
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "title": "Page"
          },
          "size": {
            "type": "integer",
            "minimum": 1,
            "title": "Size"
          },
          "pages": {
            "type": "integer",
            "minimum": 0,
            "title": "Pages"
          }
        },
        "type": "object",
        "required": [
          "items",
          "total",
          "page",
          "size"
        ],
        "title": "Page[User]"
      },
      "Session": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id"
          },
          "is_active": {
            "type": "boolean",
            "title": "Is Active"
          },
          "user_id": {
            "type": "string",
            "title": "User Id"
          },
          "app_id": {
            "type": "string",
            "title": "App Id"
          },
          "metadata": {
            "additionalProperties": true,
            "type": "object",
            "title": "Metadata",
            "default": {}
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          }
        },
        "type": "object",
        "required": [
          "id",
          "is_active",
          "user_id",
          "app_id",
          "created_at"
        ],
        "title": "Session"
      },
      "SessionCreate": {
        "properties": {
          "metadata": {
            "additionalProperties": true,
            "type": "object",
            "title": "Metadata",
            "default": {}
          }
        },
        "type": "object",
        "title": "SessionCreate"
      },
      "SessionGet": {
        "properties": {
          "filter": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Filter"
          },
          "is_active": {
            "type": "boolean",
            "title": "Is Active",
            "default": false
          }
        },
        "type": "object",
        "title": "SessionGet"
      },
      "SessionUpdate": {
        "properties": {
          "metadata": {
            "additionalProperties": true,
            "type": "object",
            "title": "Metadata"
          }
        },
        "type": "object",
        "required": [
          "metadata"
        ],
        "title": "SessionUpdate"
      },
      "User": {
        "properties": {
          "id": {
            "type": "string",
            "title": "Id"
          },
          "name": {
            "type": "string",
            "title": "Name"
          },
          "app_id": {
            "type": "string",
            "title": "App Id"
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "title": "Created At"
          },
          "metadata": {
            "additionalProperties": true,
            "type": "object",
            "title": "Metadata",
            "default": {}
          }
        },
        "type": "object",
        "required": [
          "id",
          "name",
          "app_id",
          "created_at"
        ],
        "title": "User"
      },
      "UserCreate": {
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 100,
            "minLength": 1,
            "title": "Name"
          },
          "metadata": {
            "additionalProperties": true,
            "type": "object",
            "title": "Metadata",
            "default": {}
          }
        },
        "type": "object",
        "required": [
          "name"
        ],
        "title": "UserCreate"
      },
      "UserGet": {
        "properties": {
          "filter": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Filter"
          }
        },
        "type": "object",
        "title": "UserGet"
      },
      "UserUpdate": {
        "properties": {
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Name"
          },
          "metadata": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Metadata"
          }
        },
        "type": "object",
        "title": "UserUpdate"
      },
      "ValidationError": {
        "properties": {
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "type": "array",
            "title": "Location"
          },
          "msg": {
            "type": "string",
            "title": "Message"
          },
          "type": {
            "type": "string",
            "title": "Error Type"
          }
        },
        "type": "object",
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError"
      }
    },
    "securitySchemes": {
      "HTTPBearer": {
        "type": "http",
        "scheme": "bearer"
      }
    }
  }
}