---
title: "Login with email/password"
method: POST
path: "/v1/auth/login-email"
tags: ["Auth"]
---

# Login with email/password

`POST /v1/auth/login-email`

## Request

- Base URL: `http://localhost:4000`
- URL: `http://localhost:4000/v1/auth/login-email`
- Auth: none declared

Authenticate with email and password. Returns access + refresh tokens. Only works for accounts that have been linked via `/v1/auth/link-email`.

## Request body

- EmailLoginRequest
  - `email` string, email, required
  - `password` string, required

## Response `200`

Login successful

- AuthTokenResponse
  - `accessToken` string: JWT access token (15min expiry)
  - `refreshToken` string, nullable: Refresh token (30 day expiry, single-use). Null when resuming an existing device session — keep the stored token.
  - `expiresIn` integer: Access token TTL in seconds
  - `tokenType` string
  - `device` object
    - `id` string, uuid
    - `deviceFingerprint` string
    - `createdAt` string, date-time

## Other responses

- `401`: Invalid credentials

---

[API](https://skmtc.dev/reqistry/apis/public-apis-mobile-client-api.md) · [All operations](https://skmtc.dev/reqistry/apis/public-apis-mobile-client-api/llms.txt) · [OpenAPI document](https://skmtc.dev/reqistry/apis/public-apis-mobile-client-api/revisions/7f07b9ca718f?raw)
