> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.eyelevel.ai/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.eyelevel.ai/_mcp/server.

The Python SDK provides two methods for uploading files in batches:

1. [Ingest Directories](/reference/api-reference/documents/ingest-directories): Finds supported files in a directory tree and uploads them to a bucket.
2. [Ingest Documents](/reference/api-reference/documents/ingest-documents): Uploads a list of local and remote documents in batches. Set `wait_for_complete` to wait for processing to finish.

Use [Ingest Directories](/reference/api-reference/documents/ingest-directories) for a local folder and [Ingest Documents](/reference/api-reference/documents/ingest-documents) for a selected list of files.

## Protected batches

Use an SDK version that preserves each file's initial policy through batching and splitting, and supports private uploads. Older versions may lack this support. Use private upload before sending a protected file, even when its bucket is public. See [File Access and Sharing](/documentation/fundamentals/file-access-and-sharing) for REST upload steps and release requirements.