apyhub
ARTIFICIAL INTELLIGENCE · DATA EXTRACTION

Analyse Keywords API

Hosted on ApyHub

What it does

Keyword Grouping analyzes one to ten publicly accessible article URLs and returns ranked keyword groups for the content it finds. Send article URLs, optionally include an article_length hint, and set return_results_top if you want to limit how many groups come back.

Use Keyword Grouping when you need to compare articles by topic, cluster related terms across a content library, or pull out the main themes from a batch of pages. The service is built for article analysis, so it works well for editorial workflows, content research, and SEO tooling where you want grouped terms instead of a flat keyword list.

The response contains data.keyword_groups, an array of objects with a numeric score and a keywords array. Each group represents a ranked set of related keywords extracted from the provided articles, which makes it easy to sort by relevance or feed the results into downstream classification, search, or reporting jobs.

Because the input is limited to public article URLs, this is a good fit for pipelines that analyze published pages without uploading files or raw HTML. Send the URLs, get structured keyword groups back, and use them to identify repeated topics, build content clusters, or surface the terms that matter most across a set of articles.

POST
Extract and group keywords from article URLs
http://localhost:8080/apyhub/extract-and-group-keywords-from-article
QUICKSTARTGUIDE

Quickstart

Send a list of article URLs to extract and group their keywords.

curl -X POST "http://localhost:8080/apyhub/extract-and-group-keywords-from-article" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "urls": [
      "https://assets.apyhub.com/samples/sample.html"
    ]
  }'

What you'll get back

Returns a JSON object with a data object. Inside data, keyword_groups is an array of ranked keyword groups, and each group contains a numeric score and a keywords array of strings.

{
  "data": {
    "individual_results": [
      {
        "url": "https://assets.apyhub.com/samples/sample.html",
        "latent_semantic_keywords": [
          "eligendi",
          "expedita",
          "eos",
          "alias",
          "aliquid",
          "dignissimos",
          "ea",
          "eaque",
          "aliquam",
          "dicta"
        ],
        "high_frequency_keywords": [
          {
            "keyword": "et",
            "frequency": 56
          },
          {
            "keyword": "ut",
            "frequency": 35
          }
        ],
        "high_frequency_keyphrases": [
          {
            "keyphrase": "consequatur et",
            "frequency": 3
          },
          {
            "keyphrase": "mollitia et",
            "frequency": 3
          }
        ],
        "preview": "Lorem ipsum dolor sit amet...."
      }
    ],
    "aggregated_results": null
  }
}
TRY ITLIVE · 200 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
body*
urls*
Publicly accessible article URLs to analyse. Maximum 10; extras are ignored.
Expected article character length hint (optional; helps the parser tune extraction).
Maximum number of keyword groups to return (5–50). Omit to return all groups.

About this endpoint

What it does

Extracts and groups keywords from one or more publicly accessible article URLs. The request sends a list of URLs and optional tuning fields, and the response returns ranked keyword groups.

Request Body

ParameterTypeMandatoryDescription
urlsString ArrayYesPublicly accessible article URLs to analyse. Maximum 10; extras are ignored.
article_lengthIntegerNoExpected article character length hint (optional; helps the parser tune extraction).
return_results_topIntegerNoMaximum number of keyword groups to return (5–50). Omit to return all groups.

Response

Returns a JSON object with a data field containing keyword extraction results. The response includes an individual_results array with keyword analysis for each processed URL. If aggregation is requested, the aggregated_results field contains the combined analysis; otherwise, it is null.

ParameterTypeMandatoryDescription
dataObjectYesWrapper object containing the response payload.
data.individual_resultsObject ArrayYesKeyword extraction results for each processed URL.
data.individual_results[].urlStringYesURL of the processed article or webpage.
data.individual_results[].latent_semantic_keywordsString ArrayYesList of latent semantic (contextually related) keywords extracted from the content.
data.individual_results[].high_frequency_keywordsObject ArrayYesMost frequently occurring keywords with their occurrence counts.
data.individual_results[].high_frequency_keywords[].keywordStringYesExtracted keyword.
data.individual_results[].high_frequency_keywords[].frequencyIntegerYesNumber of times the keyword appears in the content.
data.individual_results[].high_frequency_keyphrasesObject ArrayYesMost frequently occurring keyphrases with their occurrence counts.
data.individual_results[].high_frequency_keyphrases[].keyphraseStringYesExtracted keyphrase.
data.individual_results[].high_frequency_keyphrases[].frequencyIntegerYesNumber of times the keyphrase appears in the content.
data.individual_results[].previewStringYesShort preview of the processed content.
data.aggregated_resultsObject | NullYesAggregated keyword extraction results across all processed URLs, or null if aggregation is not available.

Body

Name
Type
Description
bodyREQUIRED
object
▣ COMMON ERRORS

Errors any endpoint can return

400bad_request

Required parameter missing or malformed body.

401unauthorized

API key missing, revoked, or not authorized for this service.

429rate_limited

Your plan's per-second rate exceeded. Retry with exponential backoff.

503upstream_busy

Backend temporarily unavailable. Try again in a few seconds.