Skip to content
TurnitPass
DevelopersAPI v1Get an API key
Browse documentation

DevelopersAPI Reference

TurnitPass REST API

Reference for authenticated humanization, paraphrase, detector, citation, bibliography, and API key status endpoints.

REST API v1

Reference console

Start with the route, payload, and response shape.

The full reference covers every endpoint below. The console shows the contract developers need first: Bearer auth, JSON input, metered output, and status checks.

request
POST
fetch('/api/v1/humanize', {
  method: 'POST',
  headers: {
    Authorization: 'Bearer tp_live_your_api_key',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    text: 'Paste the draft here',
    language: 'en',
    mode: 'reduce-aigc'
  })
})
response
200 OK
{
  "output": "The revised text...",
  "words_used": 142,
  "words_remaining": 2858,
  "status": "succeeded"
}
meteredloggedJSON
POST/api/v1/humanize
POST/api/v1/paraphrase
POST/api/v1/rewrite
POST/api/v1/detect
POST/api/v1/citation
AuthBearer API key
TransformPOST /humanize
ReviewPOST /detect
StatusGET /status
POST/api/v1/humanize
v1

Revise submitted text and reduce AI-like writing signals. Modes: reduce-aigc, reduce-both, paraphrase, academic-polish.

POST/api/v1/paraphrase
v1

Rewrite and polish text with standard, fluency, formal, academic, simple, creative, expand, or shorten modes.

POST/api/v1/rewrite
v1

Academic polish endpoint for cleaner structure, tone, and sentence flow.

POST/api/v1/detect
v1

Return AI-writing signal estimates, metadata, and revision notes for pasted text or extracted documents.

POST/api/v1/citation
v1

Format a DOI, URL, or manual citation in APA, MLA, Chicago, IEEE, Harvard, Nature, Vancouver, ACS, AMA, GB/T, OSCOLA, or Bluebook. Responses include html, text, BibTeX, and RIS.

POST/api/v1/bibliography
v1

Sort and format a list of citations in the requested style, with html/text output plus BibTeX and RIS exports.

GET/api/v1/status
v1

Check key label, remaining word balance, and request limits.

Parameters and options

Auth
Authorization: Bearer tp_live_your_api_key
Humanize terms
Optional personal_terms array preserves names, technical terms, and brand spellings during English humanization.
Limits
Humanize/rewrite accept 500 quality units and paraphrase 2,000: CJK characters count as one, other characters divide by three, rounded up. Detection accepts up to 5,000 words. Citation endpoints are rate-limited but do not spend word credits.
Errors
JSON responses include error, code, and message fields.

Rate limits and request limits

Transform input
Per-request lengthHumanize/rewrite: 500 units. Paraphrase: 2,000. CJK characters count as one unit; other characters divide by three, rounded up. All plans use the same limits.
Detection input
Up to 5,000 wordsLonger detector scans should be chunked before submission.
API keys
Up to 5 active keysKeys can be revoked independently from the workspace.
Citation tools
Rate-limited separatelyCitation and bibliography calls do not spend word credits.

Error handling

Error responses use JSON with error, code, and human-readable message fields where possible.

error response
JSON
{
  "error": "Text exceeds word limit. Maximum 1,000 words allowed.",
  "code": "word_limit_exceeded",
  "max_words": 1000,
  "current_words": 1234
}
Retry transient 5xx or network failures; treat 4xx responses as input issues to fix before retrying.

Examples

Humanize example
JSON
POST /api/v1/humanize
{
  "text": "Paste the AI-assisted draft you want to revise",
  "language": "en",
  "mode": "reduce-aigc",
  "personal_terms": ["Key term"]
}

200 OK
{
  "output": "The revised text...",
  "words_used": 142,
  "words_remaining": 2858
}
Multi-endpoint example
JSON
POST /api/v1/paraphrase
{
  "text": "Paste the draft you want rewritten",
  "mode": "academic",
  "synonyms_level": 60
}

POST /api/v1/detect
{
  "text": "Paste the draft you want checked",
  "language": "en",
  "source_kind": "paste"
}

POST /api/v1/citation
{
  "input": "https://example.com/article",
  "style": "apa"
}

200 OK
{
  "text": "Formatted citation...",
  "bibtex": "@article{...}",
  "ris": "TY  - JOUR..."
}

Next steps

Next, make it part of your workflow.Continue reading