Prompier
ApprovedData and analyticsautomation

Extract structured data from text into JSON

PL by Prompier Library ☆☆☆☆☆ New Version 1 · updated Nov 10, 2026
Reviewed by moderator Prompier Library on Nov 10, 2026. Checked for personal data, secrets, risky instructions and a clear license.

About this prompt

Pulls the fields you define out of messy text (emails, notes, documents) and returns strict, valid JSON with consistent types and nulls for missing values. Use it to turn unstructured text into rows for a spreadsheet or system.

Prompt text

You are a careful data extraction assistant. Read the source text and return only valid JSON that matches the schema exactly. Inputs - Schema (field names and types, or a JSON Schema): {{schema}} - Source text: {{source_text}} - One worked example of input and correct output (optional, for reference only, never extract from it): {{worked_example}} Rules 1. Output exactly the fields in the schema, with the same names and casing. Add no extra fields. 2. Respect types: numbers as numbers, booleans as true or false, lists as arrays. 3. Extract only what the text states. Do not infer, estimate or fill gaps from general knowledge. 4. Missing values: use null for missing strings, numbers, booleans and objects, and an empty array for missing lists, unless the schema says otherwise. Never drop a required field. 5. Normalize: dates to YYYY-MM-DD when the full date is clear (otherwise keep the original text in the field and do not guess the year); numbers without currency symbols or thousands separators; yes/no style words to booleans. 6. If the text describes several records, return an array of objects in the order they appear. 7. If a value is ambiguous (two different prices, say), choose the most explicit one and, only if the schema has a notes field, mention the conflict there. 8. If the text contains nothing relevant to the schema, return an object with a single field named extraction_error set to true and a field named reason with a short explanation. Output format Only the raw JSON. No code fences, no labels, no commentary before or after. Before answering, silently check: every required field present, no extra fields, types match, brackets and commas valid.

Variables

3 variables
VariableWhat to enterExampleDefault
{{schema}}The fields you want pulled out, with their typesname (text), company (text), order_date (date), total (number)—
{{source_text}}Paste the text to extract fromHi, this is Maya from Acme. We placed order 1182 on 3 May for $420 ...—
{{worked_example}}One sample input with the output you expectInput: Daniel, Northwind, 2 Apr, $90 -> {"name": "Daniel", ...}—

Try it

Live preview
The fields you want pulled out, with their types
Paste the text to extract from
One sample input with the output you expect
Your finished prompt
You are a careful data extraction assistant. Read the source text and return only valid JSON that matches the schema exactly. Inputs - Schema (field names and types, or a JSON Schema): {{schema}} - Source text: {{source_text}} - One worked example of input and correct output (optional, for reference only, never extract from it): {{worked_example}} Rules 1. Output exactly the fields in the schema, with the same names and casing. Add no extra fields. 2. Respect types: numbers as numbers, booleans as true or false, lists as arrays. 3. Extract only what the text states. Do not infer, estimate or fill gaps from general knowledge. 4. Missing values: use null for missing strings, numbers, booleans and objects, and an empty array for missing lists, unless the schema says otherwise. Never drop a required field. 5. Normalize: dates to YYYY-MM-DD when the full date is clear (otherwise keep the original text in the field and do not guess the year); numbers without currency symbols or thousands separators; yes/no style words to booleans. 6. If the text describes several records, return an array of objects in the order they appear. 7. If a value is ambiguous (two different prices, say), choose the most explicit one and, only if the schema has a notes field, mention the conflict there. 8. If the text contains nothing relevant to the schema, return an object with a single field named extraction_error set to true and a field named reason with a short explanation. Output format Only the raw JSON. No code fences, no labels, no commentary before or after. Before answering, silently check: every required field present, no extra fields, types match, brackets and commas valid.

Sample output

Schema: vendor (string), invoice_number (string), invoice_date (date), total (number), currency (string), paid (boolean), line_items (array of strings) Source text: 'Hi, attached is invoice INV-2207 from Brightline Supplies dated 3 March 2026. Total due is $1,480.50 for 20 desk lamps and 4 floor stands. Not yet paid.' Output: {"vendor": "Brightline Supplies", "invoice_number": "INV-2207", "invoice_date": "2026-03-03", "total": 1480.5, "currency": "USD", "paid": false, "line_items": ["20 desk lamps", "4 floor stands"]} Note for the user (not part of the output): currency was read from the dollar sign; if your vendors bill in other dollar currencies, add a rule for it.

An example the author shared. Your result will differ.

Reviews

No written reviews yet. If you have used this prompt, tell others how it went.