# Operations with Specific ArticleAttachment

This resource lets you work with attachments in a specific article.
|  Resource  |     ```GENERIC /api/articles/{articleID}/attachments/{attachmentID} ```    |
| --- | --- |
|  Returned entity  |  [ArticleAttachment](api-entity-ArticleAttachment.html). For the description of the entity attributes, see [Supported Fields](#ArticleAttachment-supported-fields) section.  |
|  Supported methods  |      * `GET`: [Read a Specific ArticleAttachment](#get-ArticleAttachment-method).    * `POST`: [Update a Specific ArticleAttachment](#update-ArticleAttachment-method).    * `DELETE`: [Delete a Specific ArticleAttachment](#delete-ArticleAttachment-method).    |

## ArticleAttachment attributes

Represents a file that is attached to an article or a comment to an article.

### Related Resources

Below you can find the list of resources that let you work with this entity.

* [Article Attachments](resource-api-articles-articleID-attachments.html)

### Attributes

This table describes attributes of the `ArticleAttachment` entity.

* To receive an attribute in the response from the server, specify it explicitly in the `fields` request parameter.

* To update an attribute, provide it in the body of a POST request.

|  Field  |  Type  |  Description  |
| --- | --- | --- |
|  id  |  String  |  The ID of the article attachment. `Read-only`.  |
|  name  |  String  |  The name of the file.  |
|  author  |  [User](api-entity-User.html)  |  The user who attached the file to the article. `Read-only`. `Can be null`.  |
|  created  |  Long  |  The timestamp in milliseconds indicating the moment when the attachment was created. Stored as a unix timestamp at UTC. `Read-only`.  |
|  updated  |  Long  |  The timestamp in milliseconds indicating the last update of the attachment. Stored as a unix timestamp at UTC. `Read-only`.  |
|  size  |  Long  |  The size of the attached file in bytes. `Read-only`.  |
|  extension  |  String  |  The extension that defines the file type. `Read-only`. `Can be null`.  |
|  charset  |  String  |  The charset of the file. `Read-only`. `Can be null`.  |
|  mimeType  |  String  |  The MIME type of the file. `Read-only`. `Can be null`.  |
|  metaData  |  String  |  The dimensions of an image file. For an image file, the value is `rw=&rh=`. For a non-image file, the value is empty. `Read-only`. `Can be null`.  |
|  draft  |  Boolean  |  If `true`, the attachment is not yet published, otherwise `false`. `Read-only`.  |
|  removed  |  Boolean  |  If `true`, the attachment is considered to be removed. `Read-only`.  |
|  base64Content  |  String  |     The data URI that represents the attachment with the following syntax:       ```PLAINTEXT data:[<media type>][;base64],<data> ```      For example:       ```PLAINTEXT "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==" ```   `Can be null`.  |
|  url  |  String  |  The URL of the file. `Read-only`. `Can be null`.  |
|  visibility  |  [Visibility](api-entity-Visibility.html)  |  The visibility settings of the attachment. `Can be null`.  |
|  article  |  [BaseArticle](api-entity-BaseArticle.html)  |  The article that the file is attached to. `Read-only`. `Can be null`.  |
|  comment  |  [ArticleComment](api-entity-ArticleComment.html)  |  The comment that the file is attached to. Returns `null` if the file was attached directly to the article. `Read-only`.  |

## Read a Specific ArticleAttachment

Read a specific attachment in the article.

### Required permissions

* Requires permissions: Read Article.

* If the attachment is added to a comment, Read Comment is also required.

* If the attachment visibility is limited to specific groups or users, only users from this set and the attachment author will be able to access the attachment. Override Visibility Restrictions permission allows to override these limitations.

### Request syntax

```GENERIC
GET /api/articles/{articleID}/attachments/{attachmentID}?{fields}
```

|  {attachmentID}  |  The database ID of the attachment.  |
| --- | --- |

### Request parameters

|  Parameter  |  Type  |  Description  |
| --- | --- | --- |
|  fields  |  String  |  A list of ArticleAttachment attributes that should be returned in the response. If no field is specified, only the `entityID` is returned.  |

### Sample

#### Sample request

```CURL
https://example.youtrack.cloud/api/articles/NP-A-7/attachments/237-3?fields=id,name,author(id,name),created,updated,size,mimeType,extension,url
```

#### Sample response body

```JSON
{
  "created": 1629978590790,
  "extension": "png",
  "author": {
    "name": "John Smith",
    "id": "24-0",
    "$type": "User"
  },
  "updated": 1629978590790,
  "url": "/youtrack/api/files/237-3?sign=MTYzMDE5NTIwMDAwMHwyNC0wfDIzNy0zfFUtWDhBOGkyMF9uSTVRN2xTVHNzLWJBYjN2LUF2Y2pB%0D%0AUXYzSFc2bHRkeE0NCg%0D%0A%26updated=1629978590790",
  "mimeType": "image/png",
  "name": "jetbrains.png",
  "size": 64014,
  "id": "237-3",
  "$type": "ArticleAttachment"
}
```

## Update a Specific ArticleAttachment

Update a specific attachment.

### Required permissions

The author of the attachment can always update it. Otherwise, requires the Update Attachment permission.

### Request syntax

```GENERIC
POST /api/articles/{articleID}/attachments/{attachmentID}?{fields}
```

|  {attachmentID}  |  The database ID of the attachment.  |
| --- | --- |

### Request parameters

|  Parameter  |  Type  |  Description  |
| --- | --- | --- |
|  fields  |  String  |  A list of ArticleAttachment attributes that should be returned in the response. If no field is specified, only the `entityID` is returned.  |

### Sample

For an existing attachment, you can update only its name, visibility settings, and base64Content, if applicable. For this sample, we just re-name the attached image file.

#### Sample request

```CURL
https://example.youtrack.cloud/api/articles/NP-A-7/attachments/237-3?fields=id,name,author(id,name),created,updated,size,mimeType,extension,url
```

#### Sample request body

```JSON
{"name": "jetbrains_logo.png"}
```

#### Sample response body

```JSON
{
  "created": 1629978590790,
  "extension": "png",
  "author": {
    "name": "John Smith",
    "id": "24-0",
    "$type": "User"
  },
  "updated": 1629983895923,
  "url": "/youtrack/api/files/237-3?sign=MTYzMDE5NTIwMDAwMHwyNC0wfDIzNy0zfFUtWDhBOGkyMF9uSTVRN2xTVHNzLWJBYjN2LUF2Y2pB%0D%0AUXYzSFc2bHRkeE0NCg%0D%0A%26updated=1629983895923",
  "mimeType": "image/png",
  "name": "jetbrains_logo.png",
  "size": 64014,
  "id": "237-3",
  "$type": "ArticleAttachment"
}
```

## Delete a Specific ArticleAttachment

Delete a specific attachment.

### Required permissions

The author of the attachment can always delete it. Otherwise, requires Delete Attachment permission.

### Request syntax

```GENERIC
DELETE /api/articles/{articleID}/attachments/{attachmentID}
```

|  {attachmentID}  |  The database ID of the attachment.  |
| --- | --- |

### Request parameters

|  Parameter  |  Type  |  Description  |
| --- | --- | --- |
|  fields  |  String  |  A list of ArticleAttachment attributes that should be returned in the response. If no field is specified, only the `entityID` is returned.  |

### Sample

#### Sample request

```CURL
https://example.youtrack.cloud/api/articles/NP-A-7/attachments/237-3
```

