---
title: "POST /turnkey/signin"
method: POST
path: "/turnkey/signin"
---

# POST /turnkey/signin

`POST /turnkey/signin`

## Request body

- SignInRequest — Request interface for user sign-in operations
  - `signinMethod` 'email' | 'social' | 'passkey', required
  - `userEmail` string — User's email address (required for EMAIL signin method)
  - `targetPublicKey` string — Target public key for authentication (required for EMAIL and SOCIAL signin methods)
  - `provider` string — OAuth provider name (required for SOCIAL signin method)
  - `oidcToken` string — OIDC token from OAuth provider (required for SOCIAL signin method)
  - `challenge` string — Challenge string for passkey authentication (required for PASSKEY signin method)
  - `attestation` object — Attestation object for passkey authentication (required for PASSKEY signin method)
    - `transports` string[], required
    - `attestationObject` string, required
    - `clientDataJson` string, required
    - `credentialId` string, required
  - `magicLink` string — Optional magic link template URL for email authentication

## Response `200`

Ok

- TurnkeyAuthResponse
  - `dydxAddress` string
  - `organizationId` string
  - `apiKeyId` string
  - `userId` string
  - `session` string
  - `salt` string, required
  - `alreadyExists` boolean

---

[API](https://skmtc.net/dydxprotocol/apis/indexer-api.md) · [All operations](https://skmtc.net/dydxprotocol/apis/indexer-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/dydxprotocol/indexer-api/versions/5005547cef75/schema)
