Files Migration
Whatβs Changed
- New
FileSummaryobject β Lightweight file info used in list responses - Content extraction moved β Use Parse endpoints instead of
?markdown=truequery params - Simpler delete response β Returns just
{ id }instead of{ success, fileId, message } - Consistent SDK naming β
client.file.*βclient.files.*
These changes are straightforward. Most /files endpoint functionality works the same way.
This guide covers all breaking changes to the /files endpoints.
Summary of Changes
SDK Changes
The SDK group and method names have been updated for consistency:
TypeScript
Python
Java
File Schema
The File schema has been simplified. The contents field has been removed entirelyβuse the Parse endpoints for content extraction. Additionally, parentFileId is now required but nullable for a predictable response structure.
Response Example
FileSummary Schema (New)
The new FileSummary schema is a lighter object used in list responses and upload responses. It excludes the presignedUrl and contents fields. Like File, parentFileId is now required but nullable.
FileSummary Example
FileMetadata Schema Changes
The metadata object structure has changed:
The pageCount property has been removed from the File object. To get page count information, use the Parse endpoints which include pageCount in the output metadata.
GET /files (List Files)
Endpoint Path
Query Parameter Changes
No breaking changes to query parameters.
Response Changes
Response shape changes: List responses now use { "object": "list", "data": [...] } format, and single object responses are returned directly (no wrapper key). See Simplified Response Shapes for details.
The response now returns FileSummary objects instead of File objects:
Key differences:
- No
successfield - List responses now use standardized format with
object: "list"anddataarray presignedUrlnot included (useGET /files/{id}to get download URL)contentsfield not includedpageCountremoved from metadata
GET /files/{id} (Get File)
Endpoint Path
Query Parameter Changes
Removed query parameters:
To get parsed content from files (raw text, markdown, HTML), use the Parse endpoints instead.
Response Changes
Key differences:
- No
successfield contentsfield removed (use Parse endpoints for content extraction)pageCountremoved from metadataparentFileIdis now always present (nullfor non-derivative files)
DELETE /files/{id} (Delete File)
Endpoint Path
Response Changes
The response has been significantly simplified:
Key differences:
- No
successfield fileIdrenamed toidmessagefield removed
POST /files/upload (Upload File)
Endpoint Path
Request Body
No changes to the request body. The endpoint still accepts multipart/form-data with a file field.
Response Changes
The upload endpoint now returns a File object with consistent nullable fields:
Key differences:
- No
successfield contentsfield removedpresignedUrlisnull(only available onGET /files/{id})- All nullable fields are always present with explicit
nullvalues
POST /files (Create File) - REMOVED
The POST /files endpoint has been completely removed. It was deprecated in API version 2025-04-21.
If you were using this endpoint, migrate to POST /files/upload:
Alternatively, you can use inline file URLs directly in processing endpoints without uploading first:
SDK Method Reference
Need Help?
If you encounter any issues while migrating, please contact our support team at support@extend.app.

