## Create an asset upload `client.assets.create(AssetCreateParamsbody, RequestOptionsoptions?): AssetCreateResponse` **post** `/assets` Creates an asset from an allowlisted source URL or reserves a signed upload URL. Mutating public API requests support an optional Idempotency-Key header for client retries; duplicate keys within two hours return idempotency_duplicate. ### Parameters - `body: AssetCreateParams` - `source: string` Asset source URL or signed-url upload mode - `workspace_id: string` Workspace identifier - `content_type?: string` Asset content type - `file_name?: string` Asset file name - `folder?: string` Destination folder ### Returns - `AssetCreateResponse` - `asset_id: string` Asset identifier - `status: "pending_upload" | "ready" | "failed"` - `"pending_upload"` - `"ready"` - `"failed"` - `uploaded_via: "url" | "signed_url"` Asset source - `"url"` - `"signed_url"` - `url: string` Asset URL - `visibility: "workspace"` - `"workspace"` - `workspace_id: string` Workspace identifier - `expires_at?: string` Expiration time for the upload URL - `upload?: Upload` - `content_type: "multipart/form-data"` - `"multipart/form-data"` - `file_field: "file"` - `"file"` - `form_fields: Record` Upload form fields - `method: "POST"` - `"POST"` - `url: string` Upload URL - `upload_url?: string` Upload URL (serialized) ### Example ```typescript import Flora from '@flora-ai/flora'; const client = new Flora({ apiKey: process.env['FLORA_API_KEY'], // This is the default and can be omitted }); const asset = await client.assets.create({ source: 'signed-url', workspace_id: 'ws_abc123' }); console.log(asset.asset_id); ``` #### Response ```json { "asset_id": "asset_abc123", "status": "pending_upload", "uploaded_via": "url", "url": "https://example.com", "visibility": "workspace", "workspace_id": "ws_abc123", "expires_at": "2019-12-27T18:11:19.117Z", "upload": { "content_type": "multipart/form-data", "file_field": "file", "form_fields": { "foo": "string" }, "method": "POST", "url": "https://example.com" }, "upload_url": "https://upload.imagekit.io/api/v1/files/upload" } ```