---
title: "Login user"
method: POST
path: "/users/login"
tags: ["users"]
---

# Login user

`POST /users/login`

Authenticate a user with username/email and password

## Request body

- LoginRequest
  - `password` string, required
  - `username` string, required

## Response `200`

OK

- TokenResponse
  - `access_token` string
  - `expires_in` integer
  - `requires_password_change` boolean
  - `token_type` string

## Other responses

- `400` — Bad Request
- `401` — Unauthorized

## Changes

- **2026-04-29** `f0c42d18589e` — 1 warning
  - deleted the `query` request parameter `redirect_uri`
- **2025-12-08** `e6f59507410d` — 1 info
  - added the new optional `query` request parameter `redirect_uri`

[Change history](https://skmtc.dev/marmotdata/apis/marmot-api/changes/users/login/post.md)

---

[API](https://skmtc.dev/marmotdata/apis/marmot-api.md) · [All operations](https://skmtc.dev/marmotdata/apis/marmot-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/marmotdata/marmot-api/revisions/32cf70022131/schema)
