ドキュメント

Webshop Admin API


Webshop Admin API


Webshop Config Service - Admin API

Admin endpoints for managing webshop configuration, themes, and publishing.
Download OpenAPI specification:

Get webshop details


Returns the webshop record for a project, enriched with draft config for the specified environment. Returns 404 if the environment is not activated.
Authorizations
User
HTTP: User
HTTP Authorization Scheme: bearer

Path parameters for "{title}"

projectId

string
必須
Genesis ID of the project

environmentId

string
必須
Genesis ID of the environment

HTTP response status codes for "{title}":

Code samples for "{title}":

Request example

curl -X GET \ -H "Authorization: Bearer <YOUR_TOKEN>" \ "https://services.unity.com/api/webshop/v1/projects/{projectId}/environments/{environmentId}/webshop"

Response example

{ "id": "string", "slug": "string", "publisherSlug": "string", "projectId": "string", "environmentId": "string", "name": "string", "status": "draft", "generation": { "status": "none", "error": "string", "feedback": "string", "startedAt": "2024-01-01T00:00:00Z" }, "appStoreUrl": "https://example.com", "playStoreUrl": "https://example.com", "screenshotUrls": [ { "url": "string", "source": "appStore" } ], "brandingUrls": { "logoUrl": "https://example.com", "logoThumbUrl": "https://example.com", "faviconUrl": "https://example.com", "appleTouchIconUrl": "https://example.com", "heroBanner": { "url": "https://example.com", "enabled": true, "effects": { "glow": "string", "borderStyle": "none", "borderColor": "string", "borderWidth": "string" }, "sources": [ { "url": "https://example.com", "width": 0 } ] }, "pageBackdrop": "https://example.com", "pageBackdropFocus": { "x": 0, "y": 0 }, "thumbnailUrl": "https://example.com" }, "livePublication": { "publisherSlug": "string", "slug": "string", "publishedAt": "2024-01-01T00:00:00Z", "brandingUrls": { "logoUrl": "https://example.com", "logoThumbUrl": "https://example.com", "faviconUrl": "https://example.com", "appleTouchIconUrl": "https://example.com", "heroBanner": { "url": "https://example.com", "enabled": true, "effects": { "glow": "string", "borderStyle": "none", "borderColor": "string", "borderWidth": "string" }, "sources": [ { "url": null, "width": null } ] }, "pageBackdrop": "https://example.com", "pageBackdropFocus": { "x": 0, "y": 0 }, "thumbnailUrl": "https://example.com" } }, "environments": [ { "environmentId": "string", "status": "draft", "isPrimary": true, "publishedAt": "2024-01-01T00:00:00Z" } ], "createdAt": "2024-01-01T00:00:00Z", "updatedAt": "2024-01-01T00:00:00Z", "draftUpdatedAt": "2024-01-01T00:00:00Z", "theme": {}, "deepLink": {}, "authConfig": {}, "frontendVersion": "string", "warnings": [ "string" ]}

Create a new webshop


Reserves a slug and creates a webshop record. The environment from the path is activated as the primary environment. If appStoreUrl or playStoreUrl is provided, store scraping and theme generation are triggered automatically. Organization ID is read from the Unity-Organization gateway header.
Authorizations
User
HTTP: User
HTTP Authorization Scheme: bearer

Path parameters for "{title}"

projectId

string
必須
Genesis ID of the project

environmentId

string
必須
Genesis ID of the environment

Request body for "{title}"

Media Type:
application/json

slug

string
必須
Slug for the webshop, unique within its publisher

publisherSlug

string
必須
Publisher slug for the public URL

name

string
必須
Webshop display name

appStoreUrl

Apple App Store URL for the game (used for theme generation)

playStoreUrl

Google Play Store URL for the game

HTTP response status codes for "{title}":

Code samples for "{title}":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Content-Type: application/json" \ -d '{ "slug": "string", "publisherSlug": "string", "name": "string", "appStoreUrl": "https://example.com", "playStoreUrl": "https://example.com"}' \ "https://services.unity.com/api/webshop/v1/projects/{projectId}/environments/{environmentId}/webshop"

Response example

{ "id": "string", "slug": "string", "publisherSlug": "string", "projectId": "string", "environmentId": "string", "name": "string", "status": "draft", "generation": { "status": "none", "error": "string", "feedback": "string", "startedAt": "2024-01-01T00:00:00Z" }, "appStoreUrl": "https://example.com", "playStoreUrl": "https://example.com", "screenshotUrls": [ { "url": "string", "source": "appStore" } ], "brandingUrls": { "logoUrl": "https://example.com", "logoThumbUrl": "https://example.com", "faviconUrl": "https://example.com", "appleTouchIconUrl": "https://example.com", "heroBanner": { "url": "https://example.com", "enabled": true, "effects": { "glow": "string", "borderStyle": "none", "borderColor": "string", "borderWidth": "string" }, "sources": [ { "url": "https://example.com", "width": 0 } ] }, "pageBackdrop": "https://example.com", "pageBackdropFocus": { "x": 0, "y": 0 }, "thumbnailUrl": "https://example.com" }, "livePublication": { "publisherSlug": "string", "slug": "string", "publishedAt": "2024-01-01T00:00:00Z", "brandingUrls": { "logoUrl": "https://example.com", "logoThumbUrl": "https://example.com", "faviconUrl": "https://example.com", "appleTouchIconUrl": "https://example.com", "heroBanner": { "url": "https://example.com", "enabled": true, "effects": { "glow": "string", "borderStyle": "none", "borderColor": "string", "borderWidth": "string" }, "sources": [ { "url": null, "width": null } ] }, "pageBackdrop": "https://example.com", "pageBackdropFocus": { "x": 0, "y": 0 }, "thumbnailUrl": "https://example.com" } }, "environments": [ { "environmentId": "string", "status": "draft", "isPrimary": true, "publishedAt": "2024-01-01T00:00:00Z" } ], "createdAt": "2024-01-01T00:00:00Z", "updatedAt": "2024-01-01T00:00:00Z", "draftUpdatedAt": "2024-01-01T00:00:00Z", "theme": {}, "deepLink": {}, "authConfig": {}, "frontendVersion": "string", "warnings": [ "string" ]}

Update webshop metadata and config


Updates the webshop. Only provided fields change; theme, deepLink, and frontendVersion target the draft for this environment. Renaming the slug while the primary environment is published republishes the webshop at the new URL. To rename the organization's publisher slug, use
PATCH /organizations/{organizationId}/publisher
.
Authorizations
User
HTTP: User
HTTP Authorization Scheme: bearer

Path parameters for "{title}"

projectId

string
必須
Genesis ID of the project

environmentId

string
必須
Genesis ID of the environment

Request body for "{title}"

Media Type:
application/json

slug

string
New slug (must be globally unique)

name

string
Webshop display name

appStoreUrl

Apple App Store URL for the game. Omit to leave it unchanged, send
""
(empty string) to clear it, or send a URL to set it. Clearing additionally wipes any screenshots and scrape metadata derived from this URL across every environment of the webshop. User-uploaded screenshots are preserved.

playStoreUrl

Google Play Store URL for the game. Omit to leave it unchanged, send
""
(empty string) to clear it, or send a URL to set it. Clearing additionally wipes any playStore-sourced screenshots across every environment of the webshop, plus the scrape metadata when no App Store URL remains. User-uploaded screenshots are preserved.

theme

Theme configuration. Full replace — the handler overwrites draft_config.theme with the provided value. Send the full theme on every update; do not rely on partial-patch merging.

deepLink

object
Deep link configuration. Full replace — send a non-empty
scheme
(plus optional
successPath
) to set it, or an empty/omitted
scheme
to delete it. Omit the field to leave it unchanged.
successPath
must not contain "?" or "#" — the web shop appends the status and player parameters itself.

authConfig

object
Player login configuration. Full replace — the handler overwrites the stored authConfig with the provided value. Send the complete authConfig on every update.

frontendVersion

string
Pinned frontend build version

HTTP response status codes for "{title}":

Code samples for "{title}":

Request example

curl -X PATCH \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Content-Type: application/json" \ -d '{ "slug": "string", "name": "string", "appStoreUrl": "https://example.com", "playStoreUrl": "https://example.com", "theme": { "colors": { "background": "string", "foreground": "string", "card": "string", "cardText": "string", "mutedText": "string", "primary": "string", "primaryText": "string", "border": "string", "bonusBadge": "string", "bonusBadgeText": "string", "saleBadge": "string", "saleBadgeText": "string", "salePrice": "string", "limitedBadge": "string", "limitedBadgeText": "string", "categoryActive": "string", "categoryActiveText": "string", "categoryInactiveText": "string" }, "typography": { "fontFamily": "string", "fontFamilyHeading": "string", "googleFontsUrl": null }, "radius": "string", "motion": { "intensity": "playful", "reducedMotion": false }, "zones": { "page": { "backgroundImage": "string", "backdropFilter": "string" }, "header": { "glow": "string", "backgroundGradient": "string", "borderGlow": "string" }, "heroBanner": { "overlay": "string" }, "productCard": { "shape": "rounded", "layout": "detailed", "borderStyle": "solid", "glow": "string", "flashStyle": "pulse", "image": { "background": "string", "display": "contain", "ratio": "1:1", "padding": "string", "backdrop": "off" } }, "particles": { "effect": "none", "zone": "fullPage" } } }, "deepLink": {}, "authConfig": {}, "frontendVersion": "string"}' \ "https://services.unity.com/api/webshop/v1/projects/{projectId}/environments/{environmentId}/webshop"

Response example

