docimprint

← All docs

Focused endpoints

Aly Sawft · Founder & Engineer, Sawftware LLC ·

What are focused extract endpoints?

Lean modes via POST /v1/extract with ?bundle=false: summarize ($0.018), Q&A ($0.022), claim-check ($0.025), structured ($0.025), and translate ($0.040) — without full bundle storage unless store=true.

Focused endpoints

from $0.018

Five lean AI analysis routes that return results directly — no evidence bundle stored, no artifact upload. Each endpoint supports both synchronous (200) and asynchronous (202 + job_id) modes via the ?async=true query parameter.

Use focused endpoints when: you need AI analysis without storing a verifiable bundle (summaries, Q&A, translations, claim checking, visual descriptions).

Async mode: add ?async=true to any route — returns 202 immediately with a job_id. Poll GET /v1/jobs/:id until status: "complete". The full result is embedded in the job response — no separate bundle fetch needed.

Need a stored bundle? Use POST /v1/extract with a mode parameter — same AI output plus a verifiable bundle. Stored extracts default to async (202); add ?sync=true for an inline bundle_id.

API key billing: focused routes deduct credits per call (Summarize/Q&A/Check claims: 3, Translate: 5, Describe: 2). See Authentication for the full credit table.

  • POST /v1/summarize$0.018

    Lean summary + key points. No bundle stored. Add ?async=true to queue.

  • POST /v1/qa$0.022

    Cited answer to a question about a URL or document. Add ?async=true to queue.

  • POST /v1/translate$0.040

    Full-page translation to target language. Add ?async=true to queue.

  • POST /v1/check-claims$0.025

    Verdict + evidence for each claim. Add ?async=true to queue.

  • POST /v1/describe$0.018

    Visual description, visible text, detected objects. Add ?async=true to queue.

Async result fields

When you poll GET /v1/jobs/:id after an async dispatch, result.* contains the same fields as the sync response:

Endpointresult.* fields
/v1/summarizesummary, key_points, word_count, url, truncated
/v1/qaanswer, confidence, answer_cited, url
/v1/translatetranslated_text, model_used, target_lang, url
/v1/check-claimsclaim_results, url
/v1/describedescription, text_visible, objects, url
bashExamples
# Summarize — sync (200, result inline)
curl -X POST https://api.docimprint.com/v1/summarize \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"source": "https://cdn.example.com/annual-report.pdf"}'

# Summarize — async (202, result via job poll)
curl -X POST "https://api.docimprint.com/v1/summarize?async=true" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"source": "https://cdn.example.com/annual-report.pdf"}'

# Poll for async result
curl https://api.docimprint.com/v1/jobs/job_abc123 \
  -H "Authorization: Bearer $API_KEY"

# Q&A
curl -X POST https://api.docimprint.com/v1/qa \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"source": "https://example.com/report", "question": "What is the revenue forecast?"}'

# Translate to Spanish
curl -X POST https://api.docimprint.com/v1/translate \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"source": "https://example.com/terms", "target_lang": "es"}'

# Check claims
curl -X POST https://api.docimprint.com/v1/check-claims \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"source": "https://example.com/10-K.pdf", "claims": ["Revenue exceeded $1B in FY2024", "No material liabilities"]}'

# Describe (visual + structural)
curl -X POST https://api.docimprint.com/v1/describe \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"source": "https://example.com"}'
jsonResponses
// POST /v1/summarize → 200
{
  "summary": "Revenue grew 18% YoY to $2.4B driven by enterprise expansion...",
  "key_points": ["18% YoY revenue growth", "Enterprise segment up 32%"],
  "word_count": 4820,
  "url": "https://cdn.example.com/annual-report.pdf",
  "truncated": false
}

// POST /v1/summarize?async=true → 202
{ "status": "queued", "job_id": "job_abc123", "bundle_id": "ev_xyz" }

// GET /v1/jobs/job_abc123 → 200 (when complete)
{
  "status": "complete",
  "result": {
    "summary": "Revenue grew 18% YoY...",
    "key_points": ["18% YoY revenue growth"],
    "url": "https://cdn.example.com/annual-report.pdf"
  }
}

// POST /v1/qa → 200
{
  "answer": "The revenue forecast for FY2025 is $2.8B, up 17% from FY2024.",
  "confidence": "high",
  "answer_cited": { "value": "...", "citations": [{ "quote": "...", "paragraphs": [12] }] },
  "url": "https://example.com/report"
}

// POST /v1/translate → 200
{
  "translated_text": "Este informe anual describe...",
  "model_used": "llama-3.3-70b",
  "target_lang": "es",
  "url": "https://example.com/terms"
}

// POST /v1/check-claims → 200
{
  "claim_results": [
    { "claim": "Revenue exceeded $1B in FY2024", "status": "supported", "evidence": "Total revenue for FY2024 was $1.4B [P8]", "confidence": "high" }
  ],
  "url": "https://example.com/10-K.pdf"
}

// POST /v1/describe → 200
{
  "description": "A product landing page with a hero section, feature grid, and pricing table.",
  "text_visible": "Get started for free — No credit card required...",
  "objects": ["hero-image", "navigation", "pricing-table", "cta-button"],
  "url": "https://example.com"
}

Polling, webhooks, and batch jobs: Async jobs → · All modes with evidence bundles: Extract guide →

Related