PageRun SSR API Documentation
No matter how fast your web pages are, when Google has to render your pages it'll still negatively affect your page speed scores and Core Web Vitals (CWV). SSR generates a fully rendered and functional HTML version of your URLs and serves them to search engines in 0.01 seconds on average. This boost in loading speed gets your CWV scores to near perfect.
Below are the endpoints for accessing web pages. Learn how to integrate the API into your application.
Authorization:
- privateId *Specify privateId for site
(e.g., "Bearer example^com-SomeIdString").
Query Parameters:
- park *Set TestPark/OmniPark redirection duration
(e.g., "1000ms | 10000ms | 100000ms | 1000000ms | 10000000ms | 100000000ms | 1000000000ms | 10000000000ms | 1m | hour | day | week | bimonthly | month | triannual | quarter | biannual | year"). - api *Does page include external api call
(e.g., "NO|YES"). - path Default path=api if !path passed
(e.g., "api") to wait for "/api/" has to be flat single word.
Route Parameters:
- :region *Please check location table here
(e.g., "WEST_3|ARAB_1|EAST_3|NORD_6").
Body Parameters:
- agent Track agent activity with FREE record keeping
Optional (e.g., "agent" = req.headers['user-agent']) - task *Specify which process to run
(e.g., "render"|"screenshot"|"serialize"). - link *Specify which page url to load
(e.g., "https://svgtile.com/static-rendering"). - key *Pagerun relies on html class as Anchor key
(e.g., "iAmRandomSelectorClassPublicKey") where class="iAmRandomSelectorClassPublicKey".
This endpoint provides rendered html for the requested url for page.
import java.net.URI; import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; import java.util.HashMap; import java.util.Map; import com.fasterxml.jackson.databind.ObjectMapper; public class ApiClient { private static final String BASE_URL = "https://pagerun.api.svgtile.com/v1"; private static final String PRIVATE_ID = "<privateId>"; public static void main(String[] args) { try { String result = fetchData(); System.out.println(result); } catch (Exception e) { e.printStackTrace(); } } private static String fetchData() throws Exception { // Create HTTP client HttpClient client = HttpClient.newHttpClient(); ObjectMapper mapper = new ObjectMapper(); // Build URL Map<String, String> params = new HashMap<>(); params.put("region", "YOUR_REGION"); // Replace with actual region value StringBuilder urlBuilder = new StringBuilder(BASE_URL); ["region"].forEach(param -> urlBuilder.append("/").append(params.get(param)) ); // Add query parameters Map<String, String> queryParams = {"api":"NO","park":"month"}; urlBuilder.append("?"); queryParams.forEach((key, value) -> urlBuilder.append(key).append("=").append(value).append("&") ); // Create request HttpRequest.Builder requestBuilder = HttpRequest.newBuilder() .uri(URI.create(urlBuilder.toString())) .header("Content-Type", "application/json") .header("Authorization", "Bearer " + PRIVATE_ID); if ("POST".equals("POST") || "POST".equals("PUT")) { requestBuilder.method("POST", HttpRequest.BodyPublishers.ofString( mapper.writeValueAsString({"task":"render|screenshot|serialize","key":"<selector-here>","link":"<url-here>"}) ) ); } else { requestBuilder.method("POST", HttpRequest.BodyPublishers.noBody()); } // Send request HttpResponse<String> response = client.send( requestBuilder.build(), HttpResponse.BodyHandlers.ofString() ); if (response.statusCode() >= 400) { throw new RuntimeException("HTTP error! status: " + response.statusCode()); } return response.body(); } }
Suggested Selector for interface stealth
<div class="iAmRandomSelectorClassPublicKey"
style="line-height: 8px; font-size: 3px; padding: 0 4px; background: transparent; display: inline-block; position: absolute; bottom: 0; left: 28px;">
<a href="https://svgtile.com/pagerun" style="color: transparent;">PageRun SSR</a>
</div>