Skip to content
What one file can be
Public Preview

Library limits: file size, ceilings, and retention

Lists Library limits for sizing files, batches, and storage: file size, tool ceilings, upload and deletion windows, and volume measurement.

This page covers file size limits, Library capacity, per-call ceilings, time windows, processing duration, stored volume measurement, and nightly refresh behavior.

  • File size limits and supported formats.
  • Library path length, tags size, and document capacity.
  • Per-call ceilings for Find, Match, List, and Read tools.
  • Upload, deletion, and processing time windows.
  • Stored document volume measurement and nightly refresh behavior.

Summaries were generated by AI.

Use this page to size a file, a corpus, a batch, or a storage plan. It groups the Library limits that affect those decisions by the question that sends you looking for them.

Some limits are part of the versioned API contract. Changing them breaks clients. Other limits are settings that a release can change.

ClassLimits
Versioned API contractpath length, list_documents page size, and the Find, Match, List, and Read ceilings
Release settingtags size, file-size cap, format list, upload-session lifetime, upload part-URL lifetime, deletion windows, and processing allowances
  • Class
    Versioned API contract
    Limits
    path length, list_documents page size, and the Find, Match, List, and Read ceilings
  • Class
    Release setting
    Limits
    tags size, file-size cap, format list, upload-session lifetime, upload part-URL lifetime, deletion windows, and processing allowances

What one file can be

One file can be 500 MiB at most, and its file type must be one Duale AI reads. Split a larger source and upload each part as its own document.

The supported formats cover documents, spreadsheets, presentations, images, videos, email, subtitles, data, and code. From a video, Duale AI reads text visible in the frames, not speech. Upload a recording as a transcript or subtitle file when its spoken content must be searchable.

In the Dashboard, the upload file picker offers the supported file types and names their categories. The list changes only with a release.

What a Library can hold

Two values bound a Library: its path length and its tags size. Nothing caps the documents in a Library or the Libraries in a tenant, so size a Library around its reader group, not around a count.

LimitValueYour action
path1 to 300 characters, free-form, without {, } or *Address a Library by its identifier. Access follows the path, and two Libraries can carry the same one.
tags4 KiB of serialized JSON, on a Library and on each documentKeep each value a string, an integer, a number, or a boolean. An update replaces the complete map.
Documents in one LibraryNo ceilingSplit a corpus by the question it answers, not by a document count.
Libraries per tenantNo ceilingDesign around reader groups, not a count. Listing can fail under the access rules below.
  • Limit
    path
    Value
    1 to 300 characters, free-form, without {, } or *
    Your action
    Address a Library by its identifier. Access follows the path, and two Libraries can carry the same one.
  • Limit
    tags
    Value
    4 KiB of serialized JSON, on a Library and on each document
    Your action
    Keep each value a string, an integer, a number, or a boolean. An update replaces the complete map.
  • Limit
    Documents in one Library
    Value
    No ceiling
    Your action
    Split a corpus by the question it answers, not by a document count.
  • Limit
    Libraries per tenant
    Value
    No ceiling
    Your action
    Design around reader groups, not a count. Listing can fail under the access rules below.

What one call returns

Document listings and the four Library Tools limit the results returned by one request.

The model’s Library Tools run under ceilings that your code does not pass:

ToolCeiling for one request
Find100 results
Match500 matches, 100 by default, and 0 to 20 context lines. Up to 32 alternatives in 1,000 characters, each with at least 3 characters
List500 documents in one response
ReadOne document
  • Tool
    Find
    Ceiling for one request
    100 results
  • Tool
    Match
    Ceiling for one request
    500 matches, 100 by default, and 0 to 20 context lines. Up to 32 alternatives in 1,000 characters, each with at least 3 characters
  • Tool
    List
    Ceiling for one request
    500 documents in one response
  • Tool
    Read
    Ceiling for one request
    One document

Your own code passes none of those numbers. The model chooses a Tool during a Task, and Duale AI applies the ceiling. Library retrieval explains what each Tool matches, the name each one has in a trace, and how to read an answer that stopped early.

The SDK exposes two listing operations:

  • list_documents(request) takes a limit of 1 to 500 and returns that many documents in one response, with a cursor for the next response. Pass each cursor back until next_cursor is None.
  • list() returns all active Libraries covered by the caller’s read access, without pagination. When that access comes from more than 5,000 separate allows, or combines broad allows with refusals on particular Library paths, the call fails with an error instead of returning a partial list. Use get() with known Library IDs; each request checks that Library’s permissions.

SDK reference states both signatures and the exception type, and Access and isolation states who grants the actions that a caller resolves.

How long each window lasts

Four windows govern incomplete uploads and deletion. Act before each one ends.

WindowDurationWhat happens at the end
Upload session24 hoursThe session expires. Start a new upload for a file whose parts did not all arrive.
Upload part URL6 hoursThe URL stops working. A large file over a slow connection can reach that window, so upload every part inside it.
Recently deleted, per document30 daysThe document becomes eligible for permanent removal after the window. Restore it from the Dashboard inside it.
Deleted Library24 hoursThe record becomes eligible for permanent removal. A deleted Library cannot be restored.
  • Window
    Upload session
    Duration
    24 hours
    What happens at the end
    The session expires. Start a new upload for a file whose parts did not all arrive.
  • Window
    Upload part URL
    Duration
    6 hours
    What happens at the end
    The URL stops working. A large file over a slow connection can reach that window, so upload every part inside it.
  • Window
    Recently deleted, per document
    Duration
    30 days
    What happens at the end
    The document becomes eligible for permanent removal after the window. Restore it from the Dashboard inside it.
  • Window
    Deleted Library
    Duration
    24 hours
    What happens at the end
    The record becomes eligible for permanent removal. A deleted Library cannot be restored.

Nothing removes a document permanently inside its 30-day window unless you delete its Library. Deleting that Library also deletes the document, even while it is in Recently deleted. Security and data handling owns the delete and restore lifecycle.

How long processing takes

The SDK’s polling helper stops after 360 seconds by default, before the processing allowance of Duale AI can end. A client timeout does not prove that processing failed. Pass a longer timeout= for a large file, then read the returned status instead of uploading the file a second time.

Manage libraries shows the polling call and client-timeout recovery.

Duale AI publishes no total time for a batch, and documents can finish in any order. Test a representative batch under your production conditions, then wait for every document the task needs to reach ready.

How stored document volume is measured

Duale AI records stored document volume from the document lifecycle described below.

A document counts from when Duale AI stores it until Duale AI deletes it permanently. A deleted document stays in the 30-day Recently deleted window and still counts during that window. Delete it as soon as your retention policy allows. Include the 30-day window when you estimate stored document volume.

Nothing expires a Library that a task created for its attachments, so its documents remain recorded until you delete them. Attach documents covers the files that one task carries. Pricing and access states whether the applicable commercial terms bill recorded volume separately.

What a nightly refresh records

A nightly refresh that uploads every file and deletes the prior documents still holds about thirty superseded copies of every file, plus the current one. A change-only refresh keeps that extra volume to the files that changed.

This happens because uploading a file again creates a new document instead of replacing the old one, and a document you delete keeps counting for its 30-day window.

Best practices gives the habit that keeps a changing set of documents to roughly its own size.