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

# Quickstart

> Sign up, create a key and make your first request.

**1. Sign up**

Create an account at [app.salessequencer.com](https://app.salessequencer.com/login?mode=signup). You can sign up with Google or with your work email.

**2. Create an API key**

In the app, open your workspace's settings and create a key under **API keys**. You need the **admin** role in that workspace. The key is shown once, so copy it right away.

**3. Check who you are**

`GET /me` tells you which user and role the key runs as.

```bash cURL theme={null}
curl "https://api.salessequencer.com/api/v1/me" \
  -H "X-API-Key: YOUR_API_KEY"
```

```python Python theme={null}
import requests

r = requests.get(
    "https://api.salessequencer.com/api/v1/me",
    headers={"X-API-Key": "YOUR_API_KEY"},
    timeout=30,
)
r.raise_for_status()
print(r.json()["role"])  # "admin", "edit" or "view"
```

```javascript Node theme={null}
const res = await fetch("https://api.salessequencer.com/api/v1/me", {
  headers: { "X-API-Key": "YOUR_API_KEY" },
});
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
console.log((await res.json()).role);
```

**4. Add leads to a campaign**

Upload a CSV with an `email` column. Every other column becomes a variable you can use in the sequence, like `{{company_name}}`.

```bash cURL theme={null}
curl -X POST "https://api.salessequencer.com/api/v1/campaigns/42/leads/csv" \
  -H "X-API-Key: YOUR_API_KEY" \
  -F "file=@leads.csv"
```

```python Python theme={null}
import requests

with open("leads.csv", "rb") as f:
    r = requests.post(
        "https://api.salessequencer.com/api/v1/campaigns/42/leads/csv",
        headers={"X-API-Key": "YOUR_API_KEY"},
        files={"file": ("leads.csv", f, "text/csv")},
        timeout=120,
    )
print(r.status_code, r.json())  # 201 {"created": 250, "errors": []}
```

```javascript Node theme={null}
import { readFile } from "node:fs/promises";

const form = new FormData();
form.append("file", new Blob([await readFile("leads.csv")], { type: "text/csv" }), "leads.csv");

const res = await fetch("https://api.salessequencer.com/api/v1/campaigns/42/leads/csv", {
  method: "POST",
  headers: { "X-API-Key": "YOUR_API_KEY" },
  body: form,
});
console.log(res.status, await res.json());
```

Replace `42` with your campaign's id from [`GET /campaigns/list`](https://docs.salessequencer.com/api-reference/campaigns/list-campaigns-with-stats).

> [!WARNING]
>
> Some calls send real email or delete things. They're marked `x-destructive: true` in the [API reference](https://docs.salessequencer.com/concepts/workspaces-and-roles.md#destructive-calls). Test against a campaign you don't mind changing.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.