Skip to content

Quickstart

The fast path to a working integration. For every endpoint and parameter, see the API Reference.

Sign up and create an organization. Everything in LangParse — documents, keys, billing — is scoped to an organization, and you choose its data-residency region (US or Australia).

In the dashboard, open Settings → API keys and create one. New keys are scoped to parse by default (submit documents and read results); manage and admin scopes require the admin role. The secret is shown once — store it safely and use a separate key per environment.

Send it on every request as a bearer token (or the X-Api-Key header):

Authorization: Bearer YOUR_API_KEY

Everything parses through one endpoint — POST /api/v1/documents. Give it a file (inline base64 contents, a remote url, or the id of a file you uploaded earlier) and tell it how to parse:

  • model: "mdl_…" — parse with a model you built.
  • schemaless: true — no model; LangParse infers the fields.
  • auto: true — detect the best model, then parse.
Terminal window
curl https://api.langparse.dev/api/v1/documents \
-H "Authorization: Bearer $LANGPARSE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"file": { "name": "invoice.pdf", "contents": "JVBERi0xLjcK… (base64)" },
"schemaless": true
}'

Parsing is asynchronous — you get a document id back right away. Every response is wrapped in a top-level data envelope:

HTTP 202 Accepted
{
"data": {
"id": "doc_a1b2c3",
"status": "queued",
"pollUrl": "https://api.langparse.dev/api/v1/documents/doc_a1b2c3"
}
}

Fetch the document until status becomes processed (it moves through queued → processing → processed, or failed):

Terminal window
curl https://api.langparse.dev/api/v1/documents/doc_a1b2c3 \
-H "Authorization: Bearer $LANGPARSE_API_KEY"

The outer data is the document resource; the inner data is your structured result, and fields carries per-field confidence:

{
"data": {
"id": "doc_a1b2c3",
"model": "mdl_invoice",
"status": "processed",
"pageCount": 1,
"data": {
"vendor_name": "Acme Industries",
"invoice_no": "INV-20418",
"total_amount": 12480.00,
"currency": "USD"
},
"fields": [
{ "name": "vendor_name", "value": "Acme Industries", "confidence": "high" },
{ "name": "total_amount", "value": 12480.00, "confidence": "high" }
]
}
}

To parse against a model instead of schemaless, list your models to get an id:

Terminal window
curl https://api.langparse.dev/api/models \
-H "Authorization: Bearer $LANGPARSE_API_KEY"

Then pass "model": "mdl_…" in the submit call above. You can also let LangParse suggest a schema from sample files (POST /api/v1/models/suggest) or detect the best model for a file (POST /api/v1/models/detect).

Prefer Postman? Import our ready-made collection — it’s generated from the same OpenAPI spec, so it stays in sync with the API:

In Postman: Import → drop the file → open the LangParse API collection → set the apiKey collection variable to your key (baseUrl is pre-filled). Every request inherits the key. You can also import straight from the OpenAPI spec via Import → Link.