Quaro Quaro API Documentation

Quaro API (2.0.0)

Download OpenAPI specification:

Quaro Public API documentation for API version 2.

Getting Started

Base URL

https://api.quaro.io/v2/

Authentication

The API supports two authentication methods:

Recommended: Send your API key as a Bearer token in the Authorization header.

Authorization: Bearer <API_KEY>

Alternative for POST endpoints: Send the API key in the JSON request body as key.

{
  "key": "<API_KEY>"
}

In the endpoint documentation, only Bearer Auth is shown as the formal OpenAPI authentication method. The key body attribute remains supported as a compatibility option.

Rate Limits

The default rate limit is 3 requests per second, unless otherwise specified on an endpoint.

Product Areas

The API is currently organized into the following documented product areas:

  • Research Suite
  • Monitoring Suite

Some endpoints are global and not tied to one suite.

Account

Account-level endpoints such as credits.

Get credits overview

Retrieve a credit overview for all booked products available in your Quaro account.

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "data": { }
}

Research Suite - Search Volume

Shared Search Volume endpoints.

Search volume status

Retrieve the latest available month for Quaro Search Volume and Google Search Volume data.

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "data": { }
}

Research Suite - Quaro Search Volume

Quaro search volume endpoints.

Quaro locations

Retrieve the available location and language codes for Quaro Search Volume. Use this endpoint to discover valid location_code and language_code values before requesting keyword metrics.

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "data": { }
}

Quaro search volume

Retrieve search volume, CPC, SEA competition, categories, and average search volume for the specified keywords.

The data is based on the Google Ads API. Keyword metrics are updated once a month. Historical metrics may be available from the beginning of 2019, depending on how long metrics have been available for a keyword.

Not every keyword is monitored in this dataset. If a keyword is not monitored, it can be missing in the response.

Authorizations:
bearerAuth
Request Body schema: application/json
required
keywords
required
Array of strings <= 700 items
location_code
required
integer

Available locations can be fetched via the Quaro locations endpoint.

language_code
required
string

Available languages can be fetched via the Quaro locations endpoint.

key
string

Optional API key body attribute. Use this only as an alternative to the Authorization Bearer header.

Responses

Request samples

Content type
application/json
{
  • "keywords": [
    ],
  • "location_code": 2276,
  • "language_code": "de"
}

Response samples

Content type
application/json
{
  • "data": { }
}

Research Suite - Google Search Volume

Google search volume endpoints.

Google locations

Retrieve the available location codes for Google Search Volume. Use this endpoint to discover valid location_code values before requesting keyword metrics.

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "data": { }
}

Google search volume

Retrieve search volume, CPC, SEA competition, and average search volume for the requested keywords.

Rate limit: 2 requests per minute. If location_code is omitted, Quaro returns international Google Ads data.

Use sv_length to control how many months are included in the historical output.

Authorizations:
bearerAuth
Request Body schema: application/json
required
keywords
required
Array of strings <= 1000 items
key
string

Optional API key body attribute. Use this only as an alternative to the Authorization Bearer header.

location_code
integer or null

If omitted, international Adwords data is returned.

sv_length
integer <= 48
Default: 12

Responses

Request samples

Content type
application/json
{
  • "keywords": [
    ],
  • "location_code": 2276
}

Response samples

Content type
application/json
{
  • "data": { }
}

Google search volume demo

Retrieve demo data for search volume, CPC, SEA competition, and average search volume. This endpoint does not consume credits.

If location_code is omitted, Quaro returns international Google Ads data.

Authorizations:
bearerAuth
Request Body schema: application/json
required
keywords
required
Array of strings <= 1000 items
key
string

Optional API key body attribute. Use this only as an alternative to the Authorization Bearer header.

location_code
integer or null

If omitted, international Adwords data is returned.

Responses

Request samples

Content type
application/json
{
  • "keywords": [
    ],
  • "location_code": 2276
}

Response samples

Content type
application/json
{
  • "data": { }
}

Research Suite - Keyword Discovery

Domain and URL keyword discovery endpoints.

Get Google keywords for domain

Retrieve keywords, search volume, CPC, SEA competition, categories, and average search volume for a domain.

If location_code is omitted, Quaro returns international Google Ads data. Use sv_length to control how many months are included in the historical output.

Authorizations:
bearerAuth
Request Body schema: application/json
required
domain
required
string

The target domain to analyze.

key
string

Optional API key body attribute. Use this only as an alternative to the Authorization Bearer header.

location_code
integer or null

If omitted, Quaro returns international Google Ads data.

sv_length
integer <= 48
Default: 12

Number of months to include. Default: 12. Maximum: 48.

Responses

Request samples

Content type
application/json
{
  • "domain": "quaro.io",
  • "location_code": 2276,
  • "sv_length": 12
}

