---
title: "Exchange first-party native Spoonjoy username/password credentials for app tokens"
method: POST
path: "/api/v1/auth/password/native"
tags: ["Auth"]
---

# Exchange first-party native Spoonjoy username/password credentials for app tokens

`POST /api/v1/auth/password/native`

## Request

- Base URL: `https://spoonjoy.app`
- URL: `https://spoonjoy.app/api/v1/auth/password/native`
- Auth: none required

## Headers

- `X-Request-Id` string

## Request body

- NativePasswordSignInRequest
  - `emailOrUsername` string, required: Spoonjoy account email address or exact username. This first-party native app endpoint is not OAuth grant_type=password.
  - `password` string, required: Spoonjoy account password. Native clients must submit it only over HTTPS and must never persist it.

## Response `201`

Success

- NativePasswordSignInEnvelope
  - `ok` unknown, required
  - `requestId` string, required
  - `data` NativePasswordSignInTokenData, required
    - `action` 'user_logged_in', required
    - `userId` string, required
    - `client_id` string, required
    - `access_token` string, required
    - `refresh_token` string, required
    - `token_type` 'Bearer', required
    - `expires_in` 900, required
    - `scope` string, required

## Other responses

- `400`: Errors: invalid_json, validation_error
- `401`: Errors: invalid_token
- `405`: Errors: method_not_allowed
- `429`: Errors: rate_limited
- `500`: Errors: internal_error
- `503`: Errors: temporarily_unavailable

---

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