Private & Secure: No LLM training on your data
X-API-KEY header. See Authentication for details. For full request/response schemas, see the Content API reference.
Upload a file
Direct upload has two required steps; a third step is optional if you want to track processing status.Request an upload URL
POST to Example response:
/contents/v1/documents with JSON metadata. The response contains a single-use pre-signed url and the document id.Upload the file to the pre-signed URL
PUT the file to the url from the previous response (use the correct
Content-Type for your file). This completes the upload; Bigdata then starts processing the document.(Optional) Poll to track processing status
If you want to track when the document is ready, use the id from step 1 with Get document to poll
status. While processing, you will see "status": "processing". When the document is ready for search and download, the status becomes "status": "completed". This step is not required—Bigdata processes the document in the background after the upload.Tags
At upload time: Include atags array in the POST body to apply tag names to the document (e.g. ["Research Team", "Q4 2025"]). These tags can be used to filter documents in the Search and Research Agent services.
List tags: Use GET /contents/v1/tags to retrieve all tags visible to your organization, with document counts. Tags are returned with id, name, and file_count.
Filter documents by tags: When calling List documents, use the tags query parameter (repeat for multiple tags). Documents matching any of the given tags are returned (OR logic).
Use tags in Search and Research Agent: You can scope search and research to documents with specific tags. In the Search API, set query.filters.tag in the request body. In the Research Agent API, configure the search tool’s query_filters.content with the desired tag filter.
Working with your files
List documents: GET /contents/v1/documents returns a paginated list of documents you can access. Use query parameters for filtering (origin, tags, connector, from_date, file_name, etc.), sorting (sort_by, sort_order), and pagination (page, page_size). To list only documents uploaded via direct upload, use origin=file_upload. Each item includes id (content_id), file_name, status, connector_id, tags, request_origin, and timestamps.
Example: list first page of directly uploaded documents, filter by tag
Deleting a document
To permanently remove a document from the platform, call DELETE /contents/v1/documents/. This deletes the original file, the annotated version, and the chunks from the vector database. Only documents in COMPLETED or FAILED status can be deleted. Attempting to delete a document that is still being processed will raise an exception. Use Get document to checkstatus before deleting.
- Success: 200 response with a null body.
- Not found: 404 with body
{"statusCode": 404, "message": "Document not found", "errorCode": "PRIVATE_CONTENT_NOT_FOUND", "requestId": "..."}.
Next steps
- Try the how-to guide — Upload and search your content to see your uploaded content in action.
- Try the Batch file upload — Batch file upload script for uploading many files.
- Try Playgrounds — Use the Search Service or Research Agent playgrounds below; select My Files to query your documents.
Search Service Playground
Search across your private content and other sources. In the playground, open the source selector and choose My Files to limit results to your uploaded documents.
Research Agent Playground
Run research over your private content and real-time data. In the playground, use the source selector and filter by My Files to ground answers in your documents.

