Skip to main content

Get started in three steps

Upload your first file to Filejar in under 5 minutes.

Step 1: Install and setup

Install the Filejar client:
npm install filejar
Get your API key from the Filejar dashboard and set it as an environment variable:
export FILEJAR_API_KEY="your-api-key-here"

Step 2: Upload your first file

Create a simple script to upload a file:
import Filejar from 'filejar';
import { readFile } from 'fs/promises';

// Initialize Filejar client
const filejar = new Filejar({
  apiKey: process.env.FILEJAR_API_KEY,
});

// Read a file from your filesystem
const fileBuffer = await readFile('./example.pdf');
const file = new File([fileBuffer], 'example.pdf', {
  type: 'application/pdf',
});

// Upload to Filejar
const result = await filejar.upload.uploadFile([file]);

// Get the uploaded file details
const uploadResult = result.response[0];
const acknowledged = result.acknowledge[0];

// Your file is now available at:
const fileUrl = `https://cdn.filejar.dev/${uploadResult.key}`;

console.log('File uploaded successfully!');
console.log('File URL:', fileUrl);
console.log('File size:', acknowledged.size, 'bytes');

Step 3: Use your file

Your uploaded file is immediately available via CDN. Use the URL anywhere:
<!-- In HTML -->
<img src="https://cdn.filejar.dev/your-file-key" alt="Uploaded image" />

<!-- Or in your application -->
<a href="https://cdn.filejar.dev/your-file-key">Download file</a>

Complete example

Here’s a complete working example:
import Filejar from 'filejar';
import { readFile } from 'fs/promises';

async function uploadFile() {
  try {
    // Initialize client
    const filejar = new Filejar({
      apiKey: process.env.FILEJAR_API_KEY,
    });

    // Read file
    const buffer = await readFile('./my-file.pdf');
    const file = new File([buffer], 'my-file.pdf', {
      type: 'application/pdf',
    });

    // Upload
    const result = await filejar.upload.uploadFile([file]);

    if (!result.response || result.response.length === 0) {
      throw new Error('Upload failed');
    }

    const uploadResult = result.response[0];
    const acknowledged = result.acknowledge[0];

    if ('error' in acknowledged) {
      throw new Error(acknowledged.error);
    }

    // Success!
    const fileUrl = `https://cdn.filejar.dev/${uploadResult.key}`;
    
    return {
      key: uploadResult.key,
      url: fileUrl,
      size: acknowledged.size,
      contentType: acknowledged.content_type,
    };
  } catch (error) {
    if (error instanceof Filejar.APIError) {
      console.error('API Error:', error.message);
    } else {
      console.error('Error:', error);
    }
    throw error;
  }
}

// Run it
uploadFile()
  .then(result => console.log('Success:', result))
  .catch(error => console.error('Failed:', error));

Next steps

Now that you’ve uploaded your first file, explore more:

Node.js Guide

Learn advanced usage patterns and best practices.

Framework Recipes

See how to integrate with Express, Hono, Fastify, NestJS, and ElysiaJS.

API Reference

Explore the complete API documentation.

Error Handling

Learn how to handle errors gracefully.
Pro tip: Store the file key in your database to retrieve files later. The key is all you need to construct the file URL!