{ "id": "string", "slug": "string", "publisherSlug": "string", "projectId": "string", "environmentId": "string", "name": "string", "status": "draft", "generation": { "status": "none", "error": "string", "feedback": "string", "startedAt": "2024-01-01T00:00:00Z" }, "appStoreUrl": "https://example.com", "playStoreUrl": "https://example.com", "screenshotUrls": [ { "url": "string", "source": "appStore" } ], "brandingUrls": { "logoUrl": "https://example.com", "logoThumbUrl": "https://example.com", "faviconUrl": "https://example.com", "appleTouchIconUrl": "https://example.com", "heroBanner": { "url": "https://example.com", "enabled": true, "effects": { "glow": "string", "borderStyle": "none", "borderColor": "string", "borderWidth": "string" }, "sources": [ { "url": "https://example.com", "width": 0 } ] }, "pageBackdrop": "https://example.com", "pageBackdropFocus": { "x": 0, "y": 0 }, "thumbnailUrl": "https://example.com" }, "livePublication": { "publisherSlug": "string", "slug": "string", "publishedAt": "2024-01-01T00:00:00Z", "brandingUrls": { "logoUrl": "https://example.com", "logoThumbUrl": "https://example.com", "faviconUrl": "https://example.com", "appleTouchIconUrl": "https://example.com", "heroBanner": { "url": "https://example.com", "enabled": true, "effects": { "glow": "string", "borderStyle": "none", "borderColor": "string", "borderWidth": "string" }, "sources": [ { "url": null, "width": null } ] }, "pageBackdrop": "https://example.com", "pageBackdropFocus": { "x": 0, "y": 0 }, "thumbnailUrl": "https://example.com" } }, "environments": [ { "environmentId": "string", "status": "draft", "isPrimary": true, "publishedAt": "2024-01-01T00:00:00Z" } ], "createdAt": "2024-01-01T00:00:00Z", "updatedAt": "2024-01-01T00:00:00Z", "draftUpdatedAt": "2024-01-01T00:00:00Z", "theme": {}, "deepLink": {}, "authConfig": {}, "frontendVersion": "string", "warnings": [ "string" ]}

Delete webshop


Permanently deletes the webshop, all its environments, and associated assets. Published content is taken offline.
Authorizations
User
HTTP: User
HTTP Authorization Scheme: bearer

Path parameters for "{title}"

projectId

string
必須
Genesis ID of the project

environmentId

string
必須
Genesis ID of the environment

HTTP response status codes for "{title}":

Code samples for "{title}":

Request example

curl -X DELETE \ -H "Authorization: Bearer <YOUR_TOKEN>" \ "https://services.unity.com/api/webshop/v1/projects/{projectId}/environments/{environmentId}/webshop"

Response example

{ "type": "string", "title": "string", "status": 0, "detail": "string", "instance": "string", "code": "slug_taken"}

Publish webshop configuration


Only the primary environment can be published. Non-primary environments are draft-only workspaces accessed via /_preview and return 409 if a publish is attempted. For the primary env, this snapshots the current draft config into webshop_publications and regenerates the pre-rendered HTML shell served at the public URL. The storefront HTML propagates asynchronously — typically within seconds of the 200 response. A draft config is not required: publishing without one (e.g. before any theme generation) takes the shop live on the predefined default layout. Snapshot semantics: the snapshot is taken as-of the click, not as-of the commit. A PATCH /webshop that commits between this request arriving and the publish completing will NOT be included in this publication and requires a follow-up publish to surface. Concurrent publish / unpublish on the same webshop are serialized so the final state is deterministic. A successful publish may carry a
warnings
array on the response: non-fatal advisories about the published shop, each prefixed with a stable code. Currently
payment-routing-not-configured
is emitted when the environment has no payment-provider routing configured, in which case players see external payment as unavailable until routing is set up.
Authorizations
User
HTTP: User
HTTP Authorization Scheme: bearer

Path parameters for "{title}"

projectId

string
必須
Genesis ID of the project

environmentId

string
必須
Genesis ID of the environment

HTTP response status codes for "{title}":

Code samples for "{title}":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ "https://services.unity.com/api/webshop/v1/projects/{projectId}/environments/{environmentId}/webshop/publish"

Response example

{ "id": "string", "slug": "string", "publisherSlug": "string", "projectId": "string", "environmentId": "string", "name": "string", "status": "draft", "generation": { "status": "none", "error": "string", "feedback": "string", "startedAt": "2024-01-01T00:00:00Z" }, "appStoreUrl": "https://example.com", "playStoreUrl": "https://example.com", "screenshotUrls": [ { "url": "string", "source": "appStore" } ], "brandingUrls": { "logoUrl": "https://example.com", "logoThumbUrl": "https://example.com", "faviconUrl": "https://example.com", "appleTouchIconUrl": "https://example.com", "heroBanner": { "url": "https://example.com", "enabled": true, "effects": { "glow": "string", "borderStyle": "none", "borderColor": "string", "borderWidth": "string" }, "sources": [ { "url": "https://example.com", "width": 0 } ] }, "pageBackdrop": "https://example.com", "pageBackdropFocus": { "x": 0, "y": 0 }, "thumbnailUrl": "https://example.com" }, "livePublication": { "publisherSlug": "string", "slug": "string", "publishedAt": "2024-01-01T00:00:00Z", "brandingUrls": { "logoUrl": "https://example.com", "logoThumbUrl": "https://example.com", "faviconUrl": "https://example.com", "appleTouchIconUrl": "https://example.com", "heroBanner": { "url": "https://example.com", "enabled": true, "effects": { "glow": "string", "borderStyle": "none", "borderColor": "string", "borderWidth": "string" }, "sources": [ { "url": null, "width": null } ] }, "pageBackdrop": "https://example.com", "pageBackdropFocus": { "x": 0, "y": 0 }, "thumbnailUrl": "https://example.com" } }, "environments": [ { "environmentId": "string", "status": "draft", "isPrimary": true, "publishedAt": "2024-01-01T00:00:00Z" } ], "createdAt": "2024-01-01T00:00:00Z", "updatedAt": "2024-01-01T00:00:00Z", "draftUpdatedAt": "2024-01-01T00:00:00Z", "theme": {}, "deepLink": {}, "authConfig": {}, "frontendVersion": "string", "warnings": [ "string" ]}

Promote a non-primary env's draft state into the primary env


Copies the source environment's draft state — draft_config (theme, deepLink, frontendVersion), screenshot_urls, branding_urls, scrape_data, and generation_* fields — into the webshop's primary environment's draft_config. The source environment is the env in the URL path; the target is always the webshop's primary environment. Does not publish.
Authorizations
User
HTTP: User
HTTP Authorization Scheme: bearer

Path parameters for "{title}"

projectId

string
必須
Genesis ID of the project

environmentId

string
必須
Genesis ID of the environment

HTTP response status codes for "{title}":

Code samples for "{title}":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ "https://services.unity.com/api/webshop/v1/projects/{projectId}/environments/{environmentId}/webshop/promote"

Response example

{ "id": "string", "slug": "string", "publisherSlug": "string", "projectId": "string", "environmentId": "string", "name": "string", "status": "draft", "generation": { "status": "none", "error": "string", "feedback": "string", "startedAt": "2024-01-01T00:00:00Z" }, "appStoreUrl": "https://example.com", "playStoreUrl": "https://example.com", "screenshotUrls": [ { "url": "string", "source": "appStore" } ], "brandingUrls": { "logoUrl": "https://example.com", "logoThumbUrl": "https://example.com", "faviconUrl": "https://example.com", "appleTouchIconUrl": "https://example.com", "heroBanner": { "url": "https://example.com", "enabled": true, "effects": { "glow": "string", "borderStyle": "none", "borderColor": "string", "borderWidth": "string" }, "sources": [ { "url": "https://example.com", "width": 0 } ] }, "pageBackdrop": "https://example.com", "pageBackdropFocus": { "x": 0, "y": 0 }, "thumbnailUrl": "https://example.com" }, "livePublication": { "publisherSlug": "string", "slug": "string", "publishedAt": "2024-01-01T00:00:00Z", "brandingUrls": { "logoUrl": "https://example.com", "logoThumbUrl": "https://example.com", "faviconUrl": "https://example.com", "appleTouchIconUrl": "https://example.com", "heroBanner": { "url": "https://example.com", "enabled": true, "effects": { "glow": "string", "borderStyle": "none", "borderColor": "string", "borderWidth": "string" }, "sources": [ { "url": null, "width": null } ] }, "pageBackdrop": "https://example.com", "pageBackdropFocus": { "x": 0, "y": 0 }, "thumbnailUrl": "https://example.com" } }, "environments": [ { "environmentId": "string", "status": "draft", "isPrimary": true, "publishedAt": "2024-01-01T00:00:00Z" } ], "createdAt": "2024-01-01T00:00:00Z", "updatedAt": "2024-01-01T00:00:00Z", "draftUpdatedAt": "2024-01-01T00:00:00Z", "theme": {}, "deepLink": {}, "authConfig": {}, "frontendVersion": "string", "warnings": [ "string" ]}

Unpublish webshop configuration


Only the primary environment can be unpublished. Non-primary envs have no publication to reverse and return 409 if attempted. For the primary env, deletes the webshop_publications row and removes the pre-rendered GCS HTML shell. Idempotent — no error if already in draft.
Authorizations
User
HTTP: User
HTTP Authorization Scheme: bearer

Path parameters for "{title}"

projectId

string
必須
Genesis ID of the project

environmentId

string
必須
Genesis ID of the environment

