Agentic Platform
Documentation API reference Tools Skills

Tools

Keywords Extractor

keywords_extractor Keywords

Extract top X keywords from given URLs

Extract top X keywords from given URLs.

Playground

Your organization, project and token stay in this browser's local storage and are sent straight to the API — this page never sees them.

POST
item
urls required List of URLs we want to retrieve the keywords
config
limit Limit of top keywords to retrieve per URL
start_date Start date of the period (format YYYY-MM-DD)
end_date End date of the period
exclude_branded Whether to exclude branded keywords
min_ctr Minimum CTR to filter keywords (between 0 and 1)
sort Metric to sort keywords by (descending order)

Billing

Fixed cost per item requested, plus the data the query scans. Narrowing the date range you ask for is what keeps this down.

These usage SKUs can be charged on a call.

SKU Credits Description
Tool call 1 per request Charged once per successful item, on top of any usage below.
Data scanned 6,250 per TiB scanned Analytical queries are billed on the volume of data the query reads, not on the rows it returns: a narrow filter over a large table can still scan the whole table.

Schemas

item is what you send, config how the tool behaves, and the response is what you get back.

Item

object
Properties
urls array required

List of URLs we want to retrieve the keywords

Example
{
  "urls": [
    "string"
  ]
}

Configuration

object
Properties
limit integer

Limit of top keywords to retrieve per URL

Default: 10

start_date string

Start date of the period (format YYYY-MM-DD)

Default: "2026-08-17"

end_date string

End date of the period

Default: "2026-09-16"

exclude_branded boolean

Whether to exclude branded keywords

Default: true

min_ctr number | null

Minimum CTR to filter keywords (between 0 and 1)

Default: null

sort string

Metric to sort keywords by (descending order)

Values: impressions clicks

Default: "impressions"

Example
{
  "limit": 10,
  "start_date": "2026-08-17",
  "end_date": "2026-09-16",
  "exclude_branded": true,
  "min_ctr": null,
  "sort": "impressions"
}

Response

object
Properties
results KeywordsExtractorEntity required

List of keywords per URL

Items: KeywordsExtractorEntity

Example
{
  "results": [
    {
      "url": "string",
      "keywords": [
        "string"
      ]
    }
  ]
}

Type Definitions

1 type

These are the available sub-object types that can be used in the properties above.

KeywordsExtractorEntity object
#
url string required
keywords array required

Endpoints

POST http://agents.botify.com/{organization}/{project}/keywords_extractor/process
POST http://agents.botify.com/{organization}/{project}/keywords_extractor/batch_process
POST http://agents.botify.com/{organization}/{project}/keywords_extractor/async_process
POST http://agents.botify.com/{organization}/{project}/keywords_extractor/async_batch_process

See running a long job in the background for the polling flow.

cURL

curl -X POST "http://agents.botify.com/{organization}/{project}/keywords_extractor/process" \
  -H "Authorization: Bearer $BOTIFY_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "item": {
    "urls": []
  }
}'

Raw metadata