Resources

Resources

AI-native file storage for agents and apps.


Files, notes, links. Your portable context server. Full CRUD, semantic search, folders and tags.

AI-native file storage for agents and apps. Files, notes, bookmarks, documents.

Full CRUD, semantic search, folders and tags.

// Create a bookmark
{
  "url": "https://arxiv.org/abs/2406.12345",
  "tags": [{"name": "research"}, {"name": "memory"}],
  "parentId": "<PARENT_ID>"
}

// Response
{
  "id": "res_8f2a...",
  "type": "bookmark",
  "title": "Scaling Long-Term Memory in LLM Agents",
  "description": "We propose a method for...",
  "status": "indexed"
}
// Create a bookmark
{
  "url": "https://arxiv.org/abs/2406.12345",
  "tags": [{"name": "research"}, {"name": "memory"}],
  "parentId": "<PARENT_ID>"
}

// Response
{
  "id": "res_8f2a...",
  "type": "bookmark",
  "title": "Scaling Long-Term Memory in LLM Agents",
  "description": "We propose a method for...",
  "status": "indexed"
}

Over

20,000,000

20,000,000

files, workspaces, and memories created

What are Exabase Resources?

Resources are AI-native file storage for agents and apps. Files, notes, bookmarks, audio, video.

Everything is stored, indexed, and made searchable automatically. A portable context server for anything your agent creates or needs to reference.

Unlike S3 or a database blob column, every resource is semantically indexed the moment it's created.

Your agent can find what it needs by describing it, not by knowing the filename. Folders, tags, and version history keep things organized as the workspace grows.

Problem

Time spent building storage basics

Your agent creates things. Documents, reports, code, research. Where does it all go?


Right now: S3 buckets, database blobs, temp directories.


No structure, no semantic understanding, no way to find anything later. Your agent can't even search its own work from yesterday.

Solution

Smart storage, ready to go

Exabase's Resources API isn't just file storage.


Everything is semantically indexed. Search by meaning, not just filename. Your agent can find what it needs by describing it.


Powerful organisation tools with folders and tags. Store links, files, notes and more. All context together in one place.

Production-ready

Private by design

Security-first

Scalable

Production-ready

Private by design

Security-first

Scalable

Production-ready

Private by design

Security-first

Scalable

Datapoint

Semantic search built in. Shown to improve agent accuracy by 12.5%*

How do I use it?

Upload a file

Using the SDK:

import { Exabase } from "@exabase/sdk";

const api = new Exabase({
  apiKey: process.env.EXABASE_API_KEY,
});

// Step 1: Get a signed upload URL
const upload = await api.uploads.getSignedUrl({
  fileName: 'quarterly-report.pdf',
  fileSize: fileBuffer.length,
});

// Step 2: Upload the file
await fetch(upload.url, {
  method: 'PUT',
  headers: upload.headers,
  body: fileBuffer,
});

// Step 3: Create the resource
const file = await api.files.create({
  attachment: {
    path: upload.path,
    filename: 'quarterly-report.pdf',
  },
  parentId: '<PARENT_ID>',
  mimeType: 'application/pdf',
});

The file is uploaded, extracted, and semantically indexed. It's immediately searchable via Deep Search.

Save a note

const note = await api.notepads.create({
  title: 'Meeting summary - Q3 planning',
  content: '## Decisions\n\n- Launch date moved to September...',
  parentId: '<PARENT_ID>',
});

Create markdown notes programmatically. Agents can write summaries, logs, or reports and save them as searchable resources in the workspace.

Bookmark a URL

const bookmark = await api.bookmarks.create({
  url: 'https://arxiv.org/abs/2406.12345',
  tags: [{ name: 'research' }, { name: 'memory' }],
  parentId: '<PARENT_ID>',
});

Pass a URL. Exabase fetches the page, extracts metadata, and indexes the content. Your agent can search bookmarked pages by what they contain, not just by title.

Organize with folders and tags

const folder = await api.folders.create({
  name: 'Research Papers',
  parentId: '<PARENT_ID>',
});

await api.resources.update({
  id: file.id,
  folderId: folder.id,
  tags: [{ name: 'q3' }, { name: 'finance' }],
});

Move resources into folders, apply tags, rename files. Structure builds up over time. Workers can maintain this automatically on a schedule.

Search everything