HTTP response status codes for "{title}":

Code samples for "{title}":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ "https://services.unity.com/api/webshop/v1/projects/{projectId}/environments/{environmentId}/webshop/unpublish"

Response example

{ "id": "string", "slug": "string", "publisherSlug": "string", "projectId": "string", "environmentId": "string", "name": "string", "status": "draft", "generation": { "status": "none", "error": "string", "feedback": "string", "startedAt": "2024-01-01T00:00:00Z" }, "appStoreUrl": "https://example.com", "playStoreUrl": "https://example.com", "screenshotUrls": [ { "url": "string", "source": "appStore" } ], "brandingUrls": { "logoUrl": "https://example.com", "logoThumbUrl": "https://example.com", "faviconUrl": "https://example.com", "appleTouchIconUrl": "https://example.com", "heroBanner": { "url": "https://example.com", "enabled": true, "effects": { "glow": "string", "borderStyle": "none", "borderColor": "string", "borderWidth": "string" }, "sources": [ { "url": "https://example.com", "width": 0 } ] }, "pageBackdrop": "https://example.com", "pageBackdropFocus": { "x": 0, "y": 0 }, "thumbnailUrl": "https://example.com" }, "livePublication": { "publisherSlug": "string", "slug": "string", "publishedAt": "2024-01-01T00:00:00Z", "brandingUrls": { "logoUrl": "https://example.com", "logoThumbUrl": "https://example.com", "faviconUrl": "https://example.com", "appleTouchIconUrl": "https://example.com", "heroBanner": { "url": "https://example.com", "enabled": true, "effects": { "glow": "string", "borderStyle": "none", "borderColor": "string", "borderWidth": "string" }, "sources": [ { "url": null, "width": null } ] }, "pageBackdrop": "https://example.com", "pageBackdropFocus": { "x": 0, "y": 0 }, "thumbnailUrl": "https://example.com" } }, "environments": [ { "environmentId": "string", "status": "draft", "isPrimary": true, "publishedAt": "2024-01-01T00:00:00Z" } ], "createdAt": "2024-01-01T00:00:00Z", "updatedAt": "2024-01-01T00:00:00Z", "draftUpdatedAt": "2024-01-01T00:00:00Z", "theme": {}, "deepLink": {}, "authConfig": {}, "frontendVersion": "string", "warnings": [ "string" ]}

Check if a (publisher, webshop) slug pair is available for this org


Pre-flight availability check for the dashboard slug editor. HEAD request — answer is fully carried by HTTP status: 200 available, 409 taken, 400 bad format, 500 error. Scoped by organization since publishers are globally-unique but claimed by exactly one org.
Authorizations
User
HTTP: User
HTTP Authorization Scheme: bearer

Path parameters for "{title}"

organizationId

string
必須
Unity organization ID (numeric Genesis ID)

Query parameters for "{title}"

publisherSlug

string
必須
No description

slug

string
Optional webshop slug. Omit to check only whether the publisher is usable by this org. Provide to additionally check that no webshop under that publisher already uses the slug.

HTTP response status codes for "{title}":

Code samples for "{title}":

Request example

curl -X HEAD \ -H "Authorization: Bearer <YOUR_TOKEN>" \ "https://services.unity.com/api/webshop/v1/organizations/{organizationId}/webshop/slug-availability"

Response example

{ "type": "string", "title": "string", "status": 0, "detail": "string", "instance": "string", "code": "slug_taken"}

Fetch app store metadata and screenshots


Scrapes every store URL configured on this webshop (Apple App Store and/or Google Play). Returns game metadata (name, genre, description) and screenshot URLs merged from all configured stores; when both are configured, Apple metadata takes precedence. Replaces any previously scraped data; user-uploaded screenshots are preserved. When one store fails but another succeeds, the successful store's results are returned.
Authorizations
User
HTTP: User
HTTP Authorization Scheme: bearer

Path parameters for "{title}"

projectId

string
必須
Genesis ID of the project

environmentId

string
必須
Genesis ID of the environment

HTTP response status codes for "{title}":

Code samples for "{title}":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ "https://services.unity.com/api/webshop/v1/projects/{projectId}/environments/{environmentId}/webshop/scrape"

Response example

{ "gameName": "string", "gameDescription": "string", "genre": "string", "developer": "string", "iconUrl": "string", "screenshotUrls": [ { "url": "string", "source": "appStore" } ]}

Upload screenshots for theme generation


Uploads screenshot images to Live Content. CDN URLs are appended to the webshop's screenshotUrls.
Authorizations
User
HTTP: User
HTTP Authorization Scheme: bearer

Path parameters for "{title}"

projectId

string
必須
Genesis ID of the project

environmentId

string
必須
Genesis ID of the environment

Request body for "{title}"

Media Type:
multipart/form-data

screenshots

array[string]
必須
Screenshot images to upload. Max 2 MB per file, up to 6 files per request; the total request body must stay under 10 MB.

HTTP response status codes for "{title}":

Code samples for "{title}":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Content-Type: multipart/form-data" \ -d '{"screenshots":["string"]}' \ "https://services.unity.com/api/webshop/v1/projects/{projectId}/environments/{environmentId}/webshop/screenshots"

Response example

{ "screenshotUrls": [ { "url": "string", "source": "appStore" } ], "rejected": [ { "fileName": "string", "reason": "tooLarge" } ]}

Delete uploaded screenshots


Removes user-uploaded screenshot files from Live Content and their references from the database. Scraped App Store screenshots are preserved.
Authorizations
User
HTTP: User
HTTP Authorization Scheme: bearer

Path parameters for "{title}"

projectId

string
必須
Genesis ID of the project

environmentId

string
必須
Genesis ID of the environment

HTTP response status codes for "{title}":

Code samples for "{title}":

Request example

curl -X DELETE \ -H "Authorization: Bearer <YOUR_TOKEN>" \ "https://services.unity.com/api/webshop/v1/projects/{projectId}/environments/{environmentId}/webshop/screenshots"

Response example

{ "screenshotUrls": [ { "url": "string", "source": "appStore" } ], "rejected": [ { "fileName": "string", "reason": "tooLarge" } ]}

Upload hero banner image


Uploads a hero banner image for the webshop. The image is resized to 1920x384 pixels (5:1) and converted to WebP format. Replaces any existing hero banner.
Authorizations
User
HTTP: User
HTTP Authorization Scheme: bearer

Path parameters for "{title}"

projectId

string
必須
Genesis ID of the project

environmentId

string
必須
Genesis ID of the environment

Request body for "{title}"

Media Type:
multipart/form-data

banner

string
必須
Hero banner image file (PNG, JPEG, or WebP, max 5 MB)

HTTP response status codes for "{title}":

Code samples for "{title}":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Content-Type: multipart/form-data" \ -d '{"banner":"string"}' \ "https://services.unity.com/api/webshop/v1/projects/{projectId}/environments/{environmentId}/webshop/hero-banner"

Response example

{ "id": "string", "slug": "string", "publisherSlug": "string", "projectId": "string", "environmentId": "string", "name": "string", "status": "draft", "generation": { "status": "none", "error": "string", "feedback": "string", "startedAt": "2024-01-01T00:00:00Z" }, "appStoreUrl": "https://example.com", "playStoreUrl": "https://example.com", "screenshotUrls": [ { "url": "string", "source": "appStore" } ], "brandingUrls": { "logoUrl": "https://example.com", "logoThumbUrl": "https://example.com", "faviconUrl": "https://example.com", "appleTouchIconUrl": "https://example.com", "heroBanner": { "url": "https://example.com", "enabled": true, "effects": { "glow": "string", "borderStyle": "none", "borderColor": "string", "borderWidth": "string" }, "sources": [ { "url": "https://example.com", "width": 0 } ] }, "pageBackdrop": "https://example.com", "pageBackdropFocus": { "x": 0, "y": 0 }, "thumbnailUrl": "https://example.com" }, "livePublication": { "publisherSlug": "string", "slug": "string", "publishedAt": "2024-01-01T00:00:00Z", "brandingUrls": { "logoUrl": "https://example.com", "logoThumbUrl": "https://example.com", "faviconUrl": "https://example.com", "appleTouchIconUrl": "https://example.com", "heroBanner": { "url": "https://example.com", "enabled": true, "effects": { "glow": "string", "borderStyle": "none", "borderColor": "string", "borderWidth": "string" }, "sources": [ { "url": null, "width": null } ] }, "pageBackdrop": "https://example.com", "pageBackdropFocus": { "x": 0, "y": 0 }, "thumbnailUrl": "https://example.com" } }, "environments": [ { "environmentId": "string", "status": "draft", "isPrimary": true, "publishedAt": "2024-01-01T00:00:00Z" } ], "createdAt": "2024-01-01T00:00:00Z", "updatedAt": "2024-01-01T00:00:00Z", "draftUpdatedAt": "2024-01-01T00:00:00Z", "theme": {}, "deepLink": {}, "authConfig": {}, "frontendVersion": "string", "warnings": [ "string" ]}

Delete hero banner


Clears the hero banner image and returns the updated webshop.
Authorizations
User
HTTP: User
HTTP Authorization Scheme: bearer

Path parameters for "{title}"

projectId

string
必須
Genesis ID of the project

environmentId

string
必須
Genesis ID of the environment

HTTP response status codes for "{title}":

Code samples for "{title}":

Request example

curl -X DELETE \ -H "Authorization: Bearer <YOUR_TOKEN>" \ "https://services.unity.com/api/webshop/v1/projects/{projectId}/environments/{environmentId}/webshop/hero-banner"

Response example

