PipesHub · Schema

CreateConversationRequest

Request body for creating a new AI conversation. **Query Processing:** The query is processed through PipesHub's AI pipeline which: - Performs semantic search across indexed knowledge bases - Retrieves relevant context from matching documents - Generates a response with citations to source materials - Suggests follow-up questions based on the conversation

CompanyArtificial IntelligenceEnterprise SearchAI AgentsOpen SourceKnowledge ManagementWorkplace AI

Properties

Name Type Description
query string The user's question or prompt to start the conversation. Supports natural language queries of any complexity.
recordIds array Limit the AI's knowledge scope to specific records/documents. When provided, only these records will be searched for context.
filters object
appliedFilters object
attachments array Uploaded chat attachments to associate with this conversation turn (see `POST /conversations/attachments/upload`).
projectId string Link the new conversation to a project the caller has at least viewer access to. When the project's instructions, knowledge scope, or files are set and this request didn't supply its own `filters`/`at
projectVisibility string Only meaningful together with `projectId`. Overrides the project's default sharing behavior for this one conversation: `private` keeps it visible to the owner only; `project` exposes it to every proje
modelKey string Identifier for the AI model configuration to use. Available models depend on organization settings.
modelName string Display name of the AI model
modelFriendlyName string Friendly display name of the selected model
chatMode string Optional execution mode for non-stream consumers of this shared request schema. `agent` uses the universal agent loop, while `internal_search` and `web_search` use their corresponding assistant search
timezone string IANA timezone identifier from the client (top-level field). Used to provide time-aware context to the AI.
currentTime string ISO 8601 / RFC 3339 datetime from the client (top-level field; UTC `Z` or numeric offset).
tools array Optional list of tool identifiers (fully-qualified action names such as "jira.create_issue") that the AI agent is permitted to invoke for this request. When omitted the agent may use any configured to
protocol string AG-UI is the only supported wire protocol. When present must be `"agui"`. Omitting the field is equivalent — the server always uses the AG-UI vocabulary (`RUN_STARTED`, `TEXT_MESSAGE_CONTENT`, etc.).
agentCapabilities object
runId string Client-generated identifier for this run. Send it here to enable `POST /conversations/{conversationId}/cancel {runId}` while the stream is still generating. Optional — a caller that never sends one ju
View JSON Schema on GitHub

JSON Schema

pipeshub-create-conversation-request-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/pipeshub/main/json-schema/pipeshub-create-conversation-request-schema.json",
  "title": "CreateConversationRequest",
  "description": "Request body for creating a new AI conversation.\n\n**Query Processing:**\n\nThe query is processed through PipesHub's AI pipeline which:\n\n- Performs semantic search across indexed knowledge bases\n- Retrieves relevant context from matching documents\n- Generates a response with citations to source materials\n- Suggests follow-up questions based on the conversation\n",
  "x-generated": "2026-10-09",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/pipeshub-openapi.yml#/components/schemas/CreateConversationRequest",
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "query": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100000,
      "description": "The user's question or prompt to start the conversation.\nSupports natural language queries of any complexity.\n"
    },
    "recordIds": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "objectId"
      },
      "description": "Limit the AI's knowledge scope to specific records/documents.\nWhen provided, only these records will be searched for context.\n"
    },
    "filters": {
      "$ref": "#/$defs/Filters"
    },
    "appliedFilters": {
      "$ref": "#/$defs/AppliedFilters"
    },
    "attachments": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/ChatAttachmentRef"
      },
      "description": "Uploaded chat attachments to associate with this conversation turn (see\n`POST /conversations/attachments/upload`).\n"
    },
    "projectId": {
      "type": "string",
      "format": "objectId",
      "description": "Link the new conversation to a project the caller has at least\nviewer access to. When the project's instructions, knowledge\nscope, or files are set and this request didn't supply its own\n`filters`/`attachments`, they are merged in as a fallback (the\nrequest always wins). Ignored on follow-up turns — only\nmeaningful when creating a conversation.\n"
    },
    "projectVisibility": {
      "type": "string",
      "enum": [
        "private",
        "project"
      ],
      "description": "Only meaningful together with `projectId`. Overrides the\nproject's default sharing behavior for this one conversation:\n`private` keeps it visible to the owner only; `project` exposes\nit to every project member. Defaults from the project's\n`chatSharing` setting when omitted.\n"
    },
    "modelKey": {
      "type": "string",
      "description": "Identifier for the AI model configuration to use.\nAvailable models depend on organization settings.\n"
    },
    "modelName": {
      "type": "string",
      "description": "Display name of the AI model"
    },
    "modelFriendlyName": {
      "type": "string",
      "description": "Friendly display name of the selected model"
    },
    "chatMode": {
      "type": "string",
      "enum": [
        "agent",
        "internal_search",
        "web_search"
      ],
      "description": "Optional execution mode for non-stream consumers of this shared\nrequest schema.\n`agent` uses the universal agent loop, while `internal_search`\nand `web_search` use their corresponding assistant search paths.\n"
    },
    "timezone": {
      "type": "string",
      "minLength": 1,
      "description": "IANA timezone identifier from the client (top-level field).\nUsed to provide time-aware context to the AI.\n"
    },
    "currentTime": {
      "type": "string",
      "format": "date-time",
      "description": "ISO 8601 / RFC 3339 datetime from the client (top-level field; UTC `Z` or numeric offset).\n"
    },
    "tools": {
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1
      },
      "description": "Optional list of tool identifiers (fully-qualified action names such as\n\"jira.create_issue\") that the AI agent is permitted to invoke for this\nrequest. When omitted the agent may use any configured tool. Applicable\nonly when `chatMode` is `agent`.\n"
    },
    "protocol": {
      "type": "string",
      "enum": [
        "agui"
      ],
      "description": "AG-UI is the only supported wire protocol. When present must be\n`\"agui\"`. Omitting the field is equivalent — the server always\nuses the AG-UI vocabulary (`RUN_STARTED`, `TEXT_MESSAGE_CONTENT`,\netc.). Kept in the schema for backward compatibility with callers\nthat already send it.\n"
    },
    "agentCapabilities": {
      "$ref": "#/$defs/AgentCapabilities"
    },
    "runId": {
      "type": "string",
      "format": "uuid",
      "description": "Client-generated identifier for this run. Send it here to enable\n`POST /conversations/{conversationId}/cancel {runId}` while the\nstream is still generating. Optional — a caller that never sends\none just can't cooperatively cancel the run.\n"
    }
  },
  "$defs": {
    "AgentCapabilities": {
      "type": "object",
      "additionalProperties": false,
      "description": "Per-request agent capability toggles. Only meaningful when `chatMode`\nselects an agent mode; ignored otherwise. Each field falls back to its\nown `default` below when omitted — a missing flag is not uniformly\n`true`. Omitting the whole object applies every default.\n",
      "properties": {
        "internalSearch": {
          "type": "boolean",
          "default": true,
          "description": "Whether the agent may search internal knowledge bases for this turn."
        },
        "webSearch": {
          "type": "boolean",
          "default": true,
          "description": "Whether the agent may perform web search for this turn."
        },
        "deepSearch": {
          "type": "boolean",
          "default": false,
          "description": "Whether the agent may use deeper, higher-latency retrieval for this turn."
        }
      }
    },
    "AppliedFilterNode": {
      "type": "object",
      "additionalProperties": false,
      "description": "A single filter node selected by the user (used for display/persistence of active filters)",
      "properties": {
        "id": {
          "type": "string",
          "description": "Unique identifier of the filter node"
        },
        "name": {
          "type": "string",
          "description": "Display name of the filter node"
        },
        "nodeType": {
          "type": "string",
          "description": "Type of the node (e.g. app, recordGroup, folder, record)"
        },
        "connector": {
          "type": "string",
          "description": "Connector identifier associated with this node"
        }
      }
    },
    "AppliedFilters": {
      "type": "object",
      "additionalProperties": false,
      "description": "Rich filter state selected by the user, used for display and persistence only.\nThis mirrors the active selection shown in the UI and is distinct from the\nmachine-readable `filters` field used for retrieval scoping.\n",
      "properties": {
        "apps": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/AppliedFilterNode"
          },
          "description": "Applied app/connector filter nodes"
        },
        "kb": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/AppliedFilterNode"
          },
          "description": "Applied knowledge-base filter nodes"
        }
      }
    },
    "ChatAttachmentRef": {
      "type": "object",
      "additionalProperties": false,
      "description": "Reference to an attachment produced by `POST /conversations/attachments/upload`\n(or the equivalent agent route). Include in create/stream/message bodies\nso the turn is sent with uploaded files.\n",
      "required": [
        "recordId"
      ],
      "properties": {
        "recordId": {
          "type": "string",
          "minLength": 1,
          "description": "Attachment record id returned from the upload endpoint."
        },
        "recordName": {
          "type": "string",
          "minLength": 1,
          "description": "Original display name of the file when known."
        },
        "mimeType": {
          "type": "string",
          "minLength": 1,
          "description": "MIME type of the uploaded file."
        },
        "extension": {
          "type": "string",
          "minLength": 1,
          "description": "File extension (e.g. `pdf`)."
        },
        "virtualRecordId": {
          "type": "string",
          "minLength": 1,
          "description": "Optional synthetic record id used by the graph layer."
        }
      }
    },
    "Filters": {
      "type": "object",
      "additionalProperties": false,
      "description": "App connector instance ids and knowledge-base / record-group ids that narrow retrieval\nfor a turn. For **org assistant** chat streams, send explicit `apps` / `kb` lists.\nFor **agent** chat streams, send explicit id lists, or **omit** `filters` (and `tools`)\nto let the service use the agent’s stored knowledge and tool configuration. Sending\n`{ \"apps\": [], \"kb\": [] }` on an agent stream means **no** knowledge sources for that\nturn (it is not “full org default”).\n",
      "properties": {
        "apps": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Connector instance ids to scope retrieval for this turn. Each element\nmust be a valid UUID (connector app id, KB app id, record-group id, etc.).\nGateway validation matches Zod `appOrKbIdSchema`.\n"
        },
        "kb": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Knowledge-base app ids to scope retrieval for this turn.\nEach element must be a valid UUID.\n"
        }
      }
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/pipeshub-create-conversation-request"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.