# Using query parameters

{% hint style="info" %}
You can use the `msopen` query parameter on any page the widget is installed on.\
\
Path sections starting with `:` are placeholders, values need to be substituted in in their place. Placeholders, ending with `?` are optional and can be omitted\
\
I.e., given a domain of \```https://example.com`, a`` content id of \`abc123\` and a path of\
`/content/:contentId/:viewingPreference?`\
\
`the following URLs can be generated:`\
`- https://example.com?msopen=/content/abc123`\
`- https://example.com?msopen=/content/abc123/popup`
{% endhint %}

### Recognized paths

<table data-full-width="true"><thead><tr><th width="148.33333333333331">Target</th><th>path</th><th>If logged in</th><th>If not logged in</th></tr></thead><tbody><tr><td>Log in</td><td>/member/sign_in</td><td>Will take to the <code>member menu</code> or if not enabled, the <code>account screen</code></td><td>Show login screen</td></tr><tr><td>Log out</td><td>/member/sign_out</td><td>Log user out</td><td>-</td></tr><tr><td>Register user</td><td>/member/sign_up/:planPublicId?</td><td>Will take to the <code>member menu</code> or if not enabled, the <code>account screen</code>. Will take the</td><td>Will register the user and offer to sign up to a plan.<br>- If no plan specified, the <code>after registration action</code> will be executed.</td></tr><tr><td>Sign user up to a plan</td><td>/member/plans/:planPublicId?</td><td>Will offer to sign up to a plan.<br>- If no plan specified, the <code>after registration action</code> will be executed.<br>- If user is already on specified plan, will navigate browser to the content URL of the plan.</td><td>Register user first</td></tr><tr><td>All plans sign up</td><td>/member/plans/all</td><td>Will offer to sign up to any public plan</td><td>Register user first</td></tr><tr><td>Account</td><td>/member/account</td><td>Display account screen</td><td>Log user in first</td></tr><tr><td>Account edit</td><td>/member/account/edit</td><td>Display account edit screen</td><td>Log user in first</td></tr><tr><td>Email change</td><td>/member/account/email_change</td><td>Display email change screen</td><td>Log user in first</td></tr><tr><td>Password change</td><td>/member/account/password_change</td><td>Display password change screen</td><td>Log user in first</td></tr><tr><td>Invoices</td><td>/member/invoices</td><td>Display invoice list screen</td><td>Log user in first</td></tr><tr><td>Payment method change</td><td>/member/payment_method/update</td><td>Display payment method change screen</td><td>Log user in first</td></tr><tr><td>Membership list</td><td>/member/memberships</td><td>Display membership list screen</td><td>Log user in first</td></tr><tr><td>Protected content</td><td>/content/:contentId/:viewingPreference?</td><td>Display protected content.<br><code>viewingPreference</code> can be <code>download</code> (default), or <code>popup</code>. Some content types only support a specific `viewingPreference`</td><td>Log user in first</td></tr></tbody></table>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developers.memberspace.com/getting-started/using-query-parameters.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
