legale-sdk
v0.2.3
Published
An unnofficial legale API wrapper
Downloads
6
Maintainers
Readme
legale‑sdk
Unofficial SDK for the Legale API, designed for developer ergonomics:
- Automatic JSON normalization to
camelCase. - Single entry point:
new Legale({ test: true|false }). - Helpers for authentication (API key or bearer token), folders, documents, and pagination.
Disclaimer
This is an unofficial, community‑maintained SDK and is not affiliated with or endorsed by Legale. It is provided "as is" without any warranties, express or implied. API behavior and endpoints may change at any time and break this client. You are responsible for complying with Legale’s terms, handling credentials securely, and validating outputs before using them in production. Use at your own risk.
Installation
npm i --save legale-sdkQuick start
import { Legale } from 'legale-sdk';
// Using the testing environment
const legale = new Legale({ test: true });
// Log in using the API key method
legale.setAPIKey('xxxx-xxxx-...');
// Getting the first 10 documents
const result = await legale.getDocuments(1, 10);
console.log(result);Environment
Legale has two environments:
- Testing: https://dev.api.legale.io
- Production: https://api.legale.io
Choose the environment:
import { Legale } from 'legale-sdk';
// Using the testing environment
const legale01 = new Legale({ test: true });
// Using the production environment
const legale02 = new Legale({ test: false });
// Using the production environment as default
const legale03 = new Legale();Authentication
To use the Legale API you must authenticate using either an API key or a bearer token. You have two authentication methods:
- API Key: Generated in the web app. The API key is valid until you revoke it.
- Bearer Token: Generated with your email and password. This method returns a temporary token that expires after a few hours.
import { Legale } from 'legale-sdk';
// Using the testing environment
const legale = new Legale({ test: true });
// Log in using the API key method
legale.setAPIKey('xxxx-xxxx-...');
// Log in using the bearer token method
await legale.getToken('[email protected]', '53cur3-p455w0r1d');API Reference
Legale.getFolders
Returns a Promise<Folder[]> (go to interface).
import { Legale } from 'legale-sdk';
const legale = new Legale({ test: true });
await legale.setAPIKey('xxxx-xxxx-...');
const folders = await legale.getFolders();Legale.deleteFolder
Deletes a folder. Returns a Promise<void>. Arguments:
- guid:
string.
import { Legale } from 'legale-sdk';
const legale = new Legale({ test: true });
await legale.setAPIKey('xxxx-xxxx-...');
await legale.deleteFolder(
// The folder GUID
'aaaa-bbbb-...'
);Legale.getDocuments
Gets a document list using pagination. Returns a Promise<GetDocumentsResponse> (go to interface). Arguments:
- page:
number→ The page index to show (the first page is1by the API). - pageSize:
number→ Number of items per page.
import { Legale } from 'legale-sdk';
const legale = new Legale({ test: true });
legale.setAPIKey('xxxx-xxxx-...');
const result = await legale.getDocuments(
1, // Page index, the first page is 1.
10 // Page size
);Legale.getDocumentDetail
Gets detailed information about a document. Returns a Promise<DocumentDetail> (go to interface). Arguments:
- guid:
string.
import { Legale } from 'legale-sdk';
const legale = new Legale({ test: true });
legale.setAPIKey('xxxx-xxxx-...');
const document = await legale.getDocumentDetail('aaaa-bbbb-...');Legale.createDocument
Uploads a PDF file into Legale. Returns a Promise<Document> (go to interface). Arguments:
- request:
CreateDocumentRequest(go to interface).
import { Legale } from 'legale-sdk';
import { readFile } from 'fs/promises';
const legale = new Legale({ test: true });
legale.setAPIKey('xxxx-xxxx-...');
const document = await legale.createDocument({
file: await readFile('/path/to/file.pdf'),
fileName: 'root/remote/path/to/file.pdf',
description: 'Testing file'
});Legale.downloadDocument
Gets the document binary data (the PDF file). Returns a Promise<Buffer>. Arguments:
- guid:
string.
import { Legale } from 'legale-sdk';
const legale = new Legale({ test: true });
legale.setAPIKey('xxxx-xxxx-...');
const buffer = await legale.downloadDocument('aaaa-bbbb-...');Legale.deleteDocument
Deletes the document from Legale. Returns a Promise<void>. Arguments:
- guid:
string.
import { Legale } from 'legale-sdk';
const legale = new Legale({ test: true });
legale.setAPIKey('xxxx-xxxx-...');
await legale.deleteDocument('aaaa-bbbb-...');