[ 00.00, 00.00 ] · ORIGINv1.0 · MVP · BETA
CAD → Structured JSON · Developer API

Turn CAD drawings into structured vector JSON.

Upload a DWF, DWG, or DXF file. Get back clean polylines, layer metadata, and a preview image — through one simple API.

Join the beta · Free 50/mo →Read the docs
API status · operationalP50 parse · 2.4s·p99 · 11.8s·Schema 2024-01
~ /jobs/job_lH9k2c · live
$ curl -X POST api.cadlens.co/v1/parse \
   -H "Authorization: Bearer ck_•••••" \
   -F "[email protected]"
RESPONSE · /v1/jobs/job_lH9k2c/result
awaiting result
1,284 entities·6 layers·PNG preview
CAD QUOTING TOOLSFLOOR-PLAN MEASUREMENTMANUFACTURING INTAKEDRAWING COMPARISONCONSTRUCTION AUTOMATIONBIM PIPELINESDOCUMENT DIGITIZATIONINSURANCE SURVEYINGCAD QUOTING TOOLSFLOOR-PLAN MEASUREMENTMANUFACTURING INTAKEDRAWING COMPARISONCONSTRUCTION AUTOMATIONBIM PIPELINESDOCUMENT DIGITIZATIONINSURANCE SURVEYING
01 — PROBLEM

Every team that touches CAD eventually writes a parser. They regret it.

01

DWG/DXF parsing is a graveyard.

Proprietary binary format, decades of revisions, license headaches. Off-the-shelf libraries fall over on real-world drawings.

02

Image-only converters are dead-ends.

A PNG of a floor plan can't tell you which polyline is a wall, which layer it belongs to, or how long it is in millimeters.

03

Building it in-house burns quarters.

CAD parsing infrastructure is a 6-month detour from your actual product. You don't want to maintain a parser farm.

What other tools give you vs. what cadlens gives you
OPTION AImage-only converters

You get a flat picture.

Panoramic elevator CAD preview
No layer information
No coordinates or units
Can't measure anything
Can't query individual entities
OPTION B · CADLENSresult.json

You get queryable data.

12000mm7200mmLIVINGKITCHENBED.01BED.02
RESULT.JSON
{
"units": "mm",
"layers": ["wall", "door", "fixture"],
"vectors": [
{
"type": "polyline",
"layer": "wall",
"points": [[10,20], …]
},
// ×1283 more
]
}
6 named layers (wall, door, fixture…)
Coordinates in real units (mm)
Per-entity bbox + measurable
Filter, transform, render anywhere
02 — API

One POST. That's it.

Push a CAD file, get back a job. Poll, subscribe to a webhook, or run synchronously for small drawings. Authentication is a single bearer token.

POST /v1/parse2.4s avg
# 1. Submit a parse job
curl -X POST https://api.cadlens.co/v1/parse \
  -H "Authorization: Bearer $CADLENS_KEY" \
  -F "[email protected]"

# 2. Poll for completion (or use a webhook)
curl https://api.cadlens.co/v1/jobs/job_lH9k2c \
  -H "Authorization: Bearer $CADLENS_KEY"

# 3. Fetch the structured result
curl https://api.cadlens.co/v1/jobs/job_lH9k2c/result -H ...
POST· billable
/v1/parse
Submit DWF/DWG/DXF for parsing
GET
/v1/jobs/{id}
Status, timing, failure reason
GET
/v1/jobs/{id}/result
Structured vector JSON
GET
/v1/jobs/{id}/image
Preview PNG (signed URL)
03 — RESULT

Every entity, every layer, every coordinate.

The JSON schema is versioned and stable. Hover a field on the right to highlight it in the response.

GET /v1/jobs/job_lH9k2c/result200 OK · application/json
1{
2 "jobId": "job_lH9k2c",
3 "status": "COMPLETED",
4 "metadata": {
5 "filename": "floor-plan.dwf",
6 "format": "DWF",
7 "units": "mm",
8 "boundingBox": { "width": 12000, "height": 7200 }
9 },
10 "layersJson": [
11 { "name": "wall", "colorHex": "#00ff00", "entityCount": 842 },
12 { "name": "door", "colorHex": "#ffaa00", "entityCount": 96 }
13 ],
14 "vectorJson": [
15 {
16 "type": "POLYLINE",
17 "layer": "wall",
18 "vertices": [{ "x": 10, "y": 20 }, { "x": 40, "y": 20 }],
19 "closed": false
20 },
21 // … 1,283 more entities
22 ],
23 "imageUrl": "https://cdn.cadlens.co/job_lH9k2c.png",
24 "createdAt": "2026-04-25T10:00:00Z"
25}
SCHEMA · 2024-01 · STABLE
metadata
File-level info: filename, format, units, drawing bounding box.
layersJson
Each layer with its name, color, and entity count.
vectorJson
Every entity: lines, polylines, arcs, text — with coords & layer.
imageUrl
Signed URL to the rendered PNG preview.
VECTOR TYPES
line · polyline · arc · circle · ellipse · spline · text · insert
04 — FORMATS

