PipesHub · Schema

AgentCreateConversationRequest

First turn of an agent conversation. Used as-is by the non-streaming `POST /agents/{agentKey}/conversations`, where `chatMode` may be omitted; `AgentStreamCreateConversationRequest` additionally requires it. Unknown fields are stripped during validation.

CompanyArtificial IntelligenceEnterprise SearchAI AgentsOpen SourceKnowledge ManagementWorkplace AI

Properties

Name Type Description
query string User prompt for the first turn. Saved as the initial `user_query` message and sent to the agent backend.
recordIds array Optional record ids to include as context for this turn. Each id must be a 24-character MongoDB ObjectId.
filters object Optional retrieval scope (`apps` / `kb`) for this turn. Each id must be a valid UUID. Omit for agent defaults; send `{ "apps": [], "kb": [] }` to force no knowledge sources for this turn.
appliedFilters object UI filter state persisted on the saved user message. Not used for retrieval and not forwarded to the upstream agent backend.
attachments array Uploaded attachments to ground this turn. Each entry references a record id returned from the agent attachment upload endpoint.
projectId string Link the new agent conversation to a project the caller has at least viewer access to. Same fallback/merge semantics as `POST /conversations/create`. Ignored on follow-up turns — the session row is th
projectVisibility string Only meaningful together with `projectId`. Overrides the project's default sharing behavior for this one conversation.
chatMode string Execution mode. Scoped agent conversations support only `quick`. Required on the `/stream` route; optional on the non-streaming route.
modelKey string AI model configuration id for this turn. Omit to use the agent's default model.
modelName string Provider model name (the underlying LLM identifier).
modelFriendlyName string Friendly UI label for the selected model.
timezone string Client IANA timezone, such as `America/New_York`. Helps the agent resolve relative date references in the prompt.
currentTime string Client time in ISO 8601 / RFC 3339 format (UTC `Z` or numeric offset). Sent alongside `timezone` for time-aware answers.
tools array Allowed tool ids for this turn, such as `jira.create_issue`. Omit to let the agent use its default toolset; send `[]` to disable tools for this turn.
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 (see `AgentStreamSSEEvent`). Kept in the schema
agentCapabilities object
runId string Client-generated identifier for this run. Send it here to enable `POST /agents/{agentKey}/conversations/{conversationId}/cancel {runId}` while the stream is still generating.
View JSON Schema on GitHub

JSON Schema

pipeshub-agent-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-agent-create-conversation-request-schema.json",
  "title": "AgentCreateConversationRequest",
  "description": "First turn of an agent conversation. Used as-is by the non-streaming\n`POST /agents/{agentKey}/conversations`, where `chatMode` may be\nomitted; `AgentStreamCreateConversationRequest` additionally requires\nit. Unknown fields are stripped during validation.\n",
  "x-generated": "2026-10-09",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/pipeshub-openapi.yml#/components/schemas/AgentCreateConversationRequest",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "query"
  ],
  "properties": {
    "query": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100000,
      "description": "User prompt for the first turn. Saved as the initial `user_query`\nmessage and sent to the agent backend.\n"
    },
    "recordIds": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "objectId"
      },
      "description": "Optional record ids to include as context for this turn. Each id\nmust be a 24-character MongoDB ObjectId.\n"
    },
    "filters": {
      "allOf": [
        {
          "$ref": "#/$defs/Filters"
        }
      ],
      "description": "Optional retrieval scope (`apps` / `kb`) for this turn. Each id must\nbe a valid UUID. Omit for agent defaults; send `{ \"apps\": [], \"kb\": [] }`\nto force no knowledge sources for this turn.\n"
    },
    "appliedFilters": {
      "allOf": [
        {
          "$ref": "#/$defs/AppliedFilters"
        }
      ],
      "description": "UI filter state persisted on the saved user message. Not used for\nretrieval and not forwarded to the upstream agent backend.\n"
    },
    "attachments": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/ChatAttachmentRef"
      },
      "description": "Uploaded attachments to ground this turn. Each entry references a\nrecord id returned from the agent attachment upload endpoint.\n"
    },
    "projectId": {
      "type": "string",
      "format": "objectId",
      "description": "Link the new agent conversation to a project the caller has at\nleast viewer access to. Same fallback/merge semantics as\n`POST /conversations/create`. Ignored on follow-up turns — the\nsession row is the source of truth once the conversation exists.\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"
    },
    "chatMode": {
      "type": "string",
      "enum": [
        "quick"
      ],
      "description": "Execution mode. Scoped agent conversations support only `quick`.\nRequired on the `/stream` route; optional on the non-streaming\nroute.\n"
    },
    "modelKey": {
      "type": "string",
      "minLength": 1,
      "description": "AI model configuration id for this turn. Omit to use the agent's\ndefault model.\n"
    },
    "modelName": {
      "type": "string",
      "minLength": 1,
      "description": "Provider model name (the underlying LLM identifier)."
    },
    "modelFriendlyName": {
      "type": "string",
      "minLength": 1,
      "description": "Friendly UI label for the selected model."
    },
    "timezone": {
      "type": "string",
      "minLength": 1,
      "description": "Client IANA timezone, such as `America/New_York`. Helps the agent\nresolve relative date references in the prompt.\n"
    },
    "currentTime": {
      "type": "string",
      "format": "date-time",
      "description": "Client time in ISO 8601 / RFC 3339 format (UTC `Z` or numeric\noffset). Sent alongside `timezone` for time-aware answers.\n"
    },
    "tools": {
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1
      },
      "description": "Allowed tool ids for this turn, such as `jira.create_issue`. Omit\nto let the agent use its default toolset; send `[]` to disable\ntools for this turn.\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 (see `AgentStreamSSEEvent`). Kept in\nthe schema for backward compatibility with callers that already\nsend 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 /agents/{agentKey}/conversations/{conversationId}/cancel\n{runId}` while the stream is still generating.\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-agent-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.