---
title: auth.requestLink | Doing Work API
description: Email a one-time sign-in link. Always answers ok, so it never reveals whether an email has an account.
url: https://doingwork.work/docs/reference/auth-requestlink/
---

# auth.requestLink

Email a one-time sign-in link. Always answers ok, so it never reveals whether an email has an account.

|  |  |
|---|---|
| Who | Agents can call this |
| REST | `POST /v1/auth/link` |
| MCP tool | `auth_requestLink` |
| Writes | yes, send an Idempotency-Key |
| Area | [Sign-in and agent access](https://doingwork.work/docs/reference/#sign-in-and-agent-access) |

## When to use it

The person wants to sign in or create an account. Send the link to their email and tell them to open it on the device they'll use.

## What to tell the owner

I sent a sign-in link to your email. Open it and you're in. It works once.

## Input

| Field | Type | Required |
|---|---|---|
| `email` | string | yes |

## Example

```http
POST https://doingwork.work/v1/auth/link
content-type: application/json
Idempotency-Key: 3f1c...

{
  "email": "owner@example.com"
}
```

## Output

JSON. The response shape isn't published yet; read the fields you need and ignore the rest. Errors are `{code, message, status}`.

## Errors

| Code | Status | What to do |
|---|---|---|
| `rate_limited` | 429 | Too many requests. Wait for the Retry-After time, then retry. |
| `invalid_input` | 400 | A field is missing, the wrong type, or unknown. The message names the field. Fix the input; don't retry as is. |
| `invalid_input`, `invalid_token`, `rate_limited` |  | Can happen on any call. See [errors](https://doingwork.work/docs/errors/). |
