# Quick Start

> Get an API key and make your first call in five minutes.

Canonical: https://grout.app/developer/documentation/quickstart/

:::steps
### Get access in the portal
Sign in to [portal.grout.app](https://portal.grout.app) as an **Institution Admin** and open **Developers** in the sidebar. Either create an API key directly on the **API keys** tab, or **invite a developer** who will get their own dashboard. No portal account yet? Start with [Institution Account](/developer/documentation/setting-up/institution-account/).

### Create a key
Give it a name and pick scopes. For this walkthrough choose `students:read` and `institution:read`. The full key (`grt_live_…`) is shown **once** — copy it into a secret manager.

### Call `/v1/me`
:::codegroup
```bash title="cURL"
curl https://serverless.grout.app/v1/me \
  -H "Authorization: Bearer $GROUT_API_KEY"
```
```js title="Node"
const res = await fetch('https://serverless.grout.app/v1/me', {
  headers: { Authorization: `Bearer ${process.env.GROUT_API_KEY}` },
});
const { data } = await res.json();
console.log(data.institution.name, data.scopes);
```
```python title="Python"
import os, requests
r = requests.get("https://serverless.grout.app/v1/me",
                 headers={"Authorization": f"Bearer {os.environ['GROUT_API_KEY']}"})
print(r.json()["data"]["institution"]["name"])
```
:::

You should see your institution, the key's scopes and its rate limit:

```json
{
  "success": true,
  "data": {
    "key_id": "key_…", "name": "Quick start", "environment": "live",
    "institution": { "id": "…", "name": "Example College" },
    "scopes": ["students:read", "institution:read"],
    "rate_limit_per_min": 600, "request_id": "req_…"
  }
}
```

### List your students
```bash
curl "https://serverless.grout.app/v1/students?limit=5" \
  -H "Authorization: Bearer $GROUT_API_KEY"
```

### Pick a path
:::cards
- [Roster Sync](/developer/documentation/guides/roster-sync/) — Provision students and faculty from your SIS nightly.
- [SSO Launch](/developer/documentation/people/sso/) — Add an "Open in GroutCode" button to your LMS.
- [Gradebook Sync](/developer/documentation/guides/gradebook/) — Push exam results back with `exam.graded`.
- [Webhooks](/developer/documentation/webhooks/overview/) — Register an endpoint and verify signatures.
:::
:::

:::note
Keys are live from the moment they are created. There is no sandbox environment yet; use a dedicated test institution or narrow scopes while you build. Sandbox keys (`grt_sandbox_…`) are on the roadmap.
:::
