# Points de terminaison d’API REST pour les objets blob Git

Utilisez l’API REST pour interagir avec un blob (binary large object) Git, type d’objet utilisé pour stocker le contenu de chaque fichier dans un dépôt.

## À propos des blobs Git

Un blob (binary large object) Git est le type d’objet utilisé pour stocker le contenu de chaque fichier dans un dépôt. Le hachage SHA-1 du fichier est calculé et stocké dans l’objet blob. Ces points de terminaison vous permettent de lire et d’écrire des [objets blob](https://git-scm.com/book/en/v2/Git-Internals-Git-Objects) dans votre base de données Git sur GitHub. Les blobs tirent parti des types de médias personnalisés. Pour plus d’informations sur l’utilisation des types de médias dans l’API, consultez [Prise en main de l’API REST](/fr/enterprise-server@3.22/rest/using-the-rest-api/getting-started-with-the-rest-api#media-types).

> \[!NOTE]
> Most endpoints use `Authorization: Bearer <YOUR-TOKEN>` and `Accept: application/vnd.github+json` headers, plus `X-GitHub-Api-Version: 2026-03-10`. Curl examples below omit these standard headers for brevity.

## Create a blob

```
POST /repos/{owner}/{repo}/git/blobs
```

### Parameters

#### Headers

* **`accept`** (string)
  Setting to `application/vnd.github+json` is recommended.

#### Path and query parameters

* **`owner`** (string) (required)
  The account owner of the repository. The name is not case sensitive.

* **`repo`** (string) (required)
  The name of the repository without the .git extension. The name is not case sensitive.

#### Body parameters

* **`content`** (string) (required)
  The new blob's content.

* **`encoding`** (string)
  The encoding used for content. Currently, "utf-8" and "base64" are supported.
  Default: `utf-8`

### HTTP response status codes

* **201** - Created

* **403** - Forbidden

* **404** - Resource not found

* **409** - Conflict

* **422** - Validation failed

### Code examples

#### Example

**Request:**

```curl
curl -L \
  -X POST \
  http(s)://HOSTNAME/api/v3/repos/OWNER/REPO/git/blobs \
  -d '{
  "content": "Content of the blob",
  "encoding": "utf-8"
}'
```

**Response schema (Status: 201):**

* `url`: required, string
* `sha`: required, string

## Get a blob

```
GET /repos/{owner}/{repo}/git/blobs/{file_sha}
```

The content in the response will always be Base64 encoded.
This endpoint supports the following custom media types. For more information, see "Media types."

application/vnd.github.raw+json: Returns the raw blob data.
application/vnd.github+json: Returns a JSON representation of the blob with content as a base64 encoded string. This is the default if no media type is specified.

Note This endpoint supports blobs up to 100 megabytes in size.

### Parameters

#### Headers

* **`accept`** (string)
  Setting to `application/vnd.github+json` is recommended.

#### Path and query parameters

* **`owner`** (string) (required)
  The account owner of the repository. The name is not case sensitive.

* **`repo`** (string) (required)
  The name of the repository without the .git extension. The name is not case sensitive.

* **`file_sha`** (string) (required)

### HTTP response status codes

* **200** - OK

* **403** - Forbidden

* **404** - Resource not found

* **409** - Conflict

* **422** - Validation failed, or the endpoint has been spammed.

### Code examples

#### Example

**Request:**

```curl
curl -L \
  -X GET \
  http(s)://HOSTNAME/api/v3/repos/OWNER/REPO/git/blobs/FILE_SHA
```

**Response schema (Status: 200):**

* `content`: required, string
* `encoding`: required, string
* `url`: required, string, format: uri
* `sha`: required, string
* `size`: required, integer or null
* `node_id`: required, string
* `highlighted_content`: string