Parse

Parse a document to Markdown

POST
/api/v1/parse

Parse a document to Markdown

Convert a document into readable, structured Markdown content.

Accepts either a file upload (multipart/form-data) or a document URL (JSON body).

Sync mode (default)

Blocks until parsing completes and returns 200 with the full markdown result.

curl -X POST https://api.context212.com/api/v1/parse \  -H 'Authorization: Bearer $TOKEN' \  -F file=@invoice.pdf

Async mode (options.async = true)

Not implemented yet — returns 501.

Supported file types: .pdf, .png, .jpg, .jpeg, .pptx, .docx, .xlsx, .html, .xhtml

Sync limits: 20 MB file size, 15 pages.

Authorization

bearerAuth
AuthorizationBearer <token>

Console session token (Authorization: Bearer <session>) or product API key (Authorization: Bearer <api-key> or x-api-key). Session tokens are validated via Better Auth get-session; API keys against the shared database.

In: header

Header Parameters

authorization?string|null
x-api-key?string|null

Request Body

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/api/v1/parse" \  -H "Content-Type: application/json" \  -d '{    "document": "http://example.com"  }'
{  "id": "string",  "status": "string",  "created_at": "2019-08-24T14:15:22Z",  "completed_at": "2019-08-24T14:15:22Z",  "processing_time_ms": 0,  "document": {    "filename": "string",    "page_count": 0,    "file_size_bytes": 0,    "mime_type": "string"  },  "result": {    "pages": [      {        "index": 0,        "markdown": "string"      }    ]  },  "usage": {    "pages_processed": 0  }}