Deeplinking to Venmo users

I wrote up a dump of all Venmo deeplinks back in 2017. I was recently looking through backlinks to the blog and saw this StackOverflow post trying to open a user's account based on their username. Figured I'd do a quick update and point to an answer. While I tried dumping from the Venmo app the app insta-crashes on 15.8.4, so bfdecryptor doesn't work. Luckily I grabbed a cracked IPA from online, and could run strings on the binary. The update list of deeplinkings:

venmo://friends-feed
venmo://account/gethelp/contact-us
venmo://account/settings
venmo://smart/checkout
venmo://go/web/paypal
venmo://venmo.com/go/purchase
venmo://account/verify-phone-number
venmo://payment_method_selector
venmo://add_payment_method
venmo://banks_and_cards
venmo://banktransfer
venmo://cash_out
venmo://addfunds
venmo://debitcard/addfunds
venmo://debitcard/instant
venmo://debitcard/offers/:id
venmo://notifications
venmo://paypal/charge
venmo://paypal/pay
venmo://users/:id
venmo://stories/:id
venmo://collegecard
venmo://authorization-split/:id
venmo://x-callback-url/auth//split
venmo://authorization/:id
venmo://incomplete
venmo://incomplete/payments
venmo://incomplete/requests
venmo://terms/user_agreement
venmo://terms/messages_feature
venmo://extension/login
venmo://venmo/profile/qrcode
venmo://businessprofiles/editprofile
venmo://venmo/profile/edit
venmo://profile/edit/:type
venmo://account/identity-verification/P2P
venmo://wallet/partner/accounts/wallet-linking/provision
venmo://send-request-money
venmo://paycharge
venmo://privatefeed
venmo://account/settings/payment-methods
venmo://account/gethelp/faqs
venmo://referral/invite
venmo://creditcard/referrals/invite
venmo://account/settings/privacy
venmo://account/settings/authentication
venmo://identity/personal
venmo://crypto/home
venmo://crypto/articles/:id
venmo://crypto/videos/:id
venmo://crypto/detailscreen/:id
venmo://crypto/detailscreen/:id/price-alerts
venmo://crypto/rewards/learn-more
venmo://crypto/quick/buy
venmo://account/settings/identity-verification/business-confirm-tax-info
venmo://account/settings/backup-payment-methods
venmo://about/creditcard
venmo://creditcard/preapproved
venmo://creditcard/cardshipped
venmo://creditcard/status/application
venmo://creditcard/card_selection
venmo://creditcard/rewards
venmo://about/creditcard/rewards
venmo://creditcard/trends
venmo://creditcard/virtual
venmo://creditcard/repayments/payment_due
venmo://creditcard/activate
venmo://creditcard/repayments/payment_past_due
venmo://creditcard/repayments/payment_scheduled
venmo://creditcard/repayments/scheduled_payment_canceled
venmo://creditcard/repayments/payment_processed
venmo://creditcard/repayments/autopay_reminder
venmo://creditcard/repayments/repayment_declined
venmo://creditcard/repayments/repayment_autopay_declined
venmo://creditcard/rewards/toggle
venmo://creditcard/rewards/cryptointro
venmo://creditcard/statement/:id
venmo://print-qrc
venmo://account/settings/tipping-preferences
venmo://businessprofiles/payment-methods
venmo://business-profiles-qr-codes
venmo://account/settings/marketing-consent-preferences
venmo://account/settings/shipping-addresses
venmo://account/settings/connected-businesses
venmo://businessprofiles/loyalty
venmo://settings/cancel-account
venmo://about/debitcard/rewards
venmo://card/apply
venmo://card/review-address
venmo://card/update-address-and-color
venmo://venmo.com/card/apply
venmo://card/activate
venmo://creditcard/crypto_rewards
venmo://about/creditcard?utm_source=credit_card_referrals

The one that we need is clearly venmo://users/:id, but for that we need the :id. The username like @Alex-Beals doesn't work, but we can get a hint from the QR code in the app:

Decoding it shows that it's a link to https://venmo.com/code?user_id=1693688325472256296&created=1779644360.990182, showing that my user_id is 1693688325472256296. Opening up venmo://users/1693688325472256296 works just as expected. But for this to work for an arbitrary user we'd want to be able to go from "@Alex-Beals" to 1693688325472256296.

Getting the ID

Luckily this is exposed in the web URL, which we can scrape. Going to https://account.venmo.com/u/Alex-Beals has a __NEXT_DATA__ section which includes the ID, which we can extract with a quick line of Javascript (though you'll have to adapt this for whatever language you're scraping in):

JSON.parse($('#__NEXT_DATA__').innerHTML)['props']['pageProps']['user']['id']

Just tweak the https://account.venmo.com/u/Alex-Beals URL for the user you want to check the ID for, and you're good to go!