# Invite Developers

> Give an engineer their own developer dashboard without sharing the admin account.

Canonical: https://grout.app/developer/documentation/setting-up/developers/

Institution admins can hand integration work to a developer. The developer gets a dashboard with API keys, webhooks, delivery logs and these docs — nothing else.

:::steps
### Send the invitation
In the portal open **Developers → Developers** and click **Invite developer**. Enter the person's email (and optionally their name). They receive an email with a link that is valid for **7 days**.

### The developer accepts
The link opens [portal.grout.app/accept-invitation](https://portal.grout.app/accept-invitation), where the developer confirms their name. That creates their account.

### The developer signs in
They are sent to `/login` with the **Developer** tile pre-selected. Enter the invited email, receive a one-time code, and land on [portal.grout.app/developer](https://portal.grout.app/developer).
:::

## Managing developers

- **Resend** an invitation that expired or was lost — this issues a new link and invalidates the old one.
- **Revoke** a pending invitation.
- **Suspend** a developer: their sessions end immediately and every key they created is revoked (you can keep the keys by unticking that option in the confirmation). **Reactivate** later without a new invitation.

## What a developer can do

| Area | Developer | Admin |
|---|---|---|
| Create, edit, revoke API keys | ✓ | ✓ |
| See key usage | ✓ | ✓ |
| Webhook endpoints, test ping, rotate secret | ✓ | ✓ |
| Delivery log and replay | ✓ | ✓ |
| Invite or suspend developers | — | ✓ |
| Licenses, batches, institution settings | — | ✓ |

Keys created by a developer are tagged with their account, so an admin can see who issued what on the **API keys** tab.

:::tip
Keep one key per integration (for example "Moodle sync", "Gradebook", "Guardian onboarding") rather than one key per person. Keys survive people leaving; scopes stay tight.
:::
