name: lancedb-connect description: Resolve how to connect to a LanceDB deployment over the REST API — figure out the base URL, API key, and database header. Use this before making any REST requests to a LanceDB table, whenever the endpoint or auth setup is not already known. Also useful on its own when someone asks how to connect, authenticate, or curl their LanceDB instance. metadata: short-description: Resolve the base URL and auth headers for a LanceDB deployment
Goal
Produce two things every REST request needs:
- Base URL — the endpoint
- Headers —
x-api-key, and usuallyx-lancedb-database
Resolution steps
- If the user already gave a URL and API key (or said which environment they're working against), use that.
- Otherwise, look for credentials already available in the environment:
- Env vars like
LANCEDB_URI/LANCEDB_HOST/LANCEDB_API_KEY - A LanceDB endpoint already running or port-forwarded locally (the REST default port is 2333, i.e.
http://localhost:2333)
- Env vars like
- If you didn't find both pieces, ask the user directly: "What's your LanceDB endpoint's URL, and what's your API key?" Also ask which database to use if it isn't obvious. Don't guess or probe further — the user knows their deployment.
Validating the connection
Make a cheap authenticated request and check the status:
curl -s -w "\n%{http_code}" "{base_url}/v1/table/?limit=1" \
-H "x-api-key: <key>" \
-H "x-lancedb-database: <database>"
200— connection, key, and database header all good401— API key missing or wrong400mentioning a database header — this deployment expectsx-lancedb-database
Non-REST equivalents
If the caller would rather use the SDK or CLI than raw REST, the same credentials work:
- Python SDK:
lancedb.connect("db://<database>", api_key="<key>", host_override="<base_url>") lancedbCLI: a[profiles.<name>]entry in~/.lancedb/config.tomlwithhttp_server_url,api_key,database