Documentation

Parsli Documentation

Everything you need to extract structured data from your documents using AI. Whether you're a non-technical founder connecting to Google Sheets or a developer building API integrations, this guide has you covered.

Getting Started

Parsli turns your PDFs, images, invoices, emails, and documents into clean, structured data — automatically. No coding required. Here's how to get up and running in under 5 minutes.

1

Create your free account

Click "Get Started Free" on the home page. You get 50 free pages per month — no credit card required.
2

Create a parser

A parser is a reusable extraction template. Give it a name (e.g. "Invoice Parser") and an optional description.
Create Parser dialog with name and description fields
3

Define your schema

Tell the AI what data you want extracted. Add fields like "Invoice Number", "Total Amount", "Vendor Name", etc. Choose field types (text, number, date, etc.) so the output is always clean.
4

Test with a sample document

Upload a sample PDF, image, or document in the Test tab. The AI extracts data according to your schema in seconds. Review the results and tweak your schema if needed.
5

Connect your integrations

Send extracted data wherever you need it — Google Sheets, Zapier, Make, webhooks, or your own app via API.
Tip: Start simple. You can always add more fields, integrations, and automation later.

Creating Parsers

A parser is the core building block. Think of it as a "recipe" that tells the AI what data to extract from a specific type of document.

Examples of parsers you might create:

  • Invoice Parser — extracts vendor, amounts, line items, due dates
  • Receipt Parser — extracts store name, items, totals, payment method
  • ID Document Parser — extracts name, ID number, date of birth, expiry
  • Contract Parser — extracts parties, dates, key terms, obligations
  • Email Attachment Parser — auto-extract from incoming emails via Gmail

How to create a parser

  1. Go to the Parsers page.
  2. Click "New Parser".
  3. Enter a name and optional description.
  4. Click "Create". You'll land on the parser detail page.

Parser status

Each parser has a status that controls whether it processes documents:

StatusBehavior
ActiveAccepts and processes new documents
PausedRejects new extraction requests
ArchivedHidden from the dashboard (soft delete)

Limits

Free accounts can create up to 5 parsers. Paid plans include unlimited parsers.

Defining Your Schema

Your schema tells the AI exactly what data to pull from each document. Each field you add becomes a column in your output data.

Field types

CategoryTypesUse case
Texttext, email, url, phone, address, rich textNames, descriptions, contact info
Numbersnumber, decimalAmounts, quantities, prices
Date & Booleandate, booleanDates, yes/no flags
Selectionsingle-select, multi-selectCategories, tags, dropdown values
Compoundobject, list, tableNested data, line items, repeating rows

Adding fields

  1. Open your parser and go to the Schema tab.
  2. Click "Add Field".
  3. Enter a field name (e.g. "invoice_number").
  4. Select the field type (e.g. "text").
  5. Optionally add a description to help the AI understand what to look for.
  6. Toggle Required if the field should always be present.
  7. Click Save.
Add Field form showing field name, type selector, description, extraction instructions, and required toggle
Tip: Add extraction instructions for tricky fields. For example: "Always normalize dates to YYYY-MM-DD format" or "Extract the total including tax, not the subtotal."

Compound fields (tables & nested data)

Use table fields for repeating rows (like invoice line items). Use object fields for grouped data (like a vendor with name + address). Use list fields for simple arrays of values.

Example: Invoice line items table

Add a "line_items" field of type table, then define columns: "description" (text), "quantity" (number), "unit_price" (decimal), "total" (decimal).

Schema tab showing defined fields — invoice number (number type) and Line Items (table type)

Custom extraction instructions

At the bottom of the Schema tab, you'll find a Custom Extraction Instructions text area. Use this to give the AI parser-level guidance that applies to every extraction.

Example instructions:

  • "Always normalize dates to YYYY-MM-DD format"
  • "Extract amounts in USD. If a different currency, note it in the field."
  • "For the category field, classify as: Hardware, Software, or Services"
  • "If a PO number is not present, use the invoice number instead"

Testing Extraction

Before connecting integrations, test your parser to make sure it extracts the right data.

  1. Open your parser and go to the Test tab.
  2. Drag-and-drop a sample document (or click to browse).
  3. Wait a few seconds while the AI processes your document.
  4. Review the extracted data in Table view or JSON view.
  5. If results aren't right, go back to Schema and adjust your fields or instructions.
