The Extract API uses AI to extract key information from unstructured text, such as names, emails, dates, amounts, and more. Simply send a block of text and a list of fields you want to extract — the API returns clean, structured JSON.
Built with FastAPI and OpenAI, this API is ideal for automating document processing, form filling, CRM enrichment, and more.
It supports flexible field definitions and works on everything from emails and messages to receipts and reports. Whether you're extracting one field or many, the response is fast, accurate, and ready for integration into your applications.
No need to train any models — the intelligence is built-in.
Extracts specific fields such as name, email, date, amount, or any custom key-value from raw text using AI. Send a block of text and a list of fields you want to extract, and the API returns structured JSON.
Extract - Endpoint Features
| Object | Description |
|---|---|
text |
[Required] The unstructured text to extract information from |
fields |
[Required] A list of field names to extract (e.g. name, email, amount) |
Request Body |
[Required] Json |
{
"message": "Data extracted successfully",
"data": {
"name": "Jane Doe",
"email": "[email protected]",
"amount": "$300",
"date": "May 12th"
}
}
curl --location --request POST 'https://zylalabs.com/api/8379/ai+data+extraction+api/14640/extract?text="John Doe lives at 123 Main St, NYC, phone: (555) 123-4567"&fields="name,address,phone"' --header 'Authorization: Bearer YOUR_API_KEY'
--data-raw '{
"text": "John Doe lives at 123 Main St, NYC, phone: (555) 123-4567",
"fields": "name,address,phone"
}'
This endpoint analyzes a block of text and classifies it into one or more predefined categories (labels) using AI. You provide the input text and a list of possible labels, and the API returns which labels best describe the content. It's useful for automatically tagging support tickets, user feedback, reviews, or any unstructured text.
Classify - Endpoint Features
| Object | Description |
|---|---|
text |
[Required] The text you want to classify (e.g., a support message or user feedback). |
labels |
[Required] An array of possible categories (labels) to classify the text into. The API will return the most relevant ones based on the text. |
Request Body |
[Required] Json |
{
"message": "Data classified successfully",
"data": {
"labels": [
"Bug",
"Feature Request"
]
}
curl --location --request POST 'https://zylalabs.com/api/8379/ai+data+extraction+api/14847/classify?text="The app crashes when I try to upload a file. Also, I think it would be nice to have dark mode."&labels="Bug, Feature Request, Login Issue"' --header 'Authorization: Bearer YOUR_API_KEY'
--data-raw '{
"text": "The app crashes when I try to upload a file. Also, I think it would be nice to have dark mode.",
"labels": ["Bug", "Feature Request", "Login Issue"]
}'
This API endpoint extracts multiple structured records from unstructured text input using OpenAI’s GPT models. It supports texts containing one or many records and returns consistent, well-structured JSON data for easy consumption.
Automatically switches extraction mode based on text length:
If text length ≤ 2000 characters, uses a single-shot extraction.
If text length > 2000 characters, splits text into chunks and extracts records from each chunk.
Validates that the input text is non-empty and below a maximum length (5000 characters).
Returns detailed error messages on failure.
Request:
Response:
Extract multiple records - Endpoint Features
| Object | Description |
|---|---|
text |
[Required] The unstructured text to extract information from |
fields |
Optional A list of fields names to extract (e.g. name, email, amount) |
Request Body |
[Required] Json |
{
"message": "Records extracted successfully",
"data": [
{"from": "John", "amount": "$50", "to": "Alice"},
{"from": "Bob", "amount": "$40", "to": "Sarah"},
{"from": "Chris", "amount": "$80", "to": "Megan"}
]
}
curl --location --request POST 'https://zylalabs.com/api/8379/ai+data+extraction+api/14848/extract+multiple+records?text=Required' --header 'Authorization: Bearer YOUR_API_KEY'
--data-raw '{
"text": "Order #123: Pizza $15, delivered to 123 Main St. Order #124: Burger $12, delivered to 456 Oak Ave.",
"fields": ["order_id", "item", "price", "address"]
}'
| Header | Description |
|---|---|
Authorization
|
[Required] Should be Bearer access_key. See "Your API Access Key" above when you are subscribed. |
No long-term commitment. Upgrade, downgrade, or cancel anytime. Free Trial includes up to 50 requests.
The Extract endpoint returns structured data in JSON format, including key fields such as names, emails, amounts, and dates extracted from the provided text.
The key fields in the response data typically include "name," "email," "amount," and "date." Additional custom fields can also be specified based on user requirements.
Users can customize their data requests by specifying a list of fields they want to extract from the input text. This allows for tailored data extraction based on specific needs.
The response data is organized in a JSON structure, containing a "message" field indicating success and a "data" field that holds the extracted key-value pairs.
Typical use cases include automating document processing, enriching CRM systems, filling forms, and extracting information from emails, receipts, and reports.
Data accuracy is maintained through the use of advanced AI algorithms that are built-in, ensuring reliable extraction from unstructured text without the need for user training.
Standard data patterns include recognizable formats for names, emails, dates, and monetary amounts. Users can expect consistent extraction results across various text types.
The Extract endpoint can extract various types of information, including personal identifiers (names, emails), financial figures (amounts), and temporal data (dates) from unstructured text.
Please have a look at our Refund Policy: https://zylalabs.com/terms#refund
To obtain your API key, you first need to sign in to your account and subscribe to the API you want to use. Once subscribed, go to your Profile, open the Subscription section, and select the specific API. Your API key will be available there and can be used to authenticate your requests.
You can’t switch APIs during the free trial. If you subscribe to a different API, your trial will end and the new subscription will start as a paid plan.
If you don’t cancel before the 7th day, your free trial will end automatically and your subscription will switch to a paid plan under the same plan you originally subscribed to, meaning you will be charged and gain access to the API calls included in that plan.
The free trial ends when you reach 50 API requests or after 7 days, whichever comes first.
No, the free trial is available only once, so we recommend using it on the API that interests you the most. Most of our APIs offer a free trial, but some may not include this option.
Yes, we offer a 7-day free trial that allows you to make up to 50 API calls at no cost, so you can test our APIs without any commitment.
Zyla API Hub is like a big store for APIs, where you can find thousands of them all in one place. We also offer dedicated support and real-time monitoring of all APIs. Once you sign up, you can pick and choose which APIs you want to use. Just remember, each API needs its own subscription. But if you subscribe to multiple ones, you'll use the same key for all of them, making things easier for you.
Service Level:
100%
Response Time:
6,629ms
Service Level:
100%
Response Time:
726ms
Service Level:
100%
Response Time:
1,134ms
Service Level:
100%
Response Time:
10,154ms
Service Level:
100%
Response Time:
830ms
Service Level:
75%
Response Time:
1,498ms
Service Level:
100%
Response Time:
11,971ms
Service Level:
100%
Response Time:
1,450ms
Service Level:
100%
Response Time:
2,560ms
Service Level:
100%
Response Time:
3,497ms
Service Level:
100%
Response Time:
975ms
Service Level:
100%
Response Time:
1,741ms
Service Level:
100%
Response Time:
16ms
Service Level:
100%
Response Time:
1,999ms
Service Level:
100%
Response Time:
2,969ms
Service Level:
100%
Response Time:
26ms
Service Level:
100%
Response Time:
8,494ms
Service Level:
100%
Response Time:
10,160ms
Service Level:
100%
Response Time:
2,546ms
Service Level:
100%
Response Time:
2,502ms