Skip to content

Replace uploaded file content ​

Interface Description ​

Replace the complete Markdown content of one uploaded file and optionally move it.

Endpoint ​

FieldValue
MethodPUT
Path/openapi/v2/knowledge-bases/{knowledgeBaseId}/source-files/{sourceFileId}/content
Operation IDreplaceSourceFileContent
AuthenticationBearer OpenAPI key

Parameters ​

NameLocationRequiredTypeExampleDescription
knowledgeBaseIdpathYesstringknowledge-base-11111111-1111-4111-8111-111111111111Knowledge-base identifier returned by knowledge-base APIs.
sourceFileIdpathYesstringsource-file-11111111-1111-4111-8111-111111111111Uploaded-file identifier returned by upload or uploaded-file list APIs.
Idempotency-KeyheaderYesstringmutation-2026-07-10-001Client-generated key for safely retrying the same request. Reuse the same value for retries so duplicate work is not created.
If-MatchheaderYesstring"1"Current resourceRevision returned by the API. If the resource changed after it was read, the request returns a conflict instead of overwriting the newer change.
X-Source-Relative-PathheaderNostringhandbook/setup/install.mdOptional new path when replacing and moving the file in one request. The destination directory must already exist.

Request Body ​

text/markdown ​

Schema type: string

Complete Markdown content that will replace the current file.

Request Example ​

bash
curl -X PUT "https://openapi.example.com/openapi/v2/knowledge-bases/knowledge-base-11111111-1111-4111-8111-111111111111/source-files/source-file-11111111-1111-4111-8111-111111111111/content" \
  -H "Authorization: Bearer <openapi-key>" \
  -H "Idempotency-Key: mutation-2026-07-10-001" \
  -H "If-Match: \"1\"" \
  -H "X-Source-Relative-Path: handbook/setup/install.md" \
  -H "Content-Type: text/markdown" \
  --data-binary "# Installation\n\nCurrent installation guidance."

Successful Responses ​

202 ​

File content replacement accepted for background processing.

FieldRequiredTypeDescription
operationYesobjectFile or directory change record returned by the request.

Success Response Example ​

json
{
  "operation": {
    "operationId": "source-replace-44444444-4444-4444-8444-444444444444",
    "knowledgeBaseId": "knowledge-base-11111111-1111-4111-8111-111111111111",
    "kind": "source_file_replace",
    "state": "processing",
    "expectedResourceRevision": 1,
    "targetKind": "source_file",
    "targetId": "source-file-11111111-1111-4111-8111-111111111111",
    "candidateRelativePath": "handbook/setup/install.md",
    "result": null,
    "errorCode": null,
    "retryGuidance": "Check this change again after a short delay.",
    "actions": {
      "self": "/openapi/v2/knowledge-bases/knowledge-base-11111111-1111-4111-8111-111111111111/operations/source-replace-44444444-4444-4444-8444-444444444444"
    },
    "createdAt": "2026-06-17T00:00:00.000Z",
    "updatedAt": "2026-06-17T00:00:00.000Z",
    "completedAt": null
  }
}

Error Codes ​

The table below lists every error response documented for this operation.

HTTP StatusError CodeExplanation
401UNAUTHORIZEDThe Bearer API key is missing, malformed, unknown, revoked, or deleted.
404NOT_FOUNDThe requested resource was not found.
409CONFLICTThe request conflicts with the resource's current state.
413PAYLOAD_TOO_LARGEThe request body or requested file exceeds the size limit for this operation.
422VALIDATION_ERRORThe request failed validation.
429RATE_LIMITEDThe request exceeded the configured rate limits.
500INTERNAL_ERRORThe API encountered an internal error.
503DATABASE_REPOSITORY_UNAVAILABLEThe data required by this operation is temporarily unavailable.

Next Steps ​