Note: Each test extraction uses 1 credit (1 page) from your monthly allowance.

Reading your results

The results view shows each field with its extracted value. Pay attention to:

  • Table view — shows fields in a readable format with type badges
  • JSON view — raw output, useful for developers to verify structure
  • Missing values — shown as "-" when the AI couldn't find data
  • Confidence — the AI assigns confidence scores; low-confidence fields are flagged

Integrations

Once your parser is working, connect it to the tools you already use. Open your parser's Integrations tab to add any of the following:

Add Integration dialog showing Webhook, Google Sheets, Zapier, Make, Power Automate, and Gmail Inbox options

Google Sheets

Pull extracted data directly into a Google Sheet — no code needed. Parsli generates a live data feed URL that Google Sheets can read automatically.

  1. In the Integrations tab, click "Add Integration" and select Google Sheets.
  2. Copy the generated IMPORTDATA formula.
  3. Paste it into any cell in your Google Sheet.
  4. Your sheet now automatically pulls the latest extracted data as CSV.
spreadsheet
=IMPORTDATA("https://parsli.co/api/parsers/{id}/feed?token={token}&format=csv")
Tip: The data refreshes automatically whenever Google Sheets recalculates. No webhooks or manual refresh needed.

Zapier

Connect to 5,000+ apps through Zapier. Every time a document is processed, the extracted data is sent to your Zap.

  1. In Zapier, create a new Zap with the "Webhooks by Zapier" trigger.
  2. Choose "Catch Hook" and copy the webhook URL.
  3. In Parsli, add a Zapier integration and paste the webhook URL.
  4. Click "Test" to send a sample payload to Zapier.
  5. In Zapier, continue building your Zap with the extracted data fields.

Make (formerly Integromat)

Similar to Zapier — create a Make scenario with a "Custom webhook" module, copy the URL into Parsli, and your extracted data flows into your automation.

Custom Webhooks

Send extracted data to any HTTP endpoint. Perfect for developers who want to push data to their own backend, database, or custom application.

  1. Add a Webhook integration.
  2. Enter your endpoint URL and HTTP method (POST or PUT).
  3. Optionally configure authentication (Bearer token or Basic auth).
  4. Click "Test" to verify delivery.

Webhook payload format:

json
{
  "event": "document.processed",
  "parser_id": "abc-123",
  "parser_name": "Invoice Parser",
  "document_id": "doc-456",
  "timestamp": "2026-03-06T12:00:00Z",
  "data": {
    "invoice_number": "INV-2026-001",
    "vendor_name": "Acme Corp",
    "total_amount": 1250.00,
    "due_date": "2026-04-01"
  },
  "metadata": {
    "file_name": "invoice.pdf",
    "mime_type": "application/pdf",
    "source_type": "upload",
    "page_count": 1
  }
}

Gmail Inbox

Automatically extract data from email attachments. Parsli connects to your Gmail account (read-only) and processes attachments from specific senders.

  1. Add a Gmail Inbox integration.
  2. Click "Connect Gmail Account" and authorize read-only access.
  3. Set a from filter — only emails from this address will be processed (e.g. invoices@supplier.com).
  4. Click "Activate".

Parsli checks your inbox every 5 minutes. When a matching email with an attachment arrives, it's automatically extracted and sent to your other integrations (webhooks, Google Sheets, etc.).

Note: Parsli only requests read-only access to Gmail. It cannot send, delete, or modify your emails.

API Reference

For developers who want to integrate extraction into their own applications. The API accepts documents and returns structured JSON.

API tab showing API Keys section, Inbound Webhook URL, and Quick Start curl example

Authentication

API requests require a Bearer token. Create API keys in your parser's API tab.

  1. Open your parser and go to the API tab.
  2. Click "Create Key" and give it a name.
  3. Copy the key immediately — it's shown only once.
  4. Store it securely (environment variable, secret manager, etc.).
Important: API keys are shown only once when created. If you lose a key, revoke it and create a new one.

Extract document

Send a document for extraction using the REST API:

bash
curl -X POST https://parsli.co/api/v1/extract \
  -H "Authorization: Bearer ext_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "file": {
      "name": "invoice.pdf",
      "type": "application/pdf",
      "data": "BASE64_ENCODED_FILE_CONTENT"
    }
  }'

