--- title: 'Upload via API' description: 'Upload files locally present or from public remote URL via API' hide_table_of_contents: true --- Sample code to upload files via API is listed below. Assumes `http://localhost:8080/` as the base URL for the API calls. # Upload local file ```javascript let axios = require("axios").default; let FormData = require('form-data'); let fs = require('fs'); // Configurations // const project_id = ''; const table_id = ''; const xc_token = ''; const file_path = ''; // Insert Image // @param image_path : local file path // @return : JSON object to be used in insert record API for attachment field // async function insertImage (path) { const formData = new FormData(); formData.append("file", fs.createReadStream(path)); const data = await axios({ url: 'http://localhost:8080/api/v2/storage/upload', data: formData, headers:{ 'Content-Type':`multipart/form-data;`, 'xc-token': xc_token }, method: 'post', // Optional : storage file path params: {"path": "somePath"} }); return data; } // Insert record with attachment // Assumes a table with two columns : // 'Title' of type SingleLineText and // 'Attachment' of type Attachment // async function uploadFileExample() { let response = await insertImage(file_path); let row = { "Title": "2", "Attachment": response.data }; await axios({ method: 'POST', url: `http://localhost:8080/api/v2/tables/${table_id}/records`, data: row, headers: { 'xc-token': xc_token } }); } (async () => { await uploadFileExample(); })(); ``` # Upload via URL ```javascript let axios = require("axios").default; let FormData = require('form-data'); let fs = require('fs'); // Configurations // const project_id = ''; const table_id = '
'; const xc_token = ''; // URL array : URLs of files to be uploaded const URLs = [{ url: '' }, { url: '' }]; // Insert Image // @param URLs : [] containing public URL for files to be uploaded // @return : JSON object to be used in insert record API for attachment field // async function insertImageByURL (URL_array) { const data = await axios({ url: 'http://localhost:8080/api/v2/storage/upload-by-url', data: URL_array, headers: { 'xc-token': xc_token }, method: 'post', // Optional : storage file path params: {"path": "somePath"} }); return data; } // Insert record with attachment // Assumes a table with two columns : // 'Title' of type SingleLineText and // 'Attachment' of type Attachment // async function uploadByUrlExample() { let response = await insertImageByURL(URLs); // Update two columns : Title and Attachment let row = { "Title": "3", "Attachment": response.data }; await axios({ method: 'POST', url: `http://localhost:8080/api/v2/tables/${table_id}/records`, data: row, headers: { 'xc-token': xc_auth } }); } (async () => { await uploadByUrlExample(); })(); ```