Set user fields
POST/api/v2/user-fields
Sets lead generation field data for a given user, a puzzle, and a given series. If a field already exists for this user and puzzle, its value is overwritten.
What are user fields?
User fields correspond to the lead generation fields configured in the
series settings.
When lead generation is enabled for a series, up to 3 custom fields of information can be
collected from players — such as name, email address, or phone number. These fields are
configured with labels and input types (text, numbers, or email) in the series settings,
and are represented in the API as field_1, field_2, and field_3.
Fields:
Fields use keys field_1, field_2, and field_3. The label and validation type for each
field are defined in the series settings under
Lead Generation.
For example, a series might configure field_1 as "Participant Name" (text),
field_2 as "Email Address" (email format), and field_3 as "Phone Number" (numbers only).
Request Body:
The fields object contains only the fields to set. Fields not included in the request
are left untouched.
Response:
A success response with status: 0. The response does not echo back the saved fields.
Examples:
Set user fields for a puzzle:
curl -X POST 'https://sandbox.amuselabs.com/pmm/api/v2/user-fields?series=api-demo-crossword&userId=9f7439e7-ecf1-4c03-ba90-91273f149231&puzzleId=api-demo-crossword_2026_01_15' \
-H 'Authorization: Bearer YOUR_JWT_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"fields": {"field_1": "Jane Doe", "field_2": "jane@example.com"}}'
Request
Responses
- 200
- 400
- 401
- 403
- 500
Fields set successfully.
Bad request. Possible errorCode values for this endpoint:
INVALID_PARAMETER(116) — generic input validation; conditions include:series,userId, orpuzzleIdis missing.- Request body contains a field key outside the allowed set (
field_1,field_2,field_3). - A field value fails the validation rule configured for that field in the series (e.g. email format, numeric format).
Caller is not authenticated.
Possible errorCode values:
UNAUTHENTICATED_ACCESS(108) — noAuthorizationheader presented.EXPIRED_TOKEN(98) — bearer token expired.INVALID_TOKEN(99) — bearer token malformed or signature invalid.
Caller is authenticated but not allowed to perform this operation.
Possible errorCode values:
NO_ACCESS_TO_SET(84)NO_WRITE_ACCESS_TO_SET(85)CONTENT_SET_NOT_WRITABLE(87)PERMISSION_DENIED(114)ACCOUNT_EXPIRED(95)INACTIVE_USER(137)
An internal server error occurred while processing the request.
Possible errorCode values include IO_FAILURE (128) and other internal failures.