# Git BLOB の REST API エンドポイント

REST API を使用し、リポジトリ内の各ファイルのコンテンツを格納するために使われるオブジェクトの種類である Git BLOB (バイナリ ラージ オブジェクト) を操作します。

## Git BLOB について

Git blob (バイナリラージオブジェクト) は、各ファイルのコンテンツをリポジトリに保存する際に使用されるオブジェクトタイプです。 ファイルの SHA-1 ハッシュが計算され、blob オブジェクトに保存されます。 これらのエンドポイントを使うと、GitHub 上の Git データベースの [BLOB オブジェクト](https://git-scm.com/book/en/v2/Git-Internals-Git-Objects)を読み書きできます。 BLOB はカスタム メディアの種類を利用します。 API で使用するメディア タイプに関する詳細は、「[REST API を使用した作業の開始](/ja/rest/overview/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 \
  https://api.github.com/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 \
  https://api.github.com/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