# Quickstart (consumer)

## 1. Create an account

Sign up at [https://ozma.app/signup](https://ozma.app/signup). You receive a session token and API key. Trial credits (**$1.00 / 100 cents**) unlock after email verification.

Agents without a human can `npx @ozma_app/cli register` for a key with **0 credits** — sufficient for free catalog APIs.

## 2. Store your key

```bash
export OZMA_API_KEY=ozma_live_xxxxxxxxxxxxxxxxxxxxxxxx
```

Or save via `ozma login --key` / [Dashboard → Keys](https://ozma.app/dashboard/keys).

## 3. Find an API

Frankfurter Exchange Rates is a free platform API (`frankfurter`):

```bash
npx @ozma_app/cli search "exchange rates" --json
npx @ozma_app/cli inspect frankfurter --schema --json
```

## 4. Call through the gateway

```bash
curl -s -H "Authorization: Bearer $OZMA_API_KEY" \
  "https://gateway.ozma.app/v1/proxy/frankfurter/latest?from=USD&to=EUR" | jq
```

CLI:

```bash
npx @ozma_app/cli call frankfurter /latest --query from=USD --query to=EUR --json
```

Expected envelope: `ok: true`, exchange rate data in `data`, `meta.cost_cents: 0`.

Alternative free echo API:

```bash
npx @ozma_app/cli call httpbin-org /get --query hello=ozma --json
```

## Provider terms (428)

Some APIs require accepting provider terms before proxy calls. If you receive **428** `terms_acceptance_required`:

```bash
npx @ozma_app/cli terms show my-api-slug
npx @ozma_app/cli login --email you@example.com
npx @ozma_app/cli terms accept my-api-slug --yes
```

## Paid APIs

Free endpoints never need a card. Paid calls consume trial credits first, then usage billing if a card is on file.

## Next

- [First API call example](/docs/examples/first-call)
- [API keys & budgets](/docs/guides/keys-and-budgets)
- [Billing](/docs/guides/billing)
