Tutorial

Extract Invoice Data from PDFs in 5 Minutes with the REST API

YY Yonas Yeneneh April 2, 2026 8 min read

This guide walks through the fastest path from zero to a live invoice API using ParseApi. You'll need a free account, five minutes, and a PDF invoice.

1. Create your account and pick a username

Sign in at app.parseapi.dev with Google or GitHub. On first login you'll be prompted to pick a username. This becomes your permanent API namespace — choose something short and lowercase like acme or yourname.

Your invoice API will live at https://api.parseapi.dev/v1/{username}/invoices, so pick accordingly.

2. Create the invoices folder

From the dashboard, click New folder. Set:

  • Name: Customer Invoices
  • Slug: invoices
  • Auth mode: API key

Click Create folder.

3. Upload a sample invoice

Click Upload documents and drag in a PDF invoice. Processing takes 5–15 seconds depending on document complexity and page count.

When the status indicator turns green, click the document to see the extracted data. For a typical vendor invoice you'll see something like:

{
  "invoice_number": "INV-2024-00841",
  "vendor_name": "Acme Supplies Ltd.",
  "vendor_address": "14 Commerce Street, New York, NY 10001",
  "bill_to": "Contoso Corp.",
  "invoice_date": "2024-11-14",
  "due_date": "2024-12-14",
  "subtotal": 4250.00,
  "tax": 382.50,
  "total": 4632.50,
  "line_items": [
    {
      "description": "Office chairs (qty 5)",
      "unit_price": 425.00,
      "quantity": 5,
      "total": 2125.00
    },
    {
      "description": "Standing desk (qty 2)",
      "unit_price": 1062.50,
      "quantity": 2,
      "total": 2125.00
    }
  ]
}

If anything is wrong, click the field and edit it inline. The correction is saved immediately.

4. Generate an API key

In the sidebar, navigate to API keys and click New key. Name it dev-key, set the environment to Test, and save. Copy the key — you'll only see it once.

5. Query the API

With your key and username ready:

curl https://api.parseapi.dev/v1/yourname/invoices \
  -H "Authorization: Bearer pk_test_your_key_here"

Response:

{
  "data": [
    {
      "id": "01HZB2VQ9S4KFWMEC3GRX7YNJ5",
      "document_id": "01HZB2VQ9S4KFWMEC3GRX7YNJ4",
      "filename": "invoice-00841.pdf",
      "extracted_at": "2024-11-15T09:22:14Z",
      "result": {
        "invoice_number": "INV-2024-00841",
        "vendor_name": "Acme Supplies Ltd.",
        "total": 4632.50
      }
    }
  ],
  "pagination": {
    "total": 1,
    "next_cursor": null
  }
}

6. Upload more invoices

The real value emerges as you accumulate documents. Upload 20 invoices and the same endpoint returns all of them. Use cursor-based pagination to walk through large datasets:

curl "https://api.parseapi.dev/v1/yourname/invoices?limit=50&cursor=01HZB2VQ9S" \
  -H "Authorization: Bearer pk_test_..."

Or pull just the latest:

curl https://api.parseapi.dev/v1/yourname/invoices/latest \
  -H "Authorization: Bearer pk_test_..."

7. Automate uploads via the API

Once past manual uploads, push documents programmatically:

curl -X POST https://api.parseapi.dev/v1/yourname/invoices/documents \
  -H "Authorization: Bearer pk_test_..." \
  -F "file=@invoice-00842.pdf"

This is the same endpoint your billing team, email-forwarding integration, or accounts-payable system will use.

8. Get the auto-generated OpenAPI spec

Every folder automatically gets a typed OpenAPI spec reflecting its current schema:

curl https://api.parseapi.dev/v1/yourname/invoices/openapi.json

You can import this into Postman, Insomnia, or any code generator to get a typed client for your language of choice.

What's next

  • Set up a webhook to get notified when a new invoice is processed
  • Use the /search endpoint to filter by vendor name, amount range, or due date
  • Switch to a live API key when you're ready for production
  • Upgrade to the Hobby plan for 1,000 pages/month if you outgrow the free tier

The full API reference is at docs.parseapi.dev.

Try ParseApi free

100 pages per month at no cost. No credit card required.

Get started