# API Iron exposes JSON APIs under `/api` and `tus` upload transport under `/files`. Most `/api` routes require: ```text Authorization: Bearer ``` ## Auth - `POST /api/auth/login` - `POST /api/auth/logout` - `GET /api/auth/me` ## Directories - `GET /api/directories/{directory_id}/children` - `POST /api/directories` - `POST /api/directories/{directory_id}/rename` - `POST /api/directories/{directory_id}/move` ## Files - `GET /api/files/{file_id}` - `GET /api/files/{file_id}/download` - `GET /api/files/{file_id}/preview` - `GET /api/files/{file_id}/stream` - `POST /api/files/{file_id}/rename` - `POST /api/files/{file_id}/move` - `DELETE /api/files/{file_id}` - `POST /api/files/{file_id}/restore` - `GET /api/files/recycle-bin` ## Uploads Protocol endpoints: - `POST /files` - `HEAD /files/{upload_id}` - `PATCH /files/{upload_id}` Finalize endpoint: - `POST /api/uploads/{upload_id}/finalize` ## Backends - `GET /api/backends` - `POST /api/backends` - `POST /api/backends/{backend_id}/check` - `POST /api/backends/{backend_id}/disable` ## Jobs - `GET /api/jobs` - `GET /api/jobs/{job_id}` - `POST /api/jobs/{job_id}/retry` - `POST /api/jobs/run-pending` - `POST /api/jobs/enqueue-health-checks` - `POST /api/jobs/enqueue-full-reconcile` ## Placement Policies - `GET /api/policies/placement` - `PUT /api/policies/placement/{file_class}` - `GET /api/policies/placement/preview` ## Metadata Export And Recovery - `GET /api/exports/metadata` - `POST /api/exports/metadata/validate` - `GET /api/exports/metadata/integrity` - `POST /api/exports/metadata/restore-plan` - `POST /api/exports/metadata/import` Metadata import requires `confirm_replace=true` and a validation token from the restore-plan endpoint. ## System - `GET /api/system/health` - `GET /api/system/ready`