Integrations

Setup guides by tool

Each guide has one prompt or one command to paste into your tool, and says where your API key goes so it stays out of frontend code.

Which key to use

Your dashboard has two kinds of key:

KeyUse it whenSafe in browser?
sk_live_… secretYour app has a server, API route or edge function (Lovable Cloud / Supabase, Next.js, Replit, Express…)No — server only
pk_live_… publishableYour app is frontend-only. Locked to the domains you list, with a monthly page cap you set.Yes

If you're not sure, use the secret key. Every prompt below has your AI builder create a server function for it.

Lovable

Lovable apps run server code in edge functions (Lovable Cloud or a connected Supabase project), so the secret key stays private. To get fields like invoice numbers, have Lovable AI read them from the Markdown.

  1. Make sure your project has Lovable Cloud or Supabase enabled.
  2. Paste the prompt below into the Lovable chat.
  3. When Lovable asks for the secret PDFINSPECTOR_API_KEY, paste your sk_live_… key.
  4. Upload a test PDF in the preview.
Prompt for Lovable
Add PDF upload using PDF Inspector.
Read https://pdfinspector.com/llms.txt first and follow it.

1. Create an edge function "pdf-to-markdown" that receives a PDF file,
   forwards it as multipart/form-data (field "file") to
   POST https://api.pdfinspector.com/v1/convert
   with header "Authorization: Bearer ${PDFINSPECTOR_API_KEY}".
   Store PDFINSPECTOR_API_KEY as a secret. Never put it in frontend code.
2. On the page, add a drag-and-drop PDF upload (max 50 MB) that calls
   the edge function and shows a progress state (scans take a few seconds).
3. Render the returned "markdown" nicely, tables included.
4. Save the file name and markdown to a new "documents" table.
5. Add a "Summarize" button that sends the markdown to Lovable AI.
6. If the API returns an error, show error.message to the user.
What the edge function should roughly look like
// supabase/functions/pdf-to-markdown/index.ts
Deno.serve(async (req) => {
  const form = await req.formData();
  const res = await fetch("https://api.pdfinspector.com/v1/convert", {
    method: "POST",
    headers: { Authorization: `Bearer ${Deno.env.get("PDFINSPECTOR_API_KEY")}` },
    body: form, // contains "file"
  });
  return new Response(await res.text(), {
    status: res.status,
    headers: { "Content-Type": "application/json" },
  });
});

Bolt.new

Bolt can build a server route or a Supabase edge function for you. If your Bolt app has no server, use a publishable key instead.

  1. Paste the prompt into Bolt.
  2. Add PDFINSPECTOR_API_KEY=sk_live_… to the project's .env file when Bolt creates it.
  3. Frontend-only app? Tell Bolt: "use a publishable key from VITE_PDFINSPECTOR_PK and call the API directly from the browser", and add your deployed domain to the key's allowed origins.
Prompt for Bolt
Add a PDF upload feature that converts PDFs to Markdown with PDF Inspector.
Docs: https://pdfinspector.com/llms.txt (read first).

- Create a server-side endpoint /api/pdf that forwards the uploaded
  PDF to POST https://api.pdfinspector.com/v1/convert as multipart
  form-data (field "file"), with "Authorization: Bearer" + env var
  PDFINSPECTOR_API_KEY.
- In the UI: upload button, progress spinner, then render the
  returned "markdown" (tables included) with a "Copy" button.
- Show error.message from the API if something fails.

v0

v0 generates Next.js apps, so the key lives in a Route Handler and never reaches the browser.

  1. Paste the prompt into v0.
  2. Add PDFINSPECTOR_API_KEY to the project's environment variables (in v0's project settings, or in Vercel after you deploy).
Prompt for v0
Build a "chat with your PDF" page using PDF Inspector (docs: https://pdfinspector.com/llms.txt).

- Create app/api/pdf/route.ts that accepts a PDF upload and forwards it
  to POST https://api.pdfinspector.com/v1/convert with
  "Authorization: Bearer ${process.env.PDFINSPECTOR_API_KEY}".
- Page: shadcn/ui dropzone card, progress state, then two tabs:
  "Document" (rendered markdown) and "Chat" (AI SDK chat that gets
  the markdown as context).

Replit

  1. Open the Secrets tool in your Repl and add PDFINSPECTOR_API_KEY.
  2. Paste the prompt into Replit Agent.
Prompt for Replit Agent
Add PDF upload with PDF Inspector (read https://pdfinspector.com/llms.txt).
Use the PDFINSPECTOR_API_KEY secret on the server only.
Forward uploads to POST https://api.pdfinspector.com/v1/convert (multipart, field "file")
and render the returned markdown on the results page.

Cursor MCP

Cursor's agent can call PDF Inspector as a tool while you code. To build the integration into your app instead, use the Bolt prompt, which also works in Cursor.

To add the MCP server, create .cursor/mcp.json in your project (or ~/.cursor/mcp.json for all projects):

{
  "mcpServers": {
    "pdfinspector": {
      "url": "https://pdfinspector.com/mcp",
      "headers": { "Authorization": "Bearer sk_live_YOUR_KEY" }
    }
  }
}

Then ask the agent: "Use pdfinspector to pull the pricing table from docs/vendor-quote.pdf into a TypeScript constant."

Tip: add .cursor/mcp.json to .gitignore so your key isn't committed.

Windsurf MCP

Add the server to ~/.codeium/windsurf/mcp_config.json, then refresh MCP servers in Cascade:

{
  "mcpServers": {
    "pdfinspector": {
      "serverUrl": "https://pdfinspector.com/mcp",
      "headers": { "Authorization": "Bearer sk_live_YOUR_KEY" }
    }
  }
}

Claude (web & desktop) MCP

Claude can call PDF Inspector as a tool and get tables back as Markdown tables.

  1. In Claude, open Settings → Connectors and choose Add custom connector.
  2. Name: PDF Inspector · URL: https://pdfinspector.com/mcp
  3. Click Connect and sign in to PDF Inspector when asked. No key to paste.
  4. In a chat, turn on the connector and ask: "Convert this PDF and give me every table as CSV: https://…"

Claude Code MCP

Run this command. Without a key, Claude can make one test call a day. After that it can create a key and give you a checkout link to buy credits.

claude mcp add --transport http pdfinspector https://pdfinspector.com/mcp

To use a key, for example in CI, pass it as a header:

claude mcp add --transport http pdfinspector https://pdfinspector.com/mcp --header "Authorization: Bearer sk_live_YOUR_KEY"

Then: "Convert ./contracts/msa.pdf with pdfinspector and list every termination clause." To have Claude Code build the integration into your app, point it at /llms.txt.

Anything else

n8n, Make, Zapier, Framer, Webflow and your own code only need one HTTP request. If your tool has an AI assistant, give it this prompt:

Universal prompt
Integrate PDF Inspector to turn PDFs into Markdown. Read https://pdfinspector.com/llms.txt and follow it exactly. Keep the API key server-side.

The API docs have curl, JavaScript and Python examples.