# Asset files API

Source: https://frameleaf.app/docs/api/reference/asset-files/

Use your own server and its scoped API keys.

## Search asset files

GET /api/asset-files

Returns all matching asset files.

```json
{
  "description": "Returns all matching asset files.",
  "operationId": "searchAssetFiles",
  "parameters": [
    {
      "name": "assetId",
      "required": true,
      "in": "query",
      "description": "Asset ID to filter files by",
      "schema": {
        "format": "uuid",
        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
        "type": "string"
      }
    },
    {
      "name": "isEdited",
      "required": false,
      "in": "query",
      "description": "The file was generated from an edit",
      "schema": {
        "type": "boolean"
      }
    },
    {
      "name": "isProgressive",
      "required": false,
      "in": "query",
      "description": "The file is a progressively encoded JPEG",
      "schema": {
        "type": "boolean"
      }
    },
    {
      "name": "isTransparent",
      "required": false,
      "in": "query",
      "description": "The file is transparent",
      "schema": {
        "type": "boolean"
      }
    },
    {
      "name": "type",
      "required": false,
      "in": "query",
      "description": "Filter by type of file",
      "schema": {
        "$ref": "#/components/schemas/AssetFileType"
      }
    }
  ],
  "responses": {
    "200": {
      "content": {
        "application/json": {
          "schema": {
            "items": {
              "$ref": "#/components/schemas/AssetFileResponseDto"
            },
            "type": "array"
          }
        }
      },
      "description": ""
    }
  },
  "security": [
    {
      "api_key": []
    }
  ],
  "summary": "Search asset files",
  "tags": [
    "Asset files"
  ],
  "x-frameleaf-permission": "assetFile.read"
}
```

## Delete an asset file

DELETE /api/asset-files/{id}

Delete a file and remove it from the database.

```json
{
  "description": "Delete a file and remove it from the database.",
  "operationId": "deleteAssetFile",
  "parameters": [
    {
      "name": "id",
      "required": true,
      "in": "path",
      "schema": {
        "format": "uuid",
        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
        "type": "string"
      }
    }
  ],
  "responses": {
    "204": {
      "description": ""
    }
  },
  "security": [
    {
      "api_key": []
    }
  ],
  "summary": "Delete an asset file",
  "tags": [
    "Asset files"
  ],
  "x-frameleaf-permission": "assetFile.delete"
}
```

## Retrieve an asset file

GET /api/asset-files/{id}

Returns metadata about a specific asset file.

```json
{
  "description": "Returns metadata about a specific asset file.",
  "operationId": "getAssetFile",
  "parameters": [
    {
      "name": "id",
      "required": true,
      "in": "path",
      "schema": {
        "format": "uuid",
        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
        "type": "string"
      }
    }
  ],
  "responses": {
    "200": {
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/AssetFileResponseDto"
          }
        }
      },
      "description": ""
    }
  },
  "security": [
    {
      "api_key": []
    }
  ],
  "summary": "Retrieve an asset file",
  "tags": [
    "Asset files"
  ],
  "x-frameleaf-permission": "assetFile.read"
}
```

## Download an asset file

GET /api/asset-files/{id}/download

Serve the contents of a specific asset file.

```json
{
  "description": "Serve the contents of a specific asset file.",
  "operationId": "downloadAssetFile",
  "parameters": [
    {
      "name": "id",
      "required": true,
      "in": "path",
      "schema": {
        "format": "uuid",
        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$",
        "type": "string"
      }
    }
  ],
  "responses": {
    "200": {
      "content": {
        "application/octet-stream": {
          "schema": {
            "format": "binary",
            "type": "string"
          }
        }
      },
      "description": ""
    }
  },
  "security": [
    {
      "api_key": []
    }
  ],
  "summary": "Download an asset file",
  "tags": [
    "Asset files"
  ],
  "x-frameleaf-permission": "assetFile.download"
}
```
