BQL Introduction

Botify Query Language

The Botify Query Language, generally referred to as BQL, is a Domain Specific Language (DSL) that enables querying any SEO business data available in Botify through a common interface.

SEO data is intrinsically complex and voluminous. BQL allows abstracting this complexity behind one interface that enables expressing the needed data.
This DSL is used both to query your data and exporting it. Guides are available to choose which you want to use.



BQL works as an analytics tools

You specify metrics that are aggregated on dimensions.

Your available data and fields are defined by collections. A collection represents a source of data in Botify from which you can fetch SEO data. Botify product typically represent such data sources: SiteCrawler, RealKeywords, EngagementAnalytics, etc.

The main goal of BQL is to be able to cross different collections, on different periods of time, in order to extract the most interesting information. Example use cases:

  • What are my new trending keywords keywords compared to last week?
  • How many pages in each segment of my website are indexable by Google but are not visited?

BQL Query format

A BQL query is composed by few elements which are detailed in the following sections.

  "collections": [<Collection>, ...],
  "periods": [
    [<PeriodStart>, <PeriodEnd>],
  "query": {
    "dimensions": [<Dimension>, ...],
    "metrics": [<Metric>, ...],
    "filters": <FILTER>,
    "post_filters": <FILTER>,
    "sort": [<SORT>, ...]

A BQL query consists of two parts:

  • metadata: collections and periods that define what data is queried
  • the query itself, which describes the requested fields

In the query:

What’s Next

Learn more about BQL