{ "id": "string", "slug": "string", "publisherSlug": "string", "projectId": "string", "environmentId": "string", "name": "string", "status": "draft", "generation": { "status": "none", "error": "string", "feedback": "string", "startedAt": "2024-01-01T00:00:00Z" }, "appStoreUrl": "https://example.com", "playStoreUrl": "https://example.com", "screenshotUrls": [ { "url": "string", "source": "appStore" } ], "brandingUrls": { "logoUrl": "https://example.com", "logoThumbUrl": "https://example.com", "faviconUrl": "https://example.com", "appleTouchIconUrl": "https://example.com", "heroBanner": { "url": "https://example.com", "enabled": true, "effects": { "glow": "string", "borderStyle": "none", "borderColor": "string", "borderWidth": "string" }, "sources": [ { "url": "https://example.com", "width": 0 } ] }, "pageBackdrop": "https://example.com", "pageBackdropFocus": { "x": 0, "y": 0 }, "thumbnailUrl": "https://example.com" }, "livePublication": { "publisherSlug": "string", "slug": "string", "publishedAt": "2024-01-01T00:00:00Z", "brandingUrls": { "logoUrl": "https://example.com", "logoThumbUrl": "https://example.com", "faviconUrl": "https://example.com", "appleTouchIconUrl": "https://example.com", "heroBanner": { "url": "https://example.com", "enabled": true, "effects": { "glow": "string", "borderStyle": "none", "borderColor": "string", "borderWidth": "string" }, "sources": [ { "url": null, "width": null } ] }, "pageBackdrop": "https://example.com", "pageBackdropFocus": { "x": 0, "y": 0 }, "thumbnailUrl": "https://example.com" } }, "environments": [ { "environmentId": "string", "status": "draft", "isPrimary": true, "publishedAt": "2024-01-01T00:00:00Z" } ], "createdAt": "2024-01-01T00:00:00Z", "updatedAt": "2024-01-01T00:00:00Z", "draftUpdatedAt": "2024-01-01T00:00:00Z", "theme": {}, "deepLink": {}, "authConfig": {}, "frontendVersion": "string", "warnings": [ "string" ]}

Upload backdrop image


Uploads the full-page background rendered behind the storefront. The image is re-encoded to WebP (downscaled when very large) and replaces any existing page backdrop.
Authorizations
User
HTTP: User
HTTP Authorization Scheme: bearer

Path parameters for "{title}"

projectId

string
必須
Genesis ID of the project

environmentId

string
必須
Genesis ID of the environment

Request body for "{title}"

Media Type:
multipart/form-data

backdrop

string
必須
Backdrop image file (PNG, JPEG, or WebP, max 10 MB)

HTTP response status codes for "{title}":

Code samples for "{title}":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Content-Type: multipart/form-data" \ -d '{"backdrop":"string"}' \ "https://services.unity.com/api/webshop/v1/projects/{projectId}/environments/{environmentId}/webshop/backdrop"

Response example

{ "id": "string", "slug": "string", "publisherSlug": "string", "projectId": "string", "environmentId": "string", "name": "string", "status": "draft", "generation": { "status": "none", "error": "string", "feedback": "string", "startedAt": "2024-01-01T00:00:00Z" }, "appStoreUrl": "https://example.com", "playStoreUrl": "https://example.com", "screenshotUrls": [ { "url": "string", "source": "appStore" } ], "brandingUrls": { "logoUrl": "https://example.com", "logoThumbUrl": "https://example.com", "faviconUrl": "https://example.com", "appleTouchIconUrl": "https://example.com", "heroBanner": { "url": "https://example.com", "enabled": true, "effects": { "glow": "string", "borderStyle": "none", "borderColor": "string", "borderWidth": "string" }, "sources": [ { "url": "https://example.com", "width": 0 } ] }, "pageBackdrop": "https://example.com", "pageBackdropFocus": { "x": 0, "y": 0 }, "thumbnailUrl": "https://example.com" }, "livePublication": { "publisherSlug": "string", "slug": "string", "publishedAt": "2024-01-01T00:00:00Z", "brandingUrls": { "logoUrl": "https://example.com", "logoThumbUrl": "https://example.com", "faviconUrl": "https://example.com", "appleTouchIconUrl": "https://example.com", "heroBanner": { "url": "https://example.com", "enabled": true, "effects": { "glow": "string", "borderStyle": "none", "borderColor": "string", "borderWidth": "string" }, "sources": [ { "url": null, "width": null } ] }, "pageBackdrop": "https://example.com", "pageBackdropFocus": { "x": 0, "y": 0 }, "thumbnailUrl": "https://example.com" } }, "environments": [ { "environmentId": "string", "status": "draft", "isPrimary": true, "publishedAt": "2024-01-01T00:00:00Z" } ], "createdAt": "2024-01-01T00:00:00Z", "updatedAt": "2024-01-01T00:00:00Z", "draftUpdatedAt": "2024-01-01T00:00:00Z", "theme": {}, "deepLink": {}, "authConfig": {}, "frontendVersion": "string", "warnings": [ "string" ]}

Delete backdrop


Clears the page backdrop and its focal point, and returns the updated webshop.
Authorizations
User
HTTP: User
HTTP Authorization Scheme: bearer

Path parameters for "{title}"

projectId

string
必須
Genesis ID of the project

environmentId

string
必須
Genesis ID of the environment

HTTP response status codes for "{title}":

Code samples for "{title}":

Request example

curl -X DELETE \ -H "Authorization: Bearer <YOUR_TOKEN>" \ "https://services.unity.com/api/webshop/v1/projects/{projectId}/environments/{environmentId}/webshop/backdrop"

Response example

{ "id": "string", "slug": "string", "publisherSlug": "string", "projectId": "string", "environmentId": "string", "name": "string", "status": "draft", "generation": { "status": "none", "error": "string", "feedback": "string", "startedAt": "2024-01-01T00:00:00Z" }, "appStoreUrl": "https://example.com", "playStoreUrl": "https://example.com", "screenshotUrls": [ { "url": "string", "source": "appStore" } ], "brandingUrls": { "logoUrl": "https://example.com", "logoThumbUrl": "https://example.com", "faviconUrl": "https://example.com", "appleTouchIconUrl": "https://example.com", "heroBanner": { "url": "https://example.com", "enabled": true, "effects": { "glow": "string", "borderStyle": "none", "borderColor": "string", "borderWidth": "string" }, "sources": [ { "url": "https://example.com", "width": 0 } ] }, "pageBackdrop": "https://example.com", "pageBackdropFocus": { "x": 0, "y": 0 }, "thumbnailUrl": "https://example.com" }, "livePublication": { "publisherSlug": "string", "slug": "string", "publishedAt": "2024-01-01T00:00:00Z", "brandingUrls": { "logoUrl": "https://example.com", "logoThumbUrl": "https://example.com", "faviconUrl": "https://example.com", "appleTouchIconUrl": "https://example.com", "heroBanner": { "url": "https://example.com", "enabled": true, "effects": { "glow": "string", "borderStyle": "none", "borderColor": "string", "borderWidth": "string" }, "sources": [ { "url": null, "width": null } ] }, "pageBackdrop": "https://example.com", "pageBackdropFocus": { "x": 0, "y": 0 }, "thumbnailUrl": "https://example.com" } }, "environments": [ { "environmentId": "string", "status": "draft", "isPrimary": true, "publishedAt": "2024-01-01T00:00:00Z" } ], "createdAt": "2024-01-01T00:00:00Z", "updatedAt": "2024-01-01T00:00:00Z", "draftUpdatedAt": "2024-01-01T00:00:00Z", "theme": {}, "deepLink": {}, "authConfig": {}, "frontendVersion": "string", "warnings": [ "string" ]}

Set backdrop focal point


Sets the page backdrop's focal point — the point of the image the player keeps in view as the cover-fit crop changes with viewport size. Requires a page backdrop to be set. Send x=50, y=50 to return to centered.
Authorizations
User
HTTP: User
HTTP Authorization Scheme: bearer

Path parameters for "{title}"

projectId

string
必須
Genesis ID of the project

environmentId

string
必須
Genesis ID of the environment

Request body for "{title}"

Media Type:
application/json

x

number
必須
No description

y

number
必須
No description

HTTP response status codes for "{title}":

Code samples for "{title}":

Request example

curl -X PUT \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Content-Type: application/json" \ -d '{ "x": 0, "y": 0}' \ "https://services.unity.com/api/webshop/v1/projects/{projectId}/environments/{environmentId}/webshop/backdrop/position"

Response example

