Browserless · Capability

Browserless — REST APIs

Browserless REST API family covering screenshots, PDFs, content, scrape, function execution, performance/Lighthouse audits, smart-scrape, search, map, crawl, and unblock. Self-contained Naftiko capability exposing the one-shot HTTP automation surface as REST + MCP tools.

Browserless — REST APIs is a Naftiko capability published by Browserless, one of 4 capabilities the APIs.io network indexes for this provider. It bundles 13 operations across the POST, GET, and DELETE methods.

The capability includes 9 read-only operations and 4 state-changing operations. Lead operation: Capture a screenshot of a URL or HTML. Can be deployed as a REST endpoint, MCP tool, or Agent Skill via Naftiko.

Tagged areas include Browserless, REST, Screenshots, PDF, and Scrape.

Run with Naftiko BrowserlessRESTScreenshotsPDFScrapeSmart ScrapeSearchCrawl

What You Can Do

POST
Screenshot
/screenshot
POST
Pdf
/pdf
POST
Content
/content
POST
Scrape
/scrape
POST
Function
/function
POST
Performance
/performance
POST
Smartscrape
/smart-scrape
POST
Search
/search
POST
Map
/map
POST
Startcrawl
/crawl
GET
Getcrawl
/crawl
DELETE
Stopcrawl
/crawl
POST
Unblock
/unblock

MCP Tools

browserless-screenshot

Capture a screenshot of a URL or HTML.

read-only idempotent
browserless-pdf

Render a URL to PDF.

read-only idempotent
browserless-content

Fetch rendered HTML for a URL.

read-only idempotent
browserless-scrape

Extract selected elements.

read-only idempotent
browserless-function

Run user-supplied JavaScript in a managed browser.

browserless-performance

Lighthouse audit of a URL.

read-only idempotent
browserless-smart-scrape

AI-strategy data extraction.

read-only
browserless-search

Token-efficient web search.

read-only
browserless-map

Build a site map.

read-only idempotent
browserless-crawl-start

Start a crawl.

browserless-crawl-get

Get crawl progress.

read-only idempotent
browserless-crawl-stop

Stop a crawl.

idempotent
browserless-unblock

Bot-detection-bypass navigation.

Capability Spec

rest-apis.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Browserless — REST APIs
  description: >-
    Browserless REST API family covering screenshots, PDFs, content, scrape,
    function execution, performance/Lighthouse audits, smart-scrape, search,
    map, crawl, and unblock. Self-contained Naftiko capability exposing the
    one-shot HTTP automation surface as REST + MCP tools.
  tags:
    - Browserless
    - REST
    - Screenshots
    - PDF
    - Scrape
    - Smart Scrape
    - Search
    - Crawl
  created: '2026-05-25'
  modified: '2026-05-25'
binds:
  - namespace: env
    keys:
      BROWSERLESS_API_TOKEN: BROWSERLESS_API_TOKEN
