# DocuShell API Docs

DocuShell gives developers, freelancers, and businesses one async API surface for parsing PDFs, rendering documents, capturing webpages, compressing files, and converting PDFs to Word.

Source: https://docs.docushell.com/
Category: Overview
Read time: 4 min

## Related

- [Start here](/getting-started.md): Authentication, idempotency, polling, downloads, and common errors.
- [Flagship reference](/parse-pdf.md): Structured JSON, bounding boxes, Markdown, HTML, text, annotated PDF, and batch parse workflows.
- [Resume Parse](/resume-parse.md): ATS-focused resume extraction with candidate, contact, sections, skills, and confidence fields.

## Summary

| Label | Value | Description |
| --- | --- | --- |
| Base URL | https://api.docushell.com/api | Use this as the API client base, then call `/v1/...` routes from your server or automation. |
| Auth | Bearer + Idempotency-Key | Bearer authentication is required. Idempotency is optional but recommended for every submit call. |
| Job flow | queued -> processing -> done | Submit work, poll `/v1/jobs/:jobId`, then stream artifacts or files from the shared download route. |

## Who This Is For

Developers use DocuShell when they want stable HTTP endpoints and clean copy-paste samples instead of building PDF processing pipelines from scratch.

Freelancers use the same queued job model to automate deliverables like parsed research packets, branded Markdown exports, or client-ready PDF conversions.

Businesses get one public gateway and one auth model across the PDF stack, even though the work happens in dedicated services behind the scenes.

## Start Here

- [Getting started](/getting-started.md): Create an API key, add the required headers, learn the queued job lifecycle, and copy the first request.
- [Parse PDF](/parse-pdf.md): Learn single-file and batch parse request shapes, structured JSON, bounding boxes, Markdown, HTML, text, and annotated PDF workflows.
- [Resume Parse](/resume-parse.md): Use the resume-specific API for ATS-friendly candidate, contact, section, skills, keyword, and warning fields.
- [Billing](/billing.md): Understand plan access, monthly credits, cancellation behavior, and invoice handling.

## Endpoint Inventory

This is the canonical public API surface documented in this hub.

| Method | Path | Purpose |
| --- | --- | --- |
| POST | /v1/parse | Queue one PDF parse job with JSON, Markdown, HTML, text, and annotated PDF artifacts. |
| POST | /v1/parse/batch | Accept an async batch of PDFs with shared parse options, required idempotency, per-file artifacts, and terminal batch status. |
| GET | /v1/parse/batch/:batchId | Poll parse batch status, per-file statuses, usage, expiry, webhook delivery state, and artifact links. |
| GET | /v1/parse/batch/:batchId/download | Generate and stream a ZIP containing completed file artifacts for the batch. |
| GET | /v1/parse/batch/:batchId/files/:fileId/download?format=json\|markdown\|html\|text\|annotated_pdf\|markdown_with_html\|markdown_with_images\|tagged_pdf | Download one requested artifact for one completed file in a batch. |
| POST | /v1/resume/parse | Queue ATS-focused resume parsing with candidate, contact, section, skills, keyword, confidence, and warning fields. |
| POST | /v1/markdown-to-pdf | Render Markdown into a PDF. |
| POST | /v1/url/render | Capture a public webpage as a PDF. |
| POST | /v1/pdf/compress | Compress one or more uploaded PDFs. |
| POST | /v1/pdf/to-word | Convert a PDF into a DOCX file. |
| GET | /v1/jobs/:jobId | Poll a queued job until it reaches a terminal state. |
| GET | /v1/jobs/:jobId/download | Download the final file for non-parse jobs. |
| GET | /v1/jobs/:jobId/download?format=json\|markdown\|html\|text\|annotated_pdf\|markdown_with_html\|markdown_with_images\|tagged_pdf | Download parse artifacts directly. |

## First Request

Use the Markdown lane for a fast smoke test of auth, idempotency, status polling, and downloads.

### First request

```bash
curl -X POST "https://api.docushell.com/api/v1/markdown-to-pdf" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: quickstart-001" \
  -d '{
    "markdown": "# DocuShell\n\nRendered through the public API.",
    "file_name": "quickstart.md",
    "page_size": "A4"
  }'
```
