apyhub
Back
ARTIFICIAL INTELLIGENCE · SMART GENERATION

Proofread Text + Grammar Check API

What it does

The Proofread Text and Grammar Check API is an AI proofreading API that fixes grammar and spelling mistakes in any text. Send a draft and get back a corrected version, ready to publish or store.

It takes one field, content, with the text you want checked. Proofreading runs as a job: the submit call returns a job_id and a status_url straight away, and you 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 data.attributes.result holds the corrected text.

The API returns the fully corrected text, not a list of individual suggestions. That makes it a good fit for automation, where you want clean text without a person reviewing each change: cleaning up user-generated content and reviews before they go live, correcting product descriptions and CMS copy in bulk, polishing support replies and help articles, and fixing text produced by other tools or AI models before it reaches customers.

Grammarly discontinued its developer SDK in January 2024 and does not offer a public API, so if you need grammar checking inside your own product or workflow, an API like this one is the way to add it.

For spelling correction only, use the Correct Text Spelling API. To reword text in a different tone instead of correcting it, use the Paraphrase Text API, and to publish the corrected text in other languages, use the Translate Text API.

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

The API is also available through ApyHub MCP, so AI agents can proofread their own output directly before sending it on.

▣ ENDPOINT 01 / 02
POST
Proofread Text + Grammar Check - Submit Job
https://api.eu.apyhub.com/sharpapi/proofread-text-grammar-check

QUICKSTART

GUIDE

Quickstart

Submit text for proofreading and grammar checking.

curl -X POST "https://api.eu.apyhub.com/sharpapi/proofread-text-grammar-check" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"content":"Please review this sentence for grammar and spelling mistakes."}'

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 status and results.

{
  "status_url": "https://apyhub.com/services/provider/sharpapi/api/v1/content/proofread/job/status/e41af380-bc53-44bd-988d-0d14165a9d05",
  "job_id": "e41af380-bc53-44bd-988d-0d14165a9d05"
}
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 proofread.

About this endpoint

What it does

Submits text for proofreading and grammar checking as an asynchronous job. It accepts the text content in the request body and returns a job identifier plus a status URL to poll for the result.

Request Body

ParameterTypeMandatoryDescription
contentStringYesProvide the content to proofread.

Response

Returns a JSON object with two string fields: job_id and status_url. The job_id is the unique identifier of the submitted job, and the status_url is the URL used to poll for the job’s status and result.

ParameterTypeMandatoryDescription
job_idStringYesThe unique identifier of the submitted job.
status_urlStringYesURL to poll for the job's status and result.

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, and status_url to poll for status updates.

Body

Name
Type
Description
bodyREQUIRED
object
▣ ENDPOINT 02 / 02
GET
Proofread Text + Grammar Check - Check Job Status
https://api.eu.apyhub.com/sharpapi/proofread-text-grammar-check/job/status/:job_id

QUICKSTART

GUIDE

Quickstart

Check the status of a proofread job by its job_id.

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

What you'll get back

Returns a JSON object with a data object. data includes id and type, plus an attributes object with type, result, and status fields. status is one of running, failed, queued, or success.

{
  "data": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "type": "api_job_result",
    "attributes": {
      "type": "content_proofread",
      "result": "The proofread and grammar-corrected version of the provided content.",
      "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 proofread/grammar-check job using its job ID. The response returns a JSON object containing a data object with the job result record and its current status.

Path Parameter(s)

AttributeTypeMandatoryDescription
job_idStringYesJob identifier in UUID format.

Response

Returns a JSON object with a data object. That data object contains id and type string fields, plus an attributes object with type, result, and status fields. Success status is not explicitly declared in the schema.

ParameterTypeMandatoryDescription
dataObjectNoWrapper object for the job result record.
data.idStringNoJob result identifier in UUID format.
data.typeStringNoResult record type. The schema example is api_job_result.
data.attributesObjectNoObject containing the job state and result details.
data.attributes.typeStringNoContent type for the proofread job result. The schema example is content_proofread.
data.attributes.resultStringNoThe proofread and grammar-corrected version of the provided content.
data.attributes.statusENUMNoJob status. Allowed values: running, failed, queued, success.

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.