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

# Quickstart

> Authenticate and make your first API call in minutes.

The Interstellas API uses session-based bearer token authentication. Before calling any business endpoint, sign in to exchange your credentials for an access token.

## Prerequisites

* An Interstellas account — [sign up at interstellas.com](https://interstellas.com)
* Your account `email` and `password`
* Your `SECRET_KEY` from **Settings → API Keys** in the dashboard

## Step 1 — Sign in and get an access token

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST https://sandbox.stellasbank.com/api/v1/auth/signin \
    -H "Content-Type: application/json" \
    -d '{
      "email": "you@example.com",
      "password": "YOUR_PASSWORD"
    }'
  ```

  ```js Node.js theme={null}
  const res = await fetch("https://sandbox.stellasbank.com/api/v1/auth/signin", {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({ email: "you@example.com", password: "YOUR_PASSWORD" }),
  });
  const { data } = await res.json();
  const { accessToken, businesses } = data;
  ```

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

  res = requests.post(
      "https://sandbox.stellasbank.com/api/v1/auth/signin",
      json={"email": "you@example.com", "password": "YOUR_PASSWORD"},
  )
  data = res.json()["data"]
  access_token = data["accessToken"]
  business_id = data["businesses"][0]["id"]
  ```
</CodeGroup>

A successful response returns your `accessToken` and the list of businesses registered to your account:

```json theme={null}
{
  "status": true,
  "message": "Login successful",
  "data": {
    "id": "usr_abc123",
    "firstName": "Ada",
    "lastName": "Lovelace",
    "email": "you@example.com",
    "phoneNo": "+2348012345678",
    "accessToken": "eyJhbGciOiJIUzI1NiIs...",
    "businesses": [
      { "id": "biz_xyz789", "businessName": "Acme Ltd", "isApproved": true }
    ]
  }
}
```

Save the `accessToken` and note the `id` from the `businesses` array — that is your `businessId`.

## Step 2 — Make an authenticated request

Every business endpoint requires three headers: your access token, your secret key, and your business ID.

<CodeGroup>
  ```bash cURL theme={null}
  curl -X GET https://sandbox.stellasbank.com/api/v1/clients/business/account-details \
    -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
    -H "SECRET_KEY: YOUR_SECRET_KEY" \
    -H "businessId: YOUR_BUSINESS_ID"
  ```

  ```js Node.js theme={null}
  const res = await fetch(
    "https://sandbox.stellasbank.com/api/v1/clients/business/account-details",
    {
      headers: {
        Authorization: "Bearer YOUR_ACCESS_TOKEN",
        SECRET_KEY: "YOUR_SECRET_KEY",
        businessId: "YOUR_BUSINESS_ID",
      },
    }
  );
  const { data } = await res.json();
  ```

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

  res = requests.get(
      "https://sandbox.stellasbank.com/api/v1/clients/business/account-details",
      headers={
          "Authorization": "Bearer YOUR_ACCESS_TOKEN",
          "SECRET_KEY": "YOUR_SECRET_KEY",
          "businessId": "YOUR_BUSINESS_ID",
      },
  )
  print(res.json()["data"])
  ```
</CodeGroup>

## Next steps

<CardGroup cols={2}>
  <Card title="Authentication" icon="key" href="/authentication">
    Understand the full three-header auth scheme and how to manage credentials.
  </Card>

  <Card title="API Reference" icon="code" href="/api-reference/overview">
    Browse every available endpoint.
  </Card>

  <Card title="Errors" icon="circle-exclamation" href="/essentials/errors">
    Learn how errors are structured and how to handle them.
  </Card>

  <Card title="Pagination" icon="list" href="/essentials/pagination">
    Work with list endpoints that return paginated results.
  </Card>
</CardGroup>
