Skip to main content
Pixeltable Cloud is in Limited Beta. Email [email protected] if you are interested.
Use the same app.py as the Quickstart. Create an API key in the Cloud dashboard, export it, then create the hosted database, the tables, and hosted HTTP.

Get an API key

Sign in from the browser, create a key, then export it. The CLI reads PIXELTABLE_API_KEY. It does not log you in.
1

Sign in

Cloud is in Limited Beta. Email [email protected] to get an account. Once you have one, sign in at pixeltable.com/login and the dashboard opens your organization.
2

Create a key

Open API Keys in the organization sidebar, or go to https://www.pixeltable.com/dashboard/your-org/api-keys. Click New, or Create API Key if the list is empty. Name the key. Click Create Key. Copy the value now. The dashboard shows the full key once.
3

Export it

Pixeltable reads the process environment and never loads a .env file on its own, so source one yourself first (set -a; source .env; set +a). Do not write api_key in config.toml. Configuration. This key authenticates Cloud CLI and hosted HTTP. Provider keys such as OPENAI_API_KEY go under Secrets in the dashboard, or pxt secret set pxt://org OPENAI_API_KEY=.... They do not go in this API key. CLI.
pxt init writes pixeltable.toml. Put the hosted URL in that file, then run the three commands:
A Cloud table path uses the URI plus /table. Open it with t = pxt.get_table('pxt://org:mydb/docs'). A local table uses dotted namespace.table, such as pxt.get_table('my_app.docs').
The same file can hold pxt.Image, pxt.Video, pxt.Audio, or pxt.Document: media pipelines, RAG. pxt db update creates the hosted database, uploads the project files, and updates its image and size. It does not insert your data and does not start app endpoints. pxt schema update creates the tables. It does not start the endpoints. pxt service update starts hosted endpoints. Do not use pxt service run for Cloud; that command only starts endpoints in your local terminal. After the database is up, insert from the Cloud dashboard or from Python. A local file path on a Cloud table uploads the file. Run pxt schema diff app.py pxt://org:mydb to see pending schema changes.

What the database runs

A hosted database runs two things that come from your project, and they move independently.
  • The image holds the Python environment: your dependencies, the Python version, and any system packages. pxt db update rebuilds it only when that environment changed, which is the slow step.
  • The project files are your app.py and whatever else the entry selects. They are uploaded on their own, without a rebuild.
So editing a UDF costs an upload, while adding a line to pyproject.toml costs a build. Both are pxt db update; it works out which happened. [[pixeltable.database]] in pixeltable.toml declares which files are selected, what the image holds, and the CPU, memory, disk, and worker counts. See the cloud configuration reference.

What to run after a change

pxt db diff pxt://org:mydb prints what update would do without doing it.

Operate it

pxt db status is where the hosted endpoint comes from; do not hardcode a hostname. Deleting is pxt db delete pxt://org:mydb, and it takes the storage with it. Full reference: CLI.

Media on the home bucket

Every Cloud database includes a managed Media Store at pxtfs://org:mydb/home. Hosted tables and services write there automatically. No destination=, no dest env vars. Set dest only for two cases:
  • Local Pixeltable writing into that same bucket: PIXELTABLE_API_KEY plus PIXELTABLE_INPUT_MEDIA_DEST / PIXELTABLE_OUTPUT_MEDIA_DEST (see Cloud storage).
  • Your own bucket: store AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY (or GCS / Azure names) under Secrets or pxt secret, then point those dest env vars at s3://, gs://, or wasbs://. A single computed column can also set destination=:

Local vs Cloud

Request an account

Cloud is in Limited Beta.

Book a demo

Talk through a Cloud deployment.
Last modified on September 16, 2026