Custom JSON Schema Validation
Enforces strict data types (string, integer, boolean, array, nested object) matching your exact target schema.
Loading RSFlowHub...
Structured data extraction API that converts unstructured emails, PDFs, and invoices into validated JSON objects.
https://test.rsflowhub.com/api/v1/ai/json-extractor
Unstructured Text to Structured JSON Extractor API is a ready-to-use REST API on RSFlowHub for developers building web, mobile and AI agent applications. Send a JSON request to POST /api/v1/ai/json-extractor with your API key; RSFlowHub runs it on a tuned AI model (with automatic fallback to a backup provider) and returns a structured JSON result, usually within 1 to 3 seconds.
X-API-Key Header
curl -X POST "https://test.rsflowhub.com/api/v1/ai/json-extractor" \
-H "Content-Type: application/json" \
-H "X-API-Key: rfh_your_api_key" \
-d '{"text":"John is 30 years old and lives in New York. He is a software engineer.","schema":{"name":"string","age":"integer","city":"string","role":"string"},"custom_instructions":"Convert all keys to uppercase and output the city name in all-caps."}'
<?php
$client = new \GuzzleHttp\Client();
$response = $client->post('https://test.rsflowhub.com/api/v1/ai/json-extractor', [
'headers' => [
'Content-Type' => 'application/json',
'X-API-Key' => 'rfh_your_api_key',
],
'json' => array (
'text' => 'John is 30 years old and lives in New York. He is a software engineer.',
'schema' =>
array (
'name' => 'string',
'age' => 'integer',
'city' => 'string',
'role' => 'string',
),
'custom_instructions' => 'Convert all keys to uppercase and output the city name in all-caps.',
),
]);
echo $response->getBody();
const response = await fetch('https://test.rsflowhub.com/api/v1/ai/json-extractor', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-API-Key': 'rfh_your_api_key'
},
body: JSON.stringify({"text":"John is 30 years old and lives in New York. He is a software engineer.","schema":{"name":"string","age":"integer","city":"string","role":"string"},"custom_instructions":"Convert all keys to uppercase and output the city name in all-caps."})
});
const data = await response.json();
console.log(data);
import requests
url = "https://test.rsflowhub.com/api/v1/ai/json-extractor"
headers = {
"Content-Type": "application/json",
"X-API-Key": "rfh_your_api_key"
}
payload = {"text":"John is 30 years old and lives in New York. He is a software engineer.","schema":{"name":"string","age":"integer","city":"string","role":"string"},"custom_instructions":"Convert all keys to uppercase and output the city name in all-caps."}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
Enforces strict data types (string, integer, boolean, array, nested object) matching your exact target schema.
Extracts structured records, line item tables, and metadata fields from raw document text dumps.
Supports custom transformation instructions like date normalization, uppercase formatting, or phone cleaning.
Guarantees syntactically valid, parseable JSON output with zero markdown formatting wrappers.
See how developers integrate this API endpoint into production apps.
Extract line items, tax numbers, vendor details, and totals from unstructured invoice emails into accounting software.
Parse candidate contact details, work experience, education, and skill sets from raw resume text dumps.
Extract tracking numbers, carrier names, and shipping addresses from buyer confirmation emails.
Comparing RSFlowHub's specialized API gateway vs raw multi-turn LLM prompts vs legacy regex rules.
| Evaluation Metric | RSFlowHub API | Raw LLM Prompts | Legacy Regex / Rules |
|---|---|---|---|
| Response Structure | Validated JSON envelope | Unstructured markdown or chat format | Brittle custom regex tuples |
| Setup Effort | One POST request, no prompts | Write and maintain prompts + output parsing | Fast, but rule lists miss context and sarcasm |
| Pricing Model | Flat 2 credit/request | Volatile token-based billing | High server maintenance overhead |
| Multi-Turn Hallucination | Zero (Deterministic validators) | Output format can drift between model versions | No semantic AI intelligence |
| Developer Integration | 3 lines cURL, PHP, JS, Python | Complex prompt engineering & retry loop | Fragile manual rule maintenance |
text
string
Unstructured text content or raw document body to convert into structured JSON.
schema
object
Desired JSON target schema definition (e.g. {"name": "string", "age": "integer", "city": "string"}).
custom_instructions
string
Custom field transformation instructions (e.g. "Convert all city names to uppercase").
Every endpoint returns the same envelope: success, request_id, data.result and meta.
{
"success": true,
"request_id": "req_3f9a2c7e-5b1d-4e8a-9c2f-7d6e1a0b4c8d",
"data": {
"result": {
"extracted_data": {
"invoice_number": "INV-2041",
"vendor": "Acme Supplies",
"total": 1240.5,
"currency": "USD",
"due_date": "2026-11-02"
},
"schema_conforms": true
}
},
"meta": {
"version": "v1",
"timestamp": "2026-10-05T09:30:00Z"
}
}
Everything you need to know about integrating and using Unstructured Text to Structured JSON Extractor API.
Get started in minutes with free welcome credits and instant API key generation.
🐞 Found an issue? Report it and our team replies within 1 business day.
💡 Need a custom endpoint? Tell us what you need and we will scope it with you.