Use this endpoint to stream individual inference data points to Openlayer.
If you want to upload many inferences in one go, please use the batch upload method instead.
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"Openlayer","colors":{"primary":"#592FEA","light":"#7A58EE","dark":"#7A58EE"},"logo":{"light":"https://mintcdn.com/openlayer-44/oDCORJdUN9f9cW5l/logo/logo-docs-brand.svg?fit=max\u0026auto=format\u0026n=oDCORJdUN9f9cW5l\u0026q=85\u0026s=ba6c0b778d2eacb6a216f9fb8caa7132","dark":"https://mintcdn.com/openlayer-44/oDCORJdUN9f9cW5l/logo/logo-docs-brand-dark.svg?fit=max\u0026auto=format\u0026n=oDCORJdUN9f9cW5l\u0026q=85\u0026s=7b5e924f18a184a4444ec36e2a23b061","href":"https://openlayer.com"},"favicon":"https://mintcdn.com/openlayer-44/kSF2u3BEB6ygCIR0/favicon.svg?fit=max\u0026auto=format\u0026n=kSF2u3BEB6ygCIR0\u0026q=85\u0026s=956d0871161771d155ff4903add290e5","api":{"openapi":["api-reference/openapi.yaml"],"playground":{"display":"none"},"mdx":{"auth":{"method":"bearer"},"server":"https://api.openlayer.com/v1"}},"appearance":{"default":"system"},"background":{"color":{"light":"#FFFFFF","dark":"#000000"}},"navbar":{"links":[{"href":"https://discord.gg/t6wS2g6MMB","label":"Community"},{"href":"https://app.openlayer.com/?login=true","label":"Log in"}],"primary":{"type":"button","label":"Get started","href":"https://app.openlayer.com/"}},"footer":{"socials":{"discord":"https://discord.gg/t6wS2g6MMB","linkedin":"https://www.linkedin.com/company/openlayerco","twitter":"https://twitter.com/openlayerco"}},"fonts":{"family":"Inter"},"icons":{"library":"lucide"},"integrations":{"mixpanel":{"projectToken":"401ce9e4de4663c33009eb3d140d3945"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"openlayer-44","hasAudioNarration":false,"actualSubdomain":"openlayer-44","customDomains":["docs.openlayer.com"],"gitSource":{"type":"github","owner":"openlayer-ai","repo":"openlayer-docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae91dfa26068c425e885693","collectionId":"6a8235c9-253a-4a1f-98c4-dcaee9fb872e","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae91dfa26068c425e885693"},"feedback":{"thumbs":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae91dfa26068c425e885693","clientVersion":"0.0.4054","searchFilterCounts":[{"language":"default","tag":"Documentation","count":196},{"language":"default","tag":"Tests","count":122},{"language":"default","tag":"Catalog","count":111},{"language":"default","tag":"Reference","count":91},{"language":"default","tag":"REST API","count":64},{"language":"default","tag":"Integrations","count":61},{"language":"default","tag":"Governance","count":35},{"language":"default","tag":"Observability","count":23},{"language":"default","tag":"CLI","count":19},{"language":"default","tag":"Commands","count":17}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/rest/monitoring/stream-data","slug":"/api-reference/rest/monitoring/stream-data","pageMetadata":{"title":"Publish records","description":"Publish records to a data source (formerly known as \"inference pipeline\").","openapi":"post /inference-pipelines/{inferencePipelineId}/data-stream","href":"/api-reference/rest/monitoring/stream-data"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Publish records to a data source (formerly known as “inference pipeline”).\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,p:`p`,..._provideComponents(),...props.components},{Note}=_components;if(!Note)_missingMdxReference(`Note`,true);return _jsx(Note,{children:_jsxs(_components.p,{children:[`Use this endpoint to stream individual inference data points to Openlayer.\nIf you want to upload many inferences in one go, please use the `,_jsx(_components.a,{href:`https://github.com/openlayer-ai/openlayer-python/blob/main/examples/monitoring/upload_batch_data.py`,children:`batch upload method`}),` instead.`]})})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Publish records","description":"Publish records to a data source (formerly known as \"inference pipeline\").","openapi":"post /inference-pipelines/{inferencePipelineId}/data-stream","href":"/api-reference/rest/monitoring/stream-data"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/openlayer-44/a85e4a0a43b4a6e9/.eslintrc.js"],"openApiReferenceData":{"operation":{"tags":["Monitoring"],"summary":"Publish inference","operationId":"streamData","description":"Publish records to a data source (formerly known as \"inference pipeline\").","parameters":["7982dfaf-f395-4108-9d84-e34b717153b4"],"responses":{"200":"67c9c7a8-7b57-452b-a5be-b1e5a189d9f5","500":"9ce3a17d-d883-401a-a56c-81f1eb8e0081"},"requestBody":"05cc7223-bce8-4d16-8820-20564a36bffb","x-codeSamples":[{"lang":"python","source":"from openlayer import Openlayer\n\nclient = Openlayer()\n\nresponse = client.inference_pipelines.data.stream(\n \"c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f\",\n config={\n \"input_variable_names\": [\"user_query\"],\n \"output_column_name\": \"output\",\n \"num_of_token_column_name\": \"tokens\",\n \"cost_column_name\": \"cost\",\n \"timestamp_column_name\": \"timestamp\",\n },\n rows=[\n {\n \"user_query\": \"What is the meaning of life?\",\n \"output\": \"42\",\n \"tokens\": 7,\n \"cost\": 0.02,\n \"timestamp\": 1620000000,\n }\n ],\n)\nprint(response.success)\n"},{"lang":"typescript","source":"import Openlayer from 'openlayer';\n\nconst client = new Openlayer();\n\nconst response = await client.inferencePipelines.data.stream('c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f', {\n config: {\n inputVariableNames: ['user_query'],\n outputColumnName: 'output',\n numOfTokenColumnName: 'tokens',\n costColumnName: 'cost',\n timestampColumnName: 'timestamp',\n },\n rows: [\n {\n user_query: 'What is the meaning of life?',\n output: '42',\n tokens: 7,\n cost: 0.02,\n timestamp: 1610000000,\n },\n ],\n});\n\nconsole.log(response.success);\n"},{"lang":"go","source":"package main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/openlayer-ai/openlayer-go\"\n)\n\nclient := openlayer.NewClient()\nresponse, err := client.InferencePipelines.Data.Stream(\n\tcontext.TODO(),\n\t\"c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f\",\n\topenlayer.InferencePipelineDataStreamParams{\n\t\tConfig: openlayer.F[openlayer.InferencePipelineDataStreamParamsConfigUnion](openlayer.InferencePipelineDataStreamParamsConfigLlmData{\n\t\t\tInputVariableNames: openlayer.F([]string{\"user_query\"}),\n\t\t\tOutputColumnName: openlayer.F(\"output\"),\n\t\t\tNumOfTokenColumnName: openlayer.F(\"tokens\"),\n\t\t\tCostColumnName: openlayer.F(\"cost\"),\n\t\t\tTimestampColumnName: openlayer.F(\"timestamp\"),\n\t\t}),\n\t\tRows: openlayer.F([]map[string]interface{}{{\n\t\t\t\"user_query\": \"What is the meaning of life?\",\n\t\t\t\"output\": \"42\",\n\t\t\t\"tokens\": 7,\n\t\t\t\"cost\": 0.02,\n\t\t\t\"timestamp\": 1710000000,\n\t\t}}),\n\t},\n)\nif err != nil {\n\tpanic(err.Error())\n}\nfmt.Printf(\"%+v\\n\", response.Success)\n"},{"lang":"java","source":"import com.openlayer.api.client.OpenlayerClient;\nimport com.openlayer.api.client.okhttp.OpenlayerOkHttpClient;\nimport com.openlayer.api.core.JsonValue;\nimport com.openlayer.api.models.inferencepipelines.data.DataStreamParams;\nimport com.openlayer.api.models.inferencepipelines.data.DataStreamResponse;\n\nOpenlayerClient client = OpenlayerOkHttpClient.fromEnv();\n\nDataStreamParams params = DataStreamParams.builder()\n .inferencePipelineId(\"c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f\")\n .config(DataStreamParams.Config.LlmData.builder()\n .addInputVariableName(\"user_query\")\n .outputColumnName(\"output\")\n .numOfTokenColumnName(\"tokens\")\n .costColumnName(\"cost\")\n .timestampColumnName(\"timestamp\")\n .build())\n .addRow(DataStreamParams.Row.builder()\n .putAdditionalProperty(\"user_query\", JsonValue.from(\"what is the meaning of life?\"))\n .putAdditionalProperty(\"output\", JsonValue.from(\"42\"))\n .putAdditionalProperty(\"tokens\", JsonValue.from(7))\n .putAdditionalProperty(\"cost\", JsonValue.from(0.02))\n .putAdditionalProperty(\"timestamp\", JsonValue.from(1610000000))\n .build())\n .build();\nDataStreamResponse response = client.inferencePipelines().data().stream(params);\n"},{"lang":"ruby","source":"require \"openlayer\"\n\nopenlayer = Openlayer::Client.new(api_key: ENV[\"OPENLAYER_API_KEY\"])\n\nresponse = openlayer.inference_pipelines.data.stream(\n \"c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f\",\n config: {\n inputVariableNames: [\"user_query\"],\n outputColumnName: \"output\",\n numOfTokenColumnName: \"tokens\",\n costColumnName: \"cost\",\n timestampColumnName: \"timestamp\"\n },\n rows: [\n {\n user_query: \"what is the meaning of life?\",\n output: \"42\",\n tokens: 7,\n cost: 0.02,\n timestamp: 1610000000\n }\n ]\n)\n\nputs(response.success)\n"},{"lang":"curl","source":"curl --request POST \\\n --url https://api.openlayer.com/v1/inference-pipelines/{inferencePipelineId}/data-stream \\\n --header 'Authorization: Bearer \u003ctoken>' \\\n --header 'Content-Type: application/json' \\\n --data '{\n \"rows\": [\n {\n \"user_query\": \"what is the meaning of life?\",\n \"output\": \"42\",\n \"tokens\": 7,\n \"cost\": 0.02,\n \"timestamp\": 1620000000\n }\n ],\n \"config\": {\n \"prompt\": [\n {\n \"role\": \"user\",\n \"content\": \"{{ user_query }}\"\n }\n ],\n \"inputVariableNames\": [\n \"user_query\"\n ],\n \"outputColumnName\": \"output\",\n \"timestampColumnName\": \"timestamp\",\n \"costColumnName\": \"cost\",\n \"numOfTokenColumnName\": \"tokens\"\n }\n}'\n"}],"method":"post","type":"path","servers":["87c223ce-d96e-48b0-9c8b-d709d09f161d"],"security":["7b41d5d7-74bf-471e-a551-fe3ad1c95126"],"path":"/inference-pipelines/{inferencePipelineId}/data-stream","baseUrlOptions":["https://api.openlayer.com/v1"],"title":"Publish inference","codeSamples":[{"lang":"python","source":"from openlayer import Openlayer\n\nclient = Openlayer()\n\nresponse = client.inference_pipelines.data.stream(\n \"c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f\",\n config={\n \"input_variable_names\": [\"user_query\"],\n \"output_column_name\": \"output\",\n \"num_of_token_column_name\": \"tokens\",\n \"cost_column_name\": \"cost\",\n \"timestamp_column_name\": \"timestamp\",\n },\n rows=[\n {\n \"user_query\": \"What is the meaning of life?\",\n \"output\": \"42\",\n \"tokens\": 7,\n \"cost\": 0.02,\n \"timestamp\": 1620000000,\n }\n ],\n)\nprint(response.success)\n"},{"lang":"typescript","source":"import Openlayer from 'openlayer';\n\nconst client = new Openlayer();\n\nconst response = await client.inferencePipelines.data.stream('c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f', {\n config: {\n inputVariableNames: ['user_query'],\n outputColumnName: 'output',\n numOfTokenColumnName: 'tokens',\n costColumnName: 'cost',\n timestampColumnName: 'timestamp',\n },\n rows: [\n {\n user_query: 'What is the meaning of life?',\n output: '42',\n tokens: 7,\n cost: 0.02,\n timestamp: 1610000000,\n },\n ],\n});\n\nconsole.log(response.success);\n"},{"lang":"go","source":"package main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/openlayer-ai/openlayer-go\"\n)\n\nclient := openlayer.NewClient()\nresponse, err := client.InferencePipelines.Data.Stream(\n\tcontext.TODO(),\n\t\"c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f\",\n\topenlayer.InferencePipelineDataStreamParams{\n\t\tConfig: openlayer.F[openlayer.InferencePipelineDataStreamParamsConfigUnion](openlayer.InferencePipelineDataStreamParamsConfigLlmData{\n\t\t\tInputVariableNames: openlayer.F([]string{\"user_query\"}),\n\t\t\tOutputColumnName: openlayer.F(\"output\"),\n\t\t\tNumOfTokenColumnName: openlayer.F(\"tokens\"),\n\t\t\tCostColumnName: openlayer.F(\"cost\"),\n\t\t\tTimestampColumnName: openlayer.F(\"timestamp\"),\n\t\t}),\n\t\tRows: openlayer.F([]map[string]interface{}{{\n\t\t\t\"user_query\": \"What is the meaning of life?\",\n\t\t\t\"output\": \"42\",\n\t\t\t\"tokens\": 7,\n\t\t\t\"cost\": 0.02,\n\t\t\t\"timestamp\": 1710000000,\n\t\t}}),\n\t},\n)\nif err != nil {\n\tpanic(err.Error())\n}\nfmt.Printf(\"%+v\\n\", response.Success)\n"},{"lang":"java","source":"import com.openlayer.api.client.OpenlayerClient;\nimport com.openlayer.api.client.okhttp.OpenlayerOkHttpClient;\nimport com.openlayer.api.core.JsonValue;\nimport com.openlayer.api.models.inferencepipelines.data.DataStreamParams;\nimport com.openlayer.api.models.inferencepipelines.data.DataStreamResponse;\n\nOpenlayerClient client = OpenlayerOkHttpClient.fromEnv();\n\nDataStreamParams params = DataStreamParams.builder()\n .inferencePipelineId(\"c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f\")\n .config(DataStreamParams.Config.LlmData.builder()\n .addInputVariableName(\"user_query\")\n .outputColumnName(\"output\")\n .numOfTokenColumnName(\"tokens\")\n .costColumnName(\"cost\")\n .timestampColumnName(\"timestamp\")\n .build())\n .addRow(DataStreamParams.Row.builder()\n .putAdditionalProperty(\"user_query\", JsonValue.from(\"what is the meaning of life?\"))\n .putAdditionalProperty(\"output\", JsonValue.from(\"42\"))\n .putAdditionalProperty(\"tokens\", JsonValue.from(7))\n .putAdditionalProperty(\"cost\", JsonValue.from(0.02))\n .putAdditionalProperty(\"timestamp\", JsonValue.from(1610000000))\n .build())\n .build();\nDataStreamResponse response = client.inferencePipelines().data().stream(params);\n"},{"lang":"ruby","source":"require \"openlayer\"\n\nopenlayer = Openlayer::Client.new(api_key: ENV[\"OPENLAYER_API_KEY\"])\n\nresponse = openlayer.inference_pipelines.data.stream(\n \"c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f\",\n config: {\n inputVariableNames: [\"user_query\"],\n outputColumnName: \"output\",\n numOfTokenColumnName: \"tokens\",\n costColumnName: \"cost\",\n timestampColumnName: \"timestamp\"\n },\n rows: [\n {\n user_query: \"what is the meaning of life?\",\n output: \"42\",\n tokens: 7,\n cost: 0.02,\n timestamp: 1610000000\n }\n ]\n)\n\nputs(response.success)\n"},{"lang":"curl","source":"curl --request POST \\\n --url https://api.openlayer.com/v1/inference-pipelines/{inferencePipelineId}/data-stream \\\n --header 'Authorization: Bearer \u003ctoken>' \\\n --header 'Content-Type: application/json' \\\n --data '{\n \"rows\": [\n {\n \"user_query\": \"what is the meaning of life?\",\n \"output\": \"42\",\n \"tokens\": 7,\n \"cost\": 0.02,\n \"timestamp\": 1620000000\n }\n ],\n \"config\": {\n \"prompt\": [\n {\n \"role\": \"user\",\n \"content\": \"{{ user_query }}\"\n }\n ],\n \"inputVariableNames\": [\n \"user_query\"\n ],\n \"outputColumnName\": \"output\",\n \"timestampColumnName\": \"timestamp\",\n \"costColumnName\": \"cost\",\n \"numOfTokenColumnName\": \"tokens\"\n }\n}'\n"}],"requiredOnlyExamples":false,"requestExampleType":"codeSamples","responseExampleType":"generated"},"dependencies":{"parameters":{"7982dfaf-f395-4108-9d84-e34b717153b4":{"name":"inferencePipelineId","in":"path","description":"The inference pipeline id (a UUID).","required":true,"schema":{"type":"string","format":"uuid","isRequired":true,"description":"The inference pipeline id (a UUID).","uniqueKey":"","typeLabel":"string\u003cuuid>"}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"rows":{"type":"array","description":"A list of inference data points with inputs and outputs","example":[{"user_query":"what is the meaning of life?","output":"42","tokens":7,"cost":0.02,"timestamp":1620000000}],"nullable":false,"items":{"type":"object","additionalProperties":true,"uniqueKey":"rows.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"rows","typeLabel":"object[]"},"config":{"oneOf":[{"type":"object","title":"LLM","description":"Configuration for the data stream. Depends on your **Openlayer project task type**.","required":["outputColumnName"],"example":{"prompt":[{"role":"user","content":"{{ user_query }}"}],"inputVariableNames":["user_query"],"outputColumnName":"output","timestampColumnName":"timestamp","costColumnName":"cost","numOfTokenColumnName":"tokens"},"properties":{"outputColumnName":{"type":"string","description":"Name of the column with the model outputs.","example":"output","isRequired":true,"uniqueKey":"config.oneOf.0.outputColumnName","typeLabel":"string"},"numOfTokenColumnName":{"oneOf":[{"type":"string","description":"Name of the column with the total number of tokens.","example":"num_tokens","uniqueKey":"config.oneOf.0.numOfTokenColumnName.oneOf.0","typeLabel":"string"},{"type":"null","description":"Name of the column with the total number of tokens.","example":"num_tokens","uniqueKey":"config.oneOf.0.numOfTokenColumnName.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.numOfTokenColumnName","typeLabel":"string | null"},"contextColumnName":{"type":"string","description":"Name of the column with the context retrieved. Applies to RAG use cases. Providing the context enables RAG-specific metrics.","example":"context","uniqueKey":"config.oneOf.0.contextColumnName","typeLabel":"string"},"costColumnName":{"type":"string","description":"Name of the column with the cost associated with each row.","example":"cost","uniqueKey":"config.oneOf.0.costColumnName","typeLabel":"string"},"groundTruthColumnName":{"type":"string","description":"Name of the column with the ground truths.","example":"ground_truth","uniqueKey":"config.oneOf.0.groundTruthColumnName","typeLabel":"string"},"inferenceIdColumnName":{"type":"string","description":"Name of the column with the inference ids. This is useful if you want to update rows at a later point in time. If not provided, a unique id is generated by Openlayer.","example":"id","uniqueKey":"config.oneOf.0.inferenceIdColumnName","typeLabel":"string"},"inputVariableNames":{"type":"array","description":"Array of input variable names. Each input variable should be a dataset column.","example":["user_query"],"items":{"type":"string","uniqueKey":"config.oneOf.0.inputVariableNames.items.[INDEX]","typeLabel":"string"},"uniqueKey":"config.oneOf.0.inputVariableNames","typeLabel":"string[]"},"latencyColumnName":{"type":"string","description":"Name of the column with the latencies.","example":"latency","uniqueKey":"config.oneOf.0.latencyColumnName","typeLabel":"string"},"metadata":{"type":"object","description":"Object with metadata.","uniqueKey":"config.oneOf.0.metadata","typeLabel":"object"},"prompt":{"type":"array","description":"Prompt for the LLM.","example":[{"role":"user","content":"{{ user_query }}"}],"items":{"type":"object","properties":{"role":{"type":"string","description":"Role of the prompt.","example":"user","uniqueKey":"config.oneOf.0.prompt.items.[INDEX].role","typeLabel":"string"},"content":{"type":"string","description":"Content of the prompt.","example":"{{ user_query }}","uniqueKey":"config.oneOf.0.prompt.items.[INDEX].content","typeLabel":"string"}},"uniqueKey":"config.oneOf.0.prompt.items.[INDEX]","typeLabel":"object"},"uniqueKey":"config.oneOf.0.prompt","typeLabel":"object[]"},"questionColumnName":{"type":"string","description":"Name of the column with the questions. Applies to RAG use cases. Providing the question enables RAG-specific metrics.","example":"question","uniqueKey":"config.oneOf.0.questionColumnName","typeLabel":"string"},"timestampColumnName":{"type":"string","description":"Name of the column with the timestamps. Timestamps must be in UNIX sec format. If not provided, the upload timestamp is used.","example":"timestamp","uniqueKey":"config.oneOf.0.timestampColumnName","typeLabel":"string"},"userIdColumnName":{"oneOf":[{"type":"string","description":"Name of the column with the user id.","example":"user_id","uniqueKey":"config.oneOf.0.userIdColumnName.oneOf.0","typeLabel":"string"},{"type":"null","description":"Name of the column with the user id.","example":"user_id","uniqueKey":"config.oneOf.0.userIdColumnName.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.userIdColumnName","typeLabel":"string | null"},"sessionIdColumnName":{"oneOf":[{"type":"string","description":"Name of the column with the session id.","example":"session_id","uniqueKey":"config.oneOf.0.sessionIdColumnName.oneOf.0","typeLabel":"string"},{"type":"null","description":"Name of the column with the session id.","example":"session_id","uniqueKey":"config.oneOf.0.sessionIdColumnName.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.sessionIdColumnName","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"config.oneOf.0","typeLabel":"LLM · object"},{"type":"object","title":"Tabular classification","description":"Configuration for the data stream. Depends on your **Openlayer project task type**.","required":["classNames"],"example":{"timestampColumnName":"timestamp"},"properties":{"classNames":{"type":"array","description":"List of class names indexed by label integer in the dataset. E.g. [\"Retained\", \"Exited\"] when 0, 1 are in your label column.","example":["Retained","Exited"],"items":{"type":"string","uniqueKey":"config.oneOf.1.classNames.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"config.oneOf.1.classNames","typeLabel":"string[]"},"categoricalFeatureNames":{"type":"array","description":"Array with the names of all categorical features in the dataset. E.g. [\"Age\", \"Geography\"].","example":["Geography"],"items":{"type":"string","uniqueKey":"config.oneOf.1.categoricalFeatureNames.items.[INDEX]","typeLabel":"string"},"uniqueKey":"config.oneOf.1.categoricalFeatureNames","typeLabel":"string[]"},"featureNames":{"type":"array","description":"Array with all input feature names.","example":["Age","Geography"],"items":{"type":"string","uniqueKey":"config.oneOf.1.featureNames.items.[INDEX]","typeLabel":"string"},"uniqueKey":"config.oneOf.1.featureNames","typeLabel":"string[]"},"inferenceIdColumnName":{"type":"string","description":"Name of the column with the inference ids. This is useful if you want to update rows at a later point in time. If not provided, a unique id is generated by Openlayer.","example":"id","uniqueKey":"config.oneOf.1.inferenceIdColumnName","typeLabel":"string"},"labelColumnName":{"type":"string","description":"Name of the column with the labels. The data in this column must be **zero-indexed integers**, matching the list provided in `classNames`.","example":"label","uniqueKey":"config.oneOf.1.labelColumnName","typeLabel":"string"},"latencyColumnName":{"type":"string","description":"Name of the column with the latencies.","example":"latency","uniqueKey":"config.oneOf.1.latencyColumnName","typeLabel":"string"},"metadata":{"type":"object","description":"Object with metadata.","uniqueKey":"config.oneOf.1.metadata","typeLabel":"object"},"predictionsColumnName":{"type":"string","description":"Name of the column with the model's predictions as **zero-indexed integers**.","example":"prediction","uniqueKey":"config.oneOf.1.predictionsColumnName","typeLabel":"string"},"predictionScoresColumnName":{"type":"string","description":"Name of the column with the model's predictions as **lists of class probabilities**.","example":"prediction_scores","uniqueKey":"config.oneOf.1.predictionScoresColumnName","typeLabel":"string"},"timestampColumnName":{"type":"string","description":"Name of the column with the timestamps. Timestamps must be in UNIX sec format. If not provided, the upload timestamp is used.","example":"timestamp","uniqueKey":"config.oneOf.1.timestampColumnName","typeLabel":"string"}},"isRequired":true,"uniqueKey":"config.oneOf.1","typeLabel":"Tabular classification · object"},{"type":"object","title":"Tabular regression","description":"Configuration for the data stream. Depends on your **Openlayer project task type**.","example":{"timestampColumnName":"timestamp"},"properties":{"categoricalFeatureNames":{"type":"array","description":"Array with the names of all categorical features in the dataset. E.g. [\"Gender\", \"Geography\"].","example":["Gender","Geography"],"items":{"type":"string","uniqueKey":"config.oneOf.2.categoricalFeatureNames.items.[INDEX]","typeLabel":"string"},"uniqueKey":"config.oneOf.2.categoricalFeatureNames","typeLabel":"string[]"},"featureNames":{"type":"array","description":"Array with all input feature names.","items":{"type":"string","uniqueKey":"config.oneOf.2.featureNames.items.[INDEX]","typeLabel":"string"},"uniqueKey":"config.oneOf.2.featureNames","typeLabel":"string[]"},"inferenceIdColumnName":{"type":"string","description":"Name of the column with the inference ids. This is useful if you want to update rows at a later point in time. If not provided, a unique id is generated by Openlayer.","example":"id","uniqueKey":"config.oneOf.2.inferenceIdColumnName","typeLabel":"string"},"latencyColumnName":{"type":"string","description":"Name of the column with the latencies.","example":"latency","uniqueKey":"config.oneOf.2.latencyColumnName","typeLabel":"string"},"metadata":{"type":"object","description":"Object with metadata.","uniqueKey":"config.oneOf.2.metadata","typeLabel":"object"},"predictionsColumnName":{"type":"string","description":"Name of the column with the model's predictions.","example":"prediction","uniqueKey":"config.oneOf.2.predictionsColumnName","typeLabel":"string"},"targetColumnName":{"type":"string","description":"Name of the column with the targets (ground truth values).","example":"target","uniqueKey":"config.oneOf.2.targetColumnName","typeLabel":"string"},"timestampColumnName":{"type":"string","description":"Name of the column with the timestamps. Timestamps must be in UNIX sec format. If not provided, the upload timestamp is used.","example":"timestamp","uniqueKey":"config.oneOf.2.timestampColumnName","typeLabel":"string"}},"isRequired":true,"uniqueKey":"config.oneOf.2","typeLabel":"Tabular regression · object"},{"type":"object","title":"Text classification","description":"Configuration for the data stream. Depends on your **Openlayer project task type**.","required":["classNames"],"example":{"timestampColumnName":"timestamp"},"properties":{"classNames":{"type":"array","description":"List of class names indexed by label integer in the dataset. E.g. [\"Retained\", \"Exited\"] when 0, 1 are in your label column.","example":["Retained","Exited"],"items":{"type":"string","uniqueKey":"config.oneOf.3.classNames.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"config.oneOf.3.classNames","typeLabel":"string[]"},"inferenceIdColumnName":{"type":"string","description":"Name of the column with the inference ids. This is useful if you want to update rows at a later point in time. If not provided, a unique id is generated by Openlayer.","example":"id","uniqueKey":"config.oneOf.3.inferenceIdColumnName","typeLabel":"string"},"labelColumnName":{"type":"string","description":"Name of the column with the labels. The data in this column must be **zero-indexed integers**, matching the list provided in `classNames`.","example":"label","uniqueKey":"config.oneOf.3.labelColumnName","typeLabel":"string"},"latencyColumnName":{"type":"string","description":"Name of the column with the latencies.","example":"latency","uniqueKey":"config.oneOf.3.latencyColumnName","typeLabel":"string"},"metadata":{"type":"object","description":"Object with metadata.","uniqueKey":"config.oneOf.3.metadata","typeLabel":"object"},"predictionsColumnName":{"type":"string","description":"Name of the column with the model's predictions as **zero-indexed integers**.","example":"prediction","uniqueKey":"config.oneOf.3.predictionsColumnName","typeLabel":"string"},"predictionScoresColumnName":{"type":"string","description":"Name of the column with the model's predictions as **lists of class probabilities**.","example":"prediction_scores","uniqueKey":"config.oneOf.3.predictionScoresColumnName","typeLabel":"string"},"textColumnName":{"type":"string","description":"Name of the column with the text data.","example":"user_query","uniqueKey":"config.oneOf.3.textColumnName","typeLabel":"string"},"timestampColumnName":{"type":"string","description":"Name of the column with the timestamps. Timestamps must be in UNIX sec format. If not provided, the upload timestamp is used.","example":"timestamp","uniqueKey":"config.oneOf.3.timestampColumnName","typeLabel":"string"}},"isRequired":true,"uniqueKey":"config.oneOf.3","typeLabel":"Text classification · object"}],"isRequired":true,"uniqueKey":"config","typeLabel":"LLM · object | Tabular classification · object | Tabular regression · object | Text classification · object"}},"required":["rows","config"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"rows":[{"user_query":"what is the meaning of life?","output":"42","tokens":7,"cost":0.02,"timestamp":1620000000}],"config":{"prompt":[{"role":"user","content":"{{ user_query }}"}],"inputVariableNames":["user_query"],"outputColumnName":"output","timestampColumnName":"timestamp","costColumnName":"cost","numOfTokenColumnName":"tokens"}}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"67c9c7a8-7b57-452b-a5be-b1e5a189d9f5":{"description":"Status OK.","content":{"application/json":{"schema":{"type":"object","required":["success"],"properties":{"success":{"type":"boolean","enum":[true],"isRequired":true,"uniqueKey":"success","typeLabel":"enum\u003cboolean>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"success":true}}},"exampleType":"generated"}},"exampleType":"generated"},"9ce3a17d-d883-401a-a56c-81f1eb8e0081":{"description":"Unexpected error.","content":{"application/json":{"schema":{"type":"object","required":["code","error"],"properties":{"code":{"type":"integer","format":"int32","isRequired":true,"uniqueKey":"code","typeLabel":"integer\u003cint32>"},"error":{"type":"string","isRequired":true,"uniqueKey":"error","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":123,"error":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"7b41d5d7-74bf-471e-a551-fe3ad1c95126":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Bearer authentication header of the form `Bearer \u003ctoken>`, where `\u003ctoken>` is your workspace API key. See [Find your API key](https://www.openlayer.com/docs/workspace-and-projects/find-your-api-key) for more information.\n","scopes":[]}}},"servers":{"87c223ce-d96e-48b0-9c8b-d709d09f161d":{"url":"https://api.openlayer.com/v1","description":"Our prod backend"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"Bearer authentication header of the form `Bearer \u003ctoken>`, where `\u003ctoken>` is your workspace API key. See [Find your API key](https://www.openlayer.com/docs/workspace-and-projects/find-your-api-key) for more information.\n","scopes":[]},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Bearer authentication header of the form `Bearer \u003ctoken>`, where `\u003ctoken>` is your workspace API key. See [Find your API key](https://www.openlayer.com/docs/workspace-and-projects/find-your-api-key) for more information.\n","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"api-reference/openapi.yaml"},"subdomain":"openlayer-44","siteName":"Openlayer","title":"Publish records - Openlayer","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2025-10-25T19:15:36.941Z","originalFileLocation":"api-reference/rest/monitoring/stream-data.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Publish records to a data source (formerly known as \u0026quot;inference pipeline\u0026quot;).\">\u003cmeta data-mint-head name=\"application-name\" content=\"Openlayer\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/openlayer-44/IrRZyBgLHpsjdPBT/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/openlayer-44/IrRZyBgLHpsjdPBT/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/openlayer-44/IrRZyBgLHpsjdPBT/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/openlayer-44/IrRZyBgLHpsjdPBT/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/openlayer-44/IrRZyBgLHpsjdPBT/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/openlayer-44/IrRZyBgLHpsjdPBT/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/openlayer-44/IrRZyBgLHpsjdPBT/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/openlayer-44/IrRZyBgLHpsjdPBT/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/openlayer-44/IrRZyBgLHpsjdPBT/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Publish records - Openlayer\">\u003cmeta data-mint-head property=\"og:description\" content=\"Publish records to a data source (formerly known as \u0026quot;inference pipeline\u0026quot;).\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Openlayer\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.openlayer.com/api-reference/rest/monitoring/stream-data\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://openlayer-44.mintlify.app/_mintlify/api/og/v2?division=Monitoring\u0026amp;title=Publish+records\u0026amp;description=Publish+records+to+a+data+source+%28formerly+known+as+%22inference+pipeline%22%29.\u0026amp;theme=079d59d752b48a504b621be5\u0026amp;signature=a6a72ba1c6bb657a9e781de6f5b438e5d553788276e79242430d11bc547664fc\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Publish records - Openlayer\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Publish records to a data source (formerly known as \u0026quot;inference pipeline\u0026quot;).\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://openlayer-44.mintlify.app/_mintlify/api/og/v2?division=Monitoring\u0026amp;title=Publish+records\u0026amp;description=Publish+records+to+a+data+source+%28formerly+known+as+%22inference+pipeline%22%29.\u0026amp;theme=079d59d752b48a504b621be5\u0026amp;signature=a6a72ba1c6bb657a9e781de6f5b438e5d553788276e79242430d11bc547664fc\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/openlayer-44/IrRZyBgLHpsjdPBT/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Openlayer\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#592FEA\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.openlayer.com/api-reference/rest/monitoring/stream-data\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/rest/monitoring/stream-data.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.openlayer.com/#organization\",\"name\":\"Openlayer\",\"url\":\"https://docs.openlayer.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/openlayer-44/oDCORJdUN9f9cW5l/logo/logo-docs-brand.svg?fit=max\u0026auto=format\u0026n=oDCORJdUN9f9cW5l\u0026q=85\u0026s=ba6c0b778d2eacb6a216f9fb8caa7132\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.openlayer.com#website\",\"name\":\"Openlayer\",\"url\":\"https://docs.openlayer.com\",\"publisher\":{\"@id\":\"https://docs.openlayer.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.openlayer.com/api-reference/rest/monitoring/stream-data#webpage\",\"url\":\"https://docs.openlayer.com/api-reference/rest/monitoring/stream-data\",\"name\":\"Publish records\",\"description\":\"Publish records to a data source (formerly known as \\\"inference pipeline\\\").\",\"dateModified\":\"2025-10-25T19:15:36.941Z\",\"isPartOf\":{\"@id\":\"https://docs.openlayer.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.openlayer.com/api-reference/rest/monitoring/stream-data#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.openlayer.com/api-reference/rest/monitoring/stream-data#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"REST API\",\"item\":\"https://docs.openlayer.com/api-reference/rest/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Monitoring\",\"item\":\"https://docs.openlayer.com/api-reference/rest/monitoring/create-inference-pipeline\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Publish records\",\"item\":\"https://docs.openlayer.com/api-reference/rest/monitoring/stream-data\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.openlayer.com/api-reference/rest/monitoring/stream-data#apireference\",\"headline\":\"Publish records\",\"name\":\"Publish records\",\"description\":\"Publish records to a data source (formerly known as \\\"inference pipeline\\\").\",\"url\":\"https://docs.openlayer.com/api-reference/rest/monitoring/stream-data\",\"mainEntityOfPage\":{\"@id\":\"https://docs.openlayer.com/api-reference/rest/monitoring/stream-data#webpage\"},\"dateModified\":\"2025-10-25T19:15:36.941Z\",\"publisher\":{\"@id\":\"https://docs.openlayer.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.openlayer.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Openlayer\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Openlayer","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/introduction"}]},{"tab":"Integrations","pages":[{"title":"Integrations","href":"/integrations/overview"}]},{"tab":"Reference","groups":[{"group":"Reference","pages":[{"title":"Introduction","href":"/api-reference/introduction"}]},{"group":"SDKs","pages":[{"title":"Overview","href":"/api-reference/sdk/overview"},{"group":"Openlayer SDKs","pages":[{"title":"Python","href":"/api-reference/sdk/libraries/python"},{"title":"TypeScript","href":"/api-reference/sdk/libraries/typescript"},{"title":"Go","href":"/api-reference/sdk/libraries/go"},{"title":"Ruby","href":"/api-reference/sdk/libraries/ruby"},{"title":"Java","href":"/api-reference/sdk/libraries/java"}]}]},{"group":"CLI","pages":[{"title":"Overview","href":"/api-reference/cli/overview"},{"title":"CLI global options","href":"/api-reference/cli/global-options"},{"group":"Commands","pages":[{"title":"batch","href":"/api-reference/cli/commands/batch"},{"title":"data-sources","href":"/api-reference/cli/commands/data-sources"},{"title":"export","href":"/api-reference/cli/commands/export"},{"title":"help","href":"/api-reference/cli/commands/help"},{"title":"init","href":"/api-reference/cli/commands/init"},{"title":"inspect","href":"/api-reference/cli/commands/inspect"},{"title":"install","href":"/api-reference/cli/commands/install"},{"title":"link","href":"/api-reference/cli/commands/link"},{"title":"login","href":"/api-reference/cli/commands/login"},{"title":"metrics","href":"/api-reference/cli/commands/metrics"},{"title":"profile","href":"/api-reference/cli/commands/profile"},{"title":"projects","href":"/api-reference/cli/commands/projects"},{"title":"push","href":"/api-reference/cli/commands/push"},{"title":"tests","href":"/api-reference/cli/commands/tests"},{"title":"update","href":"/api-reference/cli/commands/update"},{"title":"validate","href":"/api-reference/cli/commands/validate"},{"title":"whoami","href":"/api-reference/cli/commands/whoami"}]}]},{"group":"REST API","pages":[{"title":"Overview","href":"/api-reference/rest/overview"},{"group":"Workspaces","pages":[{"title":"Retrieve workspace","openapi":"get /workspaces/{workspaceId}","href":"/api-reference/rest/workspaces/retrieve-workspace"},{"title":"Update workspace","openapi":"put /workspaces/{workspaceId}","href":"/api-reference/rest/workspaces/update-workspace"}]},{"group":"Invites and API keys","pages":[{"title":"List API keys","openapi":"get /workspaces/{workspaceId}/api-keys","href":"/api-reference/rest/api-keys/list-api-keys"},{"title":"Create API key","openapi":"post /workspaces/{workspaceId}/api-keys","href":"/api-reference/rest/api-keys/create-api-key"},{"title":"Retrieve API key","openapi":"get /workspaces/{workspaceId}/api-keys/{apiKeyId}","href":"/api-reference/rest/api-keys/retrieve-api-key"},{"title":"Update API key","openapi":"put /workspaces/{workspaceId}/api-keys/{apiKeyId}","href":"/api-reference/rest/api-keys/update-api-key"},{"title":"Delete API key","openapi":"delete /workspaces/{workspaceId}/api-keys/{apiKeyId}","href":"/api-reference/rest/api-keys/delete-api-key"},{"title":"Rotate API key","openapi":"post /workspaces/{workspaceId}/api-keys/{apiKeyId}/rotate","href":"/api-reference/rest/api-keys/rotate-api-key"},{"title":"Create invite","openapi":"post /workspaces/{workspaceId}/invites","href":"/api-reference/rest/invites/create-invite"},{"title":"List invites","openapi":"get /workspaces/{workspaceId}/invites","href":"/api-reference/rest/invites/list-invites"}]},{"group":"Projects","pages":[{"openapi":"get /projects","title":"List projects","href":"/api-reference/rest/projects/list-projects"},{"openapi":"post /projects","title":"Create project","href":"/api-reference/rest/projects/create-project"},{"openapi":"delete /projects/{projectId}","title":"Delete project","href":"/api-reference/rest/projects/delete-project"}]},{"group":"Tests","pages":[{"title":"Create test","openapi":"post /projects/{projectId}/tests","href":"/api-reference/rest/tests/create-test"},{"title":"List tests","openapi":"get /projects/{projectId}/tests","href":"/api-reference/rest/tests/list-tests"},{"title":"Update tests","openapi":"put /projects/{projectId}/tests","href":"/api-reference/rest/tests/update-tests"},{"title":"Evaluate test","openapi":"post /tests/{testId}/evaluate","href":"/api-reference/rest/tests/evaluate-test"},{"title":"List the test results for a test","openapi":"get /tests/{testId}/results","href":"/api-reference/rest/tests/list-test-results"}]},{"group":"Development","pages":[{"openapi":"post /storage/presigned-url","title":"Create an upload url","href":"/api-reference/rest/development/presigned-url"},{"openapi":"get /storage/presigned-url","title":"Retrieve a download url","href":"/api-reference/rest/development/retrieve-download-url"},{"openapi":"get /projects/{projectId}/versions","title":"List project commits","href":"/api-reference/rest/development/list-project-versions"},{"openapi":"get /versions/{projectVersionId}","title":"Retrieve project commit","href":"/api-reference/rest/development/retrieve-project-version"},{"openapi":"post /projects/{projectId}/versions","title":"Create project commit","href":"/api-reference/rest/development/create-project-version"},{"openapi":"get /versions/{projectVersionId}/results","title":"List commit test results","href":"/api-reference/rest/development/list-test-results"}]},{"group":"Monitoring","pages":[{"title":"Create data source","openapi":"post /projects/{projectId}/inference-pipelines","href":"/api-reference/rest/monitoring/create-inference-pipeline"},{"title":"List data sources","openapi":"get /projects/{projectId}/inference-pipelines","href":"/api-reference/rest/monitoring/list-inference-pipelines"},{"title":"Retrieve data source","openapi":"get /inference-pipelines/{inferencePipelineId}","href":"/api-reference/rest/monitoring/retrieve-inference-pipeline"},{"title":"Update data source","openapi":"put /inference-pipelines/{inferencePipelineId}","href":"/api-reference/rest/monitoring/update-inference-pipeline"},{"title":"Delete data source","description":"Delete a data source (formerly known as \"inference pipeline\") by its ID.","openapi":"delete /inference-pipelines/{inferencePipelineId}","href":"/api-reference/rest/monitoring/delete-inference-pipeline"},{"title":"Publish records","openapi":"post /inference-pipelines/{inferencePipelineId}/data-stream","href":"/api-reference/rest/monitoring/stream-data"},{"title":"Retrieve record","description":"Retrieve a record by its ID from a data source (formerly known as \"inference pipeline\").","openapi":"get /inference-pipelines/{inferencePipelineId}/rows/{inferenceId}","href":"/api-reference/rest/monitoring/retrieve-inference"},{"title":"Update record","openapi":"put /inference-pipelines/{inferencePipelineId}/rows","href":"/api-reference/rest/monitoring/update-inference"},{"title":"Delete record","openapi":"delete /inference-pipelines/{inferencePipelineId}/rows/{inferenceId}","href":"/api-reference/rest/monitoring/delete-inference"},{"title":"Bulk delete records","openapi":"post /inference-pipelines/{inferencePipelineId}/rows/delete","href":"/api-reference/rest/monitoring/bulk-delete-inferences"},{"title":"List data source test results","openapi":"get /inference-pipelines/{inferencePipelineId}/results","href":"/api-reference/rest/monitoring/list-test-results"},{"title":"List data source users","openapi":"post /inference-pipelines/{inferencePipelineId}/users","href":"/api-reference/rest/monitoring/list-inference-pipeline-users"},{"title":"List data source sessions","openapi":"post /inference-pipelines/{inferencePipelineId}/sessions","href":"/api-reference/rest/monitoring/list-inference-pipeline-sessions"},{"title":"List data source rows","openapi":"post /inference-pipelines/{inferencePipelineId}/rows","href":"/api-reference/rest/monitoring/list-inference-pipeline-rows"}]},{"group":"Governance","pages":[{"openapi":"get /workspaces/{workspaceId}/frameworks","title":"List frameworks","href":"/api-reference/rest/governance/list-frameworks"},{"openapi":"post /workspaces/{workspaceId}/frameworks","title":"Create a framework","href":"/api-reference/rest/governance/create-framework"},{"openapi":"get /frameworks/{frameworkId}","title":"Retrieve a framework","href":"/api-reference/rest/governance/retrieve-framework"},{"openapi":"put /frameworks/{frameworkId}","title":"Update a framework","href":"/api-reference/rest/governance/update-framework"},{"openapi":"post /frameworks/{frameworkId}/export","title":"Export a framework","href":"/api-reference/rest/governance/export-framework"},{"openapi":"get /frameworks/{frameworkId}/rules","title":"List a framework's rules","href":"/api-reference/rest/governance/list-framework-rules"},{"openapi":"get /frameworks/{frameworkId}/projects","title":"List a framework's projects","href":"/api-reference/rest/governance/list-framework-projects"},{"openapi":"get /frameworks/{frameworkId}/project-rule-stats","title":"List a framework's per-project compliance","href":"/api-reference/rest/governance/list-project-rule-stats"},{"openapi":"get /frameworks/{frameworkId}/documents","title":"List a framework's documents","href":"/api-reference/rest/governance/list-framework-documents"},{"openapi":"get /frameworks/{frameworkId}/documents/{documentId}","title":"Retrieve a framework document","href":"/api-reference/rest/governance/retrieve-framework-document"},{"openapi":"get /frameworks/{frameworkId}/sections/{sectionId}/rules","title":"List a section's rules","href":"/api-reference/rest/governance/list-section-rules"},{"openapi":"get /frameworks/{frameworkId}/subsections/{subsectionId}/rules","title":"List a subsection's rules","href":"/api-reference/rest/governance/list-subsection-rules"},{"openapi":"get /workspaces/{workspaceId}/rules","title":"List rules","href":"/api-reference/rest/governance/list-rules"},{"openapi":"post /workspaces/{workspaceId}/rules","title":"Create a rule","href":"/api-reference/rest/governance/create-rule"},{"openapi":"get /rules/{ruleId}","title":"Retrieve a rule","href":"/api-reference/rest/governance/retrieve-rule"},{"openapi":"put /rules/{ruleId}","title":"Update a rule","href":"/api-reference/rest/governance/update-rule"},{"openapi":"delete /rules/{ruleId}","title":"Delete a rule","href":"/api-reference/rest/governance/delete-rule"},{"openapi":"get /workspaces/{workspaceId}/rule-results","title":"List rule results","href":"/api-reference/rest/governance/list-rule-results"},{"openapi":"get /rule-results/{ruleResultId}","title":"Retrieve a rule result","href":"/api-reference/rest/governance/retrieve-rule-result"},{"openapi":"patch /rule-results/{ruleResultId}","title":"Update a rule result","href":"/api-reference/rest/governance/update-rule-result"},{"openapi":"get /rule-results/{ruleResultId}/evidence","title":"List a rule result's evidence","href":"/api-reference/rest/governance/list-rule-result-evidence"},{"openapi":"post /rule-results/{ruleResultId}/evidence","title":"Attach evidence to a rule result","href":"/api-reference/rest/governance/create-rule-result-evidence"},{"openapi":"get /workspaces/{workspaceId}/rule-stats","title":"Retrieve workspace compliance statistics","href":"/api-reference/rest/governance/retrieve-rule-stats"},{"openapi":"get /workspaces/{workspaceId}/rule-tags","title":"List rule tags","href":"/api-reference/rest/governance/list-rule-tags"}]},{"group":"Background tasks","pages":[{"openapi":"get /background-tasks/{taskId}","title":"Retrieve a background task","href":"/api-reference/rest/background-tasks/retrieve-background-task"}]}]}]}]},"basePath":"","title":"Publish records - Openlayer","buildId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","deploymentId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-C8RPHPxo.js","utils-0BK-9q6z.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DfjzsUJT.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-B4v9psJ4.js","snippetPresets-CpTQv-Ez.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-BNP-Fvr0.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BSgu6h1D.js","shallow-Biv1i9Gs.js","getApiPlaygroundDisplay-BoGOXhtF.js","CodeSnippet-DvQoT18_.js","CodeSnippets-Dnpa15xT.js","Page-Buji1S4J.js","getPastedJson-xAIyhUFE.js","icon-S6FBih11.js","MethodPill-SaYeUZyk.js","DuplicateIcon-Cs-p3v2Q.js","createIcon-DjCFEoHq.js","DynamicMarkdown-BcnBltEQ.js","SectionHeading-BUBl0eEF.js","axios-vUo_bRtp.js","Markdown-h4cOoD8d.js","clsx-B2v50t8t.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-DJnKvr0g.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BHrrjR1K.js"]}