Image exports
Raw artwork is available from the catalog image URLs in the media API. Official chart PNG/SVG uses the chart image API, and player cards use the player resource API. These endpoints generate the remaining website images. POST JSON is {data, locale?, theme?, seed?}. Complete nested fields are embedded in OpenAPI, and available in the device schema. The image guide includes payloads, local execution and state capture.
Generated images
Section titled “Generated images”Team result image
Section titled “Team result image”/api/v1/team-builder/image.png Captures the website's actual result card, including song cover/title/difficulty, scores, centred leader, bound Snapshots. data is TeamImageOptions: request and hit from the same calculation; optional settings, catalog, server, release and width (360–1280).
Parameters
| Name | In | Type | Description |
|---|---|---|---|
localeoptional | query | string | Image text locale; default en. |
themeoptional | query | string | Website theme; default light. |
seedoptional | query | string | Website color scheme. |
Request body application/json
| Name | Type | Description |
|---|---|---|
datarequired | TeamImageOptions | Captures the website's actual result card, including song cover/title/difficulty, scores, centred leader, bound Snapshots. data is TeamImageOptions: request and hit from the same calculation; optional settings, catalog, server, release and width (360–1280). |
localeoptional | string | Image text locale; default en. |
themeoptional | string | Website theme; default light. |
seedoptional | string | Website color scheme. |
Example request
curl -sS -o output.bin -X POST "https://haneoka.org/api/v1/team-builder/image.png" \ -H "Content-Type: application/json" \ --data-binary @team-image.jsonconst response = await fetch("https://haneoka.org/api/v1/team-builder/image.png", { method: "POST", headers: { "Content-Type": "application/json", }, body: file,});if (!response.ok) throw new Error(`HTTP ${response.status}`);const blob = await response.blob();Example response
HTTP/2 200 OKBinary body (not shown).
Errors
| Status | Code | Meaning |
|---|---|---|
400 | invalid_request | An ID in the path or query is malformed. |
404 | not_found | Unknown region or record. |
413 | body_too_large | JSON body exceeds 8 MiB. |
429 | renderer_busy | Retry after 60 seconds. |
502 | image_render_failed | Image or model resources could not be rendered. |
503 | renderer_unavailable | Image renderer is unavailable; use the device module or local service. |
Recruitment simulation image
Section titled “Recruitment simulation image”/api/v1/gacha/simulation/image.png Uses the recruitment simulator's pulls or stats image renderer. data is GachaImageInput.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
localeoptional | query | string | Image text locale; default en. |
themeoptional | query | string | Website theme; default light. |
seedoptional | query | string | Website color scheme. |
Request body application/json
| Name | Type | Description |
|---|---|---|
datarequired | GachaImageInput | Uses the recruitment simulator's pulls or stats image renderer. data is GachaImageInput. |
localeoptional | string | Image text locale; default en. |
themeoptional | string | Website theme; default light. |
seedoptional | string | Website color scheme. |
Example request
curl -sS -o output.bin -X POST "https://haneoka.org/api/v1/gacha/simulation/image.png" \ -H "Content-Type: application/json" \ --data-binary @gacha-image.jsonconst response = await fetch("https://haneoka.org/api/v1/gacha/simulation/image.png", { method: "POST", headers: { "Content-Type": "application/json", }, body: file,});if (!response.ok) throw new Error(`HTTP ${response.status}`);const blob = await response.blob();Example response
HTTP/2 200 OKBinary body (not shown).
Errors
| Status | Code | Meaning |
|---|---|---|
400 | invalid_request | An ID in the path or query is malformed. |
404 | not_found | Unknown region or record. |
413 | body_too_large | JSON body exceeds 8 MiB. |
429 | renderer_busy | Retry after 60 seconds. |
502 | image_render_failed | Image or model resources could not be rendered. |
503 | renderer_unavailable | Image renderer is unavailable; use the device module or local service. |
Recruitment history report
Section titled “Recruitment history report”/api/v1/gacha-history/image.png Uses the history report renderer with 36 cards per page. image.png selects a page; images.zip includes every page. data is GachaHistoryReport.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
localeoptional | query | string | Image text locale; default en. |
themeoptional | query | string | Website theme; default light. |
seedoptional | query | string | Website color scheme. |
pageoptional | query | integer | 1-based report page. Used by image.png; ZIP returns all pages. Default: 1 |
Request body application/json
| Name | Type | Description |
|---|---|---|
datarequired | GachaHistoryReport | Uses the history report renderer with 36 cards per page. image.png selects a page; images.zip includes every page. data is GachaHistoryReport. |
localeoptional | string | Image text locale; default en. |
themeoptional | string | Website theme; default light. |
seedoptional | string | Website color scheme. |
Example request
curl -sS -o output.bin -X POST "https://haneoka.org/api/v1/gacha-history/image.png" \ -H "Content-Type: application/json" \ --data-binary @history-image.jsonconst response = await fetch("https://haneoka.org/api/v1/gacha-history/image.png", { method: "POST", headers: { "Content-Type": "application/json", }, body: file,});if (!response.ok) throw new Error(`HTTP ${response.status}`);const blob = await response.blob();Example response
HTTP/2 200 OKBinary body (not shown).
Errors
| Status | Code | Meaning |
|---|---|---|
400 | invalid_request | An ID in the path or query is malformed. |
404 | not_found | Unknown region or record. |
413 | body_too_large | JSON body exceeds 8 MiB. |
429 | renderer_busy | Retry after 60 seconds. |
502 | image_render_failed | Image or model resources could not be rendered. |
503 | renderer_unavailable | Image renderer is unavailable; use the device module or local service. |
History report ZIP
Section titled “History report ZIP”/api/v1/gacha-history/images.zip Uses the history report renderer with 36 cards per page. image.png selects a page; images.zip includes every page. data is GachaHistoryReport.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
localeoptional | query | string | Image text locale; default en. |
themeoptional | query | string | Website theme; default light. |
seedoptional | query | string | Website color scheme. |
pageoptional | query | integer | 1-based report page. Used by image.png; ZIP returns all pages. Default: 1 |
Request body application/json
| Name | Type | Description |
|---|---|---|
datarequired | GachaHistoryReport | Uses the history report renderer with 36 cards per page. image.png selects a page; images.zip includes every page. data is GachaHistoryReport. |
localeoptional | string | Image text locale; default en. |
themeoptional | string | Website theme; default light. |
seedoptional | string | Website color scheme. |
Example request
curl -sS -o output.bin -X POST "https://haneoka.org/api/v1/gacha-history/images.zip" \ -H "Content-Type: application/json" \ --data-binary @history-image.jsonconst response = await fetch("https://haneoka.org/api/v1/gacha-history/images.zip", { method: "POST", headers: { "Content-Type": "application/json", }, body: file,});if (!response.ok) throw new Error(`HTTP ${response.status}`);const blob = await response.blob();Example response
HTTP/2 200 OKBinary body (not shown).
Errors
| Status | Code | Meaning |
|---|---|---|
400 | invalid_request | An ID in the path or query is malformed. |
404 | not_found | Unknown region or record. |
413 | body_too_large | JSON body exceeds 8 MiB. |
429 | renderer_busy | Retry after 60 seconds. |
502 | image_render_failed | Image or model resources could not be rendered. |
503 | renderer_unavailable | Image renderer is unavailable; use the device module or local service. |
Stamp composition
Section titled “Stamp composition”/api/v1/stamps/image.png Uses the stamp maker's image/text layers, fonts and square export. data includes image, sourceSize and layers; size is 1–512. Custom fonts use fonts[{family,source}]. Use an image layer to place the artwork.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
localeoptional | query | string | Image text locale; default en. |
themeoptional | query | string | Website theme; default light. |
seedoptional | query | string | Website color scheme. |
Request body application/json
| Name | Type | Description |
|---|---|---|
datarequired | StampImageOptions | Uses the stamp maker's image/text layers, fonts and square export. data includes image, sourceSize and layers; size is 1–512. Custom fonts use fonts[{family,source}]. Use an image layer to place the artwork. |
localeoptional | string | Image text locale; default en. |
themeoptional | string | Website theme; default light. |
seedoptional | string | Website color scheme. |
Example request
curl -sS -o output.bin -X POST "https://haneoka.org/api/v1/stamps/image.png" \ -H "Content-Type: application/json" \ --data-binary @stamp-image.jsonconst response = await fetch("https://haneoka.org/api/v1/stamps/image.png", { method: "POST", headers: { "Content-Type": "application/json", }, body: file,});if (!response.ok) throw new Error(`HTTP ${response.status}`);const blob = await response.blob();Example response
HTTP/2 200 OKBinary body (not shown).
Errors
| Status | Code | Meaning |
|---|---|---|
400 | invalid_request | An ID in the path or query is malformed. |
404 | not_found | Unknown region or record. |
413 | body_too_large | JSON body exceeds 8 MiB. |
429 | renderer_busy | Retry after 60 seconds. |
502 | image_render_failed | Image or model resources could not be rendered. |
503 | renderer_unavailable | Image renderer is unavailable; use the device module or local service. |
Custom chart image
Section titled “Custom chart image”/api/v1/charts/image.png Uses the native game skin and website overview layout for a ChartDocument. data includes chart and meta, plus server/release/height. Official song exports use the song chart image endpoint.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
localeoptional | query | string | Image text locale; default en. |
themeoptional | query | string | Website theme; default light. |
seedoptional | query | string | Website color scheme. |
Request body application/json
| Name | Type | Description |
|---|---|---|
datarequired | CustomChartImageOptions | Uses the native game skin and website overview layout for a ChartDocument. data includes chart and meta, plus server/release/height. Official song exports use the song chart image endpoint. |
localeoptional | string | Image text locale; default en. |
themeoptional | string | Website theme; default light. |
seedoptional | string | Website color scheme. |
Example request
curl -sS -o output.bin -X POST "https://haneoka.org/api/v1/charts/image.png" \ -H "Content-Type: application/json" \ --data-binary @chart-image.jsonconst response = await fetch("https://haneoka.org/api/v1/charts/image.png", { method: "POST", headers: { "Content-Type": "application/json", }, body: file,});if (!response.ok) throw new Error(`HTTP ${response.status}`);const blob = await response.blob();Example response
HTTP/2 200 OKBinary body (not shown).
Errors
| Status | Code | Meaning |
|---|---|---|
400 | invalid_request | An ID in the path or query is malformed. |
404 | not_found | Unknown region or record. |
413 | body_too_large | JSON body exceeds 8 MiB. |
429 | renderer_busy | Retry after 60 seconds. |
502 | image_render_failed | Image or model resources could not be rendered. |
503 | renderer_unavailable | Image renderer is unavailable; use the device module or local service. |
Default Live2D capture
Section titled “Default Live2D capture”/api/v1/live2d/{id}/image.png Uses the website's Cubism viewer. POST data accepts motion, expression, loop, time, parameters, parts, look, background and transform. A saved pose's parameters/parts can be passed directly. Default background is transparent.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string | Live2D capture |
serveroptional | query | string | Resource server. Default: intl |
releaseoptional | query | string | Pin the model and all its assets to this release; omitted uses current. |
widthoptional | query | integer | Viewport pixels. Capture uses the website's supersampling, up to 4 million pixels; read output dimensions from response headers. Default: 1024 |
heightoptional | query | integer | Viewport pixels. Capture uses the website's supersampling, up to 4 million pixels; read output dimensions from response headers. Default: 1024 |
timeoptional | query | number | Animation position in seconds, advanced at 60 Hz before capture. Default: 0 |
localeoptional | query | string | Image text locale; default en. |
themeoptional | query | string | Website theme; default light. |
seedoptional | query | string | Website color scheme. |
blinkoptional | query | boolean | Viewer option; true or false. Default: true |
breathoptional | query | boolean | Viewer option; true or false. Default: true |
loopoptional | query | boolean | Viewer option; true or false. Default: |
motionoptional | query | string | Name from the model entity. |
expressionoptional | query | string | Name from the model entity. |
Example request
curl -sS -o output.bin "https://haneoka.org/api/v1/live2d/001_casual_spring_01/image.png?server=intl&time=0"const response = await fetch("https://haneoka.org/api/v1/live2d/001_casual_spring_01/image.png?server=intl&time=0");if (!response.ok) throw new Error(`HTTP ${response.status}`);const blob = await response.blob();Example response
HTTP/2 200 OKBinary body (not shown).
Errors
| Status | Code | Meaning |
|---|---|---|
400 | invalid_request | An ID in the path or query is malformed. |
404 | not_found | Unknown region or record. |
413 | body_too_large | JSON body exceeds 8 MiB. |
429 | renderer_busy | Retry after 60 seconds. |
502 | image_render_failed | Image or model resources could not be rendered. |
503 | renderer_unavailable | Image renderer is unavailable; use the device module or local service. |
Live2D capture
Section titled “Live2D capture”/api/v1/live2d/{id}/image.png Uses the website's Cubism viewer. POST data accepts motion, expression, loop, time, parameters, parts, look, background and transform. A saved pose's parameters/parts can be passed directly. Default background is transparent.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
localeoptional | query | string | Image text locale; default en. |
themeoptional | query | string | Website theme; default light. |
seedoptional | query | string | Website color scheme. |
idrequired | path | string | Live2D capture |
Request body application/json
| Name | Type | Description |
|---|---|---|
datarequired | Live2DImageOptions | Uses the website's Cubism viewer. POST data accepts motion, expression, loop, time, parameters, parts, look, background and transform. A saved pose's parameters/parts can be passed directly. Default background is transparent. |
localeoptional | string | Image text locale; default en. |
themeoptional | string | Website theme; default light. |
seedoptional | string | Website color scheme. |
Example request
curl -sS -o output.bin -X POST "https://haneoka.org/api/v1/live2d/001_casual_spring_01/image.png" \ -H "Content-Type: application/json" \ --data-binary @live2d-image.jsonconst response = await fetch("https://haneoka.org/api/v1/live2d/001_casual_spring_01/image.png", { method: "POST", headers: { "Content-Type": "application/json", }, body: file,});if (!response.ok) throw new Error(`HTTP ${response.status}`);const blob = await response.blob();Example response
HTTP/2 200 OKBinary body (not shown).
Errors
| Status | Code | Meaning |
|---|---|---|
400 | invalid_request | An ID in the path or query is malformed. |
404 | not_found | Unknown region or record. |
413 | body_too_large | JSON body exceeds 8 MiB. |
429 | renderer_busy | Retry after 60 seconds. |
502 | image_render_failed | Image or model resources could not be rendered. |
503 | renderer_unavailable | Image renderer is unavailable; use the device module or local service. |
Default Live2D capture by server
Section titled “Default Live2D capture by server”/api/v1/servers/{server}/live2d/{id}/image.png Uses the website's Cubism viewer. POST data accepts motion, expression, loop, time, parameters, parts, look, background and transform. A saved pose's parameters/parts can be passed directly. Default background is transparent.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
serverrequired | path | string | Resource server. Default: intl |
idrequired | path | string | Live2D capture |
releaseoptional | query | string | Pin the model and all its assets to this release; omitted uses current. |
widthoptional | query | integer | Viewport pixels. Capture uses the website's supersampling, up to 4 million pixels; read output dimensions from response headers. Default: 1024 |
heightoptional | query | integer | Viewport pixels. Capture uses the website's supersampling, up to 4 million pixels; read output dimensions from response headers. Default: 1024 |
timeoptional | query | number | Animation position in seconds, advanced at 60 Hz before capture. Default: 0 |
localeoptional | query | string | Image text locale; default en. |
themeoptional | query | string | Website theme; default light. |
seedoptional | query | string | Website color scheme. |
blinkoptional | query | boolean | Viewer option; true or false. Default: true |
breathoptional | query | boolean | Viewer option; true or false. Default: true |
loopoptional | query | boolean | Viewer option; true or false. Default: |
motionoptional | query | string | Name from the model entity. |
expressionoptional | query | string | Name from the model entity. |
Example request
curl -sS -o output.bin "https://haneoka.org/api/v1/servers/intl/live2d/001_casual_spring_01/image.png?time=0"const response = await fetch("https://haneoka.org/api/v1/servers/intl/live2d/001_casual_spring_01/image.png?time=0");if (!response.ok) throw new Error(`HTTP ${response.status}`);const blob = await response.blob();Example response
HTTP/2 200 OKBinary body (not shown).
Errors
| Status | Code | Meaning |
|---|---|---|
400 | invalid_request | An ID in the path or query is malformed. |
404 | not_found | Unknown region or record. |
413 | body_too_large | JSON body exceeds 8 MiB. |
429 | renderer_busy | Retry after 60 seconds. |
502 | image_render_failed | Image or model resources could not be rendered. |
503 | renderer_unavailable | Image renderer is unavailable; use the device module or local service. |
Live2D capture by server
Section titled “Live2D capture by server”/api/v1/servers/{server}/live2d/{id}/image.png Uses the website's Cubism viewer. POST data accepts motion, expression, loop, time, parameters, parts, look, background and transform. A saved pose's parameters/parts can be passed directly. Default background is transparent.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
serverrequired | path | string | Resource server. Default: intl |
localeoptional | query | string | Image text locale; default en. |
themeoptional | query | string | Website theme; default light. |
seedoptional | query | string | Website color scheme. |
idrequired | path | string | Live2D capture |
Request body application/json
| Name | Type | Description |
|---|---|---|
datarequired | Live2DImageOptions | Uses the website's Cubism viewer. POST data accepts motion, expression, loop, time, parameters, parts, look, background and transform. A saved pose's parameters/parts can be passed directly. Default background is transparent. |
localeoptional | string | Image text locale; default en. |
themeoptional | string | Website theme; default light. |
seedoptional | string | Website color scheme. |
Example request
curl -sS -o output.bin -X POST "https://haneoka.org/api/v1/servers/intl/live2d/001_casual_spring_01/image.png" \ -H "Content-Type: application/json" \ --data-binary @live2d-image.jsonconst response = await fetch("https://haneoka.org/api/v1/servers/intl/live2d/001_casual_spring_01/image.png", { method: "POST", headers: { "Content-Type": "application/json", }, body: file,});if (!response.ok) throw new Error(`HTTP ${response.status}`);const blob = await response.blob();Example response
HTTP/2 200 OKBinary body (not shown).
Errors
| Status | Code | Meaning |
|---|---|---|
400 | invalid_request | An ID in the path or query is malformed. |
404 | not_found | Unknown region or record. |
413 | body_too_large | JSON body exceeds 8 MiB. |
429 | renderer_busy | Retry after 60 seconds. |
502 | image_render_failed | Image or model resources could not be rendered. |
503 | renderer_unavailable | Image renderer is unavailable; use the device module or local service. |
Default Spine capture
Section titled “Default Spine capture”/api/v1/spine/{id}/image.png Uses the website's Spine stage. POST data accepts animation, skin, loop, playbackRate, time, background and transform. Default background is transparent.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
idrequired | path | string | Spine capture |
serveroptional | query | string | Resource server. Default: intl |
releaseoptional | query | string | Pin the model and all its assets to this release; omitted uses current. |
widthoptional | query | integer | Viewport pixels. Capture uses the website's supersampling, up to 4 million pixels; read output dimensions from response headers. Default: 1024 |
heightoptional | query | integer | Viewport pixels. Capture uses the website's supersampling, up to 4 million pixels; read output dimensions from response headers. Default: 1024 |
timeoptional | query | number | Animation position in seconds, advanced at 60 Hz before capture. Default: 0 |
localeoptional | query | string | Image text locale; default en. |
themeoptional | query | string | Website theme; default light. |
seedoptional | query | string | Website color scheme. |
loopoptional | query | boolean | Viewer option; true or false. Default: true |
playbackRateoptional | query | number | Playback rate applied before capture. Default: 1 |
animationoptional | query | string | Name from the model entity. |
skinoptional | query | string | Name from the model entity. |
Example request
curl -sS -o output.bin "https://haneoka.org/api/v1/spine/01_mygo_01_cafe_01_anon/image.png?server=intl&time=0"const response = await fetch("https://haneoka.org/api/v1/spine/01_mygo_01_cafe_01_anon/image.png?server=intl&time=0");if (!response.ok) throw new Error(`HTTP ${response.status}`);const blob = await response.blob();Example response
HTTP/2 200 OKBinary body (not shown).
Errors
| Status | Code | Meaning |
|---|---|---|
400 | invalid_request | An ID in the path or query is malformed. |
404 | not_found | Unknown region or record. |
413 | body_too_large | JSON body exceeds 8 MiB. |
429 | renderer_busy | Retry after 60 seconds. |
502 | image_render_failed | Image or model resources could not be rendered. |
503 | renderer_unavailable | Image renderer is unavailable; use the device module or local service. |
Spine capture
Section titled “Spine capture”/api/v1/spine/{id}/image.png Uses the website's Spine stage. POST data accepts animation, skin, loop, playbackRate, time, background and transform. Default background is transparent.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
localeoptional | query | string | Image text locale; default en. |
themeoptional | query | string | Website theme; default light. |
seedoptional | query | string | Website color scheme. |
idrequired | path | string | Spine capture |
Request body application/json
| Name | Type | Description |
|---|---|---|
datarequired | SpineImageOptions | Uses the website's Spine stage. POST data accepts animation, skin, loop, playbackRate, time, background and transform. Default background is transparent. |
localeoptional | string | Image text locale; default en. |
themeoptional | string | Website theme; default light. |
seedoptional | string | Website color scheme. |
Example request
curl -sS -o output.bin -X POST "https://haneoka.org/api/v1/spine/01_mygo_01_cafe_01_anon/image.png" \ -H "Content-Type: application/json" \ --data-binary @spine-image.jsonconst response = await fetch("https://haneoka.org/api/v1/spine/01_mygo_01_cafe_01_anon/image.png", { method: "POST", headers: { "Content-Type": "application/json", }, body: file,});if (!response.ok) throw new Error(`HTTP ${response.status}`);const blob = await response.blob();Example response
HTTP/2 200 OKBinary body (not shown).
Errors
| Status | Code | Meaning |
|---|---|---|
400 | invalid_request | An ID in the path or query is malformed. |
404 | not_found | Unknown region or record. |
413 | body_too_large | JSON body exceeds 8 MiB. |
429 | renderer_busy | Retry after 60 seconds. |
502 | image_render_failed | Image or model resources could not be rendered. |
503 | renderer_unavailable | Image renderer is unavailable; use the device module or local service. |
Default Spine capture by server
Section titled “Default Spine capture by server”/api/v1/servers/{server}/spine/{id}/image.png Uses the website's Spine stage. POST data accepts animation, skin, loop, playbackRate, time, background and transform. Default background is transparent.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
serverrequired | path | string | Resource server. Default: intl |
idrequired | path | string | Spine capture |
releaseoptional | query | string | Pin the model and all its assets to this release; omitted uses current. |
widthoptional | query | integer | Viewport pixels. Capture uses the website's supersampling, up to 4 million pixels; read output dimensions from response headers. Default: 1024 |
heightoptional | query | integer | Viewport pixels. Capture uses the website's supersampling, up to 4 million pixels; read output dimensions from response headers. Default: 1024 |
timeoptional | query | number | Animation position in seconds, advanced at 60 Hz before capture. Default: 0 |
localeoptional | query | string | Image text locale; default en. |
themeoptional | query | string | Website theme; default light. |
seedoptional | query | string | Website color scheme. |
loopoptional | query | boolean | Viewer option; true or false. Default: true |
playbackRateoptional | query | number | Playback rate applied before capture. Default: 1 |
animationoptional | query | string | Name from the model entity. |
skinoptional | query | string | Name from the model entity. |
Example request
curl -sS -o output.bin "https://haneoka.org/api/v1/servers/intl/spine/01_mygo_01_cafe_01_anon/image.png?time=0"const response = await fetch("https://haneoka.org/api/v1/servers/intl/spine/01_mygo_01_cafe_01_anon/image.png?time=0");if (!response.ok) throw new Error(`HTTP ${response.status}`);const blob = await response.blob();Example response
HTTP/2 200 OKBinary body (not shown).
Errors
| Status | Code | Meaning |
|---|---|---|
400 | invalid_request | An ID in the path or query is malformed. |
404 | not_found | Unknown region or record. |
413 | body_too_large | JSON body exceeds 8 MiB. |
429 | renderer_busy | Retry after 60 seconds. |
502 | image_render_failed | Image or model resources could not be rendered. |
503 | renderer_unavailable | Image renderer is unavailable; use the device module or local service. |
Spine capture by server
Section titled “Spine capture by server”/api/v1/servers/{server}/spine/{id}/image.png Uses the website's Spine stage. POST data accepts animation, skin, loop, playbackRate, time, background and transform. Default background is transparent.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
serverrequired | path | string | Resource server. Default: intl |
localeoptional | query | string | Image text locale; default en. |
themeoptional | query | string | Website theme; default light. |
seedoptional | query | string | Website color scheme. |
idrequired | path | string | Spine capture |
Request body application/json
| Name | Type | Description |
|---|---|---|
datarequired | SpineImageOptions | Uses the website's Spine stage. POST data accepts animation, skin, loop, playbackRate, time, background and transform. Default background is transparent. |
localeoptional | string | Image text locale; default en. |
themeoptional | string | Website theme; default light. |
seedoptional | string | Website color scheme. |
Example request
curl -sS -o output.bin -X POST "https://haneoka.org/api/v1/servers/intl/spine/01_mygo_01_cafe_01_anon/image.png" \ -H "Content-Type: application/json" \ --data-binary @spine-image.jsonconst response = await fetch("https://haneoka.org/api/v1/servers/intl/spine/01_mygo_01_cafe_01_anon/image.png", { method: "POST", headers: { "Content-Type": "application/json", }, body: file,});if (!response.ok) throw new Error(`HTTP ${response.status}`);const blob = await response.blob();Example response
HTTP/2 200 OKBinary body (not shown).
Errors
| Status | Code | Meaning |
|---|---|---|
400 | invalid_request | An ID in the path or query is malformed. |
404 | not_found | Unknown region or record. |
413 | body_too_large | JSON body exceeds 8 MiB. |
429 | renderer_busy | Retry after 60 seconds. |
502 | image_render_failed | Image or model resources could not be rendered. |
503 | renderer_unavailable | Image renderer is unavailable; use the device module or local service. |