## Table of Contents

- [API](#api)
  - [Mql(\, \[options\], \[httpoptions\])](#mql-options-httpoptions)
    - [url](#url)
    - [options](#options)
      - [apiKey](#apikey)
      - [cache](#cache)
      - [retry](#retry)
    - [httpOptions](#httpoptions)
  - [mql.stream(\, \[options\], \[httpoptions\])](#mqlstream-options-httpoptions)
  - [mql.buffer(\, \[options\], \[httpoptions\])](#mqlbuffer-options-httpoptions)

---

[API](https://microlink.io/docs/api/getting-started/overview)

[GUIDES](https://microlink.io/docs/guides) [MQL](https://microlink.io/docs/mql/getting-started/overview) [SDK](https://microlink.io/docs/sdk/getting-started/overview) [CARDS](https://microlink.io/docs/cards/getting-started/overview)

API GUIDES MQL SDK CARDS

Getting Started

[Overview](https://microlink.io/docs/mql/getting-started/overview)

[Installation](https://microlink.io/docs/mql/getting-started/installation)

[Usage](https://microlink.io/docs/mql/getting-started/usage)

[API](https://microlink.io/docs/mql/getting-started/api)

Rules Definition

[Basic rule](https://microlink.io/docs/mql/rules/basic)

[Nested rules](https://microlink.io/docs/mql/rules/nested)

[Rules fallbacks](https://microlink.io/docs/mql/rules/fallbacks)

Data definition

[attr](https://microlink.io/docs/mql/data/attr)

[evaluate](https://microlink.io/docs/mql/data/evaluate)

[selector](https://microlink.io/docs/mql/data/selector)

[selectorAll](https://microlink.io/docs/mql/data/selectorAll)

[type](https://microlink.io/docs/mql/data/type)

API GUIDES MQL SDK CARDS

Getting Started

[Overview](https://microlink.io/docs/mql/getting-started/overview)

[Installation](https://microlink.io/docs/mql/getting-started/installation)

[Usage](https://microlink.io/docs/mql/getting-started/usage)

[API](https://microlink.io/docs/mql/getting-started/api)

Rules Definition

[Basic rule](https://microlink.io/docs/mql/rules/basic)

[Nested rules](https://microlink.io/docs/mql/rules/nested)

[Rules fallbacks](https://microlink.io/docs/mql/rules/fallbacks)

Data definition

[attr](https://microlink.io/docs/mql/data/attr)

[evaluate](https://microlink.io/docs/mql/data/evaluate)

[selector](https://microlink.io/docs/mql/data/selector)

[selectorAll](https://microlink.io/docs/mql/data/selectorAll)

[type](https://microlink.io/docs/mql/data/type)

## API

[Copy for LLM](https://microlink.io/docs/mql/getting-started/api.md "Copy content for LLM")

\|

[View as Markdown](https://microlink.io/docs/mql/getting-started/api.md "View content as Markdown")

### Mql(\<url\>, \[options\], \[httpoptions\])

#### url

**required**

Type: \<string\>

The target URL for getting content.

#### options

Type: \<object\>

You can pass any API Parameters from [Microlink API](https://microlink.io/docs/api/getting-started/overview) as an option.

```js
const mql = require('@microlink/mql')

const { status, data, response } = await mql('https://kikobeats.com', {

  screenshot: true,

  device: 'iPad',

  palette: true

})

console.log(`My screenshot at ${data.screenshot.url}`)
```

Additionally, you can configure:

##### apiKey

Type: \<string\>

The API Key used for [authenticating](https://microlink.io/docs/api/basics/authentication) your requests as `x-api-key` header.

When the `apiKey` is provided, the [pro.microlink.io](https://pro.microlink.io/) as [endpoint](https://microlink.io/docs/api/basics/endpoint) will be used.

##### cache

Type: \<object\>

> **Note**: this feature is only available for Node.js.

When you pass an object that follows Map API, you can enable serve response from your storage cache in order to save API if they have been previously done.

```js
const mql = require('@microlink/mql')

const cache = new Map()

let data

data = await mql('https://example.com', { cache })

console.log(data.response.fromCache)

// => false

data = await mql('https://example.com', { cache })

console.log(data.response.fromCache)

// => true
```

Caching feature is only available in the Node.js bundle.

Consider to pass

[keyv](https://www.npmjs.com/package/keyv)

for supporting [most popular databases storages](https://github.com/lukechilds/keyv#official-storage-adapters).

##### retry

Type: \<number\>\
Default: 2

Defines how many retries can be done before an API call is considered failed.

See

[ky#retry](https://github.com/sindresorhus/ky#retry)

to know more.

#### httpOptions

Type: \<object\>

Any additional option will be passed to

[ky](https://github.com/sindresorhus/ky)

, the internal HTTP client used under the hood.

That's necessary for some user workflow, e.g., passing [authentication](https://microlink.io/docs/api/parameters/headers) headers without exposing credentials.

### mql.stream(\<url\>, \[options\], \[httpoptions\])

Returns a

[Stream](https://nodejs.org/api/stream.html)

instead of a Promise.

### mql.buffer(\<url\>, \[options\], \[httpoptions\])

Returns a

[Buffer](https://nodejs.org/api/buffer.html)

instead of a Promise.

Last updated on April 8, 2026

[Edit on GitHub](https://github.com/microlinkhq/www/blob/master/src/content/docs/mql/getting-started/api.md)