Complete Traditional Registration

Endpoint URL: {registrationDomain} /oauth/register_native_traditional


Completes traditional registration. After registration is complete the user will be able to authenticate using a username and password. See a video demo here.

Respects the API Client Allow List: No


No authentication is required to call this endpoint.

Base URL

The base URL for this endpoint is your Identity Cloud Capture domain; for example:

Your Capture domains (also known as Registration domains) can be found in the Console on the Manage Application page:


Example: Complete Traditional Registration

This command creates a user account for the user using traditional registration (that is, by employing a username and password).

curl -X POST \
  --data-urlencode 'client_id=12345abcde12345abcde12345abcde12' \
  --data-urlencode 'flow=standard' \
  --data-urlencode 'flow_version=20190618143040022299' \
  --data-urlencode 'locale=en-US' \
  --data-urlencode 'redirect_uri=http://localhost' \
  --data-urlencode 'response_type=token' \
  --data-urlencode 'form=registrationForm' \
  --data-urlencode '' \
  --data-urlencode 'newPassword=password123' \
  --data-urlencode 'newPasswordConfirm=password123' \
  --data-urlencode 'lastName=Doe' \
  --data-urlencode 'firstName=John' \
  --data-urlencode 'displayName=JohnDoe' \
  --data-urlencode 'birthdate[dateselect_year]=1930' \
  --data-urlencode 'birthdate[dateselect_month]=11' \
  --data-urlencode 'birthdate[dateselect_day]=3' \

      Running this command in Postman

Query Parameters

client_idstringYesAPI client ID used to authenticate the call. This client must be configured with the login_client feature, which gives it permission to use login and registration-based API endpoints. API client permissions may be configured by using the sclients/set_features endpoint.
flowstringYesName of the flow configured with the login experience you want to use. This parameter corresponds to the janrain.settings.capture.flowName JavaScript setting used in widget- based implementations. The default flow provisioned with Registration applications is named the standard flow; if you have multiple flows, you can find a list of valid flow names using the Configuration API. You may cb this parameter if you configure the flow name in the default_flow_name setting for the API client used to make this call.
flow_versionstringYesVersion number of the flow set in the flow parameter. This parameter corresponds to the janrain.settings.capture.flowVersion JavaScript setting used in widget-based implementations; however, this call will not accept a version of HEAD. Instead, you must specify the version number if you want to use the most recent version. You can find a list of versions for your flow using the Configuration API. This parameter can be omitted if you you configure the flow version in the default_flow_version setting for the API client used to make this call.
formstringYesName of the form to be used for traditional registration. This parameter determines the field names that must be included when submitting this API call. The default form name for traditional registration configured for the standard flow is registrationForm, but you can find a list of valid forms and associated fields for your flow using the Configuration API. This form name corresponds to the name of the JTL tag used for the associated form in widget-based implementations (for example, {* #registrationForm *}).
(form fields)stringYesNames of any fields configured in your flow with the traditional registration form. Each field must be passed as a separate parameter; you will use the field name as the key and the user input as the value. All fields configured as required in the flow for that form must be included. The default registrationFormconfigured for the standard flow includes emailAddress, newPassword, newPasswordConfirm, firstName, lastName, and displayName as required fields; you can find a list of valid fields for your traditional registration form using the Configuration API. These field names correspond to the name of the JTL tags included inside the associated form in widget-based implementations.
localestringYesCode for the language you want to use for the registration experience. This parameter determines the language for any error messages returned to you and any registration confirmation emails sent to users and corresponds to the janrain.settings.language JavaScript setting used in widget-based implementations. The default locale provisioned with the standard Registration flow is en-US; other locales must be configured in your flow. You can find a list of valid locales for your flow using the Configuration API.
redirect_uristringYesRequired for legacy purposes and is not used for any functionality in this call. The parameter value must begin with http: or https: and we recommend that this match the URL and protocol of your website. This parameter corresponds to the janrain.settings.capture.redirectUri JavaScript setting used in widget-based implementations.
Determines whether you will receive an access token, an authorization code, or both after a user is successfully registered or authenticated. If omitted, the response type will default to token. This parameter corresponds to the janrain.settings.capture.responseTypeJavaScript setting used in widget-based implementations. Allowed values are:
  • code
  • token
  • code_and_token


200 OK

Successful Response

A successful response will return the user profile in the capture_user along with an access_token or authorization_code depending on the response_typeparameter you included in the call.

  "capture_user": {
    "created": "2016-04-20 17:02:18.649505 +0000",
    "uuid": "67890def-6789-defg-6789-67890defgh67",
    // additional profile data...
  "stat": "ok",
  "access_token": "z0y98xv76u5t4rs3"

Error - Invalid Form

The example error response below indicates that the form value is not valid for the flow included in the call. Form names are case sensitive, so registrationformwould fail if registrationForm is the valid form name.

  "stat": "error",
  "code": 200,
  "error_description": "no such form 'registrationform'",
  "error": "invalid_argument",
  "request_id": "rdfbsavfvzb2sxud"

Error - Field Validation Errors

The example error response below indicates that validation failed for some fields configured with the form used in the call. All validation rules for these fields are checked, so you may receive errors for multiple fields and multiple errors on a single field. Validation errors are commonly encountered when a required field is missing, the email address or another unique field is already taken, or the user input does not pass formatting validation applied to a field. The invalid_fieldsobject will include field names mapped to a list of localized error messages from the flow for each validation that failed.

  "stat": "error",
  "code": 390,
  "error_description": "some inputs are invalid",
  "error": "invalid_form_fields",
  "request_id": "eyt2p5thkwch5h2h",
  "invalid_fields": {
    "displayName": [
      "That display name is already taken."
    "emailAddress": [
      "Email address is required."
    "newPasswordConfirm": [
      "Passwords do not match."

Error - Missing Required Parameters

The example error response below indicates that one of the required parameters for the call was not included. The error message will describe which parameter is missing.

  "stat": "error",
  "code": 100,
  "error_description": "missing arguments: flow",
  "error": "missing_argument",
  "request_id": "uyeem84bmqmnjuu4"

Error - Invalid Flow Value

The example error response below indicates that the value provided for one or more of the flow, flow_version, or locale parameters is invalid. Flow versions are unique across environments, so check that the version value included in the call is for the correct environment (that is, your development or production application).

  "stat": "error",
  "code": 500,
  "error_description": "could not find a flow named 'standard' with version '12345abc-1234-abcd-1234-12345abcde12' and locale 'en-US'",
  "error": "unexpected_error",
  "request_id": "murynd7fhpysq6um"

Error - Invalid API Client Permissions

The example error response below indicates that the API client used to make the call is not configured with the login_client feature.

  "stat": "error",
  "code": 403,
  "error_description": "This client does not support log in and registration.",
  "error": "permission_error",
  "request_id": "y3sthb9dey6mv65e"