---
title: "Import saved logins"
method: POST
path: "/v1/logins/import"
tags: ["logins"]
---

# Import saved logins

`POST /v1/logins/import`

## Request

- Base URL: `https://api.pomerado.ai`
- URL: `https://api.pomerado.ai/v1/logins/import`
- Auth: HTTP bearer

Saves up to 1,000 logins in one request.

- Each login is saved or refused on its own; results lists, by index, the saved login or its error.
- The values pass through this client and its model provider. Warn the user first, or send only deliver "dashboard" to get the Dashboard import page instead.

## Request body

- LoginImportRequest
  - `logins` unknown[]: Up to 1,000 logins, each a LoginInput
    - unknown
  - `deliver` 'dashboard': Return a Dashboard link where the person enters the login, so no secret reaches this client

## Response `200`

Each login's outcome; With deliver dashboard: where to finish

- union
  - LoginImportResult
    - `results` object[], required
      - `index` integer, required: an integer
      - `login` Login
        - `id` string, required: a saved login ID: login_ and 32 lowercase hex digits
        - `label` string, nullable, required
        - `site` object, required
          - `url` string, required
          - `name` string, required: The site as people say it
        - `username_masked` string, required
        - `identifier_type` 'username' | 'email' | 'phone' | 'account_number', required
        - `sign_in` 'password' | 'code', required
        - `saved_fields` string[], nullable, required: What it holds besides its username and password; null when not recorded
        - `two_factor` object, required
          - `authenticator` boolean, nullable, required
          - `sms_number` 'none' | 'linked', required
        - `status` 'unverified' | 'verified' | 'needs_attention', required
        - `needs_attention` union, required
          - object
            - `field` 'username' | 'email' | 'phone' | 'account_number' | 'password', required
          - object
            - `reason` 'account_locked', required: The website said the account is locked; unlock it on the website
        - `locked` boolean, required: Personal accounts: its identity is fixed after the first verified sign-in
        - `your_access` 'use' | 'edit' | 'manage', required: use: run and build with it. edit: also reveal and change it. manage: also share and delete it
        - `created_at` string, required: When it was saved, ISO 8601 UTC
        - `updated_at` string, required: When it last changed, ISO 8601 UTC
        - `verified_at` string, nullable, required: Its first verified sign-in, ISO 8601 UTC; null before one
      - `error` object
        - `code` string, required
        - `message` string, required
        - `retryable` boolean, required
        - `docs_url` string, required
  - DashboardDelivery
    - `dashboard_url` string, required: A signed-in Dashboard page where the person finishes this and sees the secret once

## Other responses

- `400`: invalid_request
- `401`: unauthorized, reauthentication_required
- `403`: forbidden
- `413`: request_too_large
- `500`: internal_error
- `503`: temporarily_unavailable

---

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