Extracta.ai
DashboardJoin Discord
  • extracta.ai
    • Introduction
    • Overview
  • API Reference
    • 🔓Authentication
    • 📁Supported File Types
  • Data Extraction - API
    • đŸ’ģAPI Endpoints - Data Extraction
      • 1. Create extraction
      • 2. View extraction
      • 3. Update extraction
      • 4. Delete extraction
      • 5. Upload Files
      • 6. Get results
    • Extraction Details
      • 🌎Supported Languages
      • âš™ī¸Options
      • 📋Fields
    • Receiving Batch Results
      • Polling vs Webhook
      • How to use the Webhook
    • đŸ•šī¸Postman Integration
  • Document Classification - API
    • đŸ’ģAPI Endpoints - Document Classification
      • 1. Create classification
      • 2. View classification
      • 3. Update classification
      • 4. Delete data
        • 4.1 Delete classification
        • 4.2 Delete batch
        • 4.3 Delete files
      • 5. Upload Files
      • 6. Get results
    • Classification Details
      • 📄Document Types
  • Documents
    • Custom Document
    • Resume / CV
    • Contract
    • Business Card
    • Email
    • Invoice
    • Receipt
    • Bank Statement
  • Support
    • 💁Tutorials
    • đŸŸĸAPI Status
  • Contact
    • 📧Contact Us
    • ❓FAQ
Powered by GitBook
On this page
  • Postman Collection
  • Server URL
  • Headers
  • Body
  • Body Example
  • Code Example
  • Responses

Was this helpful?

  1. Data Extraction - API
  2. API Endpoints - Data Extraction

1. Create extraction

POST /createExtraction

Initiates a new document extraction process. This endpoint allows you to define an extraction with specific fields, options, and configurations. Once created, you can use the returned extractionId to upload files for processing.

Postman Collection

For a complete and interactive set of API requests, please refer to our Postman Integrationcollection.

Server URL

https://api.extracta.ai/api/v1

Headers

Name
Value

Content-Type

application/json

Authorization

Bearer <token>

Body

Name
Type
Required
Description
Dedicated page

name

string

true

A descriptive name for the extraction.

description

string

false

A description for the extraction.

language

string

true

Document's language for accurate extraction.

options

object

false

Additional processing options.

fields

object

true

An array of objects, each specifying a field to extract.

To fully customize your data extraction request, understanding the fields parameter is crucial. This parameter allows you to specify exactly what information you want to extract, with options for string, object, and array types to match your data structure needs.

Customize your extraction process with additional options such as table analysis and handwritten text recognition.

Body Example

{
    "extractionDetails": { 
        "name": "CVs Extraction",
        "description": "...",
        "language": "English",
        "options": {
            "hasTable": false,
            "hasVisuals": false,
            "handwrittenTextRecognition": false,
            "checkboxRecognition": false
        },
        "fields": [
            {
                "description": "",
                "example": "",
                "key": "name"
            },
            {
                "description": "",
                "example": "",
                "key": "surname"
            },
            {
                "description": "",
                "example": "",
                "key": "phone_number"
            },
            {
                "description": "last job title name",
                "example": "Programmer",
                "key": "last_job_position"
            },
            {
                "description": "the number of years in numbers",
                "example": "6",
                "key": "years_of_experience"
            }
        ]
    }
}

Code Example

const axios = require('axios');

/**
 * Initiates a new document extraction process with the provided details.
 * 
 * @param {string} token - The authorization token for API access.
 * @param {Object} extractionDetails - The details of the extraction to be created.
 * @returns {Promise<Object>} The promise that resolves to the API response with the new extraction ID.
 */
async function createExtraction(token, extractionDetails) {
    const url = "https://api.extracta.ai/api/v1/createExtraction";

    try {
        const response = await axios.post(url, {
            extractionDetails
        }, {
            headers: {
                'Content-Type': 'application/json',
                'Authorization': `Bearer ${token}`
            }
        });

        // Handling response
        return response.data; // Directly return the parsed JSON response
    } catch (error) {
        // Handling errors
        throw error.response ? error.response.data : new Error('An unknown error occurred');
    }
}

