Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 10 additions & 1 deletion snippets/whitelabel/ai/json.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,16 @@
"completion": "<h4 class=\"sr-only select-none\">ChatGPT said: ...",
"sources": "<section aria-label=\"Sources\" ...",
"ads": "<div class=\"border-token-border-default mt-2 border-t py-4 text-sm\" ...",
"fanouts": ["best basketball shoes for 2026"],
"sse": "{\"type\": \"conversation_detail_metadata\" ...",
"fanouts": [
"best basketball shoes 2026",
"top rated basketball shoes 2026 reviews",
"best performance basketball shoes 2026",
"best basketball shoes for guards 2026",
"best basketball shoes for wide feet 2026",
"best outdoor basketball shoes 2026",
"most popular basketball shoes 2026"
],
"country": "US",
"city": "Portland"
}
Expand Down
2 changes: 1 addition & 1 deletion snippets/whitelabel/autoscaling.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ export const Autoscaling = () => {
return (
<Warning>
This endpoint autoscales; if you receive a <code>503</code> response, maintain traffic and
expect errors to resolve within a couple minutes.
expect errors to resolve within a minute.
</Warning>
);
};
7 changes: 7 additions & 0 deletions snippets/whitelabel/search/url.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
### Alternative URL

```shell
curl -H "Authorization: Bearer $MASSIVE_TOKEN" \
'https://render.joinmassive.com/search'\
'?url=https%3A%2F%2Fwww.google.com%2Fsearch%3Fq%3Dfoo%2Bbar%2Bbaz%26hl%3Dfr%26gl%3Dfr%26ie%3DUTF-8'
```
27 changes: 14 additions & 13 deletions web-render/ai.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -84,19 +84,20 @@ Completions are returned as structured JSON, rendered HTML, or raw (unrendered)
If you set the output to JSON, your completion will be parsed into an object with the
[geotargeting keys and values above](#service-usage) and following chat keys and values:

| Key | Value |
| :------------------- | :----------------------------------------------------------------------------------------------------------------------- |
| `model` | The AI model that generated the completion |
| `query` | The user prompt that the completion was generated for |
| `html` | The rendered HTML of the entire conversation |
| `prompt` | The rendered HTML of just the prompt portion of the conversation |
| `completion` | The rendered HTML of just the completion portion of the conversation |
| `sources` | The rendered HTML of just the sources portion of the conversation |
| `ads` | The rendered HTML of just the ads portion of the conversation |
| `fanouts` | An array of the fanout queries that the model searched to generate the completion; only some models expose these queries |
| `device` | The emulated device name that the conversation was had on |
| `language` (planned) | The common name or ISO code of the language that the conversation is in |
| `display` (planned) | The common name or ISO code of the display language that conversation interface is in |
| Key | Value |
| :----------------------- | :----------------------------------------------------------------------------------------------------------------------- |
| `model` | The AI model that generated the completion |
| `query` | The user prompt that the completion was generated for |
| `html` | The rendered HTML of the entire conversation |
| `prompt` | The rendered HTML of just the prompt portion of the conversation |
| `completion` | The rendered HTML of just the completion portion of the conversation |
| `sources` | The rendered HTML of just the sources portion, if any, of the conversation |
| `ads` | The rendered HTML of just the ads portion, if any, of the conversation |
| `sse` (ChatGPT only) | The server-sent events JSON that was used to populate the conversation HTML |
| `fanouts` (ChatGPT only) | An array of the fanout queries that the model searched to generate the completion; only some models expose these queries |
| `device` | The emulated device name that the conversation was had on |
| `language` (planned) | The common name or ISO code of the language that the conversation is in |
| `display` (planned) | The common name or ISO code of the display language that conversation interface is in |

<Accordion icon='code' title='View JSON example'>
<Json />
Expand Down
22 changes: 19 additions & 3 deletions web-render/openapi.json
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,16 @@
"schema": { "type": "string", "example": null },
"in": "query"
},
{
"name": "url",
"description": "The encoded URL of the results page to retrieve; if given, the URL overrides any of the above params.",
"schema": {
"type": "string",
"format": "uri",
"example": "https://www.google.com/search?q=foo+bar+baz&hl=fr&gl=fr&ie=UTF-8"
},
"in": "query"
},
{
"name": "awaiting",
"description": "The lazy result features to wait to load; any AI overview, which can take significant time to generate, is awaited for a maximum of **1 minute**; multiple features can be provided by repeating the key; lazy results aren’t awaited by default.",
Expand Down Expand Up @@ -393,7 +403,7 @@
"description": "The difficulty pool to attempt to access the URL from.",
"schema": {
"type": "string",
"enum": ["low", "medium", "high (planned)"],
"enum": ["low", "medium", "high"],
"default": "low",
"example": "low"
},
Expand Down Expand Up @@ -1196,7 +1206,12 @@
"type": "string",
"example": "<div class=\"border-token-border-default mt-2 border-t py-4 text-sm\" ..."
},
"fanouts": {
"sse (ChatGPT only)": {
"description": "The server-sent events JSON that was used to populate the conversation HTML.",
"type": "string",
"example": "{\"type\": \"conversation_detail_metadata\" ..."
},
"fanouts (ChatGPT only)": {
"description": "The fanout queries that the model searched to generate the completion; only some models expose these queries.",
"type": "array",
"items": { "type": "string" },
Expand Down Expand Up @@ -1249,6 +1264,7 @@
"completion",
"sources",
"ads",
"sse",
"fanouts"
]
},
Expand Down Expand Up @@ -1342,7 +1358,7 @@
"text/plain": {
"schema": {
"type": "string",
"example": "Service is autoscaling; please retry in 180 seconds"
"example": "Service is autoscaling; please retry in 60 seconds"
}
}
}
Expand Down
26 changes: 17 additions & 9 deletions web-render/pricing.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -10,27 +10,35 @@ import { companyName, checkoutUrl } from '/snippets/whitelabel/config.mdx';
## Credit system

