SpecCapture API
The SpecCapture API reads engineering drawings for your own software. Send a drawing - a PDF from CAD, a scanned sheet or an image - and get back what it says as data: the title block, the revision history, the bill of materials, the hole table and the general notes. Every value comes with how sure the reading is, whether a person should look at it, and a box around the ink on the sheet it was read from, so your software can show where each value came from.
QuickstartFrom an API key to every value on a drawing in minutes: check the key, submit a drawing, wait for its job and read each sheet, in curl, C#, Python or JS.
API referenceEvery endpoint, with its parameters, the answers it can give, and code to call it.
Want to try a request first? The API console sends one with your own key, from the browser.
The basics
Section titled “The basics”- One address. Every request goes to
https://api.speccapture.com, and every path starts with its version:/v1/.... A later version will be a new set of paths beside it; nothing under/v1/changes meaning. - A key on every request.
Authorization: Bearer sc_live_..., with a key made in the SpecCapture dashboard. See API keys. - A drawing is read sheet by sheet. Each page of a file is a sheet, read on its own, answered on its own and paid for on its own: 4 credits a sheet. See Submitting drawings.
- Always asynchronous. A submission answers at once with a job; each sheet takes tens of seconds to read. Ask for the job until it has finished, or let a webhook tell you. See Following a job.
- JSON in and out. Every answer is JSON, and every error is a problem with a stable
codeto branch on. See Errors.
Guides and reference
Section titled “Guides and reference”Guides
API keysMake an API key in the SpecCapture dashboard, send it as a bearer token, know what the role a key acts with may do, and replace a key without a gap.
Submitting drawingsSend a drawing to the SpecCapture API: the file formats and limits, how sheets and credits work, why submission is asynchronous, and what each refusal means.
Following a jobKnow when a drawing has been read: what each job and sheet status means, how to poll a job, and how a webhook can tell you instead.
Reading resultsRead a sheet's values from the SpecCapture API: each value's path, confidence, review state and box on the drawing, the tables' rows, and every field path.
TemplatesChoose which values a job keeps, what each is called and in what order: list your templates, read one's fields, and name one when you submit a drawing.
ExportsDownload a finished job's values as one JSON, CSV or Excel file: what each file holds, its columns, and how review states, corrections and confidence appear.
View linksShare one sheet read-only: a link that opens the drawing with every value boxed, for anyone who holds it, until it expires or is withdrawn.
Deleting a jobDelete a drawing sent by mistake: the job, its file, page images, values, exports and view links go at once, and the job's unspent credits come back.
Receiving webhooksGet told when a drawing has been read: what a webhook delivery holds, checking its signature with a Standard Webhooks library or by hand, and retries.
Use SpecCapture from an AI assistantConnect Claude, GitHub Copilot in VS Code or Cursor to SpecCapture's MCP server with an API key, so the assistant can send drawings and report their values.
Account and limits
CreditsHow credits pay for sheets: what a job reserves, holds, spends and refunds, how to read the workspace's balance, and when credits expire.
Lists and pagingRead any list the same way: newest first, a page at a time with limit and cursor, narrowed by a time window or a status, and only your workspace's own.
IdempotencyRetry a submission safely: with an Idempotency-Key, a repeated request answers with the first job instead of making, and charging for, a second.
Rate limitsHow many requests an API key may make a minute, the headers that say how many are left, and what to do when the API answers 429.
Reference
ErrorsEvery error the SpecCapture API answers with: the problem details shape, and each stable code with its HTTP status, what it means and what to do.