async function main() {
    const token = 'apiKey';
    const extractionDetails = {
        "name": "CVs Extraction",
        "description": "...",
        "language": "English",
        "options": {
            "hasTable": false,
            "handwrittenTextRecognition": false
        },
        "fields": [
            { "description": "", "example": "", "key": "name" },
            { "description": "", "example": "", "key": "surname" },
            { "description": "", "example": "", "key": "phone_number" },
            { "description": "last job title name", "example": "Programmer", "key": "last_job_position" },
            { "description": "the number of years in numbers", "example": "6", "key": "years_of_experience" }
        ]
    };

    try {
        const response = await createExtraction(token, extractionDetails);
        console.log("New Extraction Created:", response);
    } catch (error) {
        console.error("Failed to create new extraction:", error);
    }
}

main();
import requests


def create_extraction(token, extraction_details):
    url = "https://api.extracta.ai/api/v1/createExtraction"
    headers = {"Content-Type": "application/json", "Authorization": f"Bearer {token}"}

    try:
        response = requests.post(url, json=extraction_details, headers=headers)
        response.raise_for_status()  # Raises an HTTPError if the response status code is 4XX/5XX
        return response.json()  # Returns the parsed JSON response
    except requests.RequestException as e:
        # Handles any requests-related errors
        print(e)
        return None


# Example usage
if __name__ == "__main__":
    token = "apiKey"
    extraction_details = {
        "extractionDetails": {
            "name": "CVs Extraction",
            "description": "...",
            "language": "English",
            "options": {"hasTable": False, "handwrittenTextRecognition": False},
            "fields": [
                {"description": "", "example": "", "key": "name"},
                {"description": "", "example": "", "key": "surname"},
                {"description": "", "example": "", "key": "phone_number"},
                {
                    "description": "last job title name",
                    "example": "Programmer",
                    "key": "last_job_position",
                },
                {
                    "description": "the number of years in numbers",
                    "example": "6",
                    "key": "years_of_experience",
                },
            ],
        }
    }

    response = create_extraction(token, extraction_details)
    print("New Extraction Created:", response)
<?php

/**
 * Initiates a new document extraction process with the provided details.
 * 
 * @param string $token The authorization token for API access.
 * @param array $extractionDetails The details of the extraction to be created.
 * @return mixed The API response with the new extraction ID or an error message.
 */
function createExtraction($token, $extractionDetails) {
    $url = 'https://api.extracta.ai/api/v1/createExtraction';

    // Initialize cURL session
    $ch = curl_init($url);

    // Prepare the payload
    $payload = json_encode(['extractionDetails' => $extractionDetails]);

    // Set cURL options
    curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        'Content-Type: application/json',
        'Authorization: Bearer ' . $token,
    ]);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, 1);

    try {
        // Execute cURL session
        $response = curl_exec($ch);

        // Check for cURL errors
        if (curl_errno($ch)) {
            throw new Exception('Curl error: ' . curl_error($ch));
        }

        // For simplicity, returning the decoded response for now
        return $response;
    } catch (Exception $e) {
        // Handle exceptions or errors here
        return 'Error: ' . $e->getMessage();
    } finally {
        // Always close the cURL session
        curl_close($ch);
    }
}

// Example usage
$token = 'apiKey';
$extractionDetails = [
    "name" => "CVs Extraction",
    "description" => "...",
    "language" => "English",
    "options" => [
        "hasTable" => false,
        "handwrittenTextRecognition" => false
    ],
    "fields" => [
        ["description" => "", "example" => "", "key" => "name"],
        ["description" => "", "example" => "", "key" => "surname"],
        ["description" => "", "example" => "", "key" => "phone_number"],
        ["description" => "last job title name", "example" => "Programmer", "key" => "last_job_position"],
        ["description" => "the number of years in numbers", "example" => "6", "key" => "years_of_experience"]
    ]
];

try {
    $response = createExtraction($token, $extractionDetails);
    echo $response;
} catch (Exception $e) {
    echo "Failed to create new extraction: " . $e->getMessage();
}

?>

Responses

{
    "status": "created",
    "createdAt": 1712547789609,
    "extractionId": "extractionId"
}
{
    "status": "error",
    "message": "Language is required"
}
{
    "status": "error",
    "message": "Error creating extraction"
}
PreviousAPI Endpoints - Data ExtractionNext2. View extraction

Last updated 2 months ago

Was this helpful?

đŸ’ģ
📋Fields
âš™ī¸Options
Supported Languages
Options
Fields