> ## Documentation Index
> Fetch the complete documentation index at: https://docs.barker.money/llms.txt
> Use this file to discover all available pages before exploring further.

# Quickstart

> Make your first Barker Yield Engine API call in 5 minutes.

> **Pick your integration mode first.** Embed iframe is faster (\~30 min); headless API gives full UI control. See [Choosing an integration mode](/integration-modes) if you're undecided. This Quickstart covers the common starting steps for both.

## 1. Sign up and grab a sandbox API key

1. Visit [portal.barker.money/register](https://portal.barker.money/register)
2. Verify your email
3. The portal issues a **sandbox key** (`bk_test_xxxxx`) instantly. Copy it — it's shown once.

Sandbox keys point at a per-partner sandbox engine on testnets (Base Sepolia / Arbitrum Sepolia / Sepolia). Same API surface as production, same `chain_id` field semantics, but no real funds at risk.

### Get test funds

In [Portal → Sandbox](https://portal.barker.money/sandbox) you can:

* Mint mock USDC to your test wallet (1 click, capped per day)
* See the sandbox base URL and remind yourself how `bk_test_*` keys behave
* Send a test inbound webhook (handy for verifying your HMAC handler before going live)

Use the faucet to fund your test wallet, then call `approve + deposit` on the sandbox engine the same way you would in production. Round-trip a `redeem` to confirm.

## 2. List products

```bash theme={null}
curl https://api.barker.money/api/partner/products \
  -H "X-Api-Key: bk_test_xxxxx"
```

Response:

```json theme={null}
{
  "success": true,
  "data": [
    {
      "slug": "acme-usdc-base",
      "partner": "Acme Pay",
      "chain": "base",
      "engine_contract_address": "0x1234567890123456789012345678901234567890",
      "asset_symbol": "USDC",
      "status": "active",
      "latest_metrics": {
        "as_of_date": "2026-05-03",
        "engine_total_assets": "1245678.000000",
        "underlying_apy": "0.0612",
        "net_apy_for_user": "0.0551"
      }
    }
  ]
}
```

> Response also includes `barker_fee_bps` / `partner_fee_bps` fields (configured per partner contract). See API Reference for the full schema.

## 3. Use the JS SDK (optional)

```bash theme={null}
npm install @barker/sdk-js
```

```ts theme={null}
import { createBarkerClient } from "@barker/sdk-js";

const barker = createBarkerClient({
  apiKey: process.env.BARKER_API_KEY!, // bk_test_* or bk_live_*
});

const { data } = await barker.GET("/api/partner/products");
console.log(data);
```

The SDK reads the key prefix to determine sandbox vs production behavior automatically — same base URL for both.

## 4. Move to production

When you're ready to deploy a real engine for your users:

1. Open the portal **API Keys** page → "Promote to Production"
2. Manual review (typically a few hours)
3. Switch to a `bk_live_xxxxx` key — same code, same base URL.

## Rate limit

* Sandbox keys: 100 req/min
* Production keys: 1000 req/min

Both are anti-abuse — there is no usage billing.

## Continue with your integration mode

* [Embed iframe →](/embed) — drop a single line of HTML, done
* [Headless API →](/integration-api) — full deposit/withdraw flow with your own UI
* [Multi-tier products →](/multi-tier-products) — offer 3 risk profiles
* [Compliance & risk →](/compliance) — what to disclose to your users