Response samples

Content type
application/json
{
  • "data": { }
}

Get Google keywords for URL

Retrieve keywords, search volume, CPC, SEA competition, categories, and average search volume for a specific URL.

Use sv_length to control how many months are included in the historical output.

Authorizations:
bearerAuth
Request Body schema: application/json
required
url
required
string

The target URL or domain to analyze.

key
string

Optional API key body attribute. Use this only as an alternative to the Authorization Bearer header.

location_code
integer or null

If omitted, Quaro returns international Google Ads data.

sv_length
integer <= 48
Default: 12

Number of months to include. Default: 12. Maximum: 48.

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "data": { }
}

Research Suite - Collections

Collection retrieval and collection keyword endpoints.

Get collection

Return the saved data of a single collection.

Authorizations:
bearerAuth
Request Body schema: application/json
required
collection
required
string

Name of the collection stored in Quaro.

key
string

Optional API key body attribute. Use this only as an alternative to the Authorization Bearer header.

Responses

Request samples

Content type
application/json
{
  • "collection": "collection_name"
}

Response samples

Content type
application/json
{
  • "data": { }
}

Get collection keywords

Return the keywords of a single collection.

Authorizations:
bearerAuth
Request Body schema: application/json
required
collection
required
string

Name of the collection stored in Quaro.

key
string

Optional API key body attribute. Use this only as an alternative to the Authorization Bearer header.

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "collection": "collection_name"
}

Response samples

Content type
application/json
{
  • "data": { }
}

Research Suite - Categories

Category-related research endpoints.

Get categories

Retrieve Google categories and any custom categories saved in Quaro.

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "data": { }
}

Monitoring Suite - Projects

Project endpoints for Quaro monitoring projects.

Get monitoring projects

Retrieve all Quaro monitoring projects available in your Quaro workspace.

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "data": { }
}

Monitoring Suite - Categories

Category endpoints for Quaro monitoring projects.

Get monitoring project categories

Retrieve the categories configured for a Quaro monitoring project. Use category_id or category_ids to narrow the response and sv_length to limit monthly search-volume history.

Authorizations:
bearerAuth
Request Body schema: application/json
required
project_id
required
string

ID of the Quaro monitoring project. You can find it by opening the project in app.quaro.io and copying the last segment of the URL.

key
string

Optional API key body attribute. Use this only as an alternative to the Authorization Bearer header.

category_id
string

Optional single category ID filter.

category_ids
Array of strings <= 100 items

Optional list of category IDs to filter by. Maximum 100 category IDs per request.

sv_length
integer >= 1

Optional number of monthly search-volume history entries to return per category.

Responses

Request samples

Content type
application/json
{
  • "project_id": "monitoring_project_id",
  • "category_ids": [
    ],
  • "sv_length": 12
}

Response samples

Content type
application/json
{
  • "data": { }
}

Monitoring Suite - Keywords

Keyword endpoints for Quaro monitoring projects.

Get project keywords

Retrieve keywords for a monitoring project. Supports pagination through skip and limit.

Authorizations:
bearerAuth
Request Body schema: application/json
required
project_id
required
string

ID of the Quaro monitoring project. You can find it by opening the project in app.quaro.io and copying the last segment of the URL.

key
string

Optional API key body attribute. Use this only as an alternative to the Authorization Bearer header.

skip
integer >= 0
Default: 0

Optional number of keyword records to skip before returning results.

limit
integer [ 1 .. 10000 ]
Default: 1000

Optional maximum number of keyword records to return. Defaults to 1000 and is capped at 10000.

Responses

Request samples

Content type
application/json
{
  • "project_id": "monitoring_project_id",
  • "skip": 0,
  • "limit": 1000
}

Response samples

Content type
application/json
{
  • "data": { }
}

Add project keywords

Add up to 1000 keywords to a Quaro monitoring project. Rate limit: 1 request per 10 seconds.

Authorizations:
bearerAuth
Request Body schema: application/json
required
project_id
required
string

ID of the Quaro monitoring project. You can find it by opening the project in app.quaro.io and copying the last segment of the URL.

category_id
required
string

Category ID from /monitoring/projects/categories.

keywords
required
Array of strings

Keywords to add to the monitoring project.

key
string

Optional API key body attribute. Use this only as an alternative to the Authorization Bearer header.

Responses

Request samples

Content type
application/json
{
  • "project_id": "monitoring_project_id",
  • "category_id": "category_id",
  • "keywords": [
    ]
}

Response samples

Content type
application/json
{
  • "data": { }
}

Delete project keywords

Delete keywords from a Quaro monitoring project.

Authorizations:
bearerAuth
Request Body schema: application/json
required
project_id
required
string

ID of the Quaro monitoring project. You can find it by opening the project in app.quaro.io and copying the last segment of the URL.

