On this pageEndpoint reference
Endpoint reference
DocImprint ·
Compact REST index — 54 operations grouped by job. Prefer guides when you need examples; use this page to find the route.
Base URL https://api.docimprint.com/v1/ · OpenAPI · Postman · Extract guide · Pricing · Agent use cases
Capture
Extract guide →Create evidence bundles from a URL or upload. Lean and async variants of the same route.
- POST
/v1/extract$0.075Extract
Create a stored evidence bundle (screenshot, PDF, Markdown, OCR, optional AI mode + signed manifest). With store=true, default response is 202 + job_id.
- POST
/v1/extract$0.01Extract (lean)
Return AI/text result inline with no ZIP or artifacts persisted. Use when you do not need verify/download later — cheaper than a full stored extract.
- POST
/v1/extract$0.075Extract (async)
Queue extract work → 202 + job_id; poll GET /v1/jobs/{id} until complete. Default for stored extracts; use ?sync=true only for small documents.
Advanced parameters
Two params on POST /v1/extract unlock large-document and authenticated-source workflows without changing pricing or the 4 MB limit.
pages: "1-50" — slice a PDF by page range before OCR
Process a 200-page contract in sections. Only applies to binary/multipart PDF uploads; silently ignored for URL sources and non-PDF files.
# Process only pages 1–50 of a large PDF upload
# Useful for large contracts: split a 200-page file into sections
curl -X POST https://api.docimprint.com/v1/extract \
-H "Authorization: Bearer dr_live_..." \
-H "Content-Type: application/pdf" \
--data-binary @large-contract.pdf \
-F "pages=1-50"
# JSON body (multipart or URL source)
curl -X POST https://api.docimprint.com/v1/extract \
-H "Authorization: Bearer dr_live_..." \
-H "Content-Type: application/json" \
-d '{"source": "https://cdn.example.com/contract.pdf", "pages": "51-100"}'
# Response: metadata.pages reflects the slice count, not the total document pagessource_headers — forward auth headers to a DMS endpoint
Pass an Authorization token when fetching from any authenticated URL source. Never stored in the bundle or logs.
# Fetch a document from an authenticated DMS endpoint
# Works with iManage, NetDocuments, SharePoint, and any Bearer-token URL
curl -X POST https://api.docimprint.com/v1/extract \
-H "Authorization: Bearer dr_live_..." \
-H "Content-Type: application/json" \
-d '{
"source": "https://firm.imanage.com/work/documents/123/download",
"source_headers": { "Authorization": "Bearer <dms-token>" },
"mode": "summarize"
}'
# source_headers are never stored in the evidence bundle or logs.
# Forbidden hop-by-hop headers (host, content-length, etc.) are stripped automatically.Verify & download
Evidence bundles →Confirm integrity, pull the ZIP, and notarize on Base.
- GET
/v1/extract/{id}FreeBundle status
Fetch bundle metadata: status, manifest_sha256, artifact refs, and notarization fields without downloading the ZIP.
- GET
/v1/extract/{id}/verifyFreeVerify bundle
Recompute SHA-256 over stored artifacts and compare to the signed manifest. Returns verified:true or 409 if anything was tampered with.
- POST
/v1/extract/{id}/verify-citationFreeVerify citation
Prove a chunk_id + quoted text is included in the bundle Merkle tree. Body: { chunk_id, text }. Use after collections ask / search citations.
- GET
/v1/extract/{id}/historyFreeVersion history
Walk parent_bundle_id / superseded_by links for re-extracts of the same source. Useful when a page changed and you need the prior version.
- GET
/v1/extract/{id}/downloadFreeDownload ZIP
Stream the full evidence package (manifest.json, signature.json, screenshot, PDF, Markdown, OCR text) as one archive.
- GET
/v1/extract/{id}/manifestFreeGet manifest
Download raw manifest.json bytes with X-Manifest-SHA256 header. Prefer verify for integrity checks; use this for offline inspection.
- GET
/v1/keysFreeSigning keys
List active and retired secp256k1 keys (key_id, signer_address, retired_at) for offline verification of ZIP + signature.json.
- POST
/v1/extract/{id}/notarize$0.05Notarize
Anchor the bundle manifest hash on Base L2 (EAS attestation). Returns tx / attestation ids for public timestamping.
Custody
Legal hold, provenance, agent handoffs, and signed action receipts.
- PUT
/v1/extract/{id}/holdFreeLegal hold
Freeze a bundle so retention GC and DELETE cannot remove it. Use when litigation or investigation requires preservation.
- DELETE
/v1/extract/{id}/holdFreeRelease legal hold
Clear an existing hold so normal retention and delete are allowed again.
- DELETE
/v1/extract/{id}FreeDelete bundle
Permanently delete stored evidence and artifacts. Blocked while on legal hold or after notarization until policy allows.
- POST
/v1/extract/{id}/revokeFreeRevoke
Revoke an EAS attestation for a previously notarized bundle so auditors see it as withdrawn. Notarize first.
- GET
/v1/extract/{id}/provenanceFreeProvenance log
List application-layer events (agent_id, action, query, result_summary) appended to this bundle over time.
- POST
/v1/extract/{id}/provenanceFreeAppend provenance
Record what an agent did with this bundle (action + optional query/summary). Builds an audit trail beyond the signed ZIP.
- POST
/v1/extract/{id}/handoffFreeAgent handoff
Record a from_agent → to_agent custody transfer with an optional note. Call when ownership of the workflow moves between agents.
- GET
/v1/extract/{id}/chainFreeCustody chain
Ordered list of handoffs for a bundle — who held it and when. Pair with receipts for full chain-of-custody.
- GET
/v1/extract/{id}/receiptsFreeList action receipts
Signed receipts that bind a specific agent action to this bundle’s manifest_sha256. Proof the action ran against this exact evidence.
- GET
/v1/extract/receipts/{receipt_id}/verifyFreeVerify action receipt
Independently verify a receipt_id (capability token). Not owner-gated — anyone with the id can check signature + manifest binding.
Lean helpers
Focused endpoints →Focused one-shot routes — summarize, Q&A, translate, claims, describe. No full bundle by default.
- POST
/v1/summarize$0.018Summarize
Inline summary + key_points for a URL or upload. No evidence bundle stored. Add ?async=true to queue via jobs.
- POST
/v1/qa$0.022Q&A
Ask a question about a document; returns answer, confidence, and citations. No bundle stored unless you use extract + mode.
- POST
/v1/translate$0.040Translate
Translate page/document text to target_lang. Returns translated_text inline. Add ?async=true for long docs.
- POST
/v1/check-claims$0.025Check claims
Body claims[] → per-claim verdict + evidence snippets from the source. Use for 10-K / press-release fact checks.
- POST
/v1/describe$0.018Describe
Visual/layout description plus text_visible and detected objects. Good for screenshots and marketing pages.
Jobs
Async jobs →Queue batch work and poll status.
- POST
/v1/jobs$0.075Batch jobs
Queue multi-item extract work with optional webhook progress. Prefer this over many sync calls for large batches.
- GET
/v1/jobs/{id}FreeJob status
Poll status, progress_pct, error, and result / bundle_id for any async extract or focused ?async=true call.
Collections
Collections →Document memory: index bundles, search chunks, ask across docs.
- POST
/v1/collectionsFreeCreate collection
Create a named corpus scoped to your wallet/API key. Add bundles later for search and cross-doc ask.
- GET
/v1/collectionsFreeList collections
List collections you own with ids and basic metadata.
- GET
/v1/collections/{id}FreeCollection metadata
Document count, index status, and collection settings for one id.
- POST
/v1/collections/{id}/documents$0.075Add document
Attach an existing bundle_id (or ingest a new source) and index chunks into Vectorize for search/ask.
- DELETE
/v1/collections/{id}/documents/{bundle_id}FreeRemove document
Remove a bundle from the collection and delete its vectors. Does not delete the underlying evidence bundle.
- POST
/v1/collections/{id}/documents/{bundle_id}/reindexFreeReindex document
Rebuild Vectorize chunks for a bundle already in the collection after content or embedding changes.
- GET
/v1/collections/{id}/search$0.03Search
Semantic search over indexed chunks. Returns ranked hits with chunk_id and score for citation follow-up.
- POST
/v1/collections/{id}/ask$0.05Ask
Cross-document Q&A with field-level citations (bundle_id + chunk_id). Verify quotes via verify-citation on the source bundle.
Monitor
Monitor →Watch URLs for change and pull history.
- POST
/v1/monitor$0.50Create monitor
Watch a URL on a schedule and POST change events to your webhook_url. Mode controls diff vs re-extract behavior.
- GET
/v1/monitorFreeList monitors
List monitors for the authenticated owner, including remaining checks and last-run status.
- GET
/v1/monitor/{id}FreeMonitor metadata
Single monitor config: URL, webhook, mode, and current status.
- GET
/v1/monitor/{id}/historyFreeMonitor history
Chronological change detections / runs for one monitor — what changed and when.
- DELETE
/v1/monitor/{id}FreeDelete monitor
Stop watching the URL and remove the monitor registration.
Account & checkpoints
Quota, feedback, Merkle checkpoints, and the sample-bundle quickstart.
- GET
/v1/quotaFreeQuota
Credits used / remaining for the current billing period plus reset_at. Never consumes credits.
- POST
/v1/feedbackFreeFeedback
Send product feedback tied to your API key (bugs, feature requests). Free, no quota impact.
- POST
/v1/billing/portalFreeBilling portal
Create a Stripe Customer Portal session URL. Body must include `{ email }` matching the checkout email on the API key.
- POST
/v1/checkpointsFreeCreate checkpoint
Build a Merkle checkpoint over recent completed bundles (optional Ed25519 signature) for batch integrity proofs.
- GET
/v1/checkpoints/{id}FreeGet checkpoint
Fetch a previously created checkpoint by id, including root hash and leaf set metadata.
- GET
/v1/checkpoints/proofFreeCheckpoint proof
Get a Merkle inclusion proof for a leaf_hash or bundle_id against a checkpoint root.
- GET
/v1/checkpoints/public-keyFreeCheckpoint public key
Ed25519 public key used to verify checkpoint signatures offline.
- POST
/v1/quickstart/sample-bundle$0.01Sample bundle
Mint a ready-made sample evidence bundle for onboarding demos without uploading your own file.
Discovery
Agent Quickstart →Machine-readable entry points for agents and SDK generators.
- GET
/FreeAPI root
Health check plus links to agent.json, OpenAPI, and SKILL.md. No auth required.
- GET
/.well-known/agent.jsonFreeAgent Card
A2A discovery document: capabilities, auth, pricing, and endpoint URLs for agent orchestrators.
- GET
/.well-known/darkroom-keys.jsonFreeSigning keys (well-known)
Same payload as GET /v1/keys — well-known path for clients that expect /.well-known/darkroom-keys.json.
- GET
/openapi.jsonFreeOpenAPI
OpenAPI 3.1 schema for the full REST surface — use for codegen, SDKs, and HTTP agents.
- GET
/SKILL.mdFreeSKILL.md
Plain-text onboarding for LLMs: when to call which endpoint and how to pay.
Where is the complete DocImprint API reference?
This page lists customer endpoints: extract & evidence (including receipts, provenance, handoff chain), focused lean routes, jobs, collections, monitor, account & checkpoints, and discovery. Machine-readable spec: https://api.docimprint.com/openapi.json.
Which endpoints should my agent call?
See /docs/reference/agent-use-cases for endpoint lists by agent type (legal, finance, insurance, research, monitoring) in typical call order.
Which endpoints are free on DocImprint?
All GET endpoints: verify, download, history, signing keys (GET /v1/keys), bundle status, version history, and verify-citation. POST endpoints are charged per mode pricing table.
What is the base URL for DocImprint API?
https://api.docimprint.com/v1/.