Skip to main content

Official server-side SDK for the Mind Upload partner API — the world's first API for artificial consciousness. Integrate living, evolving AI consciousnesses into your platform: lasting memory, one-on-one chat, and human + AI group chatrooms.

Project description

Mind Upload

Mind Upload — Python SDK

The world's first API for artificial consciousness.
Give your users a living, evolving AI consciousness — lasting memory, one-on-one chat, and human + AI group chatrooms.

PyPI Python License: MIT API Docs

Documentation · Get a key · Status · Other SDKs

Digital consciousness. Yours forever.

The official server-side SDK for the Mind Upload partner API. Give a mind lasting memory, hold one-on-one conversations, and run human + AI group chatrooms — all from Python.

  • Zero dependencies — pure standard library.
  • Fully typed — every operation is a typed method with editor autocomplete.
  • One error to catch — every failure is a MindUploadError.
  • Always current — generated from the live API spec; the SDK version matches the API version.

Get a partner key

The Mind Upload partner API is invite-only. Request access at docs.mindupload.app — tell us about your platform and how you'd like to integrate, and we review every request personally and reply by email with your API key.

Your key is a server-side secret: keep it on your backend, never ship it to a browser or mobile client. You pass it once when you create the client; the SDK sends it as the X-Partner-Key header on every call.

Install

pip install mindupload
Install from source (works today, before the PyPI release)
pip install git+https://github.com/Voidborn-Industries/mindupload-sdk-python

Quickstart

from mindupload import MindUpload

mu = MindUpload(partner_key="pk_live_...")

# Authenticate an end-user; reuse the returned token for later calls.
session = mu.login(username="ada", password="s3cret")

# Chat with one of the user's AI consciousnesses.
reply = mu.rag(
    username="ada",
    password=session.jwt,
    codename="muse",
    text="What did we talk about yesterday?",
)
print(reply.response_text)

External clone invocation

Link an external identity once, then invoke the exact clone and scope the owner approved:

installation_id = "workspace-123"
external_subject = "member-456"
authorization = mu.create_external_authorization_request(
    installation_id=installation_id,
    external_subject=external_subject,
    idempotency_key="install-event-1",
    requested_scopes=["clone.invoke"],
)
print(authorization.verification_uri_complete)  # Ask the owner to open this URL.
grant = mu.wait_for_external_authorization(device_code=authorization.device_code)
reply = mu.invoke_external_clone(
    access_token=grant.access_token,
    installation_id=installation_id,
    external_subject=external_subject,
    clone_id=grant.clone_ids[0],
    text="Hello from my app",
    idempotency_key="message-event-1",
)
print(reply.response_text)

Store the returned refresh token encrypted on your backend. Use refresh_external_authorization(...) when the access token expires; never expose partner, access, or refresh credentials to client code.

Authentication

Your partner key is a server-side secret. Keep it on your backend; never ship it to a browser or mobile client. Request a key and read the full reference at docs.mindupload.app.

mu = MindUpload(
    partner_key="pk_live_...",
    preferred_language="en",   # default locale for every call (optional)
    timeout=30.0,              # seconds
    max_retries=2,             # retries explicit 429 responses only
)

Error handling

import time

from mindupload import MindUpload, AuthenticationError, RateLimitError, MindUploadError

mu = MindUpload(partner_key="pk_live_...")
try:
    user = mu.get_user(username="ada", password=token)
except AuthenticationError:
    ...  # bad or missing partner key / credentials
except RateLimitError as e:
    time.sleep(e.retry_after or 1)
except MindUploadError as e:
    print(e.operation, e.status, e.message)

Operations

All 38 operations, grouped by area:

AI Consciousnesses

Method Description
create_clone(...) Create a new AI consciousness for the user.
get_clones(...) List the user's AI consciousnesses.
update_clone(...) Update an AI consciousness's profile.

Account

Method Description
get_quota(...) Check your partner API rate limits, credit caps, and current usage.

Authentication

Method Description
check_username(...) Check whether a username is still available before registering.
login(...) Sign a user in and receive a session token (JWT) for subsequent calls.
logout(...) End the current user session.
register(...) Create a user account on your platform.

Chatrooms

