Have you ever tried to skip giving X your phone number, only to have the "Next" button greyed out? That is the Flow engine responding to a conditional rule: IF (email_provided AND NOT phone_provided) THEN (show_phone_screen = true) .
Because the /flow/ system is a fortress against bots. The endpoint usually requires a or a guest_token generated by the initial page load. https twitter com i flow signup
Imagine the server telling your browser: "Alright, Browser. Step one is a 'TextInput' component. Step two is a 'DatePicker' for their birthday. If they are under 13, Step three is an 'Error Screen'. If they are over 18, skip to Step four." Have you ever tried to skip giving X
This is called a flow. The backend tells the frontend what to ask, and the frontend just renders the components. This allows X to change the signup process (e.g., adding a "Prompt for Newsletter signup") without pushing a new version of their iPhone app or website. They just change the Flow definition on the server. Why the weird URL? Security and Bots You might ask: "Why can't I just curl https://twitter.com/i/flow/signup and create 1,000 accounts?" The endpoint usually requires a or a guest_token
It is a silent, robotic, efficient gateway to the global town square. And now, next time you see that URL flash in your status bar, you will know exactly what is happening: You aren't just filling out a form. You are walking through a state machine. Have you noticed any weird steps in the X signup flow recently? Did the Flow ask you for something unexpected? Let us know in the comments below.
By analyzing the flow/signup traffic, researchers have historically found experiments running on subsets of users. 50% of users might see a 2-step flow; 50% might see a 5-step flow. The URL stays the same ( /i/flow/signup ), but the JSON payload changes. If you open your Developer Tools (F12) and watch the Network tab while signing up for X, look for requests to https://twitter.com/i/api/1.1/onboarding/task.json .