Skip to content

API versions — v1 and v2 are retired

Updated

Current state#

VersionPathStatus
v1/v1/documentsRetired — returns 404
v2/v2/documentsRetired — returns 404
v3/v3/documentsLive, maintenance only — no new integrations
v3.1/v3.1/documentsCurrent. Build against this.

v1 and v2 were retired after confirming no customer traffic. Both already return 404 in production, so no migration window applies — any code still calling them is already broken.

Why v3.1 and not v3#

v3.1 is a strict superset of v3. Same endpoints, plus:

  • models — discover permitted document types without spending credits
  • process and result — multi-page document support
  • Accepts JPG and PNG as well as PDF (v3 is PDF-only)
  • Structured, stable error codes; v3 returns a 500 on some paths where v3.1 returns a clean 4xx
  • Per-page credit accounting

There is no reason to start on v3.

Note
Each version keeps its own copy of the core classes. A change in api/v3/classes/ does not reach api/v3.1/classes/. This matters for anyone reading the source: the two are independent, despite older docs claiming they share code.

Base URL and the /api trap#

The public base is https://api.docxtract.io/ with no /api prefix:

✓ https://api.docxtract.io/v3.1/documents
✗ https://api.docxtract.io/api/v3.1/documents   → 404

The api/ directory in the codebase is the docroot for the api. subdomain. It is not part of the public path. This trips people up because the repository layout and the URL look like they should match, and they don't.

Legacy hostnames#

docxtract.rpatech.ai 301/308-redirects to api.docxtract.io. It works, but relies on a redirect and should not appear in new code, tests, or documentation.

Version reported by health#

GET /v3.1/health returns a version field read from server configuration. If it disagrees with the path you called, the deployed config is out of step with the code — worth raising rather than working around.