POST /fetch_api_key

This API endpoint is used by clients such as the Zulip mobile and terminal apps to implement password-based authentication. Given the user's Zulip login credentials, it returns a Zulip API key that the client can use to make requests as the user.

This endpoint is only useful for Zulip servers/organizations with EmailAuthBackend or LDAPAuthBackend enabled.

The Zulip mobile apps also support SSO/social authentication (GitHub auth, Google auth, SAML, etc.) that does not use this endpoint. Instead, the mobile apps reuse the web login flow passing the mobile_flow_otp in a webview, and the credentials are returned to the app (encrypted) via a redirect to a zulip:// URL.

!!! warn ""

**Note:** If you signed up using passwordless authentication and
never had a password, you can [reset your password](/help/change-your-password).

See the API keys documentation for more details on how to download an API key manually.

In a Zulip development environment, see also the unauthenticated variant.

Servers

Request headers

Name Type Required Description
Content-Type String Yes The media type of the request body.

Default value: "application/x-www-form-urlencoded"

Request body fields

Name Type Required Description
username String Yes

The username to be used for authentication (typically, the email address, but depending on configuration, it could be an LDAP username).

See the require_email_format_usernames parameter documented in GET /server_settings for details.

password String Yes

The user's Zulip password (or LDAP password, if LDAP authentication is in use).

How to start integrating

  1. Add HTTP Task to your workflow definition.
  2. Search for the API you want to integrate with and click on the name.
    • This loads the API reference documentation and prepares the Http request settings.
  3. Click Test request to test run your request to the API and see the API's response.