[Create assets](#create-assets)
[Fetch assets](#fetch-assets)
[Update assets](#update-assets)
[Delete assets](#delete-assets)
[Link assets to documents](#link-assets-to-documents)

!!! Reference documentation
Visit [the API reference documentation](https://docs.quable.com/reference/getassetcollection) for more details on available endpoints for assets.
!!!

---

## Create assets

In Quable, an asset is composed of:
- **a binary file** (jpeg, mp4, ppt, etc.)
- **attribute's values** (shooting date, model name, etc.)

---

### Importing attribute values

Importing attribute's values works the same way for assets as for [classification's](/cookbooks/import-data/import-via-api/4-classification--tree) and [document's attribute values](/cookbooks/import-data/import-via-api/5-push--documents).

---

### Importing binary files

For the binary file, things are a little trickier.
There are two ways to push an asset binary file in Quable DAM:

==- If the binary file is stored externally

If the binary file is external (often located in another DAM), you can point to it using its URL when creating the asset object. This is a POST request. 

```shell
curl --location 'https://{{instance}}.quable.com/api/assets' \
--header 'accept: */*' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{bearerToken}}' \
--data '{
    "id": "myAssetIdentifier",
    "classification": {
        "id": "myDamClassificationIdentifier"
    },
    "attributes": {
        "date_shooting" : "2023-11-09T10:00:00",
        "mannequin" : "Jane Doe"
    },
    "remotePath": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQK__EYbk6y0la-IHFnoViF-ZRSkdam5yxhhtbsh3lG8YUQBuYEW7LLyi3qxl_vmu0-PyI&usqp=CAU"
}'
```

The response will display as follow:

```json
{
    "@context": {
        "@vocab": "https://education-developers.quable.com/api/docs.jsonld#",
        "hydra": "http://www.w3.org/ns/hydra/core#",
        "name": "AssetOutput/name",
        "isActive": "AssetOutput/isActive",
        "attributes": "AssetOutput/attributes",
        "metadata": "AssetOutput/metadata",
        "url": "AssetOutput/url",
        "originalFilename": "AssetOutput/originalFilename",
        "thumbnailUrl": "AssetOutput/thumbnailUrl",
        "previewUrl": "AssetOutput/previewUrl",
        "classifications": "AssetOutput/classifications",
        "documentLinks": "AssetOutput/documentLinks",
        "variantLinks": "AssetOutput/variantLinks",
        "dateCreated": "AssetOutput/dateCreated",
        "dateModified": "AssetOutput/dateModified",
        "thumbnails": "AssetOutput/thumbnails",
        "legacyId": "AssetOutput/legacyId",
        "active": "AssetOutput/active"
    },
    "@type": "Asset",
    "@id": "/api/assets/myAssetIdentifier",
    "name": "",
    "active": true,
    "attributes": [],
    "metadata": [],
    "url": "https://www.crafters.fr/images/stories/virtuemart/sols20/633_chemise_homme_stretch_manches_longues_blake_men_black_face.png",
    "originalFilename": "633_chemise_homme_stretch_manches_longues_blake_men_black_face.png",
    "thumbnailUrl": "",
    "previewUrl": "",
    "classifications": [
        {
            "@context": {
                "@vocab": "https://education-developers.quable.com/api/docs.jsonld#",
                "hydra": "http://www.w3.org/ns/hydra/core#",
                "parentCode": "ClassificationOutput/parentCode",
                "catalogId": "ClassificationOutput/catalogId",
                "isActive": "ClassificationOutput/isActive",
                "attributes": "ClassificationOutput/attributes",
                "assetLinks": "ClassificationOutput/assetLinks",
                "mainAssetUrl": "ClassificationOutput/mainAssetUrl",
                "mainAssetThumbnailUrl": "ClassificationOutput/mainAssetThumbnailUrl",
                "dateCreated": "ClassificationOutput/dateCreated",
                "dateModified": "ClassificationOutput/dateModified",
                "createdBy": "ClassificationOutput/createdBy",
                "updatedBy": "ClassificationOutput/updatedBy",
                "legacyId": "ClassificationOutput/legacyId",
                "active": "ClassificationOutput/active"
            },
            "@type": "Classification",
            "@id": "/api/classifications/dam_sort",
            "catalogId": null,
            "id": "dam_sort",
            "legacyId": 3
        }
    ],
    "documentLinks": [],
    "variantLinks": [],
    "dateCreated": "2023-11-14T10:58:01+00:00",
    "dateModified": "2023-11-14T10:58:02+00:00",
    "thumbnails": {
        "preview": null
    },
    "id": "myAssetIdentifier",
    "legacyId": 178
}
```
===

==- If the binary file needs to be imported to Quable first

This requires two steps: 
1. pushing the file to Quable
2. associating the file with an existing asset.

**1. Pushing the file to Quable**

```shell
curl --location 'https://{{instance}}.quable.com/api/files' \
--header 'Authorization: Bearer {{bearerToken}}' \
--form 'fileType="asset"' \
--form 'file=@"{{assetFile}}"'
```

This will return a payload response like so:

```shell
{
    "name": "shirt.jpg",
    "location": {
        "container": "education-developers-dam",
        "filename": "c52c1695-a303-4d7f-9bc5-c50142843325"
    },
    "metadatas": {
        "mime_type": "image/jpeg"
    },
    "id": "c52c1695-a303-4d7f-9bc5-c50142843325",
    "type": "asset",
    "status": "available",
    "dateModified": "2023-11-14T10:10:42+00:00",
    "dateCreated": "2023-11-14T10:10:42+00:00"
}
```

!!!warning
Make sure to copy the file's ID. It will be needed in the next step to do a POST request to create the asset object.
!!! 

**2. Creating the asset object**

This is a POST request as well:

```shell
curl --location 'https://{{instance}}.quable.com/api/assets' \
--header 'accept: */*' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{bearerToken}}' \
--data '{
    "id": "myAssetIdentifier",
    "file": {
        "id": "theFileIdentifier"
    },
    "classification": {
        "id": "myDamClassificationIdentifier"
    }
}'
```

In case of success, the response will come through as an [!badge variant="success" text="HTTP 201"].
The response will look like so:

```json
{
    "@context": {
        "@vocab": "https://education-developers.quable.com/api/docs.jsonld#",
        "hydra": "http://www.w3.org/ns/hydra/core#",
        "name": "AssetOutput/name",
        "isActive": "AssetOutput/isActive",
        "attributes": "AssetOutput/attributes",
        "metadata": "AssetOutput/metadata",
        "url": "AssetOutput/url",
        "originalFilename": "AssetOutput/originalFilename",
        "thumbnailUrl": "AssetOutput/thumbnailUrl",
        "previewUrl": "AssetOutput/previewUrl",
        "classifications": "AssetOutput/classifications",
        "documentLinks": "AssetOutput/documentLinks",
        "variantLinks": "AssetOutput/variantLinks",
        "dateCreated": "AssetOutput/dateCreated",
        "dateModified": "AssetOutput/dateModified",
        "thumbnails": "AssetOutput/thumbnails",
        "legacyId": "AssetOutput/legacyId",
        "active": "AssetOutput/active"
    },
    "@type": "Asset",
    "@id": "/api/assets/blueshirt",
    "name": "shirt.jpg",
    "active": true,
    "attributes": [],
    "metadata": {
        "color_space": "sRGB",
        "file_size": "1.31 MB",
        "width": "3064",
        "height": "4592",
        "orientation": "portrait",
        "file_name": "shirt.jpg",
        "mime_type": "image/jpeg",
        "detail": {
            "FileSize": "1373 kB",
            "FileModifyDate": "2023:11:14 10:41:05+00:00",
            "FileAccessDate": "2023:11:14 10:41:05+00:00",
            "FileInodeChangeDate": "2023:11:14 10:41:05+00:00",
            "FilePermissions": "-rw-r--r--",
            "FileType": "JPEG",
            "FileTypeExtension": "jpg",
            "MIMEType": "image/jpeg",
            "JFIFVersion": 1.01,
            "ResolutionUnit": "inches",
            "XResolution": 72,
            "YResolution": 72,
            "ProfileCMMType": "Linotronic",
            "ProfileVersion": "2.1.0",
            "ProfileClass": "Display Device Profile",
            "ColorSpaceData": "RGB ",
            "ProfileConnectionSpace": "XYZ ",
            "ProfileDateTime": "1998:02:09 06:49:00",
            "ProfileFileSignature": "acsp",
            "PrimaryPlatform": "Microsoft Corporation",
            "CMMFlags": "Not Embedded, Independent",
            "DeviceManufacturer": "Hewlett-Packard",
            "DeviceModel": "sRGB",
            "DeviceAttributes": "Reflective, Glossy, Positive, Color",
            "RenderingIntent": "Perceptual",
            "ConnectionSpaceIlluminant": "0.9642 1 0.82491",
            "ProfileCreator": "Hewlett-Packard",
            "ProfileID": 0,
            "ProfileCopyright": "Copyright (c) 1998 Hewlett-Packard Company",
            "ProfileDescription": "sRGB IEC61966-2.1",
            "MediaWhitePoint": "0.95045 1 1.08905",
            "MediaBlackPoint": "0 0 0",
            "RedMatrixColumn": "0.43607 0.22249 0.01392",
            "GreenMatrixColumn": "0.38515 0.71687 0.09708",
            "BlueMatrixColumn": "0.14307 0.06061 0.7141",
            "DeviceMfgDesc": "IEC http://www.iec.ch",
            "DeviceModelDesc": "IEC 61966-2.1 Default RGB colour space - sRGB",
            "ViewingCondDesc": "Reference Viewing Condition in IEC61966-2.1",
            "ViewingCondIlluminant": "19.6445 20.3718 16.8089",
            "ViewingCondSurround": "3.92889 4.07439 3.36179",
            "ViewingCondIlluminantType": "D50",
            "Luminance": "76.03647 80 87.12462",
            "MeasurementObserver": "CIE 1931",
            "MeasurementBacking": "0 0 0",
            "MeasurementGeometry": "Unknown",
            "MeasurementFlare": "0.999%",
            "MeasurementIlluminant": "D65",
            "Technology": "Cathode Ray Tube Display",
            "RedTRC": "(Binary data 2060 bytes, use -b option to extract)",
            "GreenTRC": "(Binary data 2060 bytes, use -b option to extract)",
            "BlueTRC": "(Binary data 2060 bytes, use -b option to extract)",
            "ImageWidth": 3064,
            "ImageHeight": 4592,
            "EncodingProcess": "Progressive DCT, Huffman coding",
            "BitsPerSample": 8,
            "ColorComponents": 3,
            "YCbCrSubSampling": "YCbCr4:2:0 (2 2)",
            "ImageSize": "3064x4592",
            "Megapixels": 14.1
        }
    },
    "url": "https://cdn.quable.com/education-developers/blueshirt/original/shirt.jpg",
    "originalFilename": "shirt.jpg",
    "thumbnailUrl": "https://cdn.quable.com/education-developers/blueshirt/system-thumbnail/shirt-jpg.jpg",
    "previewUrl": "https://cdn.quable.com/education-developers/blueshirt/system-preview/shirt-jpg.jpg",
    "classifications": [
        {
            "@context": {
                "@vocab": "https://education-developers.quable.com/api/docs.jsonld#",
                "hydra": "http://www.w3.org/ns/hydra/core#",
                "parentCode": "ClassificationOutput/parentCode",
                "catalogId": "ClassificationOutput/catalogId",
                "isActive": "ClassificationOutput/isActive",
                "attributes": "ClassificationOutput/attributes",
                "assetLinks": "ClassificationOutput/assetLinks",
                "mainAssetUrl": "ClassificationOutput/mainAssetUrl",
                "mainAssetThumbnailUrl": "ClassificationOutput/mainAssetThumbnailUrl",
                "dateCreated": "ClassificationOutput/dateCreated",
                "dateModified": "ClassificationOutput/dateModified",
                "createdBy": "ClassificationOutput/createdBy",
                "updatedBy": "ClassificationOutput/updatedBy",
                "legacyId": "ClassificationOutput/legacyId",
                "active": "ClassificationOutput/active"
            },
            "@type": "Classification",
            "@id": "/api/classifications/dam_sort",
            "catalogId": null,
            "id": "dam_sort",
            "legacyId": 3
        }
    ],
    "documentLinks": [],
    "variantLinks": [],
    "dateCreated": "2023-11-14T10:41:04+00:00",
    "dateModified": "2023-11-14T10:41:05+00:00",
    "thumbnails": {
        "preview": "https://cdn.quable.com/education-developers/blueshirt/system-preview/shirt-jpg.jpg",
        "thumbnail": "https://cdn.quable.com/education-developers/blueshirt/system-thumbnail/shirt-jpg.jpg"
    },
    "id": "blueshirt",
    "legacyId": 177
}
```
===

---

## Fetch assets

This allows to verify if the asset already exists in the PIM, or if it has to be created.

```shell
curl --location --globoff --request GET 'https://{{instance}}.quable.com/api/assets/81f1a5f5-9a54-40bb-9bf3-front' \
--header 'Authorization: Bearer _api-token_'
```

In case of success, the response will come through as an [!badge variant="success" text="HTTP 200"].
The fetched resources will be available in a [!badge variant="light" text="hydra:member"] table.

==- See the response

```json
{
    "@context": {
        "@vocab": "https://education-developers.quable.com/api/docs.jsonld#",
        "hydra": "http://www.w3.org/ns/hydra/core#",
        "name": "AssetOutput/name",
        "isActive": "AssetOutput/isActive",
        "attributes": "AssetOutput/attributes",
        "metadata": "AssetOutput/metadata",
        "url": "AssetOutput/url",
        "originalFilename": "AssetOutput/originalFilename",
        "thumbnailUrl": "AssetOutput/thumbnailUrl",
        "previewUrl": "AssetOutput/previewUrl",
        "classifications": "AssetOutput/classifications",
        "documentLinks": "AssetOutput/documentLinks",
        "variantLinks": "AssetOutput/variantLinks",
        "dateCreated": "AssetOutput/dateCreated",
        "dateModified": "AssetOutput/dateModified",
        "thumbnails": "AssetOutput/thumbnails",
        "legacyId": "AssetOutput/legacyId",
        "active": "AssetOutput/active"
    },
    "@type": "Asset",
    "@id": "/api/assets/81f1a5f5-9a54-40bb-9bf3-front",
    "name": "shirt.jpg",
    "active": true,
    "attributes": [],
    "metadata": {
        "color_space": "sRGB",
        "file_size": "1.31MB",
        "width": "3064",
        "height": "4592",
        "orientation": "portrait",
        "file_name": "shirt.jpg",
        "mime_type": "image/jpeg",
        "detail": {
            "FileSize": "1373 kB",
            "FileModifyDate": "2023:11:14 10:12:02+00:00",
            "FileAccessDate": "2023:11:14 10:12:02+00:00",
            "FileInodeChangeDate": "2023:11:14 10:12:02+00:00",
            "FilePermissions": "-rw-------",
            "FileType": "JPEG",
            "FileTypeExtension": "jpg",
            "MIMEType": "image/jpeg",
            "JFIFVersion": 1.01,
            "ResolutionUnit": "inches",
            "XResolution": 72,
            "YResolution": 72,
            "ProfileCMMType": "Linotronic",
            "ProfileVersion": "2.1.0",
            "ProfileClass": "Display Device Profile",
            "ColorSpaceData": "RGB ",
            "ProfileConnectionSpace": "XYZ ",
            "ProfileDateTime": "1998:02:09 06:49:00",
            "ProfileFileSignature": "acsp",
            "PrimaryPlatform": "Microsoft Corporation",
            "CMMFlags": "Not Embedded, Independent",
            "DeviceManufacturer": "Hewlett-Packard",
            "DeviceModel": "sRGB",
            "DeviceAttributes": "Reflective, Glossy, Positive, Color",
            "RenderingIntent": "Perceptual",
            "ConnectionSpaceIlluminant": "0.9642 1 0.82491",
            "ProfileCreator": "Hewlett-Packard",
            "ProfileID": 0,
            "ProfileCopyright": "Copyright (c) 1998 Hewlett-Packard Company",
            "ProfileDescription": "sRGB IEC61966-2.1",
            "MediaWhitePoint": "0.95045 1 1.08905",
            "MediaBlackPoint": "0 0 0",
            "RedMatrixColumn": "0.43607 0.22249 0.01392",
            "GreenMatrixColumn": "0.38515 0.71687 0.09708",
            "BlueMatrixColumn": "0.14307 0.06061 0.7141",
            "DeviceMfgDesc": "IEC http://www.iec.ch",
            "DeviceModelDesc": "IEC 61966-2.1 Default RGB colour space - sRGB",
            "ViewingCondDesc": "Reference Viewing Condition in IEC61966-2.1",
            "ViewingCondIlluminant": "19.6445 20.3718 16.8089",
            "ViewingCondSurround": "3.92889 4.07439 3.36179",
            "ViewingCondIlluminantType": "D50",
            "Luminance": "76.03647 80 87.12462",
            "MeasurementObserver": "CIE 1931",
            "MeasurementBacking": "0 0 0",
            "MeasurementGeometry": "Unknown",
            "MeasurementFlare": "0.999%",
            "MeasurementIlluminant": "D65",
            "Technology": "Cathode Ray Tube Display",
            "RedTRC": "(Binary data 2060 bytes, use -b option to extract)",
            "GreenTRC": "(Binary data 2060 bytes, use -b option to extract)",
            "BlueTRC": "(Binary data 2060 bytes, use -b option to extract)",
            "ImageWidth": 3064,
            "ImageHeight": 4592,
            "EncodingProcess": "Progressive DCT, Huffman coding",
            "BitsPerSample": 8,
            "ColorComponents": 3,
            "YCbCrSubSampling": "YCbCr4:2:0 (2 2)",
            "ImageSize": "3064x4592",
            "Megapixels": 14.1
        }
    },
    "url": "https://cdn.quable.com/education-developers/81f1a5f5-9a54-40bb-9bf3-front/original/shirt.jpg",
    "originalFilename": "shirt.jpg",
    "thumbnailUrl": "https://cdn.quable.com/education-developers/81f1a5f5-9a54-40bb-9bf3-front/thumbnail/shirt-jpg.jpg",
    "previewUrl": "https://cdn.quable.com/education-developers/81f1a5f5-9a54-40bb-9bf3-front/preview/shirt-jpg.jpg",
    "classifications": [
        {
            "@context": {
                "@vocab": "https://education-developers.quable.com/api/docs.jsonld#",
                "hydra": "http://www.w3.org/ns/hydra/core#",
                "parentCode": "ClassificationOutput/parentCode",
                "catalogId": "ClassificationOutput/catalogId",
                "isActive": "ClassificationOutput/isActive",
                "attributes": "ClassificationOutput/attributes",
                "assetLinks": "ClassificationOutput/assetLinks",
                "mainAssetUrl": "ClassificationOutput/mainAssetUrl",
                "mainAssetThumbnailUrl": "ClassificationOutput/mainAssetThumbnailUrl",
                "dateCreated": "ClassificationOutput/dateCreated",
                "dateModified": "ClassificationOutput/dateModified",
                "createdBy": "ClassificationOutput/createdBy",
                "updatedBy": "ClassificationOutput/updatedBy",
                "legacyId": "ClassificationOutput/legacyId",
                "active": "ClassificationOutput/active"
            },
            "@type": "Classification",
            "@id": "/api/classifications/dam_sort",
            "catalogId": null,
            "id": "dam_sort",
            "legacyId": 3
        }
    ],
    "documentLinks": [],
    "variantLinks": [],
    "dateCreated": "2023-11-14T10:12:03+00:00",
    "dateModified": "2023-11-14T10:12:05+00:00",
    "thumbnails": {
        "preview": "https://cdn.quable.com/education-developers/81f1a5f5-9a54-40bb-9bf3-front/preview/shirt-jpg.jpg",
        "thumbnail": "https://cdn.quable.com/education-developers/81f1a5f5-9a54-40bb-9bf3-front/thumbnail/shirt-jpg.jpg",
        "1920x": "https://cdn.quable.com/education-developers/81f1a5f5-9a54-40bb-9bf3-front/1920x/shirt-jpg.jpg"
    },
    "id": "81f1a5f5-9a54-40bb-9bf3-front",
    "legacyId": 176
}
```
===

---

## Update assets

!!! Note
Not all attributes need to be pushed here. The PIM API will consider the body request only.
!!!

Updating existing assets work the same way as for asset creating (POST requests). If the binary file does not change, there is no need to specify it for each request.

```shell
curl --location --request PUT 'https://{{instance}}.quable.com/api/assets/7c5f3868-d166-4bda-b5bd-front' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer _api-token_' \
--data '{
    "id": "7c5f3868-d166-4bda-b5bd-front",
    "attributes": {
        "reference_name": {
            "fr_FR" : "Chemise bleue",
            "en_US" : "Blue short"
        }
    }
}'
```

In case of success, the response will come through as an [!badge variant="success" text="HTTP 200"].

==- See the response
```json
{
    "@context": {
        "@vocab": "https://education-developers.quable.com/api/docs.jsonld#",
        "hydra": "http://www.w3.org/ns/hydra/core#",
        "name": "AssetOutput/name",
        "isActive": "AssetOutput/isActive",
        "attributes": "AssetOutput/attributes",
        "metadata": "AssetOutput/metadata",
        "url": "AssetOutput/url",
        "originalFilename": "AssetOutput/originalFilename",
        "thumbnailUrl": "AssetOutput/thumbnailUrl",
        "previewUrl": "AssetOutput/previewUrl",
        "classifications": "AssetOutput/classifications",
        "documentLinks": "AssetOutput/documentLinks",
        "variantLinks": "AssetOutput/variantLinks",
        "dateCreated": "AssetOutput/dateCreated",
        "dateModified": "AssetOutput/dateModified",
        "thumbnails": "AssetOutput/thumbnails",
        "legacyId": "AssetOutput/legacyId",
        "active": "AssetOutput/active"
    },
    "@type": "Asset",
    "@id": "/api/assets/blueshirt",
    "name": "shirt.jpg",
    "active": true,
    "attributes": {
        "attr_photographer": "Joanne doe",
        "media_desc": {
            "en_GB": "this is a blue shirt",
            "en_US": null,
            "fr_FR": "il s'agit d'une chemise bleue"
        }
    },
    "metadata": {
        "color_space": "sRGB",
        "file_size": "1.31 MB",
        "width": "3064",
        "height": "4592",
        "orientation": "portrait",
        "file_name": "shirt.jpg",
        "mime_type": "image/jpeg",
        "detail": {
            "FileSize": "1373 kB",
            "FileModifyDate": "2023:11:14 10:41:05+00:00",
            "FileAccessDate": "2023:11:14 10:41:05+00:00",
            "FileInodeChangeDate": "2023:11:14 10:41:05+00:00",
            "FilePermissions": "-rw-r--r--",
            "FileType": "JPEG",
            "FileTypeExtension": "jpg",
            "MIMEType": "image/jpeg",
            "JFIFVersion": 1.01,
            "ResolutionUnit": "inches",
            "XResolution": 72,
            "YResolution": 72,
            "ProfileCMMType": "Linotronic",
            "ProfileVersion": "2.1.0",
            "ProfileClass": "Display Device Profile",
            "ColorSpaceData": "RGB ",
            "ProfileConnectionSpace": "XYZ ",
            "ProfileDateTime": "1998:02:09 06:49:00",
            "ProfileFileSignature": "acsp",
            "PrimaryPlatform": "Microsoft Corporation",
            "CMMFlags": "Not Embedded, Independent",
            "DeviceManufacturer": "Hewlett-Packard",
            "DeviceModel": "sRGB",
            "DeviceAttributes": "Reflective, Glossy, Positive, Color",
            "RenderingIntent": "Perceptual",
            "ConnectionSpaceIlluminant": "0.9642 1 0.82491",
            "ProfileCreator": "Hewlett-Packard",
            "ProfileID": 0,
            "ProfileCopyright": "Copyright (c) 1998 Hewlett-Packard Company",
            "ProfileDescription": "sRGB IEC61966-2.1",
            "MediaWhitePoint": "0.95045 1 1.08905",
            "MediaBlackPoint": "0 0 0",
            "RedMatrixColumn": "0.43607 0.22249 0.01392",
            "GreenMatrixColumn": "0.38515 0.71687 0.09708",
            "BlueMatrixColumn": "0.14307 0.06061 0.7141",
            "DeviceMfgDesc": "IEC http://www.iec.ch",
            "DeviceModelDesc": "IEC 61966-2.1 Default RGB colour space - sRGB",
            "ViewingCondDesc": "Reference Viewing Condition in IEC61966-2.1",
            "ViewingCondIlluminant": "19.6445 20.3718 16.8089",
            "ViewingCondSurround": "3.92889 4.07439 3.36179",
            "ViewingCondIlluminantType": "D50",
            "Luminance": "76.03647 80 87.12462",
            "MeasurementObserver": "CIE 1931",
            "MeasurementBacking": "0 0 0",
            "MeasurementGeometry": "Unknown",
            "MeasurementFlare": "0.999%",
            "MeasurementIlluminant": "D65",
            "Technology": "Cathode Ray Tube Display",
            "RedTRC": "(Binary data 2060 bytes, use -b option to extract)",
            "GreenTRC": "(Binary data 2060 bytes, use -b option to extract)",
            "BlueTRC": "(Binary data 2060 bytes, use -b option to extract)",
            "ImageWidth": 3064,
            "ImageHeight": 4592,
            "EncodingProcess": "Progressive DCT, Huffman coding",
            "BitsPerSample": 8,
            "ColorComponents": 3,
            "YCbCrSubSampling": "YCbCr4:2:0 (2 2)",
            "ImageSize": "3064x4592",
            "Megapixels": 14.1
        }
    },
    "url": "https://cdn.quable.com/education-developers/blueshirt/original/shirt.jpg",
    "originalFilename": "shirt.jpg",
    "thumbnailUrl": "https://cdn.quable.com/education-developers/blueshirt/system-thumbnail/shirt-jpg.jpg",
    "previewUrl": "https://cdn.quable.com/education-developers/blueshirt/system-preview/shirt-jpg.jpg",
    "classifications": [
        {
            "@context": {
                "@vocab": "https://education-developers.quable.com/api/docs.jsonld#",
                "hydra": "http://www.w3.org/ns/hydra/core#",
                "parentCode": "ClassificationOutput/parentCode",
                "catalogId": "ClassificationOutput/catalogId",
                "isActive": "ClassificationOutput/isActive",
                "attributes": "ClassificationOutput/attributes",
                "assetLinks": "ClassificationOutput/assetLinks",
                "mainAssetUrl": "ClassificationOutput/mainAssetUrl",
                "mainAssetThumbnailUrl": "ClassificationOutput/mainAssetThumbnailUrl",
                "dateCreated": "ClassificationOutput/dateCreated",
                "dateModified": "ClassificationOutput/dateModified",
                "createdBy": "ClassificationOutput/createdBy",
                "updatedBy": "ClassificationOutput/updatedBy",
                "legacyId": "ClassificationOutput/legacyId",
                "active": "ClassificationOutput/active"
            },
            "@type": "Classification",
            "@id": "/api/classifications/dam_sort",
            "catalogId": null,
            "id": "dam_sort",
            "legacyId": 3
        }
    ],
    "documentLinks": [],
    "variantLinks": [],
    "dateCreated": "2023-11-14T10:41:04+00:00",
    "dateModified": "2023-11-15T10:43:57+00:00",
    "thumbnails": {
        "preview": "https://cdn.quable.com/education-developers/blueshirt/system-preview/shirt-jpg.jpg",
        "thumbnail": "https://cdn.quable.com/education-developers/blueshirt/system-thumbnail/shirt-jpg.jpg"
    },
    "id": "blueshirt",
    "legacyId": 177
}
```
===

---

## Delete assets

```shell
curl --location --request DELETE 'https://{{instance}}.quable.com/api/assets/23edd9a9-3651-4798-bb56-front' \
--header 'Authorization: Bearer _api-token_'
```
In case of success, the response will come through as an [!badge variant="success" text="HTTP 204"] and the response body will be empty.

---

## Link assets to documents

!!! Links can be optional
If your datamodel is simpler than the one presented here, you might not need to create links.
!!!

!!! Link type is required
To link documents from different types, you need to create a Link Type first, if the link type you need does not already exist in the PIM. 
!!!

```shell
curl --location --request POST 'https://{{instance}}.quable.com/api/links' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer _api-token_' \
--data '{
  "origin": {
    "id": "TheDocumentIdentifier"
  },
  "target": {
    "id": "TheAssetIdentifier"
  },
  "linkType": {
    "id": "TheLinkTypeIdentifier"
  },
  "attributes": [],
  "sequence": 1
}'
```

In case of success, the response will return a [!badge variant="success" text="201 created"] code.
