Add a linkifier

POST https://acp.wardcrew.org/api/v1/realm/filters

Configure linkifiers, regular expression patterns that are automatically linkified when they appear in messages and topics.

Usage examples

#!/usr/bin/env python3

import zulip

# Pass the path to your zuliprc file here.
client = zulip.Client(config_file="~/zuliprc")

# Add a filter to automatically linkify #<number> to the corresponding
# issue in Zulip's server repository.
request = {
    "pattern": "#(?P<id>[0-9]+)",
    "url_template": "https://github.com/zulip/zulip/issues/{id}",
    "example_input": "#1234",
    "reverse_template": "#{id}",
}
result = client.call_endpoint("/realm/filters", method="POST", request=request)
print(result)

The -u line implements HTTP Basic authentication. See the Authorization header documentation for how to get those credentials for Zulip users and bots.

curl -sSX POST https://acp.wardcrew.org/api/v1/realm/filters \
    -u EMAIL_ADDRESS:API_KEY \
    --data-urlencode 'pattern=#(?P<id>[0-9]+)' \
    --data-urlencode 'url_template=https://github.com/zulip/zulip/issues/{id}' \
    --data-urlencode 'example_input=#1234' \
    --data-urlencode 'reverse_template=#{id}'

Parameters

pattern string required

Example: "#(?P<id>[0-9]+)"

The Python regular expression that should trigger the linkifier.


url_template string required

Example: "https://github.com/zulip/zulip/issues/{id}"

The RFC 6570 compliant URL template used for the link. If you used named groups in pattern, you can insert their content here with {name_of_group}.

Changes: New in Zulip 7.0 (feature level 176). This replaced the url_format_string parameter, which was a format string in which named groups' content could be inserted with %(name_of_group)s.


example_input string | null optional

Example: "#1234"

An example input string that matches the linkifier's pattern. This is required for reverse linkifiers.

Changes: New in Zulip 12.0 (feature level 471).


reverse_template string | null optional

Example: "#{id}"

A simple template using {variable} for variables that can be used to generate the Markdown linkifier syntax, given a URL matching the URL template.

{{/}} can be used for literal {/} characters.

Server verifies that variables extracted from example_input using url_pattern when passed to reverse_template returns example_input back to us.

Changes: New in Zulip 12.0 (feature level 471).


Response

Return values

  • id: integer

    The numeric ID assigned to this filter.

Example response(s)

Changes: As of Zulip 7.0 (feature level 167), if any parameters sent in the request are not supported by this endpoint, a successful JSON response will include an ignored_parameters_unsupported array.

A typical successful JSON response may look like:

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