Access to **{companyName}** services is based on prepaid credits. Your credit balance is decremented
only for successful API calls. Most calls cost **1 credit** each or are **free**:
only for successful API calls or successful Chrome DevTools Protocol (CDP) sessions. Most calls cost
**1 credit** each or are **free**, except for substantially longer-running AI calls:

| Service | Base credits |
| :---------------------------------- | :----------- |
| <Link href='search'>Search</Link> | 1 |
| <Link href='ai'>AI</Link> | 1 |
| <Link href='ai'>AI</Link> | 5 |
| <Link href='browser'>Browser</Link> | 1 |
| <Link href='usage'>Reporting</Link> | 0 (free) |
| Administration | 0 (free) |

A few premium parameters multiply the base cost of calls that use them:
CDP sessions are billed by time, rounded down to the nearest credit:

| Service | Key | Value | Credit multiplier |
| :------ | :----------- | :----------- | :---------------- |
| Browser | `difficulty` | `medium` | 2 |
| Browser | `speed` | `ridiculous` | 1.5 |
| Service | Base credits |
| :-------------------------------------- | :----------- |
| <Link href='browser'>Browser CDP</Link> | 10 / minute |

A few premium parameters multiply the base cost of calls or sessions that use them:

| Service | Key | Value | Credit multiplier |
| :------------ | :----------- | :----------- | :---------------- |
| Browser (CDP) | `difficulty` | `medium` | 2 |
| Browser (CDP) | `difficulty` | `high` | 5 |
| Browser | `speed` | `ridiculous` | 2 |

For example, calling the browser service successfully with both `difficulty=medium` and
`speed=ridiculous` params would cost **3 credits** in total:
`speed=ridiculous` params would cost **4 credits** in total:

<Latex>1 base credit x 2 x 1.5 = 3 total credits</Latex>
<Latex>1 base credit x 2 (difficulty multiplier) x 2 (speed multiplier) = 4 total credits</Latex>

<Card title='Your API credits' icon='link' href={checkoutUrl} horizontal>
Create or fund an account.
Expand Down
4 changes: 4 additions & 0 deletions web-render/search.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import { Autoscaling } from '/snippets/whitelabel/autoscaling.mdx';
import Authentication from '/snippets/whitelabel/authentication.mdx';
import Terms from '/snippets/whitelabel/search/terms.mdx';
import Offset from '/snippets/whitelabel/search/offset.mdx';
import Url from '/snippets/whitelabel/search/url.mdx';
import Awaiting from '/snippets/whitelabel/search/awaiting.mdx';

<Reference endpoint='search' />
Expand Down Expand Up @@ -49,6 +50,7 @@ The keys and values **{companyName}** supports are as follows:
| `uule` | ⬜ | The [proprietary encoded string](https://moz.com/blog/geolocation-the-ultimate-tip-to-emulate-local-search) for emulating the location to search from; if possible, the actual location is searched from not emulated; location emulation is unused by default |
| `language` | ⬜ | The commonly spelled name, [two-letter ISO code](https://www.loc.gov/standards/iso639-2/php/code_list.php), or [Google code](https://www.google.com/advanced_search) of the language to search in (these names and codes are case insensitive but required to include form- or URL-encoded spaces and punctuation marks); the language is unset by default |
| `display` | ⬜ | The commonly spelled name, [two-letter ISO code](https://www.loc.gov/standards/iso639-2/php/code_list.php), or [Google code](https://www.google.com/advanced_search) of the search interface's display language (these names and codes are case insensitive but required to include form- or URL-encoded spaces and punctuation marks); the display language is unset by default or set to the language if given |
| `url` | ⬜ | The encoded URL of the results page to retrieve; if given, the URL overrides any of the above params |
| `awaiting` | ⬜ | The lazy result features to wait to load, an `ai` overview, "People also ask" `answers`, or sponsored `ads`; any AI overview, which can take significant time to generate, is awaited for a maximum of **1 minute**; multiple features can be provided by repeating the key; lazy results aren't awaited by default |
| `expiration` | ⬜ | The age in days of when to consider cached results expired, where `0` disables caching; `1` is the default number of days before expiration |

Expand All @@ -62,4 +64,6 @@ feature infinite scrolling, the HTML of each page will be separated from the nex

<Offset />

<Url />

<Awaiting />