> For the complete documentation index, see [llms.txt](https://docs.veda.tech/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.veda.tech/api/quick-start.md).

# Quick Start

The shortest path from "I have a Veda Console account" to "I'm making authenticated API calls." Five minutes, no SDK required.

## Prerequisites

* A [Veda Console](https://console.veda.tech) account with API key access
* A terminal with `curl`, or a runtime of your choice (Python, Node, anything that can send HTTP)

If you don't yet have a console account, see [Getting access](/api.md#getting-access).

## 1. Create an API key

API keys are created and managed in the Veda Console.

1. Sign in to [console.veda.tech](https://console.veda.tech)
2. Go to **Settings → API keys**
3. Click **Create API key**
4. Give the key a description (e.g. `mainnet-rebalance-bot`, `analytics-dashboard`) — this is how you'll identify it later
5. Click **Create API key**

Your plaintext key is shown **only once** and looks like:

```
veda_user_live_Bf9MaVT6W09KEJIOHfK9HPeBKNgB9uVU
```

Copy it into your secret manager now. You cannot retrieve it later — if you lose it, revoke and create a new one.

{% hint style="warning" %}
The key inherits the role and permissions of the user who created it. Treat it like a password: do not check it into source control, do not paste it into shared logs, and rotate it if you suspect exposure.
{% endhint %}

### Capacity & lifecycle

* Each user can have up to **10 active keys**
* Keys do not expire by default
* You can **revoke** a key at any time from the same settings page; revoked keys stop authenticating immediately
* Deactivated user accounts will stop authenticating via API key

## 2. Make your first authenticated call

Pass the key as a Bearer token in the `Authorization` header:

{% tabs %}
{% tab title="cURL" %}

```bash
curl https://api.veda.tech/v1/tx-builder/health \
  -H "Authorization: Bearer $VEDA_API_KEY"
```

{% endtab %}

{% tab title="JavaScript" %}

```javascript
const response = await fetch("https://api.veda.tech/v1/tx-builder/health", {
  headers: {
    Authorization: `Bearer ${process.env.VEDA_API_KEY}`,
  },
});

const data = await response.json();
console.log(data);
```

{% endtab %}
{% endtabs %}

A `200 OK` with a JSON body means your key works.

## 3. Confirm the response

A successful authenticated call against `/v1/tx-builder/health` returns a small JSON body:

```bash
curl https://api.veda.tech/v1/tx-builder/health \
  -H "Authorization: Bearer $VEDA_API_KEY"
```

```json
{ "status": "healthy" }
```

If you get back the JSON above with a `200 OK`, your key is good. From here, real work happens against vault-scoped endpoints — see [Transaction Builder](/api/transaction-builder.md) for the full walkthrough, including how to list a vault's permitted actions and build rebalance calldata.

## Next steps

* [Transaction Builder](/api/transaction-builder.md) — discover actions, inspect constraints, and build rebalance calldata
* [API Reference](/api/api-reference.md) — the full endpoint surface in OpenAPI form
* [Change Log](/api/change-log.md) — what's new, what's deprecated, and what's coming
