---
title: "Serve File"
method: GET
path: "/files/{product_id}/{filename}"
tags: ["license"]
---

# Serve File

`GET /files/{product_id}/{filename}`

## Request

- Base URL: `https://otakusolutions.com` (the document declares no server; this is the origin it was published from)
- URL: `https://otakusolutions.com/files/{product_id}/{filename}`
- Auth: none declared

Railway Volume에서 파일 직접 서빙.

브라우저 회원은 로그인 쿠키 + 다운로드 페이지와 같은 권한. MotionHub·SkinLayer Studio
앱은 라이선스 이메일·키 헤더. 키는 URL에 넣지 않는다. Range 요청은 206 으로 잇는다.

## Path parameters

- `product_id` string, required
- `filename` string, required

## Headers

- `X-License-Email` string, nullable
- `X-License-Key` string, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-04** `5e2d9391ee5b`: 2 info
  - added the new optional `header` request parameter `X-License-Email`
  - added the new optional `header` request parameter `X-License-Key`

[Operation history](https://skmtc.dev/otakusolutions/apis/otakusolutions-homepage/changes/files/:product_id/:filename/get.md)

---

[API](https://skmtc.dev/otakusolutions/apis/otakusolutions-homepage.md) - [All operations](https://skmtc.dev/otakusolutions/apis/otakusolutions-homepage/llms.txt) - [OpenAPI document](https://skmtc.dev/otakusolutions/apis/otakusolutions-homepage/revisions/e5bf958d0a23?raw)
