apyhub
ARTIFICIAL INTELLIGENCE · SEO

Proofread Text + Grammar Check API

What it does

Grammar Proofreader checks submitted text and returns a corrected version of that content. Send a string in content, create a job, then poll the job status endpoint with the returned job_id until the result is ready.

Use it when you need to clean up user-generated text, product copy, support replies, or any other short-form content before publishing. The service is asynchronous: the submit endpoint returns a job_id and a status_url, and the status endpoint reports whether the job is queued, running, failed, or success.

When the job completes successfully, the status response includes the proofread text in data.attributes.result. That makes it easy to plug into review workflows where you want corrected copy back without building your own grammar-checking logic.

Grammar Proofreader is a good fit for editorial automation, content QA, and lightweight text cleanup in apps that accept free-form text from users.

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

QUICKSTART

GUIDE

Quickstart

Submit text to be proofread for grammar and style.

curl -X POST "https://api.eu.apyverse.com/sharpapi/proofread-text-grammar-check" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"content":"The team are meeting tomorrow to discuss the project."}'

What you'll get back

Returns a JSON object with two optional fields: job_id as a UUID for the submitted job, and status_url as a URI you can poll for the job's status and result.

{
  "job_id": "550e8400-e29b-41d4-a716-446655440000",
  "status_url": "https://example.com/jobs/550e8400-e29b-41d4-a716-446655440000"
}
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 content for proofreading and grammar checking as an async job. The response returns a job identifier and a status URL that you can use to check progress and retrieve the result later.

Request Body

ParameterTypeMandatoryDescription
contentStringYesProvide the content to proofread.

Response

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

ParameterTypeMandatoryDescription
job_idStringNoThe unique identifier of the submitted job.
status_urlStringNoURL 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 job_id to identify the submitted job, and status_url to poll for its status.

Body

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

QUICKSTART

GUIDE

Quickstart

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

curl -X GET "https://api.eu.apyverse.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. Inside data, id is the job result UUID, type is the result resource type, and attributes contains the job type, the proofread result string, and the job status (running, failed, queued, or success).

{
  "data": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "type": "api_job_result",
    "attributes": {
      "type": "content_proofread",
      "result": "..."
    }
  }
}
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 proofreading job using its job ID. The response returns a JSON object containing a data object with the job result metadata and current processing status.

Path Parameter(s)

AttributeTypeMandatoryDescription
job_idStringYesJob identifier in UUID format.

Response

Returns a JSON object with a data object. Inside data, id is a UUID string, type is a string, and attributes is an object containing type, result, and status fields. Success responses use the job-status payload shape defined in the schema.

AttributeTypeMandatoryDescription
dataObjectNoWrapper object for the job status payload.
data.idStringNoJob result identifier in UUID format.
data.typeStringNoResource type. The schema example indicates api_job_result.
data.attributesObjectNoObject containing the proofreading job status and output fields.
data.attributes.typeStringNoResult type. The schema example indicates content_proofread.
data.attributes.resultStringNoThe proofread and grammar-corrected 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 status field cycles through transitional values (queued, running) before reaching a terminal state (success, failed). The result field 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.