When people start working with a vector database platform, they encounter two distinct interfaces almost immediately: a browser-based dashboard for managing the database, and a programmatic interface for building applications on top of it. These two surfaces look different, work differently, and are designed for different purposes — but the line between them is not always explained clearly, which leads to developers using the wrong tool for the job or not knowing one of them exists.
Understanding the distinction changes how you approach both day-to-day administration and application development.
Two Interfaces, Two Jobs
Every managed vector database platform separates the operational interface from the programmatic interface, even if the terminology varies.
The console — sometimes called the dashboard, the app, or the admin panel depending on the platform — is a browser-based graphical interface. It is designed for humans. You log in, click around, inspect your data, configure access controls, monitor performance, and run one-off queries. Nothing you do in the console requires writing code. It is the right tool when the task is operational: checking whether an ingestion completed, rotating an API key, adding a new team member, or investigating why query latency spiked.
The client library or API is the programmatic interface. It is designed for applications. Your code imports a library, authenticates with a key, and issues commands to the database — inserting vectors, running queries, deleting records, updating metadata. This is how your application talks to the database at runtime, and it is the right tool for anything that needs to happen automatically, repeatedly, or at scale.
These two interfaces are not redundant. They serve different users doing different things. A developer building a search feature uses the client library. An engineering manager checking cluster health uses the console. A developer debugging a production issue might use both at the same time.
What Each Interface Is Good At
The console excels at tasks that are inherently manual and visual:
- Seeing a live count of objects in an index without writing a query
- Creating or rotating API keys without scripting
- Reviewing metrics dashboards to spot trends in query latency or ingestion throughput
- Running a test query interactively to verify that search results look correct
- Managing team access — creating roles, assigning permissions, revoking credentials
The client library excels at tasks that need to be automated or repeated:
- Ingesting thousands of documents in a batch job
- Running searches in response to user requests
- Updating records when upstream data changes
- Integrating the database into a larger application or pipeline
- Anything that needs to run on a schedule or in response to an event
The mistake teams make is trying to use one where the other belongs. Trying to do bulk ingestion through a console UI is painful and error-prone. Trying to monitor cluster health by writing API calls instead of looking at a dashboard is unnecessary overhead. Neither interface replaces the other.
Self-Hosted vs. Managed Deployments
One important wrinkle: the console experience is not always identical across deployment types. Managed cloud platforms typically offer a richer console with the full suite of admin features. Self-hosted deployments — running on Docker or Kubernetes on your own infrastructure — may have a more limited console, or none at all that is maintained by the platform vendor.
This means that for self-hosted setups, more administration work tends to happen through the API or CLI rather than a GUI. Some teams build their own internal dashboards on top of the API. Others accept that administration is a code task rather than a click task. Neither approach is wrong — it is a consequence of the deployment model.
If rich GUI administration matters to your team, it is worth checking what the console provides for the specific deployment type you are using before committing to a self-hosted setup.
Weaviate: Console and Client Libraries
In Weaviate’s case, the two interfaces are the Weaviate Cloud console and the client libraries (Python, TypeScript, Go, Java) plus the underlying REST, GraphQL, and gRPC APIs.
The Weaviate Cloud Console
The console lives at console.weaviate.cloud. It covers the full range of administrative tasks:
- Cluster management: create, monitor, and delete clusters
- API key management: issue, rotate, and revoke keys under
Cluster details → API Keys - Role management: create and assign RBAC roles under
Cluster details → Roles - Metrics: query latency, ingestion throughput, object count, and batch size dashboards
- Interactive querying: a built-in GraphQL IDE with syntax highlighting, type-ahead, and real-time error reporting
The GraphQL IDE is particularly useful for exploration. You can run queries against a live cluster, see results immediately, and verify that your schema and data look correct — all without writing a line of application code.
One important limitation: the full admin interface is only available for Weaviate Cloud deployments. For self-hosted instances running in Docker or Kubernetes, you can connect the console as an external cluster to run GraphQL queries, but the richer admin features — key management, role management, metrics dashboards — are cloud-only. If you are running Weaviate locally, administration happens through the API.
Client Libraries and APIs
For application code, Weaviate provides official client libraries for Python, TypeScript/JavaScript, Go, and Java. These are the right interface for everything your application does at runtime.
import weaviate
from weaviate.classes.init import Auth
# Connect to Weaviate Cloud
client = weaviate.connect_to_weaviate_cloud(
cluster_url=weaviate_url,
auth_credentials=Auth.api_key(weaviate_api_key),
)
# Run a semantic search
results = client.collections.get("Articles").query.near_text(
query="vector database administration",
limit=5,
)
for obj in results.objects:
print(obj.properties["title"])
client.close()
The client libraries automatically use gRPC where available, which is faster than REST for high-throughput operations. They work with both Weaviate Cloud and self-hosted deployments — the only difference is the connection method (connect_to_weaviate_cloud versus connect_to_local).
The underlying REST, GraphQL, and gRPC APIs are also available directly if you are working in a language without an official client library, or if you need to make requests from a context where a library is not practical (a shell script, a curl command for debugging, a platform with library restrictions).
Which to Use When
| Task | Right interface |
|---|---|
| Checking object count or latency | Weaviate Cloud console |
| Creating or rotating an API key | Weaviate Cloud console |
| Running a one-off test query | Console GraphQL IDE |
| Ingesting data from an application | Client library |
| Running searches in production | Client library |
| Automating a workflow | Client library or REST API |
| Administering a self-hosted cluster | REST API or gRPC |
The console is for humans doing operational work. The client libraries are for code doing application work. When in doubt, ask whether the task needs to happen automatically — if yes, use the library.