## Upsert Batch Pipeline Documents `List pipelines().documents().upsert(DocumentUpsertParamsparams, RequestOptionsrequestOptions = RequestOptions.none())` **put** `/api/v1/pipelines/{pipeline_id}/documents` Batch create or update a document for a pipeline. ### Parameters - `DocumentUpsertParams params` - `Optional pipelineId` - `List body` - `Metadata metadata` - `String text` - `Optional id` - `Optional> excludedEmbedMetadataKeys` - `Optional> excludedLlmMetadataKeys` - `Optional> pagePositions` indices in the CloudDocument.text where a new page begins. e.g. Second page starts at index specified by page_positions[1]. ### Example ```java package com.llamacloud_prod.api.example; import com.llamacloud_prod.api.client.LlamaCloudClient; import com.llamacloud_prod.api.client.okhttp.LlamaCloudOkHttpClient; import com.llamacloud_prod.api.core.JsonValue; import com.llamacloud_prod.api.models.pipelines.documents.CloudDocument; import com.llamacloud_prod.api.models.pipelines.documents.CloudDocumentCreate; import com.llamacloud_prod.api.models.pipelines.documents.DocumentUpsertParams; public final class Main { private Main() {} public static void main(String[] args) { LlamaCloudClient client = LlamaCloudOkHttpClient.fromEnv(); DocumentUpsertParams params = DocumentUpsertParams.builder() .pipelineId("182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e") .addBody(CloudDocumentCreate.builder() .metadata(CloudDocumentCreate.Metadata.builder() .putAdditionalProperty("foo", JsonValue.from("bar")) .build()) .text("text") .build()) .build(); List cloudDocuments = client.pipelines().documents().upsert(params); } } ``` #### Response ```json [ { "id": "id", "metadata": { "foo": "bar" }, "text": "text", "excluded_embed_metadata_keys": [ "string" ], "excluded_llm_metadata_keys": [ "string" ], "page_positions": [ 0 ], "status_metadata": { "foo": "bar" } } ] ```