Okay, I finally found a way to achieve exactly what I wanted. Especially the setting about how many results get shown seems to be only available via the parameter generated on the "Settings" page.
Here is a step by step guide and at the bottom I will provide the conclusion as to how you can assemble your own search URL based on the "Settings" page. If you read carefully, especially the conclusion, you'll find this doesn't only apply to Opera.
Go to the website of
startpage.com and choose the "Settings" (highlighted in the following screenshot).
Configure your search
Now configure the search using the provided form.
At the bottom of the form you'll find a button "Generate URL". After you press it, you'll see something similar to the following (minus the highlighting):
The text next to "Obfuscated URL" says:
An obfuscated URL protects your privacy by hiding your Settings choices.
Now that is obviously true at a first glance. Your settings are hidden from plain sight, but that's a very very thin veneer. In fact if you use the given URL and then "Create Search" from the provided search field or go to the "Settings" page again from there, neither will divulge details about your preferences to whoever uses the URL. Well, except obviously the company behind
startpage.com which knows it either way.
Still, it's hard to tell whether the obfuscated form contains some identifier that would be generated based on your IP and other identifying data. It's possible it doesn't, but it would take experimentation to prove this theory wrong or right.
I prefer the plain text URL, but your mileage may vary.
Preparation to creating a search
Use the URL from that page and visit it. Here's the obfuscated URL from my example, just so you can follow the steps:
NB: The customized searches all start with
https://startpage.com/do/mypage.pl, but that doesn't allow you to initiate the search, which is what we're after.
Use the step described in the support section of
startpage.com and elsewhere to create a search from the search field.
At this point a dialog in your browser (I know a similar feature exists in Firefox) should prompt you to give more details (e.g. naming the shorthand/quick-search and so on).
Customizing the quick-search
Here you can give a shorthand ("Keyword") and customize the query string further. And this is where we get to see how the settings from the "Settings" page can be reused.
Assume we have the following generated URL:
the resulting settings for the quick-search would then be:
- Query string:
where the query string has the following obvious parameters:
cat which seems to refer to the type (or category?) of search, i.e. web (
cat=web), image (
cat=pics) or video (
cat=video) at the moment of this writing
cmd is vital here, it's the functional equivalent of pressing the search button (
language is the search language, another parameter
lui controls the language of the user interface
engine0=v1all) is something proprietary and I have no idea what possible and valid values exist there, but the same parameter also exists in Ixquick (another search engine by the same company)
query is the search query whereas a blank space is encoded as
+ depending on the context. The
query=%s is in Opera the placeholder for the search query
- It is possible to add things like search operators, e.g.
query=%s+site:linux.die.net would limit the search to the site
linux.die.net which hosts a bunch of Linux
- Unknown parameters:
Last but not least the most important part:
prfh (prf == profile?) which is the exact value as in the generated URL, e.g. here
This means one can assemble a URL from:
- Separator for parameters:
- Basic parameters:
cat=web&cmd=process_search&lui=english&language=english (for English search and UI
- Separator between parameters:
%s is a placeholder for the search term(s)
- Separator between parameters:
- And the settings from the "Settings" page:
EEE seems to signify a
N1N the separator between the parameters (similar to
& in the URI). However, you cannot extract these values and use them "outside" the
prfh value. A translated value would thus look like (I chose
| as the separator):