Skip to content

Registration with captcha

Sebastian Scheibner edited this page Nov 23, 2024 · 22 revisions

The Signal server requires a captcha token for registering a new account. If you try registering without one, it normally fails with a captcha required error (Captcha invalid or required for verification).

Register with captcha token

When you have the captcha code, execute the register command again with the --captcha argument (https://github.com/AsamK/signal-cli/blob/master/man/signal-cli.1.adoc#register)

signal-cli -a ACCOUNT register --captcha "signal-recaptcha...03AG...Uonw"

If you do not get any error, you can proceed with the verify command. If you get the error Invalid captcha given., try to get the captcha again (the captcha is only valid for a short period of time). Trying to register too often, leads to a rate limit (429) from the server, that can only be resolved by waiting.

Get captcha token

To get the token, go to https://signalcaptchas.org/registration/generate.html

You need to open the page on the same device that runs the signal-cli register command (or at least a device that has the same external IP address).

(If the token from that page doesn't work, you can try https://signalcaptchas.org/challenge/generate.html)

After filling the captcha, the site doesn't immediately show the token but tries to redirect to a signalcaptcha:// url that contains the token.

  • After a short moment, a link will appear underneath the captcha called "Open Signal".
  • Get the token by right clicking on it and clicking: copy url. You can paste that directly into:
signal-cli -a $PHONE_NR register --captcha what_you_copied

and it will look a bit like:

signal-cli -a $PHONE_NR register --captcha "signalcaptcha://signal-recaptcha-v2.someshortercode.registration.someverylongcode"
  • Then you should receive an sms with a verification code. Copy only the 6 digits and enter them in the CLI like:
signal-cli -a $PHONE_NR verify 123456
  • That should be it, now you should be able to send a message with:
signal-cli -a ACCOUNT send -m "This is a message" RECIPIENT_NUMBER

Note that this will disable the authentication of your phone/main device. If you want to use your phone and signal-cli at the same time, you can follow these instructions.

Clone this wiki locally