Files API
Manage your organization's files: upload, list, retrieve, download and delete. Use the OpenAI SDK with baseURL /file/v1; file objects additionally expose mime_type and downloadable.
File stores uploads for conversations and knowledge bases, with metadata, downloads and deletion. Concepts and behavior follow OpenAI Files (multipart uploads, purposes and file IDs), so OpenAI Files experience applies. Differences: uploads are limited to 104857600 bytes; only user_data, assistants and vision purposes are accepted, and conversation images require user_data; praxis[expires_in_seconds] allows expiry up to 90 days, while expires_after allows up to 30 days. Start with praxis.file.files.create to upload bytes and obtain a reusable file ID.
Base URL
Get started
Loading…The per-file limit is 100 MB (104857600 bytes). Uploads and downloads stream throughout; Uploads chunking is not available. Types are detected from content; see the upload endpoint for formats. Files are isolated by organization.
Endpoints
| Method | Path | Description | Support |
|---|---|---|---|
| POST | /v1/files | Upload a file | ◐ Partial |
| GET | /v1/files | List files | ● Supported |
| GET | /v1/files/{file_id} | Retrieve a file | ● Supported |
| GET | /v1/files/{file_id}/content | Download a file | ● Supported |
| DELETE | /v1/files/{file_id} | Delete a file | ● Supported |
Differences from OpenAI
- Uses OpenAI file and pagination shapes, adding mime_type, downloadable and a before query cursor. Only this face accepts body praxis.expires_in_seconds (3600–7776000 seconds), mutually exclusive with expires_after; encode it as praxis[expires_in_seconds] in multipart.
- Upload a file:Supports PDF; DOCX / XLSX / PPTX; PNG / JPEG / GIF / WebP; MP3 / WAV / FLAC / OGG / M4A; MP4 / WebM; UTF-8 JSON / NDJSON / CSV / Markdown / plain text. Purposes are user_data / assistants / vision. Limit 104857600 bytes. Empty, unsupported, invalid-purpose and oversized uploads return 400. No Uploads chunking. Set expiry with expires_after[anchor] and expires_after[seconds], or with praxis[expires_in_seconds]; the two settings are mutually exclusive.
For authoritative parameter definitions, see the official OpenAI documentation.
Errors follow the OpenAI format, see errors; quotas and response headers are covered in rate limits.