Loading...
Loading...
Public API project file management (X-API-KEY). Prepare upload/update, confirm, get file, download URL, delete. Types follow PublicApiProjectFileController (/api/v2/projects/{projectId}/...).
npx skill4agent add compilet-dev/agent-skill-layerproof project-files/api/v2/projects/{projectId}upload_urlfile_idprojectIddirectoryIdX-API-KEYPublicApiProjectFileController// --- Prepare upload (POST) — 201 ---
type PrepareFileUploadRequest = {
path: string;
file_name: string;
mime_type: string;
size: number;
};
type PrepareFileUploadResponse = {
upload_url: string;
file_id: string;
s3_key: string;
expires_at: string;
};
// --- Prepare update (POST) ---
type PrepareUpdateFileRequest = {
path: string;
mime_type?: string | null;
size?: number | null;
};
type PrepareUpdateFileResponse = {
upload_url: string;
file_id: string;
s3_key: string;
expires_at: string;
};
// --- Confirm (POST) ---
type ConfirmFileUploadRequest = { metadata?: Record<string, unknown> | null };
type FileResponse = {
id: string;
name: string;
file_type: string;
mime_type: string;
s3_key: string;
size: number;
uploaded_at: string;
uploaded_by: string;
status: string;
metadata: Record<string, unknown> | null;
};
// --- Download URL (GET), Get file (GET), Delete (DELETE) ---
type DownloadUrlResponse = {
download_url: string;
expires_at: string;
};PrepareFileUploadRequestPrepareFileUploadResponsecurl -X POST "$LAYERPROOF_BASE_URL/api/v2/projects/<project_id>/directories/<directory_id>/files/prepare" \
-H "Content-Type: application/json" \
-H "X-API-KEY: $LAYERPROOF_API_KEY" \
-d '{"path":"/","file_name":"doc.pdf","mime_type":"application/pdf","size":2048}'PrepareUpdateFileRequestPrepareUpdateFileResponsecurl -X POST "$LAYERPROOF_BASE_URL/api/v2/projects/<project_id>/directories/<directory_id>/files/prepare-update" \
-H "Content-Type: application/json" \
-H "X-API-KEY: $LAYERPROOF_API_KEY" \
-d '{"path":"/doc.pdf","mime_type":"application/pdf","size":2048}'ConfirmFileUploadRequestFileResponsecurl -X POST "$LAYERPROOF_BASE_URL/api/v2/projects/<project_id>/files/<file_id>/confirm" \
-H "Content-Type: application/json" \
-H "X-API-KEY: $LAYERPROOF_API_KEY" \
-d '{"metadata":{}}'DownloadUrlResponsecurl "$LAYERPROOF_BASE_URL/api/v2/projects/<project_id>/files/<file_id>/download-url" \
-H "X-API-KEY: $LAYERPROOF_API_KEY"FileResponsecurl "$LAYERPROOF_BASE_URL/api/v2/projects/<project_id>/files/<file_id>" \
-H "X-API-KEY: $LAYERPROOF_API_KEY"curl -X DELETE "$LAYERPROOF_BASE_URL/api/v2/projects/<project_id>/files/<file_id>" \
-H "X-API-KEY: $LAYERPROOF_API_KEY"/api/v2/projects/{projectId}project_iddirectory_idfile_id| User intent | Endpoint | Method |
|---|---|---|
| Get upload URL for new file | | POST |
| Get upload URL to update file | | POST |
| Confirm upload after PUT | | POST |
| Get download URL | | GET |
| Get file metadata | | GET |
| Delete file | | DELETE |
X-API-KEY: $LAYERPROOF_API_KEYupload_urlfile_idfile_id.../directories/{directoryId}/files/prepare{"path":"/","file_name":"brief.pdf","mime_type":"application/pdf","size":<bytes>}upload_urlfile_ids3_keyupload_urlContent-Type: application/pdf.../files/{file_id}/confirm{}{"metadata":{}}file_id/ref1.pdf/ref2.docxupload_urlfile_ids3_keyfile_s3_keys.../directories/{directoryId}/files/prepare-update{"path":"/brief.pdf","mime_type":"application/pdf","size":<new_bytes>}upload_urlfile_idupload_url.../files/{file_id}/confirm.../files/{file_id}/download-url