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
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 |
JSON Schema
{
"$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.
Call it yourself
curl for this page
curl "https://apis.io/api/v1/json-schemas/pipeshub-create-conversation-request"
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.