---
title: "URL から画像を取り込む"
method: POST
path: "/api/v1/assets/import"
tags: ["assets"]
---

# URL から画像を取り込む

`POST /api/v1/assets/import`

## Request

- Base URL: `https://app.yukkurigen.com`
- URL: `https://app.yukkurigen.com/api/v1/assets/import`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

## Request body

- object
  - `urls` string[], required: 取り込む画像の URL（https のみ）。最大 20件
  - `type` 'material' | 'background': 保存先の種別

## Response `200`

各 URL の取り込み結果

- object
  - `data` object
    - `results` object[]
      - `sourceUrl` string
      - `ok` boolean
      - `url` string: 取り込み後の永続 URL（ok=true のとき）
      - `assetId` string
      - `error` object: エラー理由（ok=false のとき）。code は invalid_url / not_https / ssrf_blocked / fetch_error / too_many_redirects / invalid_redirect / http_error / unsupported_type / empty_body / file_too_large / type_mismatch / quota_exceeded / upload_failed / db_error のどれか（その URL だけの失敗。ほかの URL は続けて取り込む。upload_failed / db_error は時間をおいて再試行）
        - `code` string
        - `message` string
    - `imported` integer: 成功件数
    - `total` integer: リクエスト件数

## Other responses

- `400`: リクエスト不正（code: validation_error。urls が 0 件・21 件以上・URL でない）。URL ごとの失敗（SSRF 拒否・形式違い・容量超過）は 200 の results[].error に入る
- `401`: 認証エラー（code: unauthenticated）
- `403`: スコープ不足（code: insufficient_scope。projects:write が必要）
- `429`: レート上限（code: rate_limited）

---

[API](https://skmtc.dev/yukkurigen/apis/yukkurigen-ai-operated-api.md) · [All operations](https://skmtc.dev/yukkurigen/apis/yukkurigen-ai-operated-api/llms.txt) · [OpenAPI document](https://skmtc.dev/yukkurigen/apis/yukkurigen-ai-operated-api/revisions/ba5f36b016da?raw)
