apyhub
MARKETING · SEO

SEO Tags Generator API

What it does

SEO Tag Generator turns page content into a structured set of SEO meta tags. Send content, and optionally set language and voice_tone; the job returns a job_id and a status_url you can poll for completion.

Use it when you need consistent metadata for blog posts, landing pages, product pages, or CMS imports without hand-writing titles and descriptions for every page. The output is a meta_tags object containing fields such as title, description, keywords, author, og:title, og:description, og:image, og:url, og:type, og:site_name, twitter:card, twitter:title, twitter:description, twitter:image, and twitter:creator.

Because generation runs asynchronously, the workflow fits batch jobs as well as on-demand content pipelines. You submit the content once, check job status by job_id, and read the generated tags from the result when the job succeeds.

SEO Tag Generator is useful anywhere you want page metadata that is derived from the source text and returned in a predictable structure for publishing, preview cards, and search optimization workflows.

▣ ENDPOINT 01 / 02
POST
Generate SEO Tags
http://localhost:8080/sharpapi/generate-seo-tags
QUICKSTARTGUIDE

Quickstart

Submit content to generate SEO tags asynchronously using the required content field.

curl -X POST "http://localhost:8080/sharpapi/generate-seo-tags" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "How to improve website SEO with simple on-page techniques."
  }'

What you'll get back

Returns a JSON object with job_id and status_url string fields. job_id is the unique identifier for the submitted job, and status_url is the URL to poll for job status.

{
  "status_url": "https://apyhub.com/services/provider/sharpapi/api/v1/seo/generate_tags/job/status/fbb41657-811b-4c96-9929-4783b9504c6f",
  "job_id": "fbb41657-811b-4c96-9929-4783b9504c6f"
}
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 SEO tags.
Specify the language of the output.
Specify the voice tone of the output. It can be adjectives like funny or joyous, or even the name of a famous writer.

About this endpoint

What it does

Submits content to generate SEO tags asynchronously. The request body includes the source content to analyze, with optional language and voice_tone settings, and the response returns a job identifier plus a status URL to poll for completion.

Request Body

ParameterTypeMandatoryDescription
contentStringYesProvide the content to generate SEO tags.
languageStringNoSpecify the language of the output. Default: English.
voice_toneStringNoSpecify the voice tone of the output. It can be adjectives like funny or joyous, or even the name of a famous writer.

Response

Returns a JSON object with job_id and status_url string fields. Use job_id as the unique identifier for the submitted job, and status_url to poll for job status. This is a 200 success response.

ParameterTypeMandatoryDescription
job_idStringYesThe unique identifier for the submitted job.
status_urlStringYesThe URL to poll for job status.

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 job_id to track the job, and status_url to poll for completion.

Body

Name
Type
Description
bodyREQUIRED
object
▣ ENDPOINT 02 / 02
GET
Check SEO Tags Status
http://localhost:8080/sharpapi/generate-seo-tags/job/status/:job_id
QUICKSTARTGUIDE

Quickstart

Check the status of a generated SEO tags job by passing its job_id in the URL path.

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

What you'll get back

Returns a JSON object with a data object. Inside data, id is the job UUID, type is the job result type, and attributes.status is the current job status. When the job succeeds, attributes.result.meta_tags contains the generated SEO meta tags.

{
  "data": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "type": "api_job_result",
    "attributes": {
      "type": "seo_generate_tags",
      "status": "success",
      "result": {
        "meta_tags": {
          "title": "Example Page Title",
          "description": "Example page description",
          "keywords": "seo, meta tags, example"
        }
      }
    }
  }
}
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 an asynchronous SEO tag generation job identified by job_id. When the job reaches success, the response includes the generated SEO meta tags in the job result.

Path Parameter(s)

AttributeTypeMandatoryDescription
job_idStringYesThe job's unique UUID.

Response

Returns a JSON object with a data object field. data contains the job id string, the job type string, and an attributes object with the job operation type, current status, and, when the job has succeeded, a nested result object containing meta_tags.

AttributeTypeMandatoryDescription
dataObjectYesJob response wrapper. Contains id, type, and attributes.
data.idStringNoThe job's unique UUID.
data.typeStringNoJob resource type.
data.attributesObjectNoJob attributes wrapper. Contains the operation type, status, and the success result payload.
data.attributes.typeStringNoThe operation type associated with the job.
data.attributes.statusENUMNoCurrent status of the asynchronous job. Allowed values: queued, running, success, failed.
data.attributes.resultObjectNoGenerated SEO meta tag result. Present in the success payload.
data.attributes.result.meta_tagsObjectNoGenerated SEO meta tags.
data.attributes.result.meta_tags.titleStringNoSEO title tag value.
data.attributes.result.meta_tags.authorStringNoAuthor meta tag value.
data.attributes.result.meta_tags.og:urlStringNoOpen Graph URL tag value.
data.attributes.result.meta_tags.og:typeStringNoOpen Graph type tag value.
data.attributes.result.meta_tags.keywordsStringNoKeywords meta tag value.
data.attributes.result.meta_tags.og:imageStringNoOpen Graph image tag value.
data.attributes.result.meta_tags.og:titleStringNoOpen Graph title tag value.
data.attributes.result.meta_tags.descriptionStringNoMeta description tag value.
data.attributes.result.meta_tags.og:site_nameStringNoOpen Graph site name tag value.
data.attributes.result.meta_tags.twitter:cardStringNoTwitter card tag value.
data.attributes.result.meta_tags.twitter:imageStringNoTwitter image tag value.
data.attributes.result.meta_tags.twitter:titleStringNoTwitter title tag value.
data.attributes.result.meta_tags.og:descriptionStringNoOpen Graph description tag value.
data.attributes.result.meta_tags.twitter:creatorStringNoTwitter creator tag value.
data.attributes.result.meta_tags.twitter:descriptionStringNoTwitter description tag value.

Notes

Poll this endpoint with the job_id returned by the submit call. The data.attributes.status field cycles through queued, running, success, and failed. The result fields are only populated once status is success; read the generated SEO meta tags from data.attributes.result.meta_tags.

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.