apyhub
ARTIFICIAL INTELLIGENCE · SEO

Generate Keywords/Tags API

What it does

Keyword Generator turns your source content into a list of keywords you can use for SEO, tagging, categorisation, or content planning. Send it a content string, optionally add context for extra processing instructions, choose a language, set a voice_tone, and cap the output with max_quantity.

Use it when you need fast keyword ideas from an article, product description, landing page draft, or any other block of text. The job runs asynchronously: submit the content, get back a job_id and status_url, then poll the job status endpoint until the result is ready.

When the job completes, the status response includes a data object with id, type, and attributes. Inside attributes, you get the job status and the generated result array of strings. That makes it easy to pipe the output into search workflows, metadata editors, internal taxonomies, or AI-assisted publishing pipelines.

Keyword Generator is a good fit when you want a lightweight way to derive keyword lists from raw copy without building your own extraction logic.

▣ ENDPOINT 01 / 02
POST
Submit Generate Keywords Tags job
http://localhost:8080/sharpapi/generate-keywords-tags
QUICKSTARTGUIDE

Quickstart

Submit content to generate keyword tags as an asynchronous job.

curl -X POST "http://localhost:8080/sharpapi/generate-keywords-tags" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"content":"How to grow a small business online","language":"en"}'

What you'll get back

Returns a JSON object with two required string fields: job_id is the UUID of the submitted job, and status_url is the URL to check its status.

{
  "status_url": "https://apyhub.com/services/provider/sharpapi/api/v1/content/keywords/job/status/23e41760-5bb8-4f05-b5ab-c012b3c723e1",
  "job_id": "23e41760-5bb8-4f05-b5ab-c012b3c723e1"
}
TRY ITLIVE · 50 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*
Provide the content to generate keywords.
An optional context parameter is also available. It can be used to add additional processing instructions for the content.
Specify the language of the output, defaults to English
Specify the voice tone of the output. It can be adjectives like funny or joyous, or even the name of a famous writer.
Maximum number of keywords to generate.

About this endpoint

What it does

Submits an asynchronous job to generate keywords/tags from provided content. The request sends the content and optional processing parameters, and the response returns identifiers you can use to track the job status.

Request Body

ParameterTypeMandatoryDescription
contentStringYesProvide the content to generate keywords.
contextStringNoOptional context used to add additional processing instructions for the content.
languageStringNoSpecify the language of the output. Defaults to English.
voice_toneStringNoSpecify the voice tone of the output, such as an adjective like funny or joyous, or the name of a famous writer.
max_quantityNumberNoMaximum number of keywords to generate.

Response

Returns a JSON object with two required string fields: job_id and status_url. job_id is a UUID identifier for the submitted asynchronous job, and status_url is the URI used to check the job status.

ParameterTypeMandatoryDescription
job_idStringYesIdentifier of the submitted asynchronous job. Format: UUID.
status_urlStringYesURL used to check the submitted job status. Format: URI.

Notes

This endpoint kicks off an async job and returns immediately with a job identifier; the actual work runs in the background. Pair this call with the corresponding job_check endpoint — poll that until the status reaches a terminal state to retrieve the result. Use the returned job_id to track the job.

Body

Name
Type
Description
bodyREQUIRED
object
▣ ENDPOINT 02 / 02
GET
Get Generate Keywords Tags job status
http://localhost:8080/sharpapi/generate-keywords-tags/job/status/:job_id
QUICKSTARTGUIDE

Quickstart

Fetch the status of a keyword-tags generation job by its job ID.

curl -X GET "http://localhost:8080/sharpapi/generate-keywords-tags/job/status/:job_id" \
  -H "apy-token: $APY_TOKEN"

What you'll get back

Returns a JSON object with a data object. The data object can include id, type, and an attributes object; attributes may contain type, result (an array of strings), and status.

{
  "data": {
    "id": "job_123",
    "type": "job",
    "attributes": {
      "type": "generate-keywords-tags",
      "result": ["keyword one", "keyword two"],
      "status": "completed"
    }
  }
}
TRY ITLIVE · 1 ATOM
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.

About this endpoint

What it does

Checks the status of a Generate Keywords Tags background job identified by its job ID and returns the job record in a JSON object.

Path Parameter(s)

AttributeTypeMandatoryDescription
job_idStringYesThe job identifier, formatted as a UUID.

Response

Returns a JSON object with a data object field. The data object contains id and type string fields, plus an attributes object with type, result, and status fields.

AttributeTypeMandatoryDescription
dataObjectNoThe job record object.
data.idStringNoThe job identifier.
data.typeStringNoThe top-level type value for the job record.
data.attributesObjectNoThe attributes object containing job details.
data.attributes.typeStringNoThe attribute-level type value.
data.attributes.resultString ArrayNoThe generated keywords/tags result values.
data.attributes.statusStringNoThe current job status.

Path parameters

Name
Type
Description
job_idREQUIRED
string
▣ 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.