5. Upload Files
POST
/uploadFiles
This endpoint enables users to upload files to a specified extraction. If a batchId
is included in the request, the files will be added to that specific existing batch on the platform. It is important to ensure that the batchId
already exists; otherwise, the upload will not be successful. If no batchId
is provided in the request, a new batch will automatically be created for the files.
Files must be uploaded using the multipart/form-data
content type, which is suitable for uploading binary files (like documents and images).
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
Content-Type
multipart/form-data
Authorization
Bearer <token>
Body
extractionId
string
true
Unique identifier for the extraction.
batchId
string
false
The ID of the batch to add files to.
files
multipart
true
For a seamless extraction process, please ensure your documents are in one of our supported formats. Check our Supported File Types page for a list of all formats we currently accept and additional details to prepare your files accordingly.
Code Example
Note for PHP Users: Currently, the /uploadFiles
endpoint supports uploading only one file per request. Please ensure you submit individual requests for each file you need to upload.
const fs = require('fs');
const axios = require('axios');
const FormData = require('form-data');
/**
* Uploads files to the Extracta API using Axios for making HTTP requests.
*
* @param {string} token - The authorization token to access the API.
* @param {string} extractionId - The ID of the extraction process to which these files belong.
* @param {Array.<string>} files - Paths to the files to be uploaded.
* @param {string} [batchId=null] - Optional batch ID if the files belong to a specific batch.
* @returns {Promise<Object>} The promise that resolves to the API response.
*/
async function uploadFiles(token, extractionId, files, batchId = null) {
const url = "https://api.extracta.ai/api/v1/uploadFiles";
let formData = new FormData();
formData.append('extractionId', extractionId);
if (batchId) {
formData.append('batchId', batchId);
}
// Append files to formData
files.forEach(file => {
formData.append('files', fs.createReadStream(file));
});
try {
const response = await axios.post(url, formData, {
headers: {
...formData.getHeaders(),
'Authorization': `Bearer ${token}`
},
// Axios automatically sets the Content-Type to multipart/form-data with the boundary.
});
// 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 extractionId = 'extractionId';
const files = ['test_1.png', 'test_2.png'];
try {
const response = await uploadFiles(token, extractionId, files);
console.log(response);
} catch (error) {
console.error("Failed to upload files:", error);
}
}
main();
Responses
{
"status": "uploaded",
"extractionId": "extractionId",
"batchId": "batchId",
"files": [
{
"fileId": "fileId",
"fileName": "fileName",
"numberOfPages": 1,
"url": "url"
}
]
}
Last updated
Was this helpful?