Skip to main content
Cohere

Search documentation

Type to search this documentation.

On this pageOverview

Document Parsing

Cohere's Parse model converts unstructured enterprise documents (PDFs, images, slides) into structured Markdown output. It extracts text, tables, lists, forms, images, captions, and bounding box coordinates.

This quickstart guide shows you how to parse a document image with the Parse endpoint.

  1. Setup

    First, install the Cohere Python SDK with the following command.

    Bash
    pip install -U cohere

    Next, import the library and create a client.

    PYTHON
    import cohere
    
    co = cohere.ClientV2(
        "COHERE_API_KEY"
    )  # Get your free API key here: https://dashboard.cohere.com/api-keys
    PYTHON
    import cohere
    
    co = cohere.ClientV2(
        api_key="",  # Leave this blank
        base_url="<YOUR_DEPLOYMENT_URL>",
    )
    PYTHON
    import cohere
    
    co = cohere.SagemakerClientV2(
        aws_region="AWS_REGION",
        aws_access_key="AWS_ACCESS_KEY_ID",
        aws_secret_key="AWS_SECRET_ACCESS_KEY",
        aws_session_token="AWS_SESSION_TOKEN",
    )
  2. Prepare the Document

    Parse accepts documents as base64-encoded data URIs. Convert your image to a data URI.

    PYTHON
    import base64
    
    with open("document.png", "rb") as f:
        b64 = base64.b64encode(f.read()).decode("utf-8")
    
    data_uri = f"data:image/png;base64,{b64}"
  3. Parse the Document

    Pass the document to the Parse endpoint. By default, the response contains Markdown output.

    PYTHON
    response = co.parse(
        model="parse-v5.0",
        document={"type": "image_url", "image_url": data_uri},
    )
    
    for page in response.pages:
        print(page.markdown.content)
    PYTHON
    response = co.parse(
        model="parse-v5.0",
        document={"type": "image_url", "image_url": data_uri},
    )
    
    for page in response.pages:
        print(page.markdown.content)
    PYTHON
    response = co.parse(
        model="YOUR_ENDPOINT_NAME",
        document={"type": "image_url", "image_url": data_uri},
    )
    
    for page in response.pages:
        print(page.markdown.content)
  4. Blocks Output

    To get structured content blocks, set output_format to "blocks". Each block has a type (e.g. text, table) with type-specific fields including bounding boxes for tables.

    PYTHON
    response = co.parse(
        model="parse-v5.0",
        document={"type": "image_url", "image_url": data_uri},
        output_format="blocks",
    )
    
    for page in response.pages:
        for block in page.blocks:
            if block.type == "text":
                print(block.text.content)
            elif block.type == "table":
                print(f"[Table] bbox={block.table.bounding_box}")
                print(block.table.html)
                print(block.table.description)
            print()
Suggest an edit

Propose a replacement for this page. The site team reviews it before applying any changes.

Export
Documentation menu