Build translation
into your product
Key concepts
Three primitives to learn
The Vernacia API is intentionally small. Learn these three resources and you can drive every feature in the product.
Every completed job feeds Translation Memory back into the project — the next job in the same language pair reuses approved translations automatically.
Authentication
Two ways to authenticate
Pick the method that matches your integration. Both grant access to the same endpoints — the difference is who is acting on whose behalf.
Get an API key in Settings → API Keys.
Quickstart
Your first translation in 60 seconds
Install the SDK, create a client, and translate your first string using the free tools API — no authentication required to get started.
SDK is in private beta
@vernacia/sdk-js is not yet published to npm. Email [email protected] to request access. The REST endpoints below are live today and can be called directly with any HTTP client.
Install
# Coming soon: npm install @vernacia/sdk-js
Translate
# import { VernaciaClient } from '@vernacia/sdk-js'; // private beta
# No account needed — try the free-tool endpoints directly:
curl -X POST https://api.vernacia.ai/v1/tools/translate \
-H "Content-Type: application/json" \
-d '{"text":"Hello, world!","source":"en","target":"de"}'
# => { "translation": "Hallo, Welt!" }
# Full document translation is live via REST today:
curl -X POST https://api.vernacia.ai/v1/projects \
-H "X-API-Key: vnc_live_..." \
-H "Content-Type: application/json" \
-d '{"name":"German website launch","sourceLang":"en","targetLang":"de"}'
curl -X POST https://api.vernacia.ai/v1/projects/:projectId/files/upload \
-H "X-API-Key: vnc_live_..." \
-F "file=@./q4-deck.pptx"
curl -X POST https://api.vernacia.ai/v1/projects/:projectId/files/:fileId/translate \
-H "X-API-Key: vnc_live_..." \
-H "Content-Type: application/json" \
-d '{"sourceLang":"en","targetLang":"de"}'
# => 202 Accepted, poll GET /jobs/:id until status is "DONE",
# then GET /jobs/:id/downloadThat's it. The tools/* endpoints mirror every free tool on the site — no auth required. Authenticated REST endpoints unlock project management, file upload, job tracking, and glossary sync today; the SDK wraps the same calls once it leaves private beta.
REST endpoints
The full surface area
Every SDK method maps one-to-one to a REST endpoint. Use the SDK for convenience or call the API directly with any HTTP client.
Projects
Auth: JWT or API key/projectsCreate a new translation project/projectsList all projects owned by the caller/projects/:idFetch a single project with its settings/projects/:idDelete a project and its Translation MemoryFiles
Auth: JWT or API key/projects/:projectId/files/uploadUpload a document (multipart/form-data) to a project/projects/:projectId/files/upload-batchUpload multiple documents in a single request/projects/:projectId/files/:fileId/validatePre-flight check: page count, credit cost, and format support/projects/:projectId/files/:fileId/translateQueue a translation job for an uploaded file — accepts sourceLang, targetLang, model, tone, outputMode/projects/:projectId/files/:fileId/jobsList every translation job (version history) for a file/projects/:projectId/files/:fileIdDelete an uploaded file and its outputsJobs
Auth: JWT or API key/jobsList translation jobs for the caller/jobs/:idFetch job status, progress, and metadata — use this one/jobs/:id/statusDeprecated alias of /jobs/:id, kept for backwards compatibility/jobs/:id/streamServer-Sent Events stream of job progress until terminal/jobs/:id/downloadDownload the translated output file/jobs/:id/retryRetry a failed job with the same inputGlossary
Auth: JWT or API key/projects/:id/glossaryList glossary terms for a project/projects/:id/glossaryAdd a new glossary term pair/projects/:id/glossary/auto-extract/:jobIdAuto-extract glossary candidates from a completed job/projects/:id/glossary/export?format=csv|tmxExport glossary as CSV or TMX/projects/:id/glossary/importImport glossary from a CSV or TMX fileWebhooks
Auth: JWT or API key/webhooks/endpointsList configured webhook endpoints/webhooks/endpointsCreate a webhook endpoint (returns signing secret once)/webhooks/endpoints/:idUpdate endpoint URL, events, or enabled state/webhooks/endpoints/:idRemove an endpoint and its delivery history/webhooks/endpoints/:id/rotate-secretRotate the signing secret/webhooks/endpoints/:id/testSend a test event to the endpoint/webhooks/endpoints/:id/deliveriesList recent delivery attempts/webhooks/endpoints/:id/deliveries/:deliveryId/retryManually retry a failed delivery (20/min)Users
Auth: JWT or API key/users/meFetch the authenticated user profileFree Tools
No auth/tools/translateTranslate a short block of text/tools/detect-languageDetect the language of any text snippet/tools/extract-termsExtract key terminology from textPremium
Auth: PRO+/translation/tools/cultural-adaptFlag idioms, tone, and cultural issues for a target market/translation/tools/compare-modelsRun the same prompt through multiple AI modelsFull request/response schemas, error codes, and a try-it console live in the interactive API reference.
SDKs
Use your language of choice
JavaScript/TypeScript is in private beta today. Python is in active development. We're listening to the community on what comes next.