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

# Login

`POST /users/login`

## Request

- Base URL: `https://api.chutes.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.chutes.ai/users/login`
- Auth: none declared

Exchange credentials for a JWT.

Supports two authentication methods:
1. Fingerprint: {"fingerprint": "your-fingerprint"}
2. Hotkey signature: {"hotkey": "5...", "signature": "hex...", "nonce": "uuid"}

For hotkey auth, first call GET /users/login/nonce to get a nonce,
sign it with your hotkey (e.g., `btcli w sign --message <nonce>`),
then submit the hotkey, signature, and nonce.

## Response `200`

Successful Response

- string

## Changes

- **2026-10-16** `23e8895b217d`: 1 breaking
  - the response's body type changed from no type to `string` for status `200`
- **2026-08-26** `8d909638091e`: 1 info
  - endpoint added
- **2026-08-22** `05d9af05d87e`: 1 breaking
  - api path removed without deprecation

[Operation history](https://skmtc.dev/chutes/apis/chutes-api/changes/users/login/post.md)

---

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