{ "id": "string", "slug": "string", "publisherSlug": "string", "projectId": "string", "environmentId": "string", "name": "string", "status": "draft", "generation": { "status": "none", "error": "string", "feedback": "string", "startedAt": "2024-01-01T00:00:00Z" }, "appStoreUrl": "https://example.com", "playStoreUrl": "https://example.com", "screenshotUrls": [ { "url": "string", "source": "appStore" } ], "brandingUrls": { "logoUrl": "https://example.com", "logoThumbUrl": "https://example.com", "faviconUrl": "https://example.com", "appleTouchIconUrl": "https://example.com", "heroBanner": { "url": "https://example.com", "enabled": true, "effects": { "glow": "string", "borderStyle": "none", "borderColor": "string", "borderWidth": "string" }, "sources": [ { "url": "https://example.com", "width": 0 } ] }, "pageBackdrop": "https://example.com", "pageBackdropFocus": { "x": 0, "y": 0 }, "thumbnailUrl": "https://example.com" }, "livePublication": { "publisherSlug": "string", "slug": "string", "publishedAt": "2024-01-01T00:00:00Z", "brandingUrls": { "logoUrl": "https://example.com", "logoThumbUrl": "https://example.com", "faviconUrl": "https://example.com", "appleTouchIconUrl": "https://example.com", "heroBanner": { "url": "https://example.com", "enabled": true, "effects": { "glow": "string", "borderStyle": "none", "borderColor": "string", "borderWidth": "string" }, "sources": [ { "url": null, "width": null } ] }, "pageBackdrop": "https://example.com", "pageBackdropFocus": { "x": 0, "y": 0 }, "thumbnailUrl": "https://example.com" } }, "environments": [ { "environmentId": "string", "status": "draft", "isPrimary": true, "publishedAt": "2024-01-01T00:00:00Z" } ], "createdAt": "2024-01-01T00:00:00Z", "updatedAt": "2024-01-01T00:00:00Z", "draftUpdatedAt": "2024-01-01T00:00:00Z", "theme": {}, "deepLink": {}, "authConfig": {}, "frontendVersion": "string", "warnings": [ "string" ]}

Upload thumbnail image


Uploads a thumbnail image for the webshop. The image is resized to 1200x1200 pixels (square) and converted to WebP format. Replaces any existing thumbnail.
Authorizations
User
HTTP: User
HTTP Authorization Scheme: bearer

Path parameters for "{title}"

projectId

string
必須
Genesis ID of the project

environmentId

string
必須
Genesis ID of the environment

Request body for "{title}"

Media Type:
multipart/form-data

thumbnail

string
必須
Thumbnail image file (PNG, JPEG, or WebP, max 5 MB)

HTTP response status codes for "{title}":

Code samples for "{title}":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Content-Type: multipart/form-data" \ -d '{"thumbnail":"string"}' \ "https://services.unity.com/api/webshop/v1/projects/{projectId}/environments/{environmentId}/webshop/thumbnail"

Response example

{ "id": "string", "slug": "string", "publisherSlug": "string", "projectId": "string", "environmentId": "string", "name": "string", "status": "draft", "generation": { "status": "none", "error": "string", "feedback": "string", "startedAt": "2024-01-01T00:00:00Z" }, "appStoreUrl": "https://example.com", "playStoreUrl": "https://example.com", "screenshotUrls": [ { "url": "string", "source": "appStore" } ], "brandingUrls": { "logoUrl": "https://example.com", "logoThumbUrl": "https://example.com", "faviconUrl": "https://example.com", "appleTouchIconUrl": "https://example.com", "heroBanner": { "url": "https://example.com", "enabled": true, "effects": { "glow": "string", "borderStyle": "none", "borderColor": "string", "borderWidth": "string" }, "sources": [ { "url": "https://example.com", "width": 0 } ] }, "pageBackdrop": "https://example.com", "pageBackdropFocus": { "x": 0, "y": 0 }, "thumbnailUrl": "https://example.com" }, "livePublication": { "publisherSlug": "string", "slug": "string", "publishedAt": "2024-01-01T00:00:00Z", "brandingUrls": { "logoUrl": "https://example.com", "logoThumbUrl": "https://example.com", "faviconUrl": "https://example.com", "appleTouchIconUrl": "https://example.com", "heroBanner": { "url": "https://example.com", "enabled": true, "effects": { "glow": "string", "borderStyle": "none", "borderColor": "string", "borderWidth": "string" }, "sources": [ { "url": null, "width": null } ] }, "pageBackdrop": "https://example.com", "pageBackdropFocus": { "x": 0, "y": 0 }, "thumbnailUrl": "https://example.com" } }, "environments": [ { "environmentId": "string", "status": "draft", "isPrimary": true, "publishedAt": "2024-01-01T00:00:00Z" } ], "createdAt": "2024-01-01T00:00:00Z", "updatedAt": "2024-01-01T00:00:00Z", "draftUpdatedAt": "2024-01-01T00:00:00Z", "theme": {}, "deepLink": {}, "authConfig": {}, "frontendVersion": "string", "warnings": [ "string" ]}

Delete thumbnail


Removes the thumbnail image from GCS and clears thumbnail from the draft config.
Authorizations
User
HTTP: User
HTTP Authorization Scheme: bearer

Path parameters for "{title}"

projectId

string
必須
Genesis ID of the project

environmentId

string
必須
Genesis ID of the environment

HTTP response status codes for "{title}":

Code samples for "{title}":

Request example

curl -X DELETE \ -H "Authorization: Bearer <YOUR_TOKEN>" \ "https://services.unity.com/api/webshop/v1/projects/{projectId}/environments/{environmentId}/webshop/thumbnail"

Response example

{ "id": "string", "slug": "string", "publisherSlug": "string", "projectId": "string", "environmentId": "string", "name": "string", "status": "draft", "generation": { "status": "none", "error": "string", "feedback": "string", "startedAt": "2024-01-01T00:00:00Z" }, "appStoreUrl": "https://example.com", "playStoreUrl": "https://example.com", "screenshotUrls": [ { "url": "string", "source": "appStore" } ], "brandingUrls": { "logoUrl": "https://example.com", "logoThumbUrl": "https://example.com", "faviconUrl": "https://example.com", "appleTouchIconUrl": "https://example.com", "heroBanner": { "url": "https://example.com", "enabled": true, "effects": { "glow": "string", "borderStyle": "none", "borderColor": "string", "borderWidth": "string" }, "sources": [ { "url": "https://example.com", "width": 0 } ] }, "pageBackdrop": "https://example.com", "pageBackdropFocus": { "x": 0, "y": 0 }, "thumbnailUrl": "https://example.com" }, "livePublication": { "publisherSlug": "string", "slug": "string", "publishedAt": "2024-01-01T00:00:00Z", "brandingUrls": { "logoUrl": "https://example.com", "logoThumbUrl": "https://example.com", "faviconUrl": "https://example.com", "appleTouchIconUrl": "https://example.com", "heroBanner": { "url": "https://example.com", "enabled": true, "effects": { "glow": "string", "borderStyle": "none", "borderColor": "string", "borderWidth": "string" }, "sources": [ { "url": null, "width": null } ] }, "pageBackdrop": "https://example.com", "pageBackdropFocus": { "x": 0, "y": 0 }, "thumbnailUrl": "https://example.com" } }, "environments": [ { "environmentId": "string", "status": "draft", "isPrimary": true, "publishedAt": "2024-01-01T00:00:00Z" } ], "createdAt": "2024-01-01T00:00:00Z", "updatedAt": "2024-01-01T00:00:00Z", "draftUpdatedAt": "2024-01-01T00:00:00Z", "theme": {}, "deepLink": {}, "authConfig": {}, "frontendVersion": "string", "warnings": [ "string" ]}

Remove the webshop icon


Removes the icon derived from the app-store listing — the logo, logo thumbnail, favicon, and apple-touch-icon — from the webshop branding. The app-store icon reference is also cleared so regenerating the theme does not bring the icon back; other scraped metadata and screenshots are kept, so a fresh theme can still be generated without an icon.
Authorizations
User
HTTP: User
HTTP Authorization Scheme: bearer

Path parameters for "{title}"

projectId

string
必須
Genesis ID of the project

environmentId

string
必須
Genesis ID of the environment

HTTP response status codes for "{title}":

Code samples for "{title}":

Request example

curl -X DELETE \ -H "Authorization: Bearer <YOUR_TOKEN>" \ "https://services.unity.com/api/webshop/v1/projects/{projectId}/environments/{environmentId}/webshop/icon"

Response example

{ "id": "string", "slug": "string", "publisherSlug": "string", "projectId": "string", "environmentId": "string", "name": "string", "status": "draft", "generation": { "status": "none", "error": "string", "feedback": "string", "startedAt": "2024-01-01T00:00:00Z" }, "appStoreUrl": "https://example.com", "playStoreUrl": "https://example.com", "screenshotUrls": [ { "url": "string", "source": "appStore" } ], "brandingUrls": { "logoUrl": "https://example.com", "logoThumbUrl": "https://example.com", "faviconUrl": "https://example.com", "appleTouchIconUrl": "https://example.com", "heroBanner": { "url": "https://example.com", "enabled": true, "effects": { "glow": "string", "borderStyle": "none", "borderColor": "string", "borderWidth": "string" }, "sources": [ { "url": "https://example.com", "width": 0 } ] }, "pageBackdrop": "https://example.com", "pageBackdropFocus": { "x": 0, "y": 0 }, "thumbnailUrl": "https://example.com" }, "livePublication": { "publisherSlug": "string", "slug": "string", "publishedAt": "2024-01-01T00:00:00Z", "brandingUrls": { "logoUrl": "https://example.com", "logoThumbUrl": "https://example.com", "faviconUrl": "https://example.com", "appleTouchIconUrl": "https://example.com", "heroBanner": { "url": "https://example.com", "enabled": true, "effects": { "glow": "string", "borderStyle": "none", "borderColor": "string", "borderWidth": "string" }, "sources": [ { "url": null, "width": null } ] }, "pageBackdrop": "https://example.com", "pageBackdropFocus": { "x": 0, "y": 0 }, "thumbnailUrl": "https://example.com" } }, "environments": [ { "environmentId": "string", "status": "draft", "isPrimary": true, "publishedAt": "2024-01-01T00:00:00Z" } ], "createdAt": "2024-01-01T00:00:00Z", "updatedAt": "2024-01-01T00:00:00Z", "draftUpdatedAt": "2024-01-01T00:00:00Z", "theme": {}, "deepLink": {}, "authConfig": {}, "frontendVersion": "string", "warnings": [ "string" ]}

