---
title: "Upload mind data (text and media) into the owner's own AI consciousness."
method: POST
path: "/v1/upload_external_mind_data"
tags: ["External Authorization"]
---

# Upload mind data (text and media) into the owner's own AI consciousness.

`POST /v1/upload_external_mind_data`

## Request

- Base URL: `https://partner.mindupload.app`
- URL: `https://partner.mindupload.app/v1/upload_external_mind_data`
- Auth: API key in header `X-Partner-Key`

Upload mind data (text and/or media tags) into the owner's own AI consciousness under an active `clone:upload` grant. Uploads are unbilled and quarantined for owner review unless the owner enabled auto-keep. A supplied `idempotency_key` deduplicates the complete request until account deletion; changing its payload is rejected. Retry `processing` results with the same key after `retry_after_seconds`. A `succeeded` replay means the original submission completed; it never restores a subsequently edited or deleted memory. Legacy requests without a key retain their previous behavior. Each media tag is replaced with a written description of what was uploaded, so the stored text is longer than what you send; if the result exceeds 50000 characters the request is rejected with 400. Sending fewer attachments or shorter text avoids it.

## Request body

- object
  - `preferred_language` string, nullable: BCP-47-ish language code (e.g. 'en', 'zh-cn') for localized messages.
  - `access_token` string, required: Opaque grant token accepted only by grant inspection and external clone invocation; store it as a secret and never expose it to users.
  - `literal_text` boolean: When true, upload the exact edited body without interpreting embedded media markers.
  - `media_ids` string[], nullable: Completed controlled media IDs, checked for ownership, application, scope, retention and exact object version. No analysis is started here.
  - `installation_id` string, required: Your stable opaque identifier for this app installation.
  - `external_subject` string, required: Your stable opaque identifier for the person authorizing this installation.
  - `clone_id` string, required: AI consciousness id as returned by clone operations.
  - `text` string, required
  - `text_type` 'memory' | 'persona' | 'conscious', nullable
  - `idempotency_key` string, nullable: Optional for legacy clients. Reuse for retries of the same complete upload. A key is bound to the partner, grant, installation, external identity, clone, text type, text and provenance; changing any part is rejected. Receipts survive text deletion and are removed with the account.
  - `preview_id` string, nullable
  - `source_label` string, nullable

## Response `200`

Result envelope — check the success field.

- object
  - `success` boolean: Whether the call succeeded.
  - `error_message` string, nullable: Human-readable reason when success is false.
  - `error_code` string
  - `clone_id` string, nullable: AI consciousness id as returned by clone operations.
  - `text_type` string, nullable
  - `pending_owner_review` boolean, nullable
  - `text_id` string, nullable: Original submitted memory id once committed. A replay does not assert this memory still exists or restore an edited or deleted body.
  - `status` 'processing' | 'succeeded', nullable: For keyed requests: processing or succeeded. Processing is not success; retry the same request and key after retry_after_seconds.
  - `idempotent_replay` boolean, nullable: True when this response came from an existing durable receipt.
  - `retry_after_seconds` integer, nullable: Suggested delay before retrying the same event while processing.

## Other responses

- `400`: Invalid request payload.
- `401`: Missing or invalid partner key.
- `403`: Partner is not authorized for this operation.
- `429`: Rate limit exceeded — retry later.
- `500`: Internal server error.

---

[API](https://skmtc.dev/mindupload/apis/mind-upload-partner-api.md) · [All operations](https://skmtc.dev/mindupload/apis/mind-upload-partner-api/llms.txt) · [OpenAPI document](https://skmtc.dev/mindupload/apis/mind-upload-partner-api/revisions/0371bdf78533?raw)
