---
title: "Enroll Factor"
method: POST
path: "/api/v1/users/{userId}/factors"
tags: ["UserFactor"]
---

# Enroll Factor

`POST /api/v1/users/{userId}/factors`

## Request

- Base URL: `https://your-subdomain.okta.com`
- URL: `https://your-subdomain.okta.com/api/v1/users/{userId}/factors`
- Auth: API key in header `Authorization`

Enrolls a user with a supported factor.

## Path parameters

- `userId` string, required

## Query parameters

- `updatePhone` boolean
- `templateId` string
- `tokenLifetimeSeconds` integer
- `activate` boolean

## Request body

- UserFactor
  - `_embedded` object
  - `_links` object
  - `created` string, date-time
  - `factorType` 'call' | 'email' | 'hotp' | 'push' | 'question' | 'signed_nonce' | 'sms' | 'token:hardware' | 'token:hotp' | 'token:software:totp' | 'token' | 'u2f' | 'web' | 'webauthn'
  - `id` string
  - `lastUpdated` string, date-time
  - `provider` 'OKTA' | 'RSA' | 'FIDO' | 'GOOGLE' | 'SYMANTEC' | 'DUO' | 'YUBICO' | 'CUSTOM' | 'APPLE'
  - `status` 'PENDING_ACTIVATION' | 'ACTIVE' | 'INACTIVE' | 'NOT_SETUP' | 'ENROLLED' | 'DISABLED' | 'EXPIRED'
  - `verify` VerifyFactorRequest
    - `activationToken` string
    - `answer` string
    - `attestation` string
    - `clientData` string
    - `nextPassCode` string
    - `passCode` string
    - `registrationData` string
    - `stateToken` string

## Response `200`

Success

- UserFactor
  - `_embedded` object
  - `_links` object
  - `created` string, date-time
  - `factorType` 'call' | 'email' | 'hotp' | 'push' | 'question' | 'signed_nonce' | 'sms' | 'token:hardware' | 'token:hotp' | 'token:software:totp' | 'token' | 'u2f' | 'web' | 'webauthn'
  - `id` string
  - `lastUpdated` string, date-time
  - `provider` 'OKTA' | 'RSA' | 'FIDO' | 'GOOGLE' | 'SYMANTEC' | 'DUO' | 'YUBICO' | 'CUSTOM' | 'APPLE'
  - `status` 'PENDING_ACTIVATION' | 'ACTIVE' | 'INACTIVE' | 'NOT_SETUP' | 'ENROLLED' | 'DISABLED' | 'EXPIRED'
  - `verify` VerifyFactorRequest
    - `activationToken` string
    - `answer` string
    - `attestation` string
    - `clientData` string
    - `nextPassCode` string
    - `passCode` string
    - `registrationData` string
    - `stateToken` string

---

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