Trigger AI theme generation


Starts async theme generation from scraped assets and screenshots. Poll GET /webshop to check generation.status for completion.
Authorizations
User
HTTP: User
HTTP Authorization Scheme: bearer

Path parameters for "{title}"

projectId

string
必須
Genesis ID of the project

environmentId

string
必須
Genesis ID of the environment

Request body for "{title}"

Media Type:
application/json

feedback

string
Optional feedback for iterative theme refinement.

HTTP response status codes for "{title}":

Code samples for "{title}":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Content-Type: application/json" \ -d '{ "feedback": "string"}' \ "https://services.unity.com/api/webshop/v1/projects/{projectId}/environments/{environmentId}/webshop/generate-theme"

Response example

{ "generationStatus": "pending", "themeBudget": { "daily": { "limitCents": 0, "usedCents": 0, "resetsAt": "2024-01-01T00:00:00Z" }, "weekly": { "limitCents": 0, "usedCents": 0, "resetsAt": "2024-01-01T00:00:00Z" } }}

Reset theme and generation state


Clears the theme from draft config and resets generation status, allowing regeneration.
deepLink
and
frontendVersion
are preserved in every scope.
Authorizations
User
HTTP: User
HTTP Authorization Scheme: bearer

Path parameters for "{title}"

projectId

string
必須
Genesis ID of the project

environmentId

string
必須
Genesis ID of the environment

Query parameters for "{title}"

scope

string
デフォルト: styles
What to clear.
styles
(default) clears the theme only — branding, screenshots, and scrape data are preserved for reuse on the next generation.
all
additionally clears uploaded branding, screenshots, and scraped App Store metadata so the next generation starts from a clean slate.

HTTP response status codes for "{title}":

Code samples for "{title}":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ "https://services.unity.com/api/webshop/v1/projects/{projectId}/environments/{environmentId}/webshop/reset-theme"

Response example

{ "id": "string", "slug": "string", "publisherSlug": "string", "projectId": "string", "environmentId": "string", "name": "string", "status": "draft", "generation": { "status": "none", "error": "string", "feedback": "string", "startedAt": "2024-01-01T00:00:00Z" }, "appStoreUrl": "https://example.com", "playStoreUrl": "https://example.com", "screenshotUrls": [ { "url": "string", "source": "appStore" } ], "brandingUrls": { "logoUrl": "https://example.com", "logoThumbUrl": "https://example.com", "faviconUrl": "https://example.com", "appleTouchIconUrl": "https://example.com", "heroBanner": { "url": "https://example.com", "enabled": true, "effects": { "glow": "string", "borderStyle": "none", "borderColor": "string", "borderWidth": "string" }, "sources": [ { "url": "https://example.com", "width": 0 } ] }, "pageBackdrop": "https://example.com", "pageBackdropFocus": { "x": 0, "y": 0 }, "thumbnailUrl": "https://example.com" }, "livePublication": { "publisherSlug": "string", "slug": "string", "publishedAt": "2024-01-01T00:00:00Z", "brandingUrls": { "logoUrl": "https://example.com", "logoThumbUrl": "https://example.com", "faviconUrl": "https://example.com", "appleTouchIconUrl": "https://example.com", "heroBanner": { "url": "https://example.com", "enabled": true, "effects": { "glow": "string", "borderStyle": "none", "borderColor": "string", "borderWidth": "string" }, "sources": [ { "url": null, "width": null } ] }, "pageBackdrop": "https://example.com", "pageBackdropFocus": { "x": 0, "y": 0 }, "thumbnailUrl": "https://example.com" } }, "environments": [ { "environmentId": "string", "status": "draft", "isPrimary": true, "publishedAt": "2024-01-01T00:00:00Z" } ], "createdAt": "2024-01-01T00:00:00Z", "updatedAt": "2024-01-01T00:00:00Z", "draftUpdatedAt": "2024-01-01T00:00:00Z", "theme": {}, "deepLink": {}, "authConfig": {}, "frontendVersion": "string", "warnings": [ "string" ]}

Cancel an in-flight theme generation


Signals the background theme-generation job for this environment to stop. The webshop's
generation.status
flips to
cancelled
asynchronously once the queue confirms cancellation; the response body reflects the env state at the moment the cancel was accepted.
Authorizations
User
HTTP: User
HTTP Authorization Scheme: bearer

Path parameters for "{title}"

projectId

string
必須
Genesis ID of the project

environmentId

string
必須
Genesis ID of the environment

HTTP response status codes for "{title}":

Code samples for "{title}":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ "https://services.unity.com/api/webshop/v1/projects/{projectId}/environments/{environmentId}/webshop/cancel-theme-generation"

Response example

{ "id": "string", "slug": "string", "publisherSlug": "string", "projectId": "string", "environmentId": "string", "name": "string", "status": "draft", "generation": { "status": "none", "error": "string", "feedback": "string", "startedAt": "2024-01-01T00:00:00Z" }, "appStoreUrl": "https://example.com", "playStoreUrl": "https://example.com", "screenshotUrls": [ { "url": "string", "source": "appStore" } ], "brandingUrls": { "logoUrl": "https://example.com", "logoThumbUrl": "https://example.com", "faviconUrl": "https://example.com", "appleTouchIconUrl": "https://example.com", "heroBanner": { "url": "https://example.com", "enabled": true, "effects": { "glow": "string", "borderStyle": "none", "borderColor": "string", "borderWidth": "string" }, "sources": [ { "url": "https://example.com", "width": 0 } ] }, "pageBackdrop": "https://example.com", "pageBackdropFocus": { "x": 0, "y": 0 }, "thumbnailUrl": "https://example.com" }, "livePublication": { "publisherSlug": "string", "slug": "string", "publishedAt": "2024-01-01T00:00:00Z", "brandingUrls": { "logoUrl": "https://example.com", "logoThumbUrl": "https://example.com", "faviconUrl": "https://example.com", "appleTouchIconUrl": "https://example.com", "heroBanner": { "url": "https://example.com", "enabled": true, "effects": { "glow": "string", "borderStyle": "none", "borderColor": "string", "borderWidth": "string" }, "sources": [ { "url": null, "width": null } ] }, "pageBackdrop": "https://example.com", "pageBackdropFocus": { "x": 0, "y": 0 }, "thumbnailUrl": "https://example.com" } }, "environments": [ { "environmentId": "string", "status": "draft", "isPrimary": true, "publishedAt": "2024-01-01T00:00:00Z" } ], "createdAt": "2024-01-01T00:00:00Z", "updatedAt": "2024-01-01T00:00:00Z", "draftUpdatedAt": "2024-01-01T00:00:00Z", "theme": {}, "deepLink": {}, "authConfig": {}, "frontendVersion": "string", "warnings": [ "string" ]}

Refine the draft theme from natural-language feedback


Starts an asynchronous agent turn that edits the draft theme to satisfy the supplied feedback. Poll GET /webshop/refine/turns/{turnId} for the resulting theme edit receipt.
Authorizations
User
HTTP: User
HTTP Authorization Scheme: bearer

Path parameters for "{title}"

projectId

string
必須
Genesis ID of the project

environmentId

string
必須
Genesis ID of the environment

Request body for "{title}"

Media Type:
application/json

feedback

string
必須
Natural-language description of the change to make to the theme.

environmentName

string
Environment name (e.g., "production", "staging") embedded in this turn's committed edit receipt preview URL, for anonymous player auth scoping. Defaults to "production" if omitted.

HTTP response status codes for "{title}":

Code samples for "{title}":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Content-Type: application/json" \ -d '{ "feedback": "string", "environmentName": "string"}' \ "https://services.unity.com/api/webshop/v1/projects/{projectId}/environments/{environmentId}/webshop/refine"

Response example

{ "turnId": "string", "themeBudget": { "daily": { "limitCents": 0, "usedCents": 0, "resetsAt": "2024-01-01T00:00:00Z" }, "weekly": { "limitCents": 0, "usedCents": 0, "resetsAt": "2024-01-01T00:00:00Z" } }}

Get the status of a theme-refine turn


Returns the status of a refine turn and, once complete, the resulting theme edit receipt.
Authorizations
User
HTTP: User
HTTP Authorization Scheme: bearer

Path parameters for "{title}"

projectId

string
必須
Genesis ID of the project

environmentId

string
必須
Genesis ID of the environment

turnId

string
必須
The refine turn to look up.

HTTP response status codes for "{title}":

Code samples for "{title}":

Request example

curl -X GET \ -H "Authorization: Bearer <YOUR_TOKEN>" \ "https://services.unity.com/api/webshop/v1/projects/{projectId}/environments/{environmentId}/webshop/refine/turns/{turnId}"

Response example

{ "turnId": "string", "status": "pending", "receipt": { "theme": { "colors": { "background": "string", "foreground": "string", "card": "string", "cardText": "string", "mutedText": "string", "primary": "string", "primaryText": "string", "border": "string", "bonusBadge": "string", "bonusBadgeText": "string", "saleBadge": "string", "saleBadgeText": "string", "salePrice": "string", "limitedBadge": "string", "limitedBadgeText": "string", "categoryActive": "string", "categoryActiveText": "string", "categoryInactiveText": "string" }, "typography": { "fontFamily": "string", "fontFamilyHeading": "string", "googleFontsUrl": null }, "radius": "string", "motion": { "intensity": "playful", "reducedMotion": false }, "zones": { "page": { "backgroundImage": "string", "backdropFilter": "string" }, "header": { "glow": "string", "backgroundGradient": "string", "borderGlow": "string" }, "heroBanner": { "overlay": "string" }, "productCard": { "shape": "rounded", "layout": "detailed", "borderStyle": "solid", "glow": "string", "flashStyle": "pulse", "image": { "background": null, "display": null, "ratio": null, "padding": null, "backdrop": null } }, "particles": { "effect": "none", "zone": "fullPage" } } }, "snapshotId": "string", "previewUrl": "string", "changes": [ { "path": "string", "section": "string", "kind": "color", "before": "string", "after": "string" } ] }, "error": "string", "themeBudget": { "daily": { "limitCents": 0, "usedCents": 0, "resetsAt": "2024-01-01T00:00:00Z" }, "weekly": { "limitCents": 0, "usedCents": 0, "resetsAt": "2024-01-01T00:00:00Z" } }}

