apyhub
ARTIFICIAL INTELLIGENCE · MARKETING

Generate Product Introduction API

What it does

Product Introduction Generator creates a product introduction from your content. Send a content string, and you can also set language, max_length, and voice_tone in the request body to steer the output.

Use it when you need a concise intro for a landing page, app store listing, marketing draft, or internal product brief. The POST request returns a job_id and a status_url, so generation runs asynchronously and you can poll for completion without blocking your workflow.

Check the job status with job_id through GET /job/status/:job_id. The status response includes the job id, the current status (queued, running, success, or failed), and, when complete, a result object containing product_intro.

Product Introduction Generator fits pipelines that need AI-written copy with a controllable tone and length, while keeping the response format simple for downstream automation.

▣ ENDPOINT 01 / 02
POST
Generate Product Introduction
http://localhost:8080/sharpapi/generate-product-introduction
QUICKSTARTGUIDE

Quickstart

Submit product content to generate an introduction. This call sends the required content field in a JSON body.

curl -X POST "http://localhost:8080/sharpapi/generate-product-introduction" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "Our smart water bottle tracks hydration and reminds you to drink throughout the day."
  }'

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/ecommerce/product_intro/job/status/7b421ced-711f-4583-a848-9f531e91c42f",
  "job_id": "7b421ced-711f-4583-a848-9f531e91c42f"
}
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*

About this endpoint

What it does

Submits a job to generate a product introduction from the provided content. The endpoint returns identifiers you can use to check job progress later.

Request Body

ParameterTypeMandatoryDescription
contentStringYesInput content used to generate the product introduction.
languageStringNoLanguage for the generated introduction. Default: English.
max_lengthIntegerNoMaximum length for the generated introduction.
voice_toneStringNoDesired tone of voice for the generated introduction.

Response

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. Success response: 200.

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. Extract the job identifier from job_id, and use status_url to poll job progress.

Body

Name
Type
Description
bodyREQUIRED
object
▣ ENDPOINT 02 / 02
GET
Check Product Intro Status
http://localhost:8080/sharpapi/generate-product-introduction/job/status/:job_id
QUICKSTARTGUIDE

Quickstart

Check the status of a product introduction job by its job_id.

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

What you'll get back

Returns a JSON object with a data object. data includes the job id and type, plus an attributes object with status and, when available, result.product_intro.

{
  "data": {
    "id": "uuid-1234",
    "type": "api_job_result",
    "attributes": {
      "status": "success",
      "result": {
        "product_intro": "Introducing our new wireless earbuds, designed for all-day comfort and clear sound."
      }
    }
  }
}
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 product-introduction generation job by job ID. The response returns a data object with the job identifier, current status, and, when available, the generated product introduction result.

Path Parameter(s)

AttributeTypeMandatoryDescription
job_idStringYesThe job's unique UUID.

Response

Returns a JSON object with a data object. Inside data, id is a string job identifier, type is a string, and attributes is an object containing status and, when the job has completed successfully, result.product_intro.

AttributeTypeMandatoryDescription
dataObjectYesThe response wrapper containing the job record.
data.idStringNoThe job's unique UUID.
data.typeStringNoThe resource type. The schema example shows api_job_result.
data.attributesObjectNoJob metadata, including status and result fields.
data.attributes.statusENUMNoCurrent status of the asynchronous job. Allowed values: running, failed, queued, success.
data.attributes.resultObjectNoThe generated result payload. Populated when the job reaches success.
data.attributes.result.product_introStringNoThe generated product introduction text.

Notes

Poll this endpoint with the job_id returned by the submit call. The data.attributes.status field cycles through transitional values (queued, running) before reaching a terminal state (success, failed). The result field data.attributes.result.product_intro is only populated once status is success; treat it as absent otherwise.

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.