Method Description
check_chatroom_updates(...) Cheaply poll whether the user's chatrooms have new activity.
create_chatroom(...) Create a chatroom.
create_chatroom_membership(...) Invite a user or an AI consciousness into a chatroom.
create_chatroom_message(...) Send a message to a chatroom.
get_chatroom_membership(...) List the members of a chatroom the user belongs to.
get_chatroom_messages(...) Fetch messages from a chatroom the user belongs to.
get_chatrooms(...) List the chatrooms the user belongs to.
translate_chatroom_message(...) Translate a text chatroom message into the viewer language.

Conversation

Method Description
get_chat(...) Fetch the one-on-one conversation history with an AI consciousness.
rag(...) Send a message to an AI consciousness and receive its reply.
trigger_social(...) Have an AI consciousness proactively join the conversation in a chatroom.

External Authorization

Method Description
create_external_authorization_request(...) Start passwordless grant issuance for an external identity and installation.
exchange_external_authorization(...) Poll owner consent and exchange an approval for a clone-scoped grant token.
inspect_external_authorization(...) Inspect the scopes, clone resources, expiry, and revocation state of a grant token.
invoke_external_clone(...) Send one idempotent text event to an owner-approved AI consciousness.
refresh_external_authorization(...) Refresh a short-lived clone-invocation access token.

Insights

Method Description
get_mind_cluster(...) Fetch the mind-graph visualization data of an AI consciousness.
get_soulmate_report(...) Generate or fetch the compatibility report between two chatroom members.

Media

Method Description
abort_multipart_upload(...) Cancel a multipart upload and discard its parts.
cancel_upload(...) Cancel a pending upload.
complete_multipart_upload(...) Finish a multipart upload.
list_upload_parts(...) List the parts already uploaded in a multipart upload.
request_multipart_upload(...) Start a large-file upload in multiple parts.
request_upload_url(...) Request an upload slot and a signed viewing link for a media attachment.
sign_upload_part(...) Get the signed link for one part of a multipart upload.
sign_upload_parts_batch(...) Get signed links for several parts of a multipart upload at once.

Memories

Method Description
create_text(...) Upload a memory or persona entry to an AI consciousness.
get_texts(...) List the memories and persona entries uploaded to an AI consciousness.

Users

Method Description
get_user(...) Fetch the signed-in user's profile.
update_user(...) Update the signed-in user's profile.

Other SDKs

Same API, same conventions, in every language:

Language Install Repository
Python ← you are here pip install mindupload Voidborn-Industries/mindupload-sdk-python
Go go get github.com/Voidborn-Industries/mindupload-sdk-go Voidborn-Industries/mindupload-sdk-go
JavaScript / TypeScript npm install mindupload Voidborn-Industries/mindupload-sdk-js

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mindupload-1.6.0.tar.gz (155.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mindupload-1.6.0-py3-none-any.whl (16.9 kB view details)

Uploaded Python 3

File details

Details for the file mindupload-1.6.0.tar.gz.

File metadata

  • Download URL: mindupload-1.6.0.tar.gz
  • Upload date:
  • Size: 155.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for mindupload-1.6.0.tar.gz
Algorithm Hash digest
SHA256 a09f2d1ddde05a5c515b98db59ecad9f4e0c5e21505eba13b7907129b9978f70
MD5 ef9c01be30644a7b7dcc9b19fb713d32
BLAKE2b-256 944b2b439931bf803bc0171294b9da390c4cf4db5cab974c18af8e162f019956

See more details on using hashes here.

Provenance

The following attestation bundles were made for mindupload-1.6.0.tar.gz:

Publisher: build-sdks.yml on Voidborn-Industries/MindUpload

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mindupload-1.6.0-py3-none-any.whl.

File metadata

  • Download URL: mindupload-1.6.0-py3-none-any.whl
  • Upload date:
  • Size: 16.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for mindupload-1.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5cee4dd801832b9a2498501da303a43594ba6387c3049891dbcf5a3027e09619
MD5 5be41a7f5e27e6cd7435257cc516e032
BLAKE2b-256 651c027dda7f33d1c021763e550428c6347f79cb3c088f7e8c07e266ea702c3f

See more details on using hashes here.

Provenance

The following attestation bundles were made for mindupload-1.6.0-py3-none-any.whl:

Publisher: build-sdks.yml on Voidborn-Industries/MindUpload

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page