Get the active theme-chat session and recent messages


Returns the active conversation along with its most recent messages.
Authorizations
User
HTTP: User
HTTP Authorization Scheme: bearer

Path parameters for "{title}"

projectId

string
必須
Genesis ID of the project

environmentId

string
必須
Genesis ID of the environment

HTTP response status codes for "{title}":

Code samples for "{title}":

Request example

curl -X GET \ -H "Authorization: Bearer <YOUR_TOKEN>" \ "https://services.unity.com/api/webshop/v1/projects/{projectId}/environments/{environmentId}/webshop/theme-chat/session"

Response example

{ "session": { "id": "string", "status": "active", "createdAt": "2024-01-01T00:00:00Z", "updatedAt": "2024-01-01T00:00:00Z", "themeBudget": { "daily": { "limitCents": 0, "usedCents": 0, "resetsAt": "2024-01-01T00:00:00Z" }, "weekly": { "limitCents": 0, "usedCents": 0, "resetsAt": "2024-01-01T00:00:00Z" } } }, "messages": [ { "id": "string", "seq": 0, "role": "user", "kind": "message", "content": {}, "status": "final", "createdAt": "2024-01-01T00:00:00Z" } ]}

Open or resume the theme-chat session


Returns the environment's active theme-chat conversation, starting a new one if none is open.
Authorizations
User
HTTP: User
HTTP Authorization Scheme: bearer

Path parameters for "{title}"

projectId

string
必須
Genesis ID of the project

environmentId

string
必須
Genesis ID of the environment

HTTP response status codes for "{title}":

Code samples for "{title}":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ "https://services.unity.com/api/webshop/v1/projects/{projectId}/environments/{environmentId}/webshop/theme-chat/session"

Response example

{ "id": "string", "status": "active", "createdAt": "2024-01-01T00:00:00Z", "updatedAt": "2024-01-01T00:00:00Z", "themeBudget": { "daily": { "limitCents": 0, "usedCents": 0, "resetsAt": "2024-01-01T00:00:00Z" }, "weekly": { "limitCents": 0, "usedCents": 0, "resetsAt": "2024-01-01T00:00:00Z" } }}

Send a message to the theme-chat session


Sends a natural-language message and starts processing the resulting turn, returning ids to track it.
Authorizations
User
HTTP: User
HTTP Authorization Scheme: bearer

Path parameters for "{title}"

projectId

string
必須
Genesis ID of the project

environmentId

string
必須
Genesis ID of the environment

Request body for "{title}"

Media Type:
application/json

text

string
必須
The user's natural-language message.

environmentName

string
Environment name (e.g., "production", "staging") embedded in this turn's committed edit receipt preview URL, for anonymous player auth scoping. Defaults to "production" if omitted.

HTTP response status codes for "{title}":

Code samples for "{title}":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Content-Type: application/json" \ -d '{ "text": "string", "environmentName": "string"}' \ "https://services.unity.com/api/webshop/v1/projects/{projectId}/environments/{environmentId}/webshop/theme-chat/messages"

Response example

{ "messageId": "string", "turnId": "string"}

Stream theme-chat events (Server-Sent Events)


Streams session events as they occur, resuming from the optional since_seq cursor.
Authorizations
User
HTTP: User
HTTP Authorization Scheme: bearer

Path parameters for "{title}"

projectId

string
必須
Genesis ID of the project

environmentId

string
必須
Genesis ID of the environment

Query parameters for "{title}"

since_seq

integer
Resume cursor — only events after this sequence are delivered.

HTTP response status codes for "{title}":

Code samples for "{title}":

Request example

curl -X GET \ -H "Authorization: Bearer <YOUR_TOKEN>" \ "https://services.unity.com/api/webshop/v1/projects/{projectId}/environments/{environmentId}/webshop/theme-chat/stream"

Response example

"string"

Cancel an in-progress theme-chat turn


Requests cancellation of a turn that is still being processed.
Authorizations
User
HTTP: User
HTTP Authorization Scheme: bearer

Path parameters for "{title}"

projectId

string
必須
Genesis ID of the project

environmentId

string
必須
Genesis ID of the environment

Request body for "{title}"

Media Type:
application/json

turnId

string
必須
The in-progress turn to cancel.

HTTP response status codes for "{title}":

Code samples for "{title}":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Content-Type: application/json" \ -d '{ "turnId": "string"}' \ "https://services.unity.com/api/webshop/v1/projects/{projectId}/environments/{environmentId}/webshop/theme-chat/cancel"

Response example

{ "type": "string", "title": "string", "status": 0, "detail": "string", "instance": "string", "code": "slug_taken"}

Submit thumbs-up/down feedback on a theme-chat turn


Records a human rating of a completed turn as a quality signal. The rating is stored for reporting and does not change the theme.
Authorizations
User
HTTP: User
HTTP Authorization Scheme: bearer

Path parameters for "{title}"

projectId

string
必須
Genesis ID of the project

environmentId

string
必須
Genesis ID of the environment

turnId

string
必須
The chat turn being rated.

Request body for "{title}"

Media Type:
application/json

value

string
必須
The rating — "up" for thumbs-up, "down" for thumbs-down.

HTTP response status codes for "{title}":

Code samples for "{title}":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Content-Type: application/json" \ -d '{ "value": "up"}' \ "https://services.unity.com/api/webshop/v1/projects/{projectId}/environments/{environmentId}/webshop/theme-chat/turns/{turnId}/feedback"

Response example

{ "type": "string", "title": "string", "status": 0, "detail": "string", "instance": "string", "code": "slug_taken"}

Approve or reject a proposed theme-chat plan


Resolves a plan the assistant proposed for a larger change. Approving starts a new turn that applies it.
Authorizations
User
HTTP: User
HTTP Authorization Scheme: bearer

Path parameters for "{title}"

projectId

string
必須
Genesis ID of the project

environmentId

string
必須
Genesis ID of the environment

Request body for "{title}"

Media Type:
application/json

messageId

string
必須
The proposed-plan message to resolve.

approved

boolean
必須
True to apply the plan, false to reject it.

edits

object
Optional overrides applied to the plan before it executes on approval.

intent

string
No description

touchedFields

array[string]
No description

expectedOutcome

string
No description

environmentName

string
Environment name (e.g., "production", "staging") embedded in this turn's committed edit receipt preview URL, for anonymous player auth scoping. Defaults to "production" if omitted.

HTTP response status codes for "{title}":

Code samples for "{title}":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Content-Type: application/json" \ -d '{ "messageId": "string", "approved": true, "edits": { "intent": "string", "touchedFields": [ "string" ], "expectedOutcome": "string" }, "environmentName": "string"}' \ "https://services.unity.com/api/webshop/v1/projects/{projectId}/environments/{environmentId}/webshop/theme-chat/approve-plan"

Response example

{ "turnId": "string"}

Archive the active theme-chat session


Ends the active conversation. The next message starts a fresh one.
Authorizations
User
HTTP: User
HTTP Authorization Scheme: bearer

Path parameters for "{title}"

projectId

string
必須
Genesis ID of the project

environmentId

string
必須
Genesis ID of the environment

HTTP response status codes for "{title}":

Code samples for "{title}":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ "https://services.unity.com/api/webshop/v1/projects/{projectId}/environments/{environmentId}/webshop/theme-chat/archive"

Response example

{ "type": "string", "title": "string", "status": 0, "detail": "string", "instance": "string", "code": "slug_taken"}

Restore a theme snapshot within the chat session


Reverts the draft theme to an earlier snapshot and records it in the conversation. Returns the resulting theme edit receipt.
Authorizations
User
HTTP: User
HTTP Authorization Scheme: bearer

Path parameters for "{title}"

projectId

string
必須
Genesis ID of the project

environmentId

string
必須
Genesis ID of the environment

Request body for "{title}"

Media Type:
application/json

snapshotId

string
必須
The snapshot to restore the draft theme to.

HTTP response status codes for "{title}":

Code samples for "{title}":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Content-Type: application/json" \ -d '{ "snapshotId": "string"}' \ "https://services.unity.com/api/webshop/v1/projects/{projectId}/environments/{environmentId}/webshop/theme-chat/snapshots/restore"

Response example