Supported today.

.dwf
Recommended
Design Web Format
First-class input. Clean, predictable parse path.
.dxf
Native
Drawing Exchange Format
ASCII & binary, AutoCAD R12 through 2025.
.dwg
Native
AutoCAD Drawing
Versions R14 → 2025 via licensed conversion path.
.pdf
Beta
Vector PDF
Vector-layer extraction from architectural PDFs.
.dwfx
Beta
Design Web Format X
XPS-based DWF package format.
.dgn
V7 only
MicroStation Design
V7 format only. V8 files are rejected with a clear error.
05 — SECURITY

Your drawings stay yours.

CAD files often contain confidential engineering and architectural data. Here's how we handle them.

01

Encrypted at rest

Stored encrypted, accessible only via short-lived signed URLs — never via public links.

02

Auto-deleted after 7 days

Originals are purged automatically. Configurable down to 1 hour on paid plans.

03

Delete on demand

Call DELETE /v1/jobs/{id} at any time to remove the file and all results immediately.

04

No AI training

Your drawings are never used to train models or improve any third-party AI system.

05
Private deployment available
Enterprise plans include a private VPC deployment with the same API surface, full data residency control, and custom retention policies.
06 — PRICING

Pay per successful parse.

Status checks, result downloads, webhooks, and system-side failures are never billed.

FREE FOREVER
50parses per month
Testing CADLens. No credit card required.
50 parses / month
10 MB max file size
DWG, DXF, DWF support
Vector JSON + PNG preview
Community/email support
Get your API key
STARTER
Starter
$19/mo
Small apps / prototypes
500 parses / month
25 MB max file size
7-day result retention
Webhook callbacks
Email support
MAX FILE: 25 MB
RETENTION: 7 days
OVERAGE: $0.05/request
Start with Starter
POPULAR
GROWTH
Growth
$49/mo
Early production
2,000 parses / month
50 MB max file size
14-day result retention
Webhook callbacks
Priority email support
MAX FILE: 50 MB
RETENTION: 14 days
OVERAGE: $0.035/request
Start with Growth
PRO
Pro
$149/mo
Higher-volume apps
10,000 parses / month
100 MB max file size
30-day result retention
Webhook callbacks
Priority support
MAX FILE: 100 MB
RETENTION: 30 days
OVERAGE: $0.02/request
Start with Pro
BUSINESS
Business
$399/mo
High volume
40,000 parses / month
250 MB max file size
30-day result retention
Webhook callbacks
Priority support
MAX FILE: 250 MB
RETENTION: 30 days
OVERAGE: $0.015/request
Start with Business
ENTERPRISE

Custom pricing for production workloads

Higher volumes, larger files, SLA guarantees, private deployment.

Custom volume
Custom file size
Custom retention
SLA + private deployment
Dedicated support
Contact us — [email protected]
HOW BILLING WORKS
Only successful parses count toward your limit. Failed uploads, status checks, result downloads, and webhooks are always free. System errors never consume your quota.
07 — FAQ

Questions, answered.

Forge is powerful but heavyweight and viewer-oriented. Open-source libraries (LibreDWG, ezdxf) get you started but break on real-world drawings and don't ship a hosted, billable API. CADLens is a single REST endpoint with a stable schema, fair pricing per parse, and zero infra to maintain.

File metadata (units, layers, drawing extent), a versioned vector array (polylines, arcs, circles, splines, text, hatches, inserts) with coordinates and per-entity layer/color/bbox, plus a signed URL to a rendered PNG preview. Schema is versioned (currently 2024-01) and we never make breaking changes within a version.

Both. POST /v1/parse returns a job ID immediately. Poll GET /v1/jobs/{id} or register a webhook URL on the request. For files under ~2 MB you can pass wait=true to block on the response.

Originals are stored encrypted, accessible only via signed URLs, and deleted after 7 days by default (configurable down to 1 hour on Builder+). You can issue a delete via the API or dashboard at any time.

No. System-side failures (parser crash, timeout, infra error) are never billed. User-caused errors that we detect early (invalid file, unsupported version, oversized) also don't bill. Only successful parse jobs count against your plan.

Enterprise plans include a private VPC deployment with the same API surface. Talk to us about volume, SLA and data residency.

08 — JOIN THE BETA

Get an API key. Parse your first drawing today.

Free tier includes 50 parse requests / month. No credit card. We're onboarding beta users in batches — tell us what you're building and you'll get keys within 48 hours.

50 free parses/mo, forever
Personalized onboarding from the founders
Direct Slack / Discord channel with the team
Schema feedback shapes the v2 spec
No credit card · [email protected] · We reply within 48h