capability:
  consumes:
    - type: http
      namespace: rest
      baseUri: https://production-sfo.browserless.io
      description: Browserless REST consumes block. Token passed via query parameter.
      resources:
        - name: screenshot
          path: /chromium/screenshot
          operations:
            - name: screenshot
              method: POST
              description: Capture a screenshot of a URL or HTML.
              outputRawFormat: binary
              outputParameters:
                - name: result
                  type: string
                  value: $.
              inputParameters:
                - name: body
                  in: body
                  type: object
                  description: Screenshot request body (url, html, options, viewport).
                  required: true
                - name: token
                  in: query
                  type: string
                  description: API token.
                  required: true
        - name: pdf
          path: /chromium/pdf
          operations:
            - name: pdf
              method: POST
              description: Render a URL or HTML to PDF.
              outputRawFormat: binary
              outputParameters:
                - name: result
                  type: string
                  value: $.
              inputParameters:
                - name: body
                  in: body
                  type: object
                  required: true
                - name: token
                  in: query
                  type: string
                  required: true
        - name: content
          path: /chromium/content
          operations:
            - name: content
              method: POST
              description: Return fully-rendered HTML for a URL.
              outputRawFormat: text
              outputParameters:
                - name: result
                  type: string
                  value: $.
              inputParameters:
                - name: body
                  in: body
                  type: object
                  required: true
                - name: token
                  in: query
                  type: string
                  required: true
        - name: scrape
          path: /chromium/scrape
          operations:
            - name: scrape
              method: POST
              description: Extract selected elements with text and attributes.
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: $.
              inputParameters:
                - name: body
                  in: body
                  type: object
                  required: true
                - name: token
                  in: query
                  type: string
                  required: true
        - name: function
          path: /chromium/function
          operations:
            - name: function
              method: POST
              description: Execute user-supplied JavaScript inside a managed browser.
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: $.
              inputParameters:
                - name: body
                  in: body
                  type: object
                  required: true
                - name: token
                  in: query
                  type: string
                  required: true
        - name: performance
          path: /chromium/performance
          operations:
            - name: performance
              method: POST
              description: Run a Lighthouse audit and return scores and metrics.
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: $.
              inputParameters:
                - name: body
                  in: body
                  type: object
                  required: true
                - name: token
                  in: query
                  type: string
                  required: true
        - name: smart-scrape
          path: /smart-scrape
          operations:
            - name: smartScrape
              method: POST
              description: AI-selected strategy data extraction.
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: $.
              inputParameters:
                - name: body
                  in: body
                  type: object
                  required: true
                - name: token
                  in: query
                  type: string
                  required: true
        - name: search
          path: /search
          operations:
            - name: search
              method: POST
              description: Token-efficient web search.
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: $.
              inputParameters:
                - name: body
                  in: body
                  type: object
                  required: true
                - name: token
                  in: query
                  type: string
                  required: true
        - name: map
          path: /map
          operations:
            - name: map
              method: POST
              description: Generate a site map for a domain.
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: $.
              inputParameters:
                - name: body
                  in: body
                  type: object
                  required: true
                - name: token
                  in: query
                  type: string
                  required: true
        - name: crawl
          path: /crawl
          operations:
            - name: startCrawl
              method: POST
              description: Start a depth-bounded crawl.
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: $.
              inputParameters:
                - name: body
                  in: body
                  type: object
                  required: true
                - name: token
                  in: query
                  type: string
                  required: true
            - name: getCrawl
              method: GET
              description: Retrieve crawl progress / results.
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: $.
              inputParameters:
                - name: token
                  in: query
                  type: string
                  required: true
            - name: stopCrawl
              method: DELETE
              description: Stop an in-progress crawl.
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: $.
              inputParameters:
                - name: token
                  in: query
                  type: string
                  required: true
        - name: unblock
          path: /unblock
          operations:
            - name: unblock
              method: POST
              description: Bot-detection-bypassing navigation that returns the unblocked page.
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: $.
              inputParameters:
                - name: body
                  in: body
                  type: object
                  required: true
                - name: token
                  in: query
                  type: string
                  required: true
      authentication:
        type: apikey
        key: token
        value: '{{env.BROWSERLESS_API_TOKEN}}'
        placement: query
  exposes:
    - type: rest
      namespace: rest-adapter
      port: 8080
      description: REST adapter exposing the Browserless REST family.
      resources:
        - path: /screenshot
          name: screenshot
          operations:
            - method: POST
              name: screenshot
              call: rest.screenshot
              with:
                body: rest.body
              outputParameters:
                - type: string
                  mapping: $.
        - path: /pdf
          name: pdf
          operations:
            - method: POST
              name: pdf
              call: rest.pdf
              with:
                body: rest.body
              outputParameters:
                - type: string
                  mapping: $.
        - path: /content
          name: content
          operations:
            - method: POST
              name: content
              call: rest.content
              with:
                body: rest.body
              outputParameters:
                - type: string
                  mapping: $.
        - path: /scrape
          name: scrape
          operations:
            - method: POST
              name: scrape
              call: rest.scrape
              with:
                body: rest.body
              outputParameters:
                - type: object
                  mapping: $.
        - path: /function
          name: function
          operations:
            - method: POST
              name: function
              call: rest.function
              with:
                body: rest.body
              outputParameters:
                - type: object
                  mapping: $.
        - path: /performance
          name: performance
          operations:
            - method: POST
              name: performance
              call: rest.performance
              with:
                body: rest.body
              outputParameters:
                - type: object
                  mapping: $.
        - path: /smart-scrape
          name: smart-scrape
          operations:
            - method: POST
              name: smartScrape
              call: rest.smartScrape
              with:
                body: rest.body
              outputParameters:
                - type: object
                  mapping: $.
        - path: /search
          name: search
          operations:
            - method: POST
              name: search
              call: rest.search
              with:
                body: rest.body
              outputParameters:
                - type: object
                  mapping: $.
        - path: /map
          name: map
          operations:
            - method: POST
              name: map
              call: rest.map
              with:
                body: rest.body
              outputParameters:
                - type: object
                  mapping: $.
        - path: /crawl
          name: crawl
          operations:
            - method: POST
              name: startCrawl
              call: rest.startCrawl
              with:
                body: rest.body
              outputParameters:
                - type: object
                  mapping: $.
            - method: GET
              name: getCrawl
              call: rest.getCrawl
              outputParameters:
                - type: object
                  mapping: $.
            - method: DELETE
              name: stopCrawl
              call: rest.stopCrawl
              outputParameters:
                - type: object
                  mapping: $.
        - path: /unblock
          name: unblock
          operations:
            - method: POST
              name: unblock
              call: rest.unblock
              with:
                body: rest.body
              outputParameters:
                - type: object
                  mapping: $.
    - type: mcp
      namespace: rest-mcp
      port: 9090
      transport: http
      description: MCP adapter for Browserless REST APIs.
      tools:
        - name: browserless-screenshot
          description: Capture a screenshot of a URL or HTML.
          hints: { readOnly: true, destructive: false, idempotent: true }
          call: rest.screenshot
          with: { body: tools.body }
          outputParameters: [{ type: string, mapping: $. }]
        - name: browserless-pdf
          description: Render a URL to PDF.
          hints: { readOnly: true, destructive: false, idempotent: true }
          call: rest.pdf
          with: { body: tools.body }
          outputParameters: [{ type: string, mapping: $. }]
        - name: browserless-content
          description: Fetch rendered HTML for a URL.
          hints: { readOnly: true, destructive: false, idempotent: true }
          call: rest.content
          with: { body: tools.body }
          outputParameters: [{ type: string, mapping: $. }]
        - name: browserless-scrape
          description: Extract selected elements.
          hints: { readOnly: true, destructive: false, idempotent: true }
          call: rest.scrape
          with: { body: tools.body }
          outputParameters: [{ type: object, mapping: $. }]
        - name: browserless-function
          description: Run user-supplied JavaScript in a managed browser.
          hints: { readOnly: false, destructive: false, idempotent: false }
          call: rest.function
          with: { body: tools.body }
          outputParameters: [{ type: object, mapping: $. }]
        - name: browserless-performance
          description: Lighthouse audit of a URL.
          hints: { readOnly: true, destructive: false, idempotent: true }
          call: rest.performance
          with: { body: tools.body }
          outputParameters: [{ type: object, mapping: $. }]
        - name: browserless-smart-scrape
          description: AI-strategy data extraction.
          hints: { readOnly: true, destructive: false, idempotent: false }
          call: rest.smartScrape
          with: { body: tools.body }
          outputParameters: [{ type: object, mapping: $. }]
        - name: browserless-search
          description: Token-efficient web search.
          hints: { readOnly: true, destructive: false, idempotent: false }
          call: rest.search
          with: { body: tools.body }
          outputParameters: [{ type: object, mapping: $. }]
        - name: browserless-map
          description: Build a site map.
          hints: { readOnly: true, destructive: false, idempotent: true }
          call: rest.map
          with: { body: tools.body }
          outputParameters: [{ type: object, mapping: $. }]
        - name: browserless-crawl-start
          description: Start a crawl.
          hints: { readOnly: false, destructive: false, idempotent: false }
          call: rest.startCrawl
          with: { body: tools.body }
          outputParameters: [{ type: object, mapping: $. }]
        - name: browserless-crawl-get
          description: Get crawl progress.
          hints: { readOnly: true, destructive: false, idempotent: true }
          call: rest.getCrawl
          outputParameters: [{ type: object, mapping: $. }]
        - name: browserless-crawl-stop
          description: Stop a crawl.
          hints: { readOnly: false, destructive: true, idempotent: true }
          call: rest.stopCrawl
          outputParameters: [{ type: object, mapping: $. }]
        - name: browserless-unblock
          description: Bot-detection-bypass navigation.
          hints: { readOnly: false, destructive: false, idempotent: false }
          call: rest.unblock
          with: { body: tools.body }
          outputParameters: [{ type: object, mapping: $. }]