Use Deep Search to find any resource by meaning. Text, image, color, or similarity queries across your entire workspace. Saved content is automatically extracted and indexed.

const results = await api.search.query({
  query: { text: 'what were the Q3 revenue projections' },
});

Results include sub-document matches. Search inside PDFs, notes, bookmarks, transcribed audio and video.

Resources API at a glance

Endpoint

Method

Description

v2/notepads

POST

Create a note

v2/files

POST

Create a file

v2/bookmarks

POST

Create & fetch bookmark

v2/resources/filter

POST

List resources

v2/resources/{resourceId}

GET

Get resource

Use cases

Why Exabase

FAQs

What is Exabase?

Exabase is infrastructure for AI agents. It gives your agents memory, versioned file storage, AI deep search, and context automation through a set of APIs. Store what your agent learns, search inside any content type, and keep knowledge bases current automatically. Built for production use.

Who uses Exabase?

Developers and teams building AI agents, copilots, and RAG applications. If your agent needs to remember things between sessions, store and retrieve files, search across documents and media, or stay up to date without manual maintenance, Exabase handles that infrastructure so you can focus on your product.

What is the Exabase Resources API?

AI-native file storage for agents and apps. Store files, notes, bookmarks, audio, and video with full CRUD, folders, tags, and automatic semantic indexing. Everything you store is immediately searchable by meaning. Think of it as a portable context server for your agent.

What resource types does Exabase support?

Files (PDFs, images, documents, any type), notes (markdown with version history), bookmarks (URLs with metadata, auto-fetched and indexed), audio files (auto-transcribed), and video files (auto-transcribed). All types are semantically indexed on creation.

How is this different from S3?

S3 stores blobs. You can upload and download files, but there's no indexing, no search, no semantic understanding. Exabase Resources stores files and makes them instantly searchable by meaning. Audio and video are transcribed. Bookmarks are fetched and indexed. It's a complete content layer.

Can I search inside documents?

Yes. Deep Search provides sub-document search. It searches inside PDFs, notes, bookmark content, and transcribed audio/video. You get results at the paragraph or chunk level, not just the file level.

How do I organize resources?

Use folders for hierarchical organization and tags for cross-cutting categories. Both are available via the API. You can also use Workers to automatically organize resources on a schedule.

Can my agent create notes programmatically?

Yes. The notepads API creates markdown notes. Agents can write meeting summaries, research reports, status updates, or any text content and save it as a searchable resource.

How do bookmarks work?

Pass a URL to the bookmarks API. Exabase fetches the web page, extracts title, description, and content, and indexes everything. The page content is searchable via Deep Search.

Are audio and video files transcribed automatically?

Yes. Upload an MP3, WAV, MP4, or MOV file and Exabase transcribes and indexes it automatically. You can search the spoken content by meaning.

How do I scope resources per user?

Use Bases. Each Base is an isolated workspace. Pass the X-Exabase-Base-Id header with any Resources API call. Resources in one Base are invisible to other Bases.

Can Workers manage resources?

Yes. Workers can create, move, rename, tag, and organize resources. Set up a Worker to maintain your workspace structure automatically. Tag untagged files, move resources into the right folders, prune outdated content.

What's the difference between Resources and Extract?

Resources stores and organizes content in your workspace. Extract processes a file or URL and returns structured data (text chunks, metadata). They work well together: Extract a document, then save the results as resources in a Base.

Is there version history for notes?

Yes. Notes support full version history. Track changes over time and see previous versions.

Can I filter resources by type, tag, or folder?

Yes. The POST /v2/resources/filter endpoint supports filtering by resource type, tags, folder, and other metadata.

What's the maximum file size?

5GB, or further limited by your subscription plan. File uploads use a signed URL flow: get a signed URL, upload the file, then create the resource record.

How does Resources interact with Memory?

Resources stores content (files, notes, bookmarks). Memory stores facts and preferences extracted from conversations. They're complementary. An agent might save a document as a resource, extract key facts into memory, and search both when answering questions.

Can I use Resources without Bases?

Yes. Without a Base ID, resources are stored in your primary base. For multi-tenant applications, create a Base per user and scope resource operations to it.

Deciding?

Ask your favourite AI about Exabase:

Deciding?

Ask your favourite AI about Exabase:

Ship your first app in minutes.

Ship your first app in minutes.