Gyazo API

概要

Gyazo APIではGyazoの主要な機能(アップロード、画像一覧取得等)をプログラミング経由で使用することができます。GyazoAPIではHTTPリクエストによるRESTfulなAPIを提供し、JSON形式のレスポンスを返すので、ChatGPTやPerplexityなどのAPIを触ったことがある方なら馴染みのある形式ですぐにお使い頂けます!

準備

APIを使用するには、アクセストークンが必要です。以下の手順でアクセストークンを取得してください。

  1. ダッシュボードに移動
  2. 新しいアプリケーションを作成
  3. アプリケーションのアクセストークンを発行(これがあなたのAPI keyになります)

HTTPリクエスト

画像のアップロード

const formData = new FormData();
formData.append('imagedata', fileInput.files[0]);

fetch('https://upload.gyazo.com/api/upload', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer YOUR_ACCESS_TOKEN'
  },
  body: formData
})
.then(response => response.json())
.then(data => {
  console.log(data);
  // {
  //   "image_id": "8980c52421e452ac3355ca3e5cfe7a0c",
  //   "permalink_url": "http://gyazo.com/8980c52421e452ac3355ca3e5cfe7a0c",
  //   "thumb_url": "https://i.gyazo.com/thumb/180/afaiefnaf.png",
  //   "url": "https://i.gyazo.com/8980c52421e452ac3355ca3e5cfe7a0c.png",
  //   "type": "png"
  // }
});
import requests

files = {'imagedata': open('/home/gyazo/greatpicture.png', 'rb')}
headers = {'Authorization': 'Bearer YOUR_ACCESS_TOKEN'}

response = requests.post('https://upload.gyazo.com/api/upload',
                       files=files, headers=headers)
print(response.json())
# {
#   "image_id": "8980c52421e452ac3355ca3e5cfe7a0c",
#   "permalink_url": "http://gyazo.com/8980c52421e452ac3355ca3e5cfe7a0c",
#   "thumb_url": "https://i.gyazo.com/thumb/180/afaiefnaf.png",
#   "url": "https://i.gyazo.com/8980c52421e452ac3355ca3e5cfe7a0c.png",
#   "type": "png"
# }
$ curl -i https://upload.gyazo.com/api/upload \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -F "imagedata=@/home/gyazo/greatpicture.png"

HTTP/1.1 200 OK

{
    "image_id" : "8980c52421e452ac3355ca3e5cfe7a0c",
    "permalink_url": "http://gyazo.com/8980c52421e452ac3355ca3e5cfe7a0c",
    "thumb_url" : "https://i.gyazo.com/thumb/180/afaiefnaf.png",
    "url" : "https://i.gyazo.com/8980c52421e452ac3355ca3e5cfe7a0c.png",
    "type": "png"
}

画像をクエリ検索

const params = new URLSearchParams({
  query: 'cat',
  page: '1',
  per: '10'
});

fetch(`https://api.gyazo.com/api/search?${params}`, {
  headers: {
    'Authorization': 'Bearer YOUR_ACCESS_TOKEN'
  }
})
.then(response => response.json())
.then(data => {
  console.log(data);
  // {
  //   "captures": [
  //     {
  //       "image_id": "8980c52421e452ac3355ca3e5cfe7a0c",
  //       "permalink_url": "http://gyazo.com/8980c52421e452ac3355ca3e5cfe7a0c",
  //       "url": "https://i.gyazo.com/8980c52421e452ac3355ca3e5cfe7a0c.png"
  //     }
  //   ],
  //   "number_of_captures": 1,
  //   "query": "cat"
  // }
});
import requests

params = {
  'query': 'cat',
  'page': '1',
  'per': '10'
}
headers = {'Authorization': 'Bearer YOUR_ACCESS_TOKEN'}

response = requests.get('https://api.gyazo.com/api/search', params=params, headers=headers)
print(response.json())
# {
#   "captures": [
#     {
#       "image_id": "8980c52421e452ac3355ca3e5cfe7a0c",
#       "permalink_url": "http://gyazo.com/8980c52421e452ac3355ca3e5cfe7a0c",
#       "url": "https://i.gyazo.com/8980c52421e452ac3355ca3e5cfe7a0c.png"
#     }
#   ],
#   "number_of_captures": 1,
#   "query": "cat"
# }
$ curl -i "https://api.gyazo.com/api/search?query=cat&page=1&per=10" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"

HTTP/1.1 200 OK

{
    "captures": [
        {
            "image_id": "8980c52421e452ac3355ca3e5cfe7a0c",
            "permalink_url": "http://gyazo.com/8980c52421e452ac3355ca3e5cfe7a0c",
            "url": "https://i.gyazo.com/8980c52421e452ac3355ca3e5cfe7a0c.png"
        }
    ],
    "number_of_captures": 1,
    "query": "cat"
}

API Endpoint

APIのエンドポイントは以下になります。

https://api.gyazo.com
https://upload.gyazo.com    (Upload API)

アップロードのAPIとそれ以外のAPIでエンドポイントが異なります。

Timestamp

全てのTimestampは以下の形式です

YYYY-MM-DDTHH:MM:SSZ

Policy

違法な画像、不適切な画像をアップロードした場合や、サービスに過度の負荷をかけるような利用があった場合、そのアプリケーションを停止することがあります。