# First call in 60 seconds

> Make a first real call to Build with the sandbox key or your own, and read the answer.

> **Short on time**
>
> Use the sandbox key from the console quickstart. It is read-only and returns demo data.

## Before you start

- A Build account and a key. The sandbox key is enough; see [Get a key](https://build.sellermate.ai/docs/get-started/get-a-key.md).
- Your key in an environment variable named `BUILD_API_KEY`.
- One tool to call. This page uses `get_campaign_performance`.

## Send the request

One `POST` to the tool, the key in the `X-API-Key` header, and a JSON body with the account and the dates.

**curl**

```bash
curl -X POST https://build-api.sellermate.ai/v1/tools/get_campaign_performance \
  -H "X-API-Key: $BUILD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"account":"acct_123","start":"2026-10-01","end":"2026-10-28"}'
```

**Node**

```js
const res = await fetch("https://build-api.sellermate.ai/v1/tools/get_campaign_performance", {
  method: "POST",
  headers: { "X-API-Key": process.env.BUILD_API_KEY, "Content-Type": "application/json" },
  body: JSON.stringify({ account: "acct_123", start: "2026-10-01", end: "2026-10-28" }),
});
console.log(await res.json());
```

**Python**

```python
import os, requests

res = requests.post(
    "https://build-api.sellermate.ai/v1/tools/get_campaign_performance",
    headers={"X-API-Key": os.environ["BUILD_API_KEY"]},
    json={"account": "acct_123", "start": "2026-10-01", "end": "2026-10-28"},
)
print(res.json())
```

The call shape is illustrative until the contract is final.

## Read the answer

Every row has the same fields on Amazon and Google Ads. An answer looks like this:

**Response**

```json
{
  "rows": [
    {
      "platform": "amazon",
      "account_id": "amz_northwind",
      "campaign_name": "SP - Bottles - Exact",
      "spend": 1842.10,
      "clicks": 2210,
      "orders": 161,
      "sales": 6120.40,
      "acos": 0.301,
      "currency": "USD"
    }
  ],
  "meta": { "data_as_of": "2026-10-30T06:00:00Z" }
}
```

`data_as_of` says how fresh the answer is. Amazon sales keep moving for up to 14 days, and Build re-pulls those days until they settle.

_To write: replace the sample with a real sandbox response: the exact envelope (where data_as_of and settling_from sit), real field types, and one real row_

## If it fails

A `429` means you went over the plan's requests per minute. The body says when to retry:

```json
{ "error": "rate_limited", "retry": 12, "upgrade": "https://build.sellermate.ai/pricing" }
```

Wait that many seconds and send it again. Limits per plan are in [Plans and limits](https://build.sellermate.ai/docs/guides/plans-and-limits.md).

_To write: one more common error and its fix, for example a missing or wrong key, with the real status and body_

## Next steps

- [Build with your AI](https://build.sellermate.ai/docs/build-with-your-ai/claude-code.md): Let your AI tool write the code for you.
- [API reference](https://build.sellermate.ai/docs/api-reference/overview.md): Every tool, its fields and its errors.
