# Make your first call

This takes about two minutes. You need to be an admin of your brokerage in BrokerPlus, or to ask
one for a key. If you want to experiment without touching real data, make a
[sandbox](/sandbox) first and use its key.

## 1. Create a key

1. In BrokerPlus, go to **Settings > Developer**.
2. Select **New key**, and name it after what will use it, such as "Website lead form".
3. Copy the key now. BrokerPlus shows it only once.

Keep the key in an environment variable. Every example on this site reads it from
`BROKERPLUS_API_KEY`:

```bash
export BROKERPLUS_API_KEY="bp_live_..."
```

## 2. Check who the key is

`GET /v1/me` returns the brokerage, the broker the key acts as, and the key itself. It is the
quickest way to check that everything is wired up.

<CodeTabs syncKey="lang">

```bash title="curl"
curl https://api.mos.getbrokerplus.ca/v1/me \
  -H "Authorization: Bearer $BROKERPLUS_API_KEY"
```

```ts title="TypeScript"
const res = await fetch("https://api.mos.getbrokerplus.ca/v1/me", {
  headers: { Authorization: `Bearer ${process.env.BROKERPLUS_API_KEY}` },
});
const { data } = await res.json();
```

```python title="Python"
import os

import requests

res = requests.get(
    "https://api.mos.getbrokerplus.ca/v1/me",
    headers={"Authorization": f"Bearer {os.environ['BROKERPLUS_API_KEY']}"},
)
data = res.json()["data"]
```

</CodeTabs>

```json
{
  "success": true,
  "data": {
    "organization": { "id": "cmsclli...", "name": "Example Mortgage Group" },
    "user": { "id": "cmscllii...", "name": "Alex Broker", "email": "alex@example.com", "role": "admin" },
    "api_key": {
      "id": "cmsctvh...",
      "name": "Website lead form",
      "read_only": false,
      "limits": [],
      "last_used_at": null,
      "created_at": "2026-10-07T14:00:00.000Z",
      "team": { "id": "cmscteam...", "name": "Alex Broker's Team" }
    }
  }
}
```

A `401` means the key is wrong or revoked. See [Authentication and keys](/authentication).

## 3. Read some data

List the first five contacts in the book:

```bash
curl "https://api.mos.getbrokerplus.ca/v1/contacts?page_size=5" \
  -H "Authorization: Bearer $BROKERPLUS_API_KEY"
```

```json
{
  "success": true,
  "data": [
    {
      "object": "contact",
      "id": "cmsclk2a9...",
      "kind": "individual",
      "types": ["client"],
      "first_name": "Sam",
      "last_name": "Client",
      "email": "sam@example.com",
      "owner_id": "cmscllii...",
      "owner_name": "Alex Broker",
      "updated_at": "2026-10-06T19:12:40.000Z"
    }
  ],
  "pagination": { "total": 412, "page": 1, "page_size": 5, "total_pages": 83 }
}
```

The real response carries more fields on each contact. The [API reference](/reference) lists them
all.

## Next

- Pick the job you are building on the [overview](/introduction), and follow its guide.
- Read the [concepts](/units) once: units, pagination, errors, and which requests reach a client. Every guide
  assumes them.
- Watch the [changelog](/changelog). The API is in beta and changes often.
