apyhub
Back
ARTIFICIAL INTELLIGENCE · SMART GENERATION

Paraphrase Text API

What it does

The Paraphrase Text API is an AI paraphrasing API that rewrites text in new words while keeping its meaning. Send the text you want reworded, choose the tone, language and length you need, and get the paraphrased version back as JSON.

You control the rewrite with a few fields. content is the text to paraphrase and is the only required field. voice_tone sets the style, either as an adjective like formal, friendly or funny, or as the name of a famous writer. language sets the output language and defaults to English. max_length caps how long the result can be, and context tells the model what the text is for, for example "product description for an online shop", so the rewrite fits its purpose.

Paraphrasing runs as a job. Submit the text to /paraphrase and you get back a job_id and a status_url straight away. Poll the status endpoint no more than once per second. The status moves from queued to running, then to success or failed, and on success the rewritten text is in data.attributes.result.paraphrase.

Common uses include writing several versions of the same product description, adapting one message for different audiences or channels, changing the tone of support replies and help articles, simplifying technical text for non-technical readers, and refreshing older content with new wording.

To put the rewritten text into another language, use the Translate Text API. To check spelling and grammar before you publish, use the Proofread Text and Grammar Check API, and to shorten long text instead of rewording it, use the Summarize Text API.

You can try it right here in the playground. Start for free with 5 API calls a day, no card required, and paraphrase your own text before you commit.

The API is also available through ApyHub MCP, so AI agents can call it directly when a workflow needs text reworded in a specific tone.

▣ ENDPOINT 01 / 02
POST
Paraphrase Text - Submit Job
https://api.eu.apyhub.com/sharpapi/paraphrase-text/paraphrase

QUICKSTART

GUIDE

Quickstart

Submit text for paraphrasing as a JSON job request.

curl -X POST "https://api.eu.apyhub.com/sharpapi/paraphrase-text/paraphrase" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"content":"The meeting was productive and covered all key points."}'

What you'll get back

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

{
  "status_url": "https://apyhub.com/services/provider/sharpapi/api/v1/content/paraphrase/job/status/fcf7bd36-51b6-4d0a-99dc-6c5279895d61",
  "job_id": "fcf7bd36-51b6-4d0a-99dc-6c5279895d61"
}
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 paraphrase.
Provide additional context to improve paraphrasing accuracy.
Specify the language of the output.
Specify the maximum length of the paraphrased content.

About this endpoint

What it does

Submits a paraphrasing job for the provided text content. The request body includes the text to paraphrase and optional fields to guide the output, and the response returns a job identifier plus a status URL to check progress.

Request Body

ParameterTypeMandatoryDescription
contentStringYesProvide the content to paraphrase.
contextStringNoProvide additional context to improve paraphrasing accuracy.
languageStringNoSpecify the language of the output. Defaults to English.
max_lengthNumberNoSpecify the maximum length of the paraphrased content. Must be at least 1.
voice_toneStringNoSpecify the voice tone of the output. Can be an adjective like funny or joyous, or the name of a famous writer.

Response

Returns a JSON object with required job_id and status_url string fields. job_id is a UUID identifying the submitted job, and status_url is a URI used to poll for the job's status and result.

ParameterTypeMandatoryDescription
job_idStringYesThe unique identifier of the submitted job. Format: UUID.
status_urlStringYesURL to poll for the job's status and result. 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. Extract the job identifier from job_id.

Body

Name
Type
Description
bodyREQUIRED
object
▣ ENDPOINT 02 / 02
GET
Paraphrase Text - Check Job Status
https://api.eu.apyhub.com/sharpapi/paraphrase-text/summarize/job/status/:job_id

QUICKSTART

GUIDE

Quickstart

Check the status of a paraphrase job by its job ID.

curl -X GET "https://api.eu.apyhub.com/sharpapi/paraphrase-text/summarize/job/status/:job_id" \
  -H "apy-token: $APY_TOKEN"

What you'll get back

Returns a JSON object with a top-level data object. data contains the job id, type, and an attributes object with type, result, and status. When the job is complete, attributes.result.paraphrase holds the paraphrased text.

{
  "data": {
    "id": "8d2f7c3a-2f5e-4a0a-9d8a-1e2b3c4d5e6f",
    "type": "api_job_result",
    "attributes": {
      "type": "content_paraphrase",
      "result": {
        "paraphrase": "..."
      },
      "status": "success"
    }
  }
}
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 previously submitted paraphrase job using its job ID. When the job reaches success, the response includes the paraphrased text in the result payload.

Path Parameter(s)

AttributeTypeMandatoryDescription
job_idString (UUID)YesThe job identifier to look up in the status endpoint.

Response

Returns a JSON object with a data object field. data contains the job id as a UUID string, a type string, and an attributes object with type, result, and status fields. The status field indicates the job state; when the job is successful, attributes.result.paraphrase contains the paraphrased text.

AttributeTypeMandatoryDescription
dataObjectNoWrapper object for the job status payload.
data.idStringNoThe job identifier as a UUID.
data.typeStringNoThe response item type.
data.attributesObjectNoJob attributes, including status and result details.
data.attributes.typeStringNoThe content type for the job result.
data.attributes.resultObjectNoResult object returned when the job completes successfully.
data.attributes.result.paraphraseStringNoThe paraphrased version of the provided content.
data.attributes.statusENUMNoJob status. Allowed values: running, failed, queued, success.

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.paraphrase 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.