{ "theme": { "colors": { "background": "string", "foreground": "string", "card": "string", "cardText": "string", "mutedText": "string", "primary": "string", "primaryText": "string", "border": "string", "bonusBadge": "string", "bonusBadgeText": "string", "saleBadge": "string", "saleBadgeText": "string", "salePrice": "string", "limitedBadge": "string", "limitedBadgeText": "string", "categoryActive": "string", "categoryActiveText": "string", "categoryInactiveText": "string" }, "typography": { "fontFamily": "string", "fontFamilyHeading": "string", "googleFontsUrl": null }, "radius": "string", "motion": { "intensity": "playful", "reducedMotion": false }, "zones": { "page": { "backgroundImage": "string", "backdropFilter": "string" }, "header": { "glow": "string", "backgroundGradient": "string", "borderGlow": "string" }, "heroBanner": { "overlay": "string" }, "productCard": { "shape": "rounded", "layout": "detailed", "borderStyle": "solid", "glow": "string", "flashStyle": "pulse", "image": { "background": "string", "display": "contain", "ratio": "1:1", "padding": "string", "backdrop": "off" } }, "particles": { "effect": "none", "zone": "fullPage" } } }, "snapshotId": "string", "previewUrl": "string", "changes": [ { "path": "string", "section": "string", "kind": "color", "before": "string", "after": "string" } ]}

Generate a preview URL with HMAC token


Generates an HMAC-signed preview token that unlocks draft config access. Token is valid for 72 hours. Requires admin auth.
Authorizations
User
HTTP: User
HTTP Authorization Scheme: bearer

Path parameters for "{title}"

projectId

string
必須
Genesis ID of the project

environmentId

string
必須
Genesis ID of the environment

Request body for "{title}"

Media Type:
application/json

environmentName

string
Environment name (e.g., "production", "staging") embedded in the preview token for anonymous player auth scoping. Defaults to "production" if omitted.

HTTP response status codes for "{title}":

Code samples for "{title}":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Content-Type: application/json" \ -d '{ "environmentName": "string"}' \ "https://services.unity.com/api/webshop/v1/projects/{projectId}/environments/{environmentId}/webshop/preview-token"

Response example

{ "url": "string", "expiresAt": "2024-01-01T00:00:00Z"}

Read payment-provider routing config for this environment


Returns the current payment-provider routing configuration for this environment, or an empty default if none has been set.
Authorizations
User
HTTP: User
HTTP Authorization Scheme: bearer

Path parameters for "{title}"

projectId

string
必須
Genesis ID of the project

environmentId

string
必須
Genesis ID of the environment

HTTP response status codes for "{title}":

Code samples for "{title}":

Request example

curl -X GET \ -H "Authorization: Bearer <YOUR_TOKEN>" \ "https://services.unity.com/api/webshop/v1/projects/{projectId}/environments/{environmentId}/webshop/payment-provider/configuration"

Response example

{ "providerRouting": {}, "fallbackProvider": "string"}

Replace payment-provider routing config for this environment


Overwrites the payment-provider routing configuration for this environment. Partial updates are not supported; the full configuration in the request body replaces any existing one.
Authorizations
User
HTTP: User
HTTP Authorization Scheme: bearer

Path parameters for "{title}"

projectId

string
必須
Genesis ID of the project

environmentId

string
必須
Genesis ID of the environment

Request body for "{title}"

Media Type:
application/json

providerRouting

object
必須
Map of tag -> ordered provider names. The first provider in each list that is available wins for that tag.

fallbackProvider

string
Fallback provider name used when no tag matches. The field name mirrors the IAP transaction-verifier's existing routing-config shape — the value is a payment provider name, not a webshop identifier.

HTTP response status codes for "{title}":

Code samples for "{title}":

Request example

curl -X PUT \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Content-Type: application/json" \ -d '{ "providerRouting": {}, "fallbackProvider": "string"}' \ "https://services.unity.com/api/webshop/v1/projects/{projectId}/environments/{environmentId}/webshop/payment-provider/configuration"

Response example

{ "providerRouting": {}, "fallbackProvider": "string"}

Reset payment-provider routing config for this environment


Removes the payment-provider routing configuration for this environment. Idempotent — returns 204 whether or not a configuration existed.
Authorizations
User
HTTP: User
HTTP Authorization Scheme: bearer

Path parameters for "{title}"

projectId

string
必須
Genesis ID of the project

environmentId

string
必須
Genesis ID of the environment

HTTP response status codes for "{title}":

Code samples for "{title}":

Request example

curl -X DELETE \ -H "Authorization: Bearer <YOUR_TOKEN>" \ "https://services.unity.com/api/webshop/v1/projects/{projectId}/environments/{environmentId}/webshop/payment-provider/configuration"

Response example

{ "type": "string", "title": "string", "status": 0, "detail": "string", "instance": "string", "code": "slug_taken"}

Deactivate an environment for the webshop


Deactivates a non-primary environment. If the environment was published, its published content is taken offline. Cannot deactivate the primary environment — returns 400. Path convention: every environment-scoped operation lives under the
…/environments/{environmentId}/webshop/…
prefix (this delete included). The
…/webshop/environments
create/list collection is the one deliberate exception, since it has no environment in the path.
Authorizations
User
HTTP: User
HTTP Authorization Scheme: bearer

Path parameters for "{title}"

projectId

string
必須
Genesis ID of the project

environmentId

string
必須
Genesis ID of the environment

HTTP response status codes for "{title}":

Code samples for "{title}":

Request example

curl -X DELETE \ -H "Authorization: Bearer <YOUR_TOKEN>" \ "https://services.unity.com/api/webshop/v1/projects/{projectId}/environments/{environmentId}/webshop/environment"

Response example

{ "type": "string", "title": "string", "status": 0, "detail": "string", "instance": "string", "code": "slug_taken"}

List active environments


Returns all activated environments and their statuses for the project's webshop.
Authorizations
User
HTTP: User
HTTP Authorization Scheme: bearer

Path parameters for "{title}"

projectId

string
必須
Genesis ID of the project

HTTP response status codes for "{title}":

Code samples for "{title}":

Request example

curl -X GET \ -H "Authorization: Bearer <YOUR_TOKEN>" \ "https://services.unity.com/api/webshop/v1/projects/{projectId}/webshop/environments"

Response example

{ "environments": [ { "environmentId": "string", "status": "draft", "isPrimary": true, "publishedAt": "2024-01-01T00:00:00Z" } ]}

Activate a new environment


Adds a new environment to the webshop (max 25 per webshop). Starts with status=draft.
Authorizations
User
HTTP: User
HTTP Authorization Scheme: bearer

Path parameters for "{title}"

projectId

string
必須
Genesis ID of the project

Request body for "{title}"

Media Type:
application/json

environmentId

string
必須
The environment ID to activate

HTTP response status codes for "{title}":

Code samples for "{title}":

Request example

curl -X POST \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Content-Type: application/json" \ -d '{ "environmentId": "string"}' \ "https://services.unity.com/api/webshop/v1/projects/{projectId}/webshop/environments"

Response example

{ "environmentId": "string", "status": "draft", "isPrimary": true, "publishedAt": "2024-01-01T00:00:00Z"}

List webshops for an organization


Returns webshops under publishers claimed by this organization. Supports cursor-based pagination and optional status/projectId filters.
Authorizations
User
HTTP: User
HTTP Authorization Scheme: bearer

Path parameters for "{title}"

organizationId

string
必須
Unity organization ID (numeric Genesis ID)

Query parameters for "{title}"

limit

integer
デフォルト: 20
Maximum number of results per page

after

string
Opaque cursor token from a previous response's next field

status

string
Filter by publication status

projectId

string
Filter by Unity project ID

HTTP response status codes for "{title}":

Code samples for "{title}":

Request example

curl -X GET \ -H "Authorization: Bearer <YOUR_TOKEN>" \ "https://services.unity.com/api/webshop/v1/organizations/{organizationId}/webshops"

Response example

{ "webshops": [ { "id": "string", "slug": "string", "publisherSlug": "string", "projectId": "string", "environmentId": "string", "name": "string", "status": "draft", "publishedAt": "2024-01-01T00:00:00Z", "generation": { "status": "none", "error": "string", "feedback": "string", "startedAt": "2024-01-01T00:00:00Z" }, "logoUrl": "string", "createdAt": "2024-01-01T00:00:00Z", "updatedAt": "2024-01-01T00:00:00Z", "draftUpdatedAt": "2024-01-01T00:00:00Z" } ], "next": "string"}

Rename an organization's publisher


Renames the publisher slug for the organization. Every published webshop owned by the publisher is republished at the new path; the response carries per-webshop relocation status so callers can retry any that didn't fully relocate.
Authorizations
User
HTTP: User
HTTP Authorization Scheme: bearer

Path parameters for "{title}"

organizationId

string
必須
Unity organization ID (numeric Genesis ID)

Request body for "{title}"

Media Type:
application/json

from

string
必須
Current publisher slug. 404 if it doesn't match.

to

string
必須
New publisher slug. Must be globally unused.

HTTP response status codes for "{title}":

Code samples for "{title}":

Request example

curl -X PATCH \ -H "Authorization: Bearer <YOUR_TOKEN>" \ -H "Content-Type: application/json" \ -d '{ "from": "string", "to": "string"}' \ "https://services.unity.com/api/webshop/v1/organizations/{organizationId}/publisher"

Response example

{ "publisherSlug": "string", "relocations": [ { "webshopId": "string", "slug": "string", "status": "relocated", "error": "string" } ]}

List available frontend bundle versions


Returns the frontend bundle versions available for pinning on a webshop. The sentinel
latest
is always included as the first entry and resolves to the most recently deployed bundle. Authenticated but not authorization-scoped — the response is global and identical for every dashboard caller, so per-resource permissioning would be noise.
Authorizations
User
HTTP: User
HTTP Authorization Scheme: bearer

HTTP response status codes for "{title}":

Code samples for "{title}":

Request example

curl -X GET \ -H "Authorization: Bearer <YOUR_TOKEN>" \ "https://services.unity.com/api/webshop/v1/frontend-versions"

Response example

{ "versions": [ { "version": "1.2.0" } ]}