Skip to content

Use a public dataset

Public datasets are discovered at Datasets. Each dataset has one canonical public page for its README, tables, freshness, workspace connection, JSON explorer, API keys, and AI access. A dataset does not become available to every workspace when you find it. On that page, choose Use dataset, select one workspace, and confirm the connection.

The connection grants that workspace access to every table that is currently public in the dataset. It does not copy the data and it does not change your active workspace.

After connecting, stay on the same dataset page. When it says Using in workspace, choose a table and use the controls there. The workspace’s Using list also links back to this canonical page.

NeedUse
Inspect a small resultExplore data in the app. Your browser uses your signed-in session and never receives an API key.
Ask Claude, Codex, or another agentUse with AI. Connect the MCP client with OAuth and select the workspace.
Write an application, notebook, or jobUse the API. Create a personal mr_use_… key for that workspace.
Train a model or refresh a local analytical storeDownload the current Parquet file and query it locally with DuckDB, Polars, Pandas, or Arrow.

mr_use_ keys are personal to the member who created them and scoped to one workspace. A key can read public datasets connected to that workspace. It cannot read private tables, a dataset connected to another workspace, or a dataset after the workspace removes it.

Do not substitute a legacy SDK key. mr_live_… remains the subscription key for the SDK and hosted tables, while mr_cli_… authorizes a command-line device. Public Dataset Query and Current endpoints accept only mr_use_….

Use the query endpoint for bounded rows, filters, ordering, and aggregates. It returns typed JSON with the exact table version and content digest used for the result.

Terminal window
curl -sS \
-H "x-api-key: $MOSTLYRIGHT_API_KEY" \
-H "content-type: application/json" \
-d '{"columns":["city","date","temperature"],"limit":25}' \
"https://api.mostlyright.md/api/v2/public/tables/$TABLE_ID/query"

The initial API accepts a closed query object. It does not execute arbitrary SQL. Keep results small; a response reports returned rows, scanned bytes, elapsed time, and whether its row limit truncated the result.

See Public Dataset API for the request and error contract.

Use Current when you need the complete immutable snapshot rather than a small JSON result.

Terminal window
curl -sS -o table.parquet \
-H "x-api-key: $MOSTLYRIGHT_API_KEY" \
"https://api.mostlyright.md/api/v2/public/tables/$TABLE_ID/current"

Each response includes a strong ETag and SHA-256 content digest. Save the ETag and send it as If-None-Match on a later refresh. A 304 means the file has not changed and no download occurs.

import duckdb
rows = duckdb.sql("""
select city, avg(temperature) as mean_temperature
from read_parquet('table.parquet')
group by city
order by mean_temperature desc
""").fetchall()

Do not download Current on every inference request. Refresh it on a schedule, verify the digest, then atomically replace a local file or a local DuckDB table. Your request path can query that local version with predictable latency.

Removing a dataset from the workspace immediately stops its Current and Query API access for that workspace. Revoking a key stops requests made with that key. Disconnecting an AI tool stops its OAuth connection. These are separate actions because a workspace can have more than one member, key, or AI client.