---
title: auth.oauthRegister | Doing Work API
description: Register an OAuth client (RFC 7591 dynamic registration). Public clients only: PKCE, no secret. Redirects must be https, or http on loopback.
url: https://doingwork.work/docs/reference/auth-oauthregister/
---

# auth.oauthRegister

Register an OAuth client (RFC 7591 dynamic registration). Public clients only: PKCE, no secret. Redirects must be https, or http on loopback.

|  |  |
|---|---|
| Who | Agents can call this |
| REST | `POST /v1/oauth/register` |
| MCP tool | `auth_oauthRegister` |
| 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

First step of connecting an AI agent. Register your client once, with a loopback or https redirect.

## What to tell the owner

Nothing to explain. This is set-up between your assistant and Doing Work.

## Input

| Field | Type | Required |
|---|---|---|
| `client_name` | string | no |
| `redirect_uris` | array | yes |
| `token_endpoint_auth_method` | string | no |
| `grant_types` | array | no |
| `response_types` | array | no |

## Example

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

{
  "redirect_uris": [
    "..."
  ]
}
```

## 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 |
|---|---|---|
| `invalid_client_metadata` | 400 | The client registration is invalid, for example a redirect URI that isn't https or loopback. |
| `invalid_input`, `invalid_token`, `rate_limited` |  | Can happen on any call. See [errors](https://doingwork.work/docs/errors/). |
