Browserless GraphQL API

Aside from providing the default chrome.browserless.io domain for running sessions, browserless also exposes a GraphQL API for other operations. This document goes over some critical queries, however there's more information and descriptions at the interactive GraphiQL interface located at https://api.browserless.io/graphql/.

NOTE: The graphql API only applies to dedicated accounts. Usage-based accounts will be coming at a later date.

Pressure

The pressure query shows how much load your instance(s) are under, and whether they can accept more traffic or not. This is real-time, so if you need to check if your instance can take more traffic you can do a request to check prior to running your puppeteer.connect call.

NOTE: The pressure queries are still in BETA and may experience breaking schema changes.

# https://api.browserless.io/graphql
{
  pressure(apiToken: "YOUR-API-TOKEN") {
    running
    recentlyRejected
    queued
    isAvailable
    date
  }
}

This request will return a JSON object with the following payload:

// JSON returned
{
  "data": {
    "pressure": {
      "running": 0,
      "recentlyRejected": 0,
      "queued": 0,
      "isAvailable": true,
      "date": 1524762532204
    }
  }
}

Metrics

The metrics query gives you insight to how your worker(s) are performing. It details things like successful, rejected, and timed-out sessions. Eventually this will be expanded to include things like average session-time and other helpful data-points.

Below is an example of a request for metrics and the responding payload.

NOTE: The metrics queries are still in BETA and may experience breaking schema changes.

# https://api.browserless.io/graphql
{
  metrics(apiToken: "YOUR-API-TOKEN") {
    successful
    rejected
    timedout
    queued
    cpu
    memory
    date
  }
}

This request returns an array of object detailing the metrics of your instance(s). If there's more than one instance stats are aggregated together in 5-minute intervals. CPU and Memory are averaged accross instances.

{
  "data": {
    "metrics": [
      {
        "successful": 0,
        "rejected": 0,
        "timedout": 0,
        "queued": 0,
        "cpu": 0.002734375,
        "memory": 0.9055320561641963,
        "date": 1524227700000
      },
      //...

See More

There's a lot more you can do in the GraphQL API behind browserless, so be sure to check it out here!

Ready to try benefits of Browserless?