---
title: "Save (or update) a site's login"
method: POST
path: "/api/v1/logins"
tags: ["Logins & vault"]
---

# Save (or update) a site's login

`POST /api/v1/logins`

## Request

- Base URL: `https://unbrowse.ai`
- URL: `https://unbrowse.ai/api/v1/logins`
- Auth: one of:
  - OAuth 2 (authorization code, authorization URL `https://unbrowse.ai/authorize`, token URL `https://unbrowse.ai/oauth/token`, scopes: `unbrowse`)
  - HTTP bearer

One login per site: saving again for the same origin updates it. Only masked hints come back.

## Request body

- object
  - `origin` string, uri, required
  - `username` string
  - `email` string
  - `password` string
  - `totp` string: The site's 2FA seed (base32).
  - `label` string

## Response `200`

The login, masked

- Object

## Other responses

- `400`: An error
- `401`: Missing or invalid credentials. The WWW-Authenticate header names the protected-resource metadata.
- `402`: An error
- `404`: An error
- `429`: An error

---

[API](https://skmtc.dev/unbrowse/apis/unbrowse-api.md) · [All operations](https://skmtc.dev/unbrowse/apis/unbrowse-api/llms.txt) · [OpenAPI document](https://skmtc.dev/unbrowse/apis/unbrowse-api/revisions/f49034a1fbff?raw)
