CatalogService
Games: creating, publishing versions, discovery, ratings, content uploads and testers.
On this page
- Summary
- Methods
- CreateExperience
- UpdateExperience
- PublishVersion
- ListVersions
- SetLiveVersion
- GetExperience
- ListExperiences
- ListMyExperiences
- Favorite
- Vote
- UploadContent
- AddTester
- RemoveTester
- ListTesters
- Types
- CreateExperienceRequest
- Experience
- ExperienceRef
- FavoriteRequest
- FavoriteResponse
- ListExperiencesRequest
- ListExperiencesResponse
- ListMyExperiencesRequest
- ListTestersResponse
- ListVersionsRequest
- ListVersionsResponse
- PlaceVersion
- PublishVersionRequest
- SetLiveVersionRequest
- TesterRequest
- UpdateExperienceRequest
- UploadContentRequest
- UploadContentResponse
- VoteRequest
- VoteResponse
- See also
Games (experiences), places, versions and discovery. Every method is a POST with a JSON body; see the overview for the protocol, authentication and errors.
Summary#
| Method | Auth | Description |
|---|---|---|
| CreateExperience | Account | |
| UpdateExperience | Account | |
| PublishVersion | Account | Publishes a new, immutable version of the start place; it goes live at once. |
| ListVersions | Account | The start place's versions, newest first, and which one is live (the creator only). |
| SetLiveVersion | Account | Makes an existing version of the start place the live one: a rollback to an older version or a roll-forward to a newer one (the creator only). Players who join from then on get it; sessions already running keep the version they started with. |
| GetExperience | Optional | |
| ListExperiences | Optional | |
| ListMyExperiences | Account | |
| Favorite | Account or guest | |
| Vote | Account | Thumbs up or down; vote 1, -1, or 0 to clear. |
| UploadContent | Account | Uploads one content blob (a scene, a texture, a thumbnail) to the content store; returns its content-addressed URL for PublishVersion / UpdateExperience. Up to 8 MiB per blob. |
| AddTester | Account | Beta testers: private experiences are visible and joinable by their testers (ListExperiences sort "testing" lists the ones the caller tests). |
| RemoveTester | Account | |
| ListTesters | Account |
Methods#
CreateExperience#
POST /neo.platform.v1.CatalogService/CreateExperience
Content-Type: application/jsonAuth: A signed-in account. Guests are refused.
Also callable with a scoped token: studio.
Request: CreateExperienceRequest. Response: Experience.
UpdateExperience#
POST /neo.platform.v1.CatalogService/UpdateExperience
Content-Type: application/jsonAuth: A signed-in account. Guests are refused.
Also callable with a scoped token: studio.
Request: UpdateExperienceRequest. Response: Experience.
PublishVersion#
Publishes a new, immutable version of the start place; it goes live at once.
POST /neo.platform.v1.CatalogService/PublishVersion
Content-Type: application/jsonAuth: A signed-in account. Guests are refused.
Also callable with a scoped token: studio.
Request: PublishVersionRequest. Response: PlaceVersion.
ListVersions#
The start place's versions, newest first, and which one is live (the creator only).
POST /neo.platform.v1.CatalogService/ListVersions
Content-Type: application/jsonAuth: A signed-in account. Guests are refused.
Request: ListVersionsRequest. Response: ListVersionsResponse.
SetLiveVersion#
Makes an existing version of the start place the live one: a rollback to an older version or a roll-forward to a newer one (the creator only). Players who join from then on get it; sessions already running keep the version they started with.
POST /neo.platform.v1.CatalogService/SetLiveVersion
Content-Type: application/jsonAuth: A signed-in account. Guests are refused.
Request: SetLiveVersionRequest. Response: Experience.
GetExperience#
POST /neo.platform.v1.CatalogService/GetExperience
Content-Type: application/jsonAuth: Optional. Signed-in callers get personalised fields.
Also callable with a scoped token: studio.
Request: ExperienceRef. Response: Experience.
ListExperiences#
POST /neo.platform.v1.CatalogService/ListExperiences
Content-Type: application/jsonAuth: Optional. Signed-in callers get personalised fields.
Request: ListExperiencesRequest. Response: ListExperiencesResponse.
ListMyExperiences#
POST /neo.platform.v1.CatalogService/ListMyExperiences
Content-Type: application/jsonAuth: A signed-in account. Guests are refused.
Request: ListMyExperiencesRequest. Response: ListExperiencesResponse.
Favorite#
POST /neo.platform.v1.CatalogService/Favorite
Content-Type: application/jsonAuth: A signed-in account or a guest.
Request: FavoriteRequest. Response: FavoriteResponse.
Vote#
Thumbs up or down; vote 1, -1, or 0 to clear.
POST /neo.platform.v1.CatalogService/Vote
Content-Type: application/jsonAuth: A signed-in account. Guests are refused.
Request: VoteRequest. Response: VoteResponse.
UploadContent#
Uploads one content blob (a scene, a texture, a thumbnail) to the content store; returns its content-addressed URL for PublishVersion / UpdateExperience. Up to 8 MiB per blob.
POST /neo.platform.v1.CatalogService/UploadContent
Content-Type: application/jsonAuth: A signed-in account. Guests are refused.
Also callable with a scoped token: studio.
Request: UploadContentRequest. Response: UploadContentResponse.
AddTester#
Beta testers: private experiences are visible and joinable by their testers (ListExperiences sort "testing" lists the ones the caller tests).
POST /neo.platform.v1.CatalogService/AddTester
Content-Type: application/jsonAuth: A signed-in account. Guests are refused.
Also callable with a scoped token: studio.
Request: TesterRequest. Response: ListTestersResponse.
RemoveTester#
POST /neo.platform.v1.CatalogService/RemoveTester
Content-Type: application/jsonAuth: A signed-in account. Guests are refused.
Also callable with a scoped token: studio.
Request: TesterRequest. Response: ListTestersResponse.
ListTesters#
POST /neo.platform.v1.CatalogService/ListTesters
Content-Type: application/jsonAuth: A signed-in account. Guests are refused.
Also callable with a scoped token: studio.
Request: ExperienceRef. Response: ListTestersResponse.
Types#
CreateExperienceRequest#
| Field | Type | Description |
|---|---|---|
title | string | |
description | string | |
genre | string | |
hostingTier | string | |
maxPlayers | number |
Experience#
| Field | Type | Description |
|---|---|---|
id | string | |
title | string | |
description | string | |
creator | UserSummary | |
genre | string | |
thumbnailUrl | string | |
visibility | string | draft, public, private |
playingNow | string (int64) | |
visits | string (int64) | |
favorites | string (int64) | |
createdAt | string | |
updatedAt | string | |
liveVersion | PlaceVersion | The live version of the start place, if published. |
startPlaceId | string | |
hostingTier | string | Hosting tier of the start place: solo, peer, edge or dedicated. |
maxPlayers | number | |
favorited | boolean | |
upVotes | string (int64) | |
downVotes | string (int64) | |
myVote | number | The caller's vote: 1, -1 or 0. |
ExperienceRef#
| Field | Type | Description |
|---|---|---|
experienceId | string |
FavoriteRequest#
| Field | Type | Description |
|---|---|---|
experienceId | string | |
favorite | boolean |
FavoriteResponse#
| Field | Type | Description |
|---|---|---|
favorited | boolean | |
favorites | string (int64) |
ListExperiencesRequest#
| Field | Type | Description |
|---|---|---|
sort | string | popular, new, top_rated (by thumbs up), friends, search, recent (the caller's recently played), up_and_coming (new games gaining players), trending (most joins in the last day) |
query | string | |
genre | string | |
limit | number | |
creatorId | string | Only this creator's public experiences (all of them when it's the caller). |
ListExperiencesResponse#
| Field | Type | Description |
|---|---|---|
experiences | array of Experience |
ListMyExperiencesRequest#
No fields: send {}.
ListTestersResponse#
| Field | Type | Description |
|---|---|---|
testers | array of UserSummary |
ListVersionsRequest#
| Field | Type | Description |
|---|---|---|
experienceId | string | |
limit | number | Up to this many (default 50, at most 200). |
beforeNumber | string (int64) | Only versions numbered below this one (paging: the last number of the previous page). |
ListVersionsResponse#
| Field | Type | Description |
|---|---|---|
versions | array of PlaceVersion | |
liveVersionId | string | The live version's id (empty before the first publish). |
PlaceVersion#
| Field | Type | Description |
|---|---|---|
id | string | |
placeId | string | |
number | string (int64) | |
contentUrls | object (map of string to string) | Content manifest URL per cook target, for example web, desktop, mobile_high or mobile_low. |
engineMin | object (map of string to string) | Minimum engine version per platform. |
status | string | pending, live (passed its checks: it may be the live version), rejected. Which version players get is the experience's live_version (SetLiveVersion changes it). |
createdAt | string | |
notes | string |
PublishVersionRequest#
| Field | Type | Description |
|---|---|---|
experienceId | string | |
contentUrls | object (map of string to string) | |
engineMin | object (map of string to string) | |
notes | string | |
budgetReportJson | string | Budget report from the Studio: JSON, checked again in the cloud. |
SetLiveVersionRequest#
| Field | Type | Description |
|---|---|---|
experienceId | string | |
versionId | string |
TesterRequest#
| Field | Type | Description |
|---|---|---|
experienceId | string | |
userId | string | Either the user id or the username. |
username | string |
UpdateExperienceRequest#
| Field | Type | Description |
|---|---|---|
experienceId | string | |
title | string | |
description | string | |
visibility | string | |
thumbnailUrl | string |
UploadContentRequest#
| Field | Type | Description |
|---|---|---|
data | string (base64) | |
contentType | string | |
name | string | A hint for logs only; the URL is the content's hash. |
UploadContentResponse#
| Field | Type | Description |
|---|---|---|
url | string | |
sha256 | string | |
size | string (int64) |
VoteRequest#
| Field | Type | Description |
|---|---|---|
experienceId | string | |
vote | number |
VoteResponse#
| Field | Type | Description |
|---|---|---|
upVotes | string (int64) | |
downVotes | string (int64) | |
myVote | number |