# Article Attachments

This resource lets you work with attachments in a specific article.
|  Resource  |     ```GENERIC /api/articles/{articleID}/attachments ```    |
| --- | --- |
|  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 List of ArticleAttachments](#get_all-ArticleAttachment-method).    * `POST`: [Add a New ArticleAttachment](#create-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]()

### 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 List of ArticleAttachments

Get a list of all attachments to a specific 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?{fields}&{$top}&{$skip}
```

|  null  |  The database ID of ArticleAttachment  |
| --- | --- |

### 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.  |
|  $skip  |  Int  |  Optional. Lets you set a number of returned entities to skip before returning the first one.  |
|  $top  |  Int  |     Optional. Lets you specify the maximum number of entries that are returned in the response. If you don't set the $top value, the server limits the maximum number of returned entries.       The server returns a maximum of 42 entries for most resources that return collections. For more information, see [Pagination](api-concept-pagination.html).     |

### Sample

#### Sample request

```CURL
https://example.youtrack.cloud/api/articles/NP-A-7/attachments?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"
  }
]
```

## Add a New ArticleAttachment

Add an attachment to the article.

### Required permissions

Requires permissions: Add Attachment

### Request syntax

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

|  null  |  The database ID of ArticleAttachment  |
| --- | --- |

### 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.  |
|  muteUpdateNotifications  |  Boolean  |  Set this parameter to `true` if no notifications should be sent on changes made by this request. This doesn't mute notifications sent by any workflow rules. Using this parameter requires Apply Commands Silently permission in all projects affected by the request. Available since 2021.3.  |

### Sample

To create an attachment in an article, you need to send a `POST` request to an endpoint like the one specified in this sample. As the format for request differs for various languages and tools, we do not provide specific example here. Instead, please see a sample step-by-step procedure on the [use case](api-usecase-attach-files.html) page.

#### Sample request

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

