Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

datasette-extract

PyPI Changelog Tests License

Import unstructured data (text and images) into structured tables

Installation

Install this plugin in the same environment as Datasette.

datasette install datasette-extract

This plugin depends on datasette-llm for LLM model management, API key handling, and model provider integration. See the datasette-llm README for instructions on installing model providers and configuring API keys.

Configuration

datasette-extract registers an extract purpose with datasette-llm. You can optionally configure which models are available and set a default model for extraction using datasette-llm's purpose-specific configuration:

plugins:
  datasette-llm:
    purposes:
      extract:
        model: gpt-5.4-mini
        models:
        - gpt-5.4-nano
        - gpt-5.4
        - claude-opus-4.6

The model selector in the UI is only shown if more than one model is available.

Usage

This plugin provides the following features:

  • In the database action cog menu for a database select "Create table with extracted data" to create a new table with data extracted from text or an image
  • In the table action cog menu select "Extract data into this table" to extract data into an existing table

When creating a table you can specify the column names, types and provide an optional hint (like "YYYY-MM-DD" for dates) to influence how the data should be extracted.

When populating an existing table you can provide hints and select which columns should be populated.

Text input can be pasted directly into the textarea.

Drag and drop a PDF or text file onto the textarea to populate it with the contents of that file. PDF files will have their text extracted, but only if the file contains text as opposed to scanned images.

Drag and drop a single image onto the textarea - or select it with the image file input box - to process an image.

Permissions

Users must have the datasette-extract permission to use this tool.

In order to create tables they also need the create-table permission.

To insert rows into an existing table they need insert-row.

Development

The recommended way to develop this plugin uses uv. To run the tests:

cd datasette-extract
uv run pytest

To run a development server with an OpenAI API key:

DATASETTE_SECRETS_OPENAI_API_KEY="sk-..." \
  uv run datasette data.db --create --root --secret 1 \
  -s plugins.datasette-llm.purposes.extract.models '["gpt-5.4-mini"]' \
  --internal internal.db --reload

Metadata

Release files for datasette-extract 0.3a0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for datasette-extract 0.3a0
File Size Uploaded
datasette_extract-0.3a0.tar.gz 359.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for datasette-extract 0.3a0
File Interpreter ABI Platform
datasette_extract-0.3a0-py3-none-any.whl Python 3 none any Details

Total release size: 721.5 kB

Release files / datasette_extract-0.3a0.tar.gz

Download URL datasette_extract-0.3a0.tar.gz
Size 359.6 kB
Tags Source
SHA-256 checksum
How to use checksums
c404e0c6a2151c8114136827a1ba31eef1199ec27c429a6d841d850ac7cd2bff
BLAKE2b-256 checksum
How to use checksums
97c10dca7ad249ff2fb068b1f55a94885a823e3a91a0b5a3087beb9ea7e5bad4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 1, 2026.

Transparency log

Release files / datasette_extract-0.3a0-py3-none-any.whl

Download URL datasette_extract-0.3a0-py3-none-any.whl
Size 361.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6b0e1b93d407aac97dadc741f39b6cee5fe73a3ffe9e628bfc7671bc191667c3
BLAKE2b-256 checksum
How to use checksums
fb7e2a986f9e328de2f866e54ab68af0cae5632435e14eb7305343fa8ad36cff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 1, 2026.

Transparency log
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page