For AI agents: a documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
File uploads: streaming support, reliability fixes, and limits
What’s new?
- Streamed multipart uploads for files:
- POST
/projects/{projectId}/files/upload
- POST
/requests/{requestId}/files/upload
- You can provide
phaseInstanceId either as a form field or as a ?phaseInstanceId= query parameter; the API will include it once in the forwarded payload.
Fixes and improvements
- Robust parsing: files are fully consumed when building the outgoing
multipart/form-data.
- Getting a project returns the project manager data.
- Allow files to be added in a certain project or request phase.
Usage notes
- Send
multipart/form-data with a file part; optional fields may include phaseInstanceId.
- For non‑multipart uploads, send the raw bytes as the request body and pass filename/content type via:
- Headers
X-File-Name and X-File-Content-Type (case‑insensitive), or
- Query params
name and content_type.
- The API enforces a 10 MB request limit. With base64 encoding and multipart overhead, practical max payload is ~6–7 MB.
- For larger uploads, use an out‑of‑band approach (e.g., presigned upload) and then create the file record by URL.
Compatibility
- No response shape changes. Successful uploads return:
id, name, downloadUrl, type, updatedAt, createdAt, companyId, metaData, source, createdByUser, isArchived.