You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
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)
fromminduploadimportMindUploadmu=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, # secondsmax_retries=2, # retries explicit 429 responses only
)