# API overview

Vibedasher exposes a programmatic API for the whole maintained platform — connections, datasets, refreshes, dbt, SQL, visualizations, governance, and more. It's how your harness reaches that platform: the **[MCP server](/guides/build-with-your-agent.md)** your agent drives is a wrapper over this API, and the SDKs are how your own code queries the platform and embeds the dashboards your agents publish to it. There are two tiers:

1. **The authenticated API**, accessed through the official **[SDKs](/api/sdks.md)** with an API key. This is the full user-facing surface.
2. **A public, no-auth surface** under `/v1/public/*` for reading *published* visualizations — the same data your embedded dashboards consume.

The SDK surface is the **programmatic** API. Internal plumbing (admin, websocket, direct invoke, usage tracking), billing/portal flows, and in-app-only features (notifications, feedback, account branding, email config) are excluded — they're driven by the app UI, not the public API.

## Base URL[​](#base-url "Direct link to Base URL")

```
https://api.vibedasher.com/api
```

That is the only address you need. The edge in front of it reads your credential and forwards the request to the region holding your account's data, so you do not have to know which one that is — see [One host, routed by your credential](/api/authentication.md#one-host-routed-by-your-credential).

Each region also answers on its own hostname, `https://api.{region}.vibedasher.com/api`. Those are fully supported, and they are how you pin a client to one region on purpose. For a self-hosted deployment, substitute your own API host.

## Authentication[​](#authentication "Direct link to Authentication")

The authenticated API uses an **API key** sent in the `X-Api-Key` header — mint one in the app under Settings → API keys. (Key creation is session-only and is not callable with a key.) See **[Authentication](/api/authentication.md)** for details.

If you're reaching the platform from your agent over MCP rather than from your own code, you don't need a key at all: `vibedasher login` (in `vibedasher-mcp` **0.6.0 or later**) signs you in through the browser. See **[Build with your agent](/guides/build-with-your-agent.md)**.

The `/v1/public/*` endpoints below require **no** authentication.

## Public endpoints (no auth)[​](#public-endpoints-no-auth "Direct link to Public endpoints (no auth)")

For reading published, public visualizations:

| Method | Path                                         | Purpose                                 |
| ------ | -------------------------------------------- | --------------------------------------- |
| `GET`  | `/v1/public/viz/slug/{slug}`                 | Fetch a published viz by slug           |
| `GET`  | `/v1/public/viz/{account_slug}/{slug}`       | Fetch a published viz by account + slug |
| `POST` | `/v1/public/viz/{account_slug}/{slug}/query` | Run a viz query                         |

Only visualizations that are **published and marked public** are reachable through these routes — drafts and private dashboards return 404.

## OpenAPI schema & codegen[​](#openapi-schema--codegen "Direct link to OpenAPI schema & codegen")

The full authenticated API is described by a committed OpenAPI 3.0 spec (`Vibedasher SDK API`, v2.0.0). The official SDKs are generated from it, so the simplest path is to **use the SDKs** rather than hand-rolling a client:

* **TypeScript** — `npm install @vibedasher/client`
* **Python** — `pip install vibedasher`

See **[SDKs](/api/sdks.md)** for usage. If you need a client in another language, generate one from the same OpenAPI spec with the generator of your choice.

## Browse every endpoint[​](#browse-every-endpoint "Direct link to Browse every endpoint")

The complete, per-endpoint reference — every operation grouped by resource (datasets, connections, vizs, questions, …) with curl / Python / TypeScript request samples — lives in the **[API Reference](/reference/vibedasher-sdk-api.md)**.

## Next steps[​](#next-steps "Direct link to Next steps")

* **[SDKs](/api/sdks.md)** — the official TypeScript and Python clients.
* **[Authentication](/api/authentication.md)** — API keys and the public surface.
* **[API Reference](/reference/vibedasher-sdk-api.md)** — every endpoint, with code samples.
* **[Embedding a dashboard](/api/embedding-the-share-iframe.md)** — drop a published dashboard into your own app, publicly or gated per viewer with row-level filters.