keywords
required
Array of strings

Keywords to remove from the monitoring project.

key
string

Optional API key body attribute. Use this only as an alternative to the Authorization Bearer header.

Responses

Request samples

Content type
application/json
{
  • "project_id": "monitoring_project_id",
  • "keywords": [
    ]
}

Response samples

Content type
application/json
{
  • "data": { }
}

Monitoring Suite - Competitors

Competitor analysis endpoints for Quaro monitoring projects.

Get competitors

Retrieve competitors for a monitoring project. Supports pagination, optional category filtering and optional raw query/sort objects.

Authorizations:
bearerAuth
Request Body schema: application/json
required
project_id
required
string

ID of the Quaro monitoring project. You can find it by opening the project in app.quaro.io and copying the last segment of the URL.

key
string

Optional API key body attribute. Use this only as an alternative to the Authorization Bearer header.

category_id
string or null

Optional category ID filter. Omit, set to null, or send an empty string to use the project-level competitor view.

object

Optional advanced query object. If omitted, the API uses the current project ID automatically.

object

Optional sort object. Defaults to sorting by current visibility descending.

skip
integer >= 0
Default: 0

Optional number of competitor records to skip before returning results.

limit
integer [ 1 .. 100 ]
Default: 25

Optional maximum number of competitors to return. Defaults to 25 and is capped at 100.

Responses

Request samples

Content type
application/json
{
  • "project_id": "monitoring_project_id",
  • "category_id": "category_id",
  • "skip": 0,
  • "limit": 25
}

Response samples

Content type
application/json
{
  • "data": { }
}

Search competitors by domain

Retrieve competitor records for one or more domains in a monitoring project. domains is required and may contain up to 100 domains.

Authorizations:
bearerAuth
Request Body schema: application/json
required
project_id
required
string

ID of the Quaro monitoring project. You can find it by opening the project in app.quaro.io and copying the last segment of the URL.

domains
required
Array of strings <= 100 items

Domains to search for. Maximum 100 domains per request.

key
string

Optional API key body attribute. Use this only as an alternative to the Authorization Bearer header.

category_id
string or null

Optional category ID filter. Omit, set to null, or send an empty string to use the project-level competitor view.

object

Optional sort object. Defaults to sorting by current visibility descending.

limit
integer [ 1 .. 100 ]

Optional maximum number of competitors to return. Defaults to the number of requested domains and is capped at 100.

Responses

Request samples

Content type
application/json
{
  • "project_id": "monitoring_project_id",
  • "domains": [
    ],
  • "category_id": "category_id"
}

Response samples

Content type
application/json
{
  • "data": { }
}

Get top competitors

Retrieve top competitors for a monitoring project. Supports category filters, pagination and custom sorting.

Authorizations:
bearerAuth
Request Body schema: application/json
required
project_id
required
string

ID of the Quaro monitoring project. You can find it by opening the project in app.quaro.io and copying the last segment of the URL.

key
string

Optional API key body attribute. Use this only as an alternative to the Authorization Bearer header.

category_id
string or null

Optional single category ID filter. Omit, set to null, or send an empty string for project-level competitors.

category_ids
Array of strings

Optional list of category IDs. If multiple IDs are sent, competitors are merged across those categories.

object

Optional sort object. Defaults to sorting by current visibility descending.

skip
integer >= 0
Default: 0

Optional number of competitors to skip before returning results.

limit
integer [ 1 .. 100 ]
Default: 25

Optional maximum number of competitors to return. Defaults to 25 and is capped at 100.

Responses

Request samples

Content type
application/json
{
  • "project_id": "monitoring_project_id",
  • "category_ids": [
    ],
  • "skip": 0,
  • "limit": 25
}

Response samples

Content type
application/json
{
  • "data": { }
}

Get competitors visibility chart data

Retrieve visibility chart data for competitors. Supports optional domain filtering, category filtering, pagination and custom sorting.

Authorizations:
bearerAuth
Request Body schema: application/json
required
project_id
required
string

ID of the Quaro monitoring project. You can find it by opening the project in app.quaro.io and copying the last segment of the URL.

key
string

Optional API key body attribute. Use this only as an alternative to the Authorization Bearer header.

domains
Array of strings <= 100 items

Optional list of domains to include. Maximum 100 domains per request.

category_id
string or null

Optional category ID filter. Omit, set to null, or send an empty string to use the project-level competitor view.

object

Optional advanced query object. If omitted, the API uses the current project ID automatically.

object

Optional sort object. Defaults to sorting by current visibility descending.

skip
integer >= 0
Default: 0

Optional number of competitor records to skip before returning chart data.

limit
integer [ 1 .. 1000 ]
Default: 25

Optional maximum number of source competitors. Defaults to 25 and is capped at 1000.