Response:

json
{
  "success": true,
  "parser_id": "abc-123",
  "document_id": "doc-456",
  "results": {
    "invoice_number": "INV-2026-001",
    "vendor_name": "Acme Corp",
    "total_amount": 1250.00,
    "due_date": "2026-04-01",
    "line_items": [
      { "description": "Widget A", "quantity": 10, "unit_price": 100.00, "total": 1000.00 },
      { "description": "Widget B", "quantity": 5, "unit_price": 50.00, "total": 250.00 }
    ]
  }
}

Inbound webhook

Each parser also has a unique inbound webhook URL for sending documents without API keys. Find it in the API tab. Send documents as multipart form data or JSON with base64 content.

bash
# Using multipart form data
curl -X POST https://parsli.co/api/inbound/webhook/YOUR_TOKEN \
  -F "file=@invoice.pdf"

Error codes

CodeMeaning
200Success — extracted data returned
400Bad request — missing or invalid file
401Unauthorized — invalid or missing API key
402Payment required — monthly credit limit reached
404Parser not found
500Server error — extraction failed

Credits & Billing

Parsli uses a simple page-based credit system. Each document extraction uses 1 credit, regardless of file type or size.

PlanPages / monthPricePer page
Free50$0Free
Starter500$29/mo$0.058
Pro2,000$79/mo$0.040
Enterprise10,000+$249/mo$0.025

How credits work:

  • Credits reset automatically every 30 days.
  • 1 document = 1 credit, regardless of file size or number of pages.
  • Test extractions also use credits.
  • If you run out of credits, extractions will pause until your next billing cycle.
  • Your usage is visible on the dashboard and in Settings.
Note: See the full pricing breakdown on the Pricing page.

Supported File Types

FormatExtensionsHow it's processed
PDF.pdfText extraction + visual AI analysis
Images.png, .jpg, .jpeg, .webp, .gif, .bmpVisual AI analysis (OCR built-in)
Word.docx, .docFull text extraction
Spreadsheets.xlsx, .xlsConverted to CSV for analysis
Plain text.txt, .csv, .json, .xml, .mdDirect text analysis

Frequently Asked Questions

What is a parser?

A parser is a reusable extraction template. You define the fields you want (like "invoice number", "amount", "date"), and the AI uses that definition to extract data from any document you send it.

Do I need to code?

No. The entire setup — creating parsers, defining schemas, testing, and connecting integrations — is done through the web interface. The API is available for developers who want programmatic access, but it's optional.

How accurate is the extraction?

Parsli uses Google's Gemini 2.5 Pro, one of the most advanced AI models available. Accuracy depends on document quality and schema clarity. Well-defined schemas with clear field descriptions and extraction instructions yield the best results. The AI also provides confidence scores so you can flag uncertain extractions.

What happens when I run out of credits?

Extractions will pause until your credits reset (every 30 days) or you upgrade to a higher plan. Existing data and integrations remain intact.

Is my data secure?

Yes. Documents are processed and results are stored in your account. We use Supabase with row-level security, and API keys are stored as SHA-256 hashes. Gmail integration uses read-only OAuth access.

Can I process documents automatically?

Yes, in several ways: (1) Connect Gmail to auto-extract from email attachments, (2) Use the inbound webhook to send documents from other systems, or (3) Use the API to integrate extraction into your own workflows.

What's the difference between the API key and the inbound webhook?

API key — for authenticated programmatic access. Pass it as a Bearer token in the Authorization header. You can create, revoke, and manage multiple keys.
Inbound webhook — a unique URL per parser. Send documents directly to it without authentication headers. Useful for simple integrations and no-code tools.

Can I export my data?

Yes. Use the Google Sheets integration for live CSV export, copy JSON from the Activity tab, or use the API to pull results programmatically.

What if the AI extracts wrong data?

Try these steps: (1) Add clearer field descriptions, (2) Add custom extraction instructions, (3) Make sure your field types match the data (e.g. use "decimal" for currency amounts), (4) Use single-select/multi-select to constrain values to known options.

Ready to get started?

Create your free account and extract data from your first document in minutes.

Go to Parsers

Have a question not covered here? Contact us