canonical: https://jentic.com/apis/apideck.com/file-storage

# Apideck File Storage API

The Apideck File Storage API is a unified interface for working with files, folders, shared links, and resumable upload sessions across multiple cloud storage providers including Google Drive, Dropbox, Box, OneDrive, and SharePoint. A single set of 33 endpoints covers listing, uploading, downloading, copying, and renaming files plus drive and drive-group management, eliminating per-vendor SDKs. It supports multipart upload sessions for large files and a search endpoint for full-text and metadata queries. Authentication is a single bearer-style Authorization header on the unify.apideck.com base URL paired with consumer and application headers identifying the end user's connected drive.

## For AI agents

Upload, download, search, and organise files and folders across Google Drive, Dropbox, Box, OneDrive, and SharePoint through one unified API surface.

## Scope

Does not handle real-time collaboration, document conversion beyond the export endpoint, or e-signature workflows - use for file, folder, and shared-link operations across cloud drives only.

## Capabilities

- Upload a file or start a resumable upload session for files larger than the single-request limit
- Search files across a connected drive by name, metadata, or content with POST /file-storage/files/search
- Download or export a file by ID, with format conversion supported via the export endpoint
- Create, rename, move, copy, and delete folders within a connected drive
- Generate, list, and revoke shared links to grant external access to specific files
- List drives and drive groups so an agent can target a specific storage location for an upload
- Finish or abort a multipart upload session cleanly to avoid orphaned partial uploads

## Use cases

### Cross-Provider File Sync

Build a feature that syncs documents between a customer's preferred cloud storage (Google Drive, Dropbox, Box, OneDrive, or SharePoint) and a SaaS product without writing a separate integration per provider. The unified File Storage API exposes 33 endpoints covering files, folders, shared links, and upload sessions, so the same code path uploads to whichever drive the user has connected. Resumable upload sessions handle multi-gigabyte files reliably.

Example prompt: Upload a 250 MB PDF named 'invoice-2026-Q1.pdf' to the user's connected drive and return the resulting file ID and URL

### Resumable Large-File Upload

Upload large files (videos, datasets, backups) using multipart sessions that can resume after network failures. POST /file-storage/upload-sessions starts a session, PUT /file-storage/upload-sessions/{id} uploads each part, and POST /file-storage/upload-sessions/{id}/finish completes it. If the connection drops mid-upload, the session can be resumed by re-fetching its state via GET /file-storage/upload-sessions/{id} and continuing from the last successful part.

Example prompt: Start an upload session for a 4 GB MP4, upload it in 50 MB chunks via PUT, and finish the session - abort it and notify the user if any part fails twice

### Search and Share Documents

Help users locate documents across a connected drive and share them with collaborators. POST /file-storage/files/search runs a query across file names and metadata, and POST /file-storage/shared-links generates a link with the requested permissions. Useful for AI assistants that retrieve a document, summarise it, then share the link back via email or chat.

Example prompt: Search the connected drive for files matching 'employee handbook 2026', take the top result, generate a read-only shared link, and return the link

### AI Agent Document Workflow via Jentic

An AI agent fields a request like 'find last quarter's board deck and email it to the CFO'. Through Jentic, the agent searches 'search files in cloud storage', loads the POST /file-storage/files/search operation, executes the query, then loads the shared-links create operation to generate a link. Jentic stores the Apideck Authorization, x-apideck-app-id, and x-apideck-consumer-id headers separately so the agent never holds raw credentials.

Example prompt: Through Jentic, search files matching 'board deck Q4', then create a shared link for the top match using POST /file-storage/shared-links

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /file-storage/files | Upload a file |
| POST | /file-storage/files/search | Search files by name, metadata, or content |
| GET | /file-storage/files/{id}/download | Download a file by ID |
| POST | /file-storage/folders | Create a folder |
| POST | /file-storage/shared-links | Create a shared link |
| POST | /file-storage/upload-sessions | Start a resumable upload session |
| POST | /file-storage/upload-sessions/{id}/finish | Finish an upload session |
| GET | /file-storage/drives | List connected drives |

## Key resources

- **Files** — Upload, list, search, get, rename/move, delete, download, and export files
- **Folders** — Create, get, rename/move, delete, and copy folders
- **Shared Links** — Create, list, get, update, and delete shared links to files
- **Upload Sessions** — Start, get, upload parts to, finish, and abort resumable upload sessions
- **Drives** — List, create, get, update, and delete drives connected to a consumer
- **Drive Groups** — List, create, get, update, and delete drive groups

## Why Jentic

- **Setup:** Wiring the Apideck File Storage API by hand means setting up its API key plus consumer and service headers, learning the unified file and folder shapes, and running upload sessions across cloud drives yourself. Through Jentic you install once, import Apideck File Storage from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** The Apideck File Storage API puts the file and upload-session id in the URL path (/file-storage/files/{id}/download, /file-storage/upload-sessions/{id}/finish), so a rule can pin your agent to one file or session for downloads and finishing uploads and nothing else. You choose the operations it may call, so creating shared links is not included unless you add it.
- **Credential handling:** Your Apideck API key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'search files across drives' or 'download a file', and Jentic returns the matching Apideck File Storage operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Dropbox API v2** — Dropbox-only file API with deeper Dropbox-specific features but no abstraction over Google Drive or Box.
- **Box API** — Box-only file API with enterprise governance features the unified API does not surface.
- **Apideck Vault API** — Vault sets up and stores the OAuth connection that File Storage operations execute against.

## FAQ

### What authentication does the Apideck File Storage API use?

An apiKey scheme on the `Authorization` header containing your Apideck application key, plus the standard `x-apideck-app-id` and `x-apideck-consumer-id` headers identifying the application and end user. Through Jentic these values are stored encrypted in the vault and injected at execution; the agent only ever sees a scoped token.

### Can I upload files larger than the single-request limit with this API?

Yes. Use the upload-sessions flow: POST /file-storage/upload-sessions to start a session, PUT /file-storage/upload-sessions/{id} for each part, then POST /file-storage/upload-sessions/{id}/finish to complete. Use DELETE /file-storage/upload-sessions/{id} to abort a stalled session.

### What are the rate limits for the Apideck File Storage API?

The OpenAPI spec does not publish per-endpoint rate limits. Apideck applies plan-based limits at the unify.apideck.com gateway and per-connector limits passed through from the underlying provider (Google Drive, Dropbox, etc.). Check https://developers.apideck.com for your plan's quota.

### How do I search a user's connected drive through Jentic?

Install with `pip install jentic`, then run the search query 'search files in cloud storage'. Jentic returns the POST /file-storage/files/search operation - load its schema, pass the query string and any filters, and execute. The user's drive selection is determined by the consumer ID.

### Which storage providers does this API connect to?

Apideck's File Storage Unified API normalises Google Drive, Dropbox, Box, OneDrive, and SharePoint behind a single set of endpoints. Which provider is used for a given call depends on the connection configured for the x-apideck-consumer-id; check connection state via the Vault API.

### How do shared links work with this API?

POST /file-storage/shared-links creates a link to a file with the permissions you specify. GET /file-storage/shared-links lists existing links, GET /file-storage/shared-links/{id} fetches one, PATCH updates link properties (for example expiry), and DELETE revokes a link. Behaviour follows the underlying provider's link semantics.

### Can I limit what my agent is allowed to do with the Apideck File Storage API?

Yes. Because you run Jentic One yourself, your own rules decide which Apideck File Storage operations and credentials the agent can use. Since the file and upload-session ID sit in the URL path, such as /file-storage/files/{id}/download and /file-storage/upload-sessions/{id}/finish, you can pin the agent to a single file or session for downloads and finishing uploads and nothing more. You also choose the operations it may call, so creating shared links with POST /file-storage/shared-links stays off limits unless you explicitly allow it.
