DocImprint
What is DocImprint?
DocImprint turns any PDF or URL into a tamper-evident evidence bundle — structured data, AI-cited answers, and a cryptographic proof your agents can verify independently.
Feature | Description |
Extract | Markdown, tables, structured data, invoice parsing |
Summarize & Q&A | AI answers with inline citations and confidence scores |
Claim-check | Verify factual claims against the source document |
Collections | Cross-document semantic search and Q&A |
Notarize | On-chain attestation via Base L2 (EAS) |
MCP server | Native tool support for Claude, GPT, and any MCP client |
x402 payments | Pay per call with USDC — no account required |
Related MCP server: signbee-mcp
Install
npm install docimprintQuick start
import { DocImprintClient } from 'docimprint'
const client = new DocImprintClient({ apiKey: 'dr_live_...' })
// Extract a PDF and get a verifiable evidence bundle
const result = await client.extract({
source: 'https://example.com/contract.pdf',
include: ['markdown', 'summary'],
})
console.log(result.bundle_id) // ev_01j...
console.log(result.summary) // AI-generated summary
console.log(result.manifest_sha256) // tamper-evident hashGet an API key at docimprint.com.
Methods
Core
// Extract with evidence bundle
client.extract(params: ExtractRequest): Promise<ExtractResponse>
// Verify bundle integrity — free, no auth required
client.verify(bundleId: string, quick?: boolean): Promise<VerifyResponse>
// Download bundle ZIP
client.download(bundleId: string): Promise<Response>
// Notarize on Base L2 ($0.05)
client.notarize(bundleId: string): Promise<NotarizeResponse>
// Delete bundle
client.deleteBundle(bundleId: string, opts?: { acknowledgeNotarized?: boolean }): Promise<void>Focused endpoints
// Summarize ($0.018)
client.summarize(params: SummarizeRequest): Promise<SummarizeResponse>
// Question & answer ($0.022)
client.qa(params: QARequest): Promise<QAResponse>
// Translate ($0.040)
client.translate(params: TranslateRequest): Promise<TranslateResponse>
// Claim-check ($0.025)
client.checkClaims(params: CheckClaimsRequest): Promise<CheckClaimsResponse>
// Describe image or PDF ($0.018)
client.describe(params: DescribeRequest): Promise<DescribeResponse>Async jobs
// Get remaining API key quota
client.getQuota(): Promise<{ credits_remaining: number; credits_total: number; resets_at: string }>
// Poll a job by ID
client.getJob(jobId: string): Promise<Job>
// List jobs with optional filters
client.listJobs(opts?: { status?, limit?, offset? }): Promise<{ jobs: Job[] }>Collections
// Create a named collection
client.createCollection({ name: 'Q4 Contracts' }): Promise<Collection>
// List all collections
client.listCollections(): Promise<{ collections: Collection[] }>
// Add a bundle to a collection
client.addToCollection(collectionId, { bundle_id }): Promise<void>
// Semantic search across documents
client.searchCollection(collectionId, { query, limit? }): Promise<SearchCollectionResponse>
// Cross-document Q&A with citations
client.askCollection(collectionId, { question, limit? }): Promise<AskCollectionResponse>Error handling
import { DocImprintClient, DocImprintError } from 'docimprint'
try {
const result = await client.extract({ source: 'https://example.com/doc.pdf' })
} catch (err) {
if (err instanceof DocImprintError) {
console.error(err.message) // human-readable error
console.error(err.status) // HTTP status code
console.error(err.requestId) // x-request-id for support
}
}Authentication
API key — monthly credits via Stripe:
const client = new DocImprintClient({ apiKey: 'dr_live_...' })x402 USDC — pay per call, no account required. Use the raw API directly with the X-Payment header. See x402 docs.
TypeScript
All request and response types are exported:
import type {
ExtractRequest,
ExtractResponse,
Job,
Collection,
SearchResult,
} from 'docimprint'MCP server
DocImprint exposes a native MCP server for use with Claude, Cursor, and any MCP-compatible client:
https://api.docimprint.com/mcpTransport: streamable-http · Auth: Bearer token (your API key)
Links
This server cannot be installed
Maintenance
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/sawftware-labs/docimprint'
If you have feedback or need assistance with the MCP directory API, please join our Discord server