Create a custom profile field

This endpoint is only available to organization administrators.

Create a custom profile field in the user's organization.

POST https://pignonfixe.zulipchat.com/api/v1/realm/profile_fields

Usage examples

#!/usr/bin/env python

import zulip

# The user for this zuliprc file must be an organization administrator
client = zulip.Client(config_file="~/zuliprc-admin")

# Create a custom profile field in the user's organization.
request = {
    'name': 'Phone',
    'hint': 'Contact No.',
    'field_type': 1
}

result = client.call_endpoint(
    url='/realm/profile_fields',
    method='POST',
    request=request
)
print(result)

curl -sSX POST https://pignonfixe.zulipchat.com/api/v1/realm/profile_fields \
    -u BOT_EMAIL_ADDRESS:BOT_API_KEY \
    -d 'name=Favorite programming language' \
    -d 'hint=Your favorite programming language.' \
    -d 'field_type=3' \
    --data-urlencode field_data='{"java": {"order": "2", "text": "Java"}, "python": {"order": "1", "text": "Python"}}'

Parameters

name optional

Example: Favorite programming language

The name of the custom profile field, which will appear both in user-facing settings UI for configuring custom profile fields and in UI displaying a user's profile.


hint optional

Example: Your favorite programming language.

The help text to be displayed for the custom profile field in user-facing settings UI for configuring custom profile fields.


field_type required

Example: 3

The field type can be any of the supported custom profile field types. See the custom profile fields documentation more details on what each type means.

  • 1: Short text
  • 2: Long text
  • 3: List of options
  • 4: Date picker
  • 5: Link
  • 6: Person picker
  • 7: External account

field_data optional

Example: {"python": {"text": "Python", "order": "1"}, "java": {"text": "Java", "order": "2"}}

Field types 3 (List of options) and 7 (External account) support storing additional configuration for the field type in the field_data attribute.

For field type 3 (List of options), this attribute is a JSON dictionary defining the choices and the order they will be displayed in the dropdown UI for individual users to select an option.

The interface for field type 7 is not yet stabilized.


Response

Return values

  • id: The ID for the custom profile field.

Example response

A typical successful JSON response may look like:

{
    "id": 9,
    "msg": "",
    "result": "success"
}