← Back to home
— changelog

What's new

Every parse-affecting change ships here first. Breaking schema changes are tagged Changed and announced 60 days before they roll out.

Aug 30, 2026
v2.2.0
DeprecatedFixed

Unversioned /parse routes are deprecated — move to /v1

Every example in the docs, on the homepage and in the schema builder now targets /v1. The unversioned routes (/parse and /parse/text) still work and still return the same shapes, but they send Deprecation and Sunset headers and will be removed on 30 November 2026 — swap the prefix and you're done. Two documentation corrections while we were in there: multipart /v1/parse accepts PDF, DOCX, DOC and HTML only (send plain text to /v1/parse/text as JSON), and the per-workspace rate limit is 60 requests/minute by default, reported on every response via X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset. The public demo endpoint stays unversioned at /demo/parse.

curl -X POST https://api.cvparser.io/v1/parse   -H "Authorization: Bearer $CVPARSER_KEY"   -F "file=@./candidate.pdf"
May 29, 2026
v2.1.0
ChangedAdded

Projects → Workspaces, Workspaces → Organisations

We've renamed our hierarchy to match the way you think about it: the top-level account is now an Organisation, and the sub-grouping that owns API keys and webhooks is a Workspace. Webhook endpoints are now scoped to a Workspace — every API key in the workspace shares the same delivery targets, so 'which key should this hook fire for?' is no longer a question. Existing data is migrated transparently. The webhook payload still carries `projectId` (we won't break your receivers); read it as the workspace id.

May 22, 2026
v2.0.0
Added

GraphQL API — ask for exactly the fields you need

Today we're opening up the GraphQL endpoint at /v2/graphql. One round-trip, zero over-fetching: the selection set acts as per-request field filtering on top of your workspace schema floor, so you pull back precisely the candidate shape your UI renders — nothing more. Field arguments like experience(limit: 3) let you trim deep collections inline, and every query is the same strongly-typed Candidate contract you already know from REST. Introspection, persisted queries, and a hosted playground ship on day one.

query ParseCandidate($id: ID!) {
  parse(id: $id) {
    candidate {
      fullName
      email
      experience(limit: 3) { title company startDate }
      skills
    }
    confidence
  }
}
May 20, 2026
v1.0.0
Added

REST API — generally available

The REST API is out of release-candidate and officially GA. Versioned, additive-only, and backed by a 99.97% uptime SLA: POST a file to /v1/parse, get clean structured JSON with 47 normalised fields per candidate. Idempotency keys, cursor pagination, and typed error envelopes are all stable surface now — build on it with confidence.

curl -X POST https://api.cvparser.io/v1/parse \
  -H "Authorization: Bearer $CVPARSER_KEY" \
  -F "file=@./candidate.pdf"
Mar 19, 2026
v0.0.1
Added

Initial release

Fastify API with PDF, DOCX, DOC, and HTML extractors. Multi-format CV parsing pipeline behind a single endpoint, with Swagger UI at /docs.

Follow updates · API reference · Get an API key