---
title: "Authenticate and obtain a bearer token"
method: POST
path: "/v1/auth"
tags: ["auth"]
---

# Authenticate and obtain a bearer token

`POST /v1/auth`

Exchange your API key and a userId for a JWT bearer token.

## Request body

- object
  - `userId` string, required — Identifier of the user the token is issued for. Must be a non-empty string.

## Response `200`

Authentication successful

- object
  - `data` object
    - `logMeWith` object
      - `partner` object
        - `token` string — JWT bearer token (valid for 12 hours)

## Other responses

- `400` — Missing API key
- `401` — Invalid API key or authentication failure
- `403` — Company validation failure
- `422` — Invalid request body (userId missing or blank)

## Changes

- **2026-08-20** `0e40a805593b` — 2 breaking, 1 info
  - request body became required
  - the request property `userId` became required
  - added the non-success response with the status `422`

[Change history](https://skmtc.dev/thriveglobal/apis/thrive-global-partner-api/changes/v1/auth/post.md)

---

[API](https://skmtc.dev/thriveglobal/apis/thrive-global-partner-api.md) · [All operations](https://skmtc.dev/thriveglobal/apis/thrive-global-partner-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/thriveglobal/thrive-global-partner-api/revisions/0e40a805593b/schema)
