My App
DocExtract API

Overview

Extract structured data from documents using AI-powered document processing

DocExtract API

The DocExtract API enables you to extract structured data from documents using advanced AI models. Upload invoices, receipts, purchase orders, contracts, and custom documents to automatically extract fields like totals, dates, line items, and more.

Key Features

  • AI-Powered Extraction: Uses Google Gemini 3 Pro for accurate data extraction
  • Custom Templates: Create extraction templates for any document type
  • Multiple Formats: Support for PDF, PNG, JPG, WEBP, and TIFF
  • High Accuracy: Field-level confidence scores for extracted data
  • RESTful API: Simple HTTP endpoints with JSON responses
  • TypeScript SDK: Fully typed SDK for Node.js applications
  • Webhooks: Real-time notifications for job status changes
  • Credit-Based Pricing: Pay only for what you use, no subscriptions

How It Works

sequenceDiagram
    participant Client
    participant API
    participant Gemini
    participant Database

    Client->>API: Upload document
    API->>Database: Create job (queued)
    API-->>Client: Return job ID

    API->>Gemini: Extract data
    Gemini-->>API: Return extracted fields

    API->>Database: Update job (completed)
    API->>Client: Webhook notification

    Client->>API: Get job results
    API-->>Client: Return extracted data

Quick Example

// Submit a document for extraction
const response = await fetch('https://api.adteco.com/v1/documents', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer sk_live_...',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    extractor_id: 'ext_...',
    document: base64Document,
    mime_type: 'application/pdf',
  }),
});

const job = await response.json();
console.log(job.id); // job_...
console.log(job.status); // 'queued' or 'completed'

// Get extraction results
const resultsResponse = await fetch(`https://api.adteco.com/v1/documents/${job.id}`, {
  headers: {
    'Authorization': 'Bearer sk_live_...',
  },
});

const results = await resultsResponse.json();
console.log(results.extracted_data);
// {
//   invoice_number: "INV-001",
//   total_amount: 1250.00,
//   invoice_date: "2024-11-23",
//   ...
// }

Use Cases

Invoice Processing

Extract invoice numbers, amounts, dates, line items, and vendor information from invoices in any format.

Receipt Digitization

Convert paper receipts into structured data for expense tracking and accounting systems.

Contract Analysis

Extract key terms, dates, parties, and clauses from legal contracts and agreements.

Form Data Capture

Process application forms, surveys, and questionnaires automatically.

Purchase Order Processing

Extract PO numbers, items, quantities, and pricing from purchase orders.

Getting Started

  1. Create an account and get your API key
  2. Create an extractor defining what fields to extract
  3. Submit documents for processing
  4. Retrieve results and integrate with your application

API Endpoints

EndpointDescription
POST /v1/documentsSubmit a document for extraction
GET /v1/documents/:idGet job status and results
GET /v1/documentsList all jobs
POST /v1/extractorsCreate an extraction template
GET /v1/extractorsList all extractors
GET /v1/extractors/:idGet extractor details
GET /v1/creditsGet credit balance

Authentication

All API requests require an API key. Include your key in the Authorization header:

Authorization: Bearer sk_live_your_api_key_here

Get your API key from the API Settings page.

Rate Limits

  • Free Tier: 10 requests per minute
  • Paid Plans: 100 requests per minute
  • Rate limit headers included in all responses

Support

Next Steps