---
title: "Log in with Privy JWT"
method: POST
path: "/api/auth/login"
tags: ["Auth"]
---

# Log in with Privy JWT

`POST /api/auth/login`

Verifies the SIWE message and signature, creates a session, and returns user info

## Response `200`

Authentication successful, session created

- object
  - `success` boolean
  - `userId` string, nullable, required — The ID of the authenticated user
  - `wallet` string, required — The wallet address of the authenticated user

## Other responses

- `401` — Authentication failed
- `500` — Internal server error

## Changes

- **2025-09-10** `b08b5074799b` — 2 breaking, 2 info
  - removed the request body
  - removed the required property `agentId` from the response with the `200` status
  - added the optional property `success` to the response with the `200` status
  - added the required property `userId` to the response with the `200` status
- **2025-06-30** `e0d0a475d4b6` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/recallnet/apis/trading-simulator-api/changes/api/auth/login/post.md)

---

[API](https://skmtc.dev/recallnet/apis/trading-simulator-api.md) · [All operations](https://skmtc.dev/recallnet/apis/trading-simulator-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/recallnet/trading-simulator-api/revisions/c4fff489ea72/schema)