Responses

Request samples

Content type
application/json
{
  • "project_id": "monitoring_project_id",
  • "domains": [
    ],
  • "category_id": "category_id",
  • "limit": 25
}

Response samples

Content type
application/json
{
  • "data": { }
}

Discover competitors

Discover competitor changes between two dates. date_current and date_prev are required. Use category_id for one category or category_ids for bulk mode across multiple categories.

Authorizations:
bearerAuth
Request Body schema: application/json
required
project_id
required
string

ID of the Quaro monitoring project. You can find it by opening the project in app.quaro.io and copying the last segment of the URL.

date_current
required
string <date>

Current comparison date.

date_prev
required
string <date>

Previous comparison date.

key
string

Optional API key body attribute. Use this only as an alternative to the Authorization Bearer header.

category_id
string

Optional single category ID filter.

category_ids
Array of strings <= 50 items

Optional category IDs for bulk discovery mode. Maximum 50 category IDs per request.

object

Optional sort object used to order discovery results.

skip
integer [ 0 .. 1000000 ]
Default: 0

Optional number of discovery results to skip in single-category mode.

limit
integer >= 1
Default: 50

Optional maximum number of discovery results in single-category mode. If omitted, the current code uses 50. Explicit positive values are capped at 25.

skip_per_category
integer [ 0 .. 1000000 ]
Default: 0

Optional number of discovery results to skip per category in bulk mode. Falls back to skip.

limit_per_category
integer >= 1

Optional maximum number of discovery results per category in bulk mode. Falls back to limit; explicit positive values are capped at 25.

Responses

Request samples

Content type
application/json
{
  • "project_id": "monitoring_project_id",
  • "date_current": "2026-05-01",
  • "date_prev": "2026-04-01",
  • "category_id": "category_id",
  • "limit": 25
}

Response samples

Content type
application/json
{
  • "data": { }
}

Get competitor domain visibility history

Retrieve visibility history for one competitor domain. domain must contain exactly one domain. Use competitors/search for multiple domains.

Authorizations:
bearerAuth
Request Body schema: application/json
required
project_id
required
string

ID of the Quaro monitoring project. You can find it by opening the project in app.quaro.io and copying the last segment of the URL.

domain
required
string

Competitor domain. Exactly one domain is supported.

key
string

Optional API key body attribute. Use this only as an alternative to the Authorization Bearer header.

category_id
string

Optional category ID filter. The API resolves matching category IDs and category names internally.

months
integer >= 1
Default: 24

Optional number of history months to return. Defaults to 24.

include_categories
boolean

Optional flag controlling whether category-level history is included. Defaults to true.

Responses

Request samples

Content type
application/json
{
  • "project_id": "monitoring_project_id",
  • "domain": "example.com",
  • "months": 24,
  • "include_categories": true
}

Response samples

Content type
application/json
{
  • "data": { }
}

Get seller shopping visibility

Retrieve shopping visibility history for one or more seller names. Use seller_name or seller_names.

Authorizations:
bearerAuth
Request Body schema: application/json
required
Any of
seller_name
required
string

Single seller name to retrieve. Preferred for one seller.

project_id
required
string

ID of the Quaro monitoring project. You can find it by opening the project in app.quaro.io and copying the last segment of the URL.

key
string

Optional API key body attribute. Use this only as an alternative to the Authorization Bearer header.

seller_names
Array of strings <= 100 items

Seller names to retrieve. Maximum 100 seller names per request.

category_id
string

Optional category ID filter.

months
integer >= 1
Default: 24

Optional number of history months to return. Defaults to 24.

Responses

Request samples

Content type
application/json
{
  • "project_id": "monitoring_project_id",
  • "seller_names": [
    ],
  • "months": 24
}

Response samples

Content type
application/json
{
  • "data": { }
}

Monitoring Suite - Visibility

Visibility history endpoints for Quaro monitoring projects.

Get project visibility history

Retrieve project visibility history. Use scope to choose project-level history only or history including category breakdowns.

Authorizations:
bearerAuth
Request Body schema: application/json
required
project_id
required
string

ID of the Quaro monitoring project. You can find it by opening the project in app.quaro.io and copying the last segment of the URL.

key
string

Optional API key body attribute. Use this only as an alternative to the Authorization Bearer header.

category_id
string

Optional category ID filter.

scope
string
Default: "categories"
Enum: "project" "categories"

Optional response scope. categories includes category breakdowns; project returns project-level history only.

months
integer [ 1 .. 48 ]
Default: 48

Optional number of history months to return. Defaults to 48 and is capped at 48.

Responses

Request samples

Content type
application/json
{
  • "project_id": "monitoring_project_id",
  • "scope": "categories",
  • "months": 24
}

Response samples

Content type
application/json
{
  • "data": { }
}