The 3DCGARTS REST API v1.0¶
API キーについて¶

API キーの作成¶
- 2. API キー作成する場合は、「API キーを作成する」をクリックします。
API キーの削除¶
- 2. API キー削除する場合は、「API キーを削除する」をクリックします。
API キーの取り扱い¶
- API キーを他人に知られてしまった場合、あなたのアカウントで作品を投稿できてしまうため、 API キーは他人に知られないように大切に保管してください(不要であれば API キーを作成しないでください)。
HTTP ステータスコード(全ての API において共通します)¶
コード |
説明 |
200 |
API の実行に成功しました。 |
304 |
API の実行に成功しました。 |
400 |
API の引数に問題があります。 |
403 |
API の引数に問題があります(アクセス権限が存在しない)。 |
500 |
API の実行に失敗しました(投稿作品の保存に失敗した or 投稿作品の変換に失敗した)。 |
作品の取得¶
API 呼出¶
引数名 |
引数値 |
説明 |
デフォルト |
指定 |
ids |
文字列 |
作品番号(カンマ区切りにより複数指定が可能) |
- |
必須 |
API 応答¶
失敗時¶
{
"error_message": "[エラーメッセージ]"
}
HTTP ステータスコード¶
失敗時のステータスコードは、次の通りです。
コード |
説明 |
400 |
API の引数に問題があります。 |
403 |
API の引数に問題があります(アクセス権限が存在しない)。 |
500 |
API の実行に失敗しました。 |
成功時¶
[
{
"id": "[作品番号]",
"title": "[作品名]",
"icon":
{
"128x128": "[128x128 サイズのアイコンパス]",
"256x256": "[256x256 サイズのアイコンパス]"
}
}
]
HTTP ステータスコード¶
成功時のステータスコードは、次の通りです。
コード |
説明 |
200 |
API の実行に成功しました。 |
304 |
API の実行に成功しました(応答内容に差分が存在しない)。 |
API サンプル¶
実行結果(例)¶
[
{
"id": 1,
"title": "初音ミク・オン・ステージ",
"icon":
{
"128x128": "http://www.3dcg-arts.net/s3/art_icons/532/834d9539a9b9fae6acd9136e270b2e2ca94342e5e362c68018e97f543b150ab7/128x128.png",
"256x256": "http://www.3dcg-arts.net/s3/art_icons/532/e5c6e6d5513da17c9a608c5d61d7bb5f75b04612001dfc491b61b525150523dc/256x256.png"
}
}
]
作品の投稿(API キーの発行が必要です)¶
API 呼出¶
引数名 |
引数値 |
説明 |
デフォルト |
指定 |
secret_access_key |
文字列(SHA-512) |
API キー |
- |
必須 |
type |
文字列 |
投稿形式(イメージ作品: "i" or ポリゴン作品: "p" ) |
- |
必須 |
content0[name] |
文字列 |
投稿ファイル名 |
- |
必須 |
content0[data] |
文字列 |
投稿ファイル(baes64 encode されたファイルバイナリ) |
- |
必須 |
content1[name] |
文字列 |
投稿ファイル名 |
- |
任意(content1[data] が指定されている場合、必須) |
content1[data] |
文字列 |
投稿ファイル(baes64 encode されたファイルバイナリ) |
- |
任意(content1[name] が指定されている場合、必須) |
content2[name] |
文字列 |
投稿ファイル名 |
- |
任意(content2[data] が指定されている場合、必須) |
content2[data] |
文字列 |
投稿ファイル(baes64 encode されたファイルバイナリ) |
- |
任意(content2[name] が指定されている場合、必須) |
content3[name] |
文字列 |
投稿ファイル名 |
- |
任意(content3[data] が指定されている場合、必須) |
content3[data] |
文字列 |
投稿ファイル(baes64 encode されたファイルバイナリ) |
- |
任意(content3[name] が指定されている場合、必須) |
content4[name] |
文字列 |
投稿ファイル名 |
- |
任意(content4[data] が指定されている場合、必須) |
content4[data] |
文字列 |
投稿ファイル(baes64 encode されたファイルバイナリ) |
- |
任意(content4[name] が指定されている場合、必須) |
content5[name] |
文字列 |
投稿ファイル名 |
- |
任意(content5[data] が指定されている場合、必須) |
content5[data] |
文字列 |
投稿ファイル(baes64 encode されたファイルバイナリ) |
- |
任意(content5[name] が指定されている場合、必須) |
content6[name] |
文字列 |
投稿ファイル名 |
- |
任意(content6[data] が指定されている場合、必須) |
content6[data] |
文字列 |
投稿ファイル(baes64 encode されたファイルバイナリ) |
- |
任意(content6[name] が指定されている場合、必須) |
content7[name] |
文字列 |
投稿ファイル名 |
- |
任意(content7[data] が指定されている場合、必須) |
content7[data] |
文字列 |
投稿ファイル(baes64 encode されたファイルバイナリ) |
- |
任意(content7[name] が指定されている場合、必須) |
content8[name] |
文字列 |
投稿ファイル名 |
- |
任意(content8[data] が指定されている場合、必須) |
content8[data] |
文字列 |
投稿ファイル(baes64 encode されたファイルバイナリ) |
- |
任意(content8[name] が指定されている場合、必須) |
content9[name] |
文字列 |
投稿ファイル名 |
- |
任意(content9[data] が指定されている場合、必須) |
content9[data] |
文字列 |
投稿ファイル(baes64 encode されたファイルバイナリ) |
- |
任意(content9[name] が指定されている場合、必須) |
API 応答¶
失敗時¶
{
"error_message": "[エラーメッセージ]"
}
HTTP ステータスコード¶
失敗時のステータスコードは、次の通りです。
コード |
説明 |
400 |
API の引数に問題があります。 |
403 |
API の引数に問題があります(アクセス権限が存在しない)。 |
500 |
API の実行に失敗しました(投稿作品の保存に失敗した or 投稿作品の変換に失敗した)。 |
成功時¶
{
"id": "[作品番号]",
"edit_my_art_path": "[投稿作品の編集ページ]"
}
HTTP ステータスコード¶
成功時のステータスコードは、次の通りです。
コード |
説明 |
200 |
API の実行に成功しました。 |
304 |
API の実行に成功しました(応答内容に差分が存在しない)。 |
API サンプル(イメージ作品の投稿)¶
サンプルプログラム(python 3.x)¶
サンプルプログラムを表示するサンプルプログラムを閉じる
import base64
import urllib.request
secret_access_key = "Write your secret access key"
file_name = "example.jpg"
file_data = ""
url = "http://api.3dcg-arts.net/api/v1/arts.json"
with open(file_name, "rb") as file:
file_data = base64.b64encode(file.read())
with urllib.request.urlopen(url,
urllib.parse.urlencode({
"secret_access_key": secret_access_key,
"type": "i",
"content0[name]": file_name,
"content0[data]": file_data
}).encode(encoding="ascii")) as response:
json_text = response.read().decode("utf-8")
print(json_text)
サンプルプログラム(ruby 1.8/1.9/2.0/2.1)¶
サンプルプログラムを表示するサンプルプログラムを閉じる
require "base64"
require "cgi"
require "net/http"
require "uri"
secret_access_key = "Write your secret access key"
file_name = "example.jpg"
file_data = ::CGI.escape ::Base64.strict_encode64 ::File.read "example.jpg"
uri = ::URI.parse "http://api.3dcg-arts.net/api/v1/arts.json"
::Net::HTTP.start(uri.host, uri.port) { | http |
response = http.post uri.path, "secret_access_key=#{ secret_access_key }&type=i&content0[name]=#{ file_name }&content0[data]=#{ file_data }"
puts response.body
}
実行結果(例)¶
{
"id": 1,
"edit_my_art_path": "http://www.3dcg-arts.net/my/arts/1/edit"
}
API サンプル(ポリゴン作品の投稿)¶
サンプルプログラム(python 3.x)¶
サンプルプログラムを表示するサンプルプログラムを閉じる
import base64
import urllib.request
secret_access_key = "Write your secret access key"
file_name = "example.zip"
file_data = ""
url = "http://api.3dcg-arts.net/api/v1/arts.json"
with open(file_name, "rb") as file:
file_data = base64.b64encode(file.read())
with urllib.request.urlopen(url,
urllib.parse.urlencode({
"secret_access_key": secret_access_key,
"type": "p",
"content0[name]": file_name,
"content0[data]": file_data
}).encode(encoding="ascii")) as response:
json_text = response.read().decode("utf-8")
print(json_text)
サンプルプログラム(ruby 1.8/1.9/2.0/2.1)¶
サンプルプログラムを表示するサンプルプログラムを閉じる
require "base64"
require "cgi"
require "net/http"
require "uri"
secret_access_key = "Write your secret access key"
file_name = "example.zip"
file_data = ::CGI.escape ::Base64.strict_encode64 ::File.read "example.zip"
uri = ::URI.parse "http://api.3dcg-arts.net/api/v1/arts.json"
::Net::HTTP.start(uri.host, uri.port) { | http |
response = http.post uri.path, "secret_access_key=#{ secret_access_key }&type=p&content0[name]=#{ file_name }&content0[data]=#{ file_data }"
puts response.body
}
実行結果(例)¶
{
"id": 1,
"edit_my_art_path": "http://www.3dcg-arts.net/